; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls13_record_aead_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_debug_info = type { ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_session_key = type { ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_cipher = type { i32, %union.anon.0, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon.0 = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_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_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.1 }
%union.anon.1 = 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
@protected_record_hex = external dso_local constant [1349 x i8], align 16
@plaintext_record_hex = external dso_local constant [1317 x i8], align 16
@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 [85 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [110 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [64 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.24 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [170 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [169 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [103 x i8], align 1
@__const.main.expect_plaintext = external hidden unnamed_addr constant %struct.s2n_blob, align 8
@main.hello_data = external hidden global [12 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.modes = external hidden unnamed_addr constant [2 x i32], align 4
@.str.57 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [117 x i8], align 1
@__const.main.change_cipher_spec = external hidden unnamed_addr constant [1 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i64, align 8
  %11 = alloca [5 x i8], align 1
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_result, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_blob, align 8
  %17 = alloca %struct.s2n_result, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.s2n_result, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_result, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_result, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_result, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_session_key, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca %struct.s2n_result, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_blob, align 8
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca %struct.s2n_result, align 4
  %52 = alloca i32, align 4
  %53 = alloca %struct.s2n_blob, align 8
  %54 = alloca %struct.s2n_result, align 4
  %55 = alloca i32, align 4
  %56 = alloca %struct.s2n_blob, align 8
  %57 = alloca %struct.s2n_result, align 4
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_blob, align 8
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca i64, align 8
  %62 = alloca [1000 x i8], align 16
  %63 = alloca %struct.s2n_blob, align 8
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca %struct.s2n_blob, align 8
  %102 = alloca %struct.s2n_result, align 4
  %103 = alloca %struct.s2n_result, align 4
  %104 = alloca i32, align 4
  %105 = alloca %struct.s2n_blob, align 8
  %106 = alloca %struct.s2n_result, align 4
  %107 = alloca %struct.s2n_blob, align 8
  %108 = alloca %struct.s2n_result, align 4
  %109 = alloca i64, align 8
  %110 = alloca %struct.s2n_blob, align 8
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca %struct.s2n_blob, align 8
  %113 = alloca %struct.s2n_result, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_blob, align 8
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca ptr, align 8
  %124 = alloca ptr, align 8
  %125 = alloca i32, align 4
  %126 = alloca ptr, align 8
  %127 = alloca ptr, align 8
  %128 = alloca %struct.s2n_result, align 4
  %129 = alloca i32, align 4
  %130 = alloca %struct.s2n_blob, align 8
  %131 = alloca %struct.s2n_result, align 4
  %132 = alloca %struct.s2n_result, align 4
  %133 = alloca i32, align 4
  %134 = alloca %struct.s2n_result, align 4
  %135 = alloca i32, align 4
  %136 = alloca %struct.s2n_blob, align 8
  %137 = alloca %struct.s2n_result, align 4
  %138 = alloca i64, align 8
  %139 = alloca %struct.s2n_blob, align 8
  %140 = alloca %struct.s2n_blob, align 8
  %141 = alloca i32, align 4
  %142 = alloca %struct.s2n_result, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_blob, align 8
  %146 = alloca i32, align 4
  %147 = alloca %struct.s2n_blob, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca [2 x i32], align 4
  %152 = alloca i64, align 8
  %153 = alloca ptr, align 8
  %154 = alloca ptr, align 8
  %155 = alloca i32, align 4
  %156 = alloca %struct.s2n_result, align 4
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_result, align 4
  %159 = alloca i32, align 4
  %160 = alloca %struct.s2n_blob, align 8
  %161 = alloca %struct.s2n_result, align 4
  %162 = alloca %struct.s2n_result, align 4
  %163 = alloca i32, align 4
  %164 = alloca %struct.s2n_result, align 4
  %165 = alloca i32, align 4
  %166 = alloca %struct.s2n_blob, align 8
  %167 = alloca %struct.s2n_result, align 4
  %168 = alloca %struct.s2n_blob, align 8
  %169 = alloca %struct.s2n_result, align 4
  %170 = alloca i64, align 8
  %171 = alloca %struct.s2n_blob, align 8
  %172 = alloca %struct.s2n_result, align 4
  %173 = alloca [1 x i8], align 1
  %174 = alloca %struct.s2n_blob, align 8
  %175 = alloca %struct.s2n_result, align 4
  %176 = alloca i32, align 4
  %177 = alloca i8, align 1
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i16, align 2
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i16, align 2
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i8, align 1
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca %struct.s2n_result, align 4
  %191 = alloca i32, align 4
  %192 = alloca i8, align 1
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i16, align 2
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i16, align 2
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i8, align 1
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  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 %221

221:                                              ; preds = %2
  br label %222

222:                                              ; preds = %221
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %223 = load ptr, ptr @stdout, align 8, !tbaa !9
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef @.str, ptr noundef @.str.1) #11
  %225 = load ptr, ptr @stdout, align 8, !tbaa !9
  %226 = call i32 @fflush(ptr noundef %225)
  br label %227

227:                                              ; preds = %222
  %228 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %229 = icmp eq i32 %228, -1
  br i1 %229, label %230, label %281

230:                                              ; preds = %227
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %233 = call ptr @__errno_location() #12
  %234 = load i32, ptr %233, align 4, !tbaa !5
  store i32 %234, ptr %6, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = call i32 @s2n_print_stacktrace(ptr noundef %235)
  %237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %238 = trunc i8 %237 to i1
  br i1 %238, label %239, label %261

239:                                              ; preds = %232
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = call i32 @fileno(ptr noundef %240) #11
  %242 = call i32 @isatty(i32 noundef %241) #11
  %243 = icmp ne i32 %242, 0
  br i1 %243, label %244, label %261

244:                                              ; preds = %239
  %245 = load i32, ptr %6, align 4, !tbaa !5
  %246 = call ptr @__errno_location() #12
  store i32 %245, ptr %246, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = call ptr @s2n_strerror(i32 noundef %250, ptr noundef @.str.4)
  %252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = call ptr @s2n_strerror_debug(i32 noundef %253, ptr noundef @.str.4)
  %255 = call ptr @__errno_location() #12
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @strerror(i32 noundef %256) #11
  %258 = call ptr @__errno_location() #12
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %247, ptr noundef @.str.2, i32 noundef %248, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 98, ptr noundef %251, ptr noundef %254, ptr noundef %257, i32 noundef %259) #11
  br label %278

261:                                              ; preds = %239, %232
  %262 = load i32, ptr %6, align 4, !tbaa !5
  %263 = call ptr @__errno_location() #12
  store i32 %262, ptr %263, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call ptr @s2n_strerror(i32 noundef %267, ptr noundef @.str.4)
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef @.str.4)
  %272 = call ptr @__errno_location() #12
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @strerror(i32 noundef %273) #11
  %275 = call ptr @__errno_location() #12
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef @.str.5, i32 noundef %265, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 98, ptr noundef %268, ptr noundef %271, ptr noundef %274, i32 noundef %276) #11
  br label %278

278:                                              ; preds = %261, %244
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %279

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

280:                                              ; No predecessors!
  br label %281

281:                                              ; preds = %280, %227
  br label %282

282:                                              ; preds = %281
  br label %283

283:                                              ; preds = %282
  %284 = load i32, ptr @test_count, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr @test_count, align 4, !tbaa !5
  %286 = call i32 @s2n_enable_atexit()
  %287 = icmp eq i32 %286, -1
  br i1 %287, label %288, label %339

288:                                              ; preds = %283
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %291 = call ptr @__errno_location() #12
  %292 = load i32, ptr %291, align 4, !tbaa !5
  store i32 %292, ptr %7, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = call i32 @s2n_print_stacktrace(ptr noundef %293)
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc i8 %295 to i1
  br i1 %296, label %297, label %319

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = call i32 @fileno(ptr noundef %298) #11
  %300 = call i32 @isatty(i32 noundef %299) #11
  %301 = icmp ne i32 %300, 0
  br i1 %301, label %302, label %319

302:                                              ; preds = %297
  %303 = load i32, ptr %7, align 4, !tbaa !5
  %304 = call ptr @__errno_location() #12
  store i32 %303, ptr %304, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef @.str.4)
  %310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror_debug(i32 noundef %311, ptr noundef @.str.4)
  %313 = call ptr @__errno_location() #12
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @strerror(i32 noundef %314) #11
  %316 = call ptr @__errno_location() #12
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef @.str.2, i32 noundef %306, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 98, ptr noundef %309, ptr noundef %312, ptr noundef %315, i32 noundef %317) #11
  br label %336

319:                                              ; preds = %297, %290
  %320 = load i32, ptr %7, align 4, !tbaa !5
  %321 = call ptr @__errno_location() #12
  store i32 %320, ptr %321, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef @.str.4)
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef @.str.4)
  %330 = call ptr @__errno_location() #12
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #11
  %333 = call ptr @__errno_location() #12
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef @.str.5, i32 noundef %323, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 98, ptr noundef %326, ptr noundef %329, ptr noundef %332, i32 noundef %334) #11
  br label %336

336:                                              ; preds = %319, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %337

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

338:                                              ; No predecessors!
  br label %339

339:                                              ; preds = %338, %283
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  %343 = call i32 @s2n_init()
  %344 = icmp eq i32 %343, -1
  br i1 %344, label %345, label %396

345:                                              ; preds = %342
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %348 = call ptr @__errno_location() #12
  %349 = load i32, ptr %348, align 4, !tbaa !5
  store i32 %349, ptr %8, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @s2n_print_stacktrace(ptr noundef %350)
  %352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %353 = trunc i8 %352 to i1
  br i1 %353, label %354, label %376

354:                                              ; preds = %347
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @fileno(ptr noundef %355) #11
  %357 = call i32 @isatty(i32 noundef %356) #11
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %359, label %376

359:                                              ; preds = %354
  %360 = load i32, ptr %8, align 4, !tbaa !5
  %361 = call ptr @__errno_location() #12
  store i32 %360, ptr %361, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror(i32 noundef %365, ptr noundef @.str.4)
  %367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef @.str.4)
  %370 = call ptr @__errno_location() #12
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #11
  %373 = call ptr @__errno_location() #12
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str.2, i32 noundef %363, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 98, ptr noundef %366, ptr noundef %369, ptr noundef %372, i32 noundef %374) #11
  br label %393

376:                                              ; preds = %354, %347
  %377 = load i32, ptr %8, align 4, !tbaa !5
  %378 = call ptr @__errno_location() #12
  store i32 %377, ptr %378, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror(i32 noundef %382, ptr noundef @.str.4)
  %384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef @.str.4)
  %387 = call ptr @__errno_location() #12
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #11
  %390 = call ptr @__errno_location() #12
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef @.str.5, i32 noundef %380, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 98, ptr noundef %383, ptr noundef %386, ptr noundef %389, i32 noundef %391) #11
  br label %393

393:                                              ; preds = %376, %359
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %394

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

395:                                              ; No predecessors!
  br label %396

396:                                              ; preds = %395, %342
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr @test_count, align 4, !tbaa !5
  %402 = call i32 (...) @s2n_disable_tls13_in_test()
  %403 = icmp eq i32 %402, -1
  br i1 %403, label %404, label %455

404:                                              ; preds = %399
  br label %405

405:                                              ; preds = %404
  br label %406

406:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %407 = call ptr @__errno_location() #12
  %408 = load i32, ptr %407, align 4, !tbaa !5
  store i32 %408, ptr %9, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = call i32 @s2n_print_stacktrace(ptr noundef %409)
  %411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %412 = trunc i8 %411 to i1
  br i1 %412, label %413, label %435

413:                                              ; preds = %406
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = call i32 @fileno(ptr noundef %414) #11
  %416 = call i32 @isatty(i32 noundef %415) #11
  %417 = icmp ne i32 %416, 0
  br i1 %417, label %418, label %435

418:                                              ; preds = %413
  %419 = load i32, ptr %9, align 4, !tbaa !5
  %420 = call ptr @__errno_location() #12
  store i32 %419, ptr %420, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror(i32 noundef %424, ptr noundef @.str.4)
  %426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef @.str.4)
  %429 = call ptr @__errno_location() #12
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @strerror(i32 noundef %430) #11
  %432 = call ptr @__errno_location() #12
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %421, ptr noundef @.str.2, i32 noundef %422, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 99, ptr noundef %425, ptr noundef %428, ptr noundef %431, i32 noundef %433) #11
  br label %452

435:                                              ; preds = %413, %406
  %436 = load i32, ptr %9, align 4, !tbaa !5
  %437 = call ptr @__errno_location() #12
  store i32 %436, ptr %437, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef @.str.4)
  %443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror_debug(i32 noundef %444, ptr noundef @.str.4)
  %446 = call ptr @__errno_location() #12
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call ptr @strerror(i32 noundef %447) #11
  %449 = call ptr @__errno_location() #12
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %438, ptr noundef @.str.5, i32 noundef %439, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 99, ptr noundef %442, ptr noundef %445, ptr noundef %448, i32 noundef %450) #11
  br label %452

452:                                              ; preds = %435, %418
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %453

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

454:                                              ; No predecessors!
  br label %455

455:                                              ; preds = %454, %399
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store i64 5, ptr %10, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 5, ptr %11) #11
  call void @llvm.memset.p0.i64(ptr align 1 %11, i8 0, i64 5, i1 false)
  br label %457

457:                                              ; preds = %456
  %458 = load i64, ptr %10, align 8, !tbaa !15
  %459 = icmp ule i64 %458, 5
  br i1 %459, label %493, label %460

460:                                              ; preds = %457
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  %463 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %464 = getelementptr inbounds %struct.s2n_debug_info, ptr %463, i32 0, i32 0
  store ptr @.str.9, ptr %464, align 8, !tbaa !17
  %465 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %466 = getelementptr inbounds %struct.s2n_debug_info, ptr %465, i32 0, i32 0
  %467 = load ptr, ptr %466, align 8, !tbaa !17
  %468 = getelementptr inbounds i8, ptr %467, i64 21
  %469 = call ptr @strrchr(ptr noundef %468, i32 noundef 47) #14
  %470 = icmp ne ptr %469, null
  br i1 %470, label %471, label %478

471:                                              ; preds = %462
  %472 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %473 = getelementptr inbounds %struct.s2n_debug_info, ptr %472, i32 0, i32 0
  %474 = load ptr, ptr %473, align 8, !tbaa !17
  %475 = getelementptr inbounds i8, ptr %474, i64 21
  %476 = call ptr @strrchr(ptr noundef %475, i32 noundef 47) #14
  %477 = getelementptr inbounds i8, ptr %476, i64 1
  br label %483

478:                                              ; preds = %462
  %479 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %480 = getelementptr inbounds %struct.s2n_debug_info, ptr %479, i32 0, i32 0
  %481 = load ptr, ptr %480, align 8, !tbaa !17
  %482 = getelementptr inbounds i8, ptr %481, i64 21
  br label %483

483:                                              ; preds = %478, %471
  %484 = phi ptr [ %477, %471 ], [ %482, %478 ]
  %485 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %486 = getelementptr inbounds %struct.s2n_debug_info, ptr %485, i32 0, i32 1
  store ptr %484, ptr %486, align 8, !tbaa !19
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %487, align 4, !tbaa !5
  %488 = call i32 @s2n_calculate_stacktrace()
  br label %489

489:                                              ; preds = %483
  br label %490

490:                                              ; preds = %489
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %1825

491:                                              ; No predecessors!
  br label %492

492:                                              ; preds = %491
  br label %493

493:                                              ; preds = %492, %457
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  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)
  br label %496

496:                                              ; preds = %495
  %497 = getelementptr inbounds [5 x i8], ptr %11, i64 0, i64 0
  %498 = load i64, ptr %10, align 8, !tbaa !15
  %499 = trunc i64 %498 to i32
  %500 = call i32 @s2n_blob_init(ptr noundef %13, ptr noundef %497, i32 noundef %499)
  %501 = icmp sgt i32 %500, -1
  br i1 %501, label %503, label %502

502:                                              ; preds = %496
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %1824

503:                                              ; preds = %496
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr @test_count, align 4, !tbaa !5
  %509 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 662, i8 noundef zeroext 12, ptr noundef %13)
  %510 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %509, ptr %510, align 4
  %511 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %512 = load i32, ptr %511, align 4
  %513 = call zeroext i1 @s2n_result_is_ok(i32 %512)
  br i1 %513, label %567, label %514

514:                                              ; preds = %506
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %517 = call ptr @__errno_location() #12
  %518 = load i32, ptr %517, align 4, !tbaa !5
  store i32 %518, ptr %15, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @s2n_print_stacktrace(ptr noundef %519)
  %521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %522 = trunc i8 %521 to i1
  br i1 %522, label %523, label %545

523:                                              ; preds = %516
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = call i32 @fileno(ptr noundef %524) #11
  %526 = call i32 @isatty(i32 noundef %525) #11
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %545

528:                                              ; preds = %523
  %529 = load i32, ptr %15, align 4, !tbaa !5
  %530 = call ptr @__errno_location() #12
  store i32 %529, ptr %530, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror(i32 noundef %534, ptr noundef @.str.4)
  %536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = call ptr @s2n_strerror_debug(i32 noundef %537, ptr noundef @.str.4)
  %539 = call ptr @__errno_location() #12
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @strerror(i32 noundef %540) #11
  %542 = call ptr @__errno_location() #12
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %531, ptr noundef @.str.2, i32 noundef %532, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 104, ptr noundef %535, ptr noundef %538, ptr noundef %541, i32 noundef %543) #11
  br label %562

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

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

563:                                              ; preds = %562
  br label %564

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

565:                                              ; No predecessors!
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566, %506
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #11
  call void @llvm.memset.p0.i64(ptr align 8 %16, i8 0, i64 24, i1 false)
  br label %570

570:                                              ; preds = %569
  %571 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %16, ptr noundef @.str.11)
  %572 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  store i32 %571, ptr %572, align 4
  %573 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  %574 = load i32, ptr %573, align 4
  %575 = call zeroext i1 @s2n_result_is_ok(i32 %574)
  br i1 %575, label %577, label %576

576:                                              ; preds = %570
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %1822

577:                                              ; preds = %570
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  %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 = getelementptr inbounds %struct.s2n_blob, ptr %16, i32 0, i32 1
  %585 = load i32, ptr %584, align 8, !tbaa !20
  %586 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %587 = load i32, ptr %586, align 8, !tbaa !20
  %588 = icmp eq i32 %585, %587
  br i1 %588, label %642, label %589

589:                                              ; preds = %581
  br label %590

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %592 = call ptr @__errno_location() #12
  %593 = load i32, ptr %592, align 4, !tbaa !5
  store i32 %593, ptr %18, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @s2n_print_stacktrace(ptr noundef %594)
  %596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %597 = trunc i8 %596 to i1
  br i1 %597, label %598, label %620

598:                                              ; preds = %591
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @fileno(ptr noundef %599) #11
  %601 = call i32 @isatty(i32 noundef %600) #11
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %620

603:                                              ; preds = %598
  %604 = load i32, ptr %18, align 4, !tbaa !5
  %605 = call ptr @__errno_location() #12
  store i32 %604, ptr %605, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror(i32 noundef %609, ptr noundef @.str.4)
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef @.str.4)
  %614 = call ptr @__errno_location() #12
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #11
  %617 = call ptr @__errno_location() #12
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef @.str.2, i32 noundef %607, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 106, ptr noundef %610, ptr noundef %613, ptr noundef %616, i32 noundef %618) #11
  br label %637

620:                                              ; preds = %598, %591
  %621 = load i32, ptr %18, align 4, !tbaa !5
  %622 = call ptr @__errno_location() #12
  store i32 %621, ptr %622, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror(i32 noundef %626, ptr noundef @.str.4)
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef @.str.4)
  %631 = call ptr @__errno_location() #12
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #11
  %634 = call ptr @__errno_location() #12
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef @.str.5, i32 noundef %624, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 106, ptr noundef %627, ptr noundef %630, ptr noundef %633, i32 noundef %635) #11
  br label %637

637:                                              ; preds = %620, %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %638

638:                                              ; preds = %637
  br label %639

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

640:                                              ; No predecessors!
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641, %581
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644
  %646 = getelementptr inbounds %struct.s2n_blob, ptr %16, i32 0, i32 1
  %647 = load i32, ptr %646, align 8, !tbaa !20
  %648 = icmp ne i32 %647, 0
  br i1 %648, label %649, label %718

649:                                              ; preds = %645
  br label %650

650:                                              ; preds = %649
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = getelementptr inbounds %struct.s2n_blob, ptr %16, i32 0, i32 0
  %654 = load ptr, ptr %653, align 8, !tbaa !22
  %655 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %656 = load ptr, ptr %655, align 8, !tbaa !22
  %657 = getelementptr inbounds %struct.s2n_blob, ptr %16, i32 0, i32 1
  %658 = load i32, ptr %657, align 8, !tbaa !20
  %659 = zext i32 %658 to i64
  %660 = call i32 @memcmp(ptr noundef %654, ptr noundef %656, i64 noundef %659) #14
  %661 = icmp eq i32 %660, 0
  br i1 %661, label %715, label %662

662:                                              ; preds = %650
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %665 = call ptr @__errno_location() #12
  %666 = load i32, ptr %665, align 4, !tbaa !5
  store i32 %666, ptr %19, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = call i32 @s2n_print_stacktrace(ptr noundef %667)
  %669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %670 = trunc i8 %669 to i1
  br i1 %670, label %671, label %693

671:                                              ; preds = %664
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = call i32 @fileno(ptr noundef %672) #11
  %674 = call i32 @isatty(i32 noundef %673) #11
  %675 = icmp ne i32 %674, 0
  br i1 %675, label %676, label %693

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

693:                                              ; preds = %671, %664
  %694 = load i32, ptr %19, align 4, !tbaa !5
  %695 = call ptr @__errno_location() #12
  store i32 %694, ptr %695, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef @.str.4)
  %701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef @.str.4)
  %704 = call ptr @__errno_location() #12
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @strerror(i32 noundef %705) #11
  %707 = call ptr @__errno_location() #12
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %696, ptr noundef @.str.5, i32 noundef %697, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 106, ptr noundef %700, ptr noundef %703, ptr noundef %706, i32 noundef %708) #11
  br label %710

710:                                              ; preds = %693, %676
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %711

711:                                              ; preds = %710
  br label %712

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

713:                                              ; No predecessors!
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714, %650
  br label %716

716:                                              ; preds = %715
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717, %645
  br label %719

719:                                              ; preds = %718
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721
  br label %723

723:                                              ; preds = %722
  %724 = load i32, ptr @test_count, align 4, !tbaa !5
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr @test_count, align 4, !tbaa !5
  %726 = call i32 @s2n_blob_zero(ptr noundef %13)
  %727 = icmp eq i32 %726, -1
  br i1 %727, label %728, label %781

728:                                              ; preds = %723
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %731 = call ptr @__errno_location() #12
  %732 = load i32, ptr %731, align 4, !tbaa !5
  store i32 %732, ptr %20, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @s2n_print_stacktrace(ptr noundef %733)
  %735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %736 = trunc i8 %735 to i1
  br i1 %736, label %737, label %759

737:                                              ; preds = %730
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @fileno(ptr noundef %738) #11
  %740 = call i32 @isatty(i32 noundef %739) #11
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %742, label %759

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

759:                                              ; preds = %737, %730
  %760 = load i32, ptr %20, align 4, !tbaa !5
  %761 = call ptr @__errno_location() #12
  store i32 %760, ptr %761, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef @.str.4)
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror_debug(i32 noundef %768, ptr noundef @.str.4)
  %770 = call ptr @__errno_location() #12
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @strerror(i32 noundef %771) #11
  %773 = call ptr @__errno_location() #12
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef @.str.5, i32 noundef %763, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 109, ptr noundef %766, ptr noundef %769, ptr noundef %772, i32 noundef %774) #11
  br label %776

776:                                              ; preds = %759, %742
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %777

777:                                              ; preds = %776
  br label %778

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

779:                                              ; No predecessors!
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780, %723
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  br label %784

784:                                              ; preds = %783
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @test_count, align 4, !tbaa !5
  %787 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16628, i8 noundef zeroext 12, ptr noundef %13)
  %788 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %787, ptr %788, align 4
  %789 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  %790 = load i32, ptr %789, align 4
  %791 = call zeroext i1 @s2n_result_is_ok(i32 %790)
  br i1 %791, label %845, label %792

792:                                              ; preds = %784
  br label %793

793:                                              ; preds = %792
  br label %794

794:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %795 = call ptr @__errno_location() #12
  %796 = load i32, ptr %795, align 4, !tbaa !5
  store i32 %796, ptr %22, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = call i32 @s2n_print_stacktrace(ptr noundef %797)
  %799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %800 = trunc i8 %799 to i1
  br i1 %800, label %801, label %823

801:                                              ; preds = %794
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @fileno(ptr noundef %802) #11
  %804 = call i32 @isatty(i32 noundef %803) #11
  %805 = icmp ne i32 %804, 0
  br i1 %805, label %806, label %823

806:                                              ; preds = %801
  %807 = load i32, ptr %22, align 4, !tbaa !5
  %808 = call ptr @__errno_location() #12
  store i32 %807, ptr %808, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef @.str.4)
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror_debug(i32 noundef %815, ptr noundef @.str.4)
  %817 = call ptr @__errno_location() #12
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #11
  %820 = call ptr @__errno_location() #12
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef @.str.2, i32 noundef %810, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 110, ptr noundef %813, ptr noundef %816, ptr noundef %819, i32 noundef %821) #11
  br label %840

823:                                              ; preds = %801, %794
  %824 = load i32, ptr %22, align 4, !tbaa !5
  %825 = call ptr @__errno_location() #12
  store i32 %824, ptr %825, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror(i32 noundef %829, ptr noundef @.str.4)
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror_debug(i32 noundef %832, ptr noundef @.str.4)
  %834 = call ptr @__errno_location() #12
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @strerror(i32 noundef %835) #11
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef @.str.5, i32 noundef %827, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 110, ptr noundef %830, ptr noundef %833, ptr noundef %836, i32 noundef %838) #11
  br label %840

840:                                              ; preds = %823, %806
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %841

841:                                              ; preds = %840
  br label %842

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

843:                                              ; No predecessors!
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844, %784
  br label %846

846:                                              ; preds = %845
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = call i32 @s2n_blob_zero(ptr noundef %13)
  %852 = icmp eq i32 %851, -1
  br i1 %852, label %853, label %906

853:                                              ; preds = %848
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %856 = call ptr @__errno_location() #12
  %857 = load i32, ptr %856, align 4, !tbaa !5
  store i32 %857, ptr %23, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = call i32 @s2n_print_stacktrace(ptr noundef %858)
  %860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %861 = trunc i8 %860 to i1
  br i1 %861, label %862, label %884

862:                                              ; preds = %855
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @fileno(ptr noundef %863) #11
  %865 = call i32 @isatty(i32 noundef %864) #11
  %866 = icmp ne i32 %865, 0
  br i1 %866, label %867, label %884

867:                                              ; preds = %862
  %868 = load i32, ptr %23, align 4, !tbaa !5
  %869 = call ptr @__errno_location() #12
  store i32 %868, ptr %869, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror(i32 noundef %873, ptr noundef @.str.4)
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef @.str.4)
  %878 = call ptr @__errno_location() #12
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #11
  %881 = call ptr @__errno_location() #12
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef @.str.2, i32 noundef %871, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 113, ptr noundef %874, ptr noundef %877, ptr noundef %880, i32 noundef %882) #11
  br label %901

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

901:                                              ; preds = %884, %867
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %902

902:                                              ; preds = %901
  br label %903

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

904:                                              ; No predecessors!
  br label %905

905:                                              ; preds = %904
  br label %906

906:                                              ; preds = %905, %848
  br label %907

907:                                              ; preds = %906
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  br label %910

910:                                              ; preds = %909
  br label %911

911:                                              ; preds = %910
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = add nsw i32 %912, 1
  store i32 %913, ptr @test_count, align 4, !tbaa !5
  %914 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16629, i8 noundef zeroext 12, ptr noundef %13)
  %915 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %914, ptr %915, align 4
  %916 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %917 = load i32, ptr %916, align 4
  %918 = call zeroext i1 @s2n_result_is_error(i32 %917)
  br i1 %918, label %972, label %919

919:                                              ; preds = %911
  br label %920

920:                                              ; preds = %919
  br label %921

921:                                              ; preds = %920
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %922 = call ptr @__errno_location() #12
  %923 = load i32, ptr %922, align 4, !tbaa !5
  store i32 %923, ptr %25, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @s2n_print_stacktrace(ptr noundef %924)
  %926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %927 = trunc i8 %926 to i1
  br i1 %927, label %928, label %950

928:                                              ; preds = %921
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @fileno(ptr noundef %929) #11
  %931 = call i32 @isatty(i32 noundef %930) #11
  %932 = icmp ne i32 %931, 0
  br i1 %932, label %933, label %950

933:                                              ; preds = %928
  %934 = load i32, ptr %25, align 4, !tbaa !5
  %935 = call ptr @__errno_location() #12
  store i32 %934, ptr %935, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror(i32 noundef %939, ptr noundef @.str.4)
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef @.str.4)
  %944 = call ptr @__errno_location() #12
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @strerror(i32 noundef %945) #11
  %947 = call ptr @__errno_location() #12
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %936, ptr noundef @.str.2, i32 noundef %937, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 114, ptr noundef %940, ptr noundef %943, ptr noundef %946, i32 noundef %948) #11
  br label %967

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

967:                                              ; preds = %950, %933
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %968

968:                                              ; preds = %967
  br label %969

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

970:                                              ; No predecessors!
  br label %971

971:                                              ; preds = %970
  br label %972

972:                                              ; preds = %971, %911
  br label %973

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr @test_count, align 4, !tbaa !5
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = icmp eq i32 %979, 335544365
  br i1 %980, label %1034, label %981

981:                                              ; preds = %975
  br label %982

982:                                              ; preds = %981
  br label %983

983:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %984 = call ptr @__errno_location() #12
  %985 = load i32, ptr %984, align 4, !tbaa !5
  store i32 %985, ptr %26, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @s2n_print_stacktrace(ptr noundef %986)
  %988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %989 = trunc i8 %988 to i1
  br i1 %989, label %990, label %1012

990:                                              ; preds = %983
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @fileno(ptr noundef %991) #11
  %993 = call i32 @isatty(i32 noundef %992) #11
  %994 = icmp ne i32 %993, 0
  br i1 %994, label %995, label %1012

995:                                              ; preds = %990
  %996 = load i32, ptr %26, align 4, !tbaa !5
  %997 = call ptr @__errno_location() #12
  store i32 %996, ptr %997, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror(i32 noundef %1001, ptr noundef @.str.4)
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef @.str.4)
  %1006 = call ptr @__errno_location() #12
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #11
  %1009 = call ptr @__errno_location() #12
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef @.str.2, i32 noundef %999, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1002, ptr noundef %1005, ptr noundef %1008, i32 noundef %1010) #11
  br label %1029

1012:                                             ; preds = %990, %983
  %1013 = load i32, ptr %26, align 4, !tbaa !5
  %1014 = call ptr @__errno_location() #12
  store i32 %1013, ptr %1014, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef @.str.4)
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror_debug(i32 noundef %1021, ptr noundef @.str.4)
  %1023 = call ptr @__errno_location() #12
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #11
  %1026 = call ptr @__errno_location() #12
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef @.str.5, i32 noundef %1016, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1019, ptr noundef %1022, ptr noundef %1025, i32 noundef %1027) #11
  br label %1029

1029:                                             ; preds = %1012, %995
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

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

1032:                                             ; No predecessors!
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

1034:                                             ; preds = %1033, %975
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror_debug(i32 noundef %1041, ptr noundef @.str.4)
  %1043 = icmp eq ptr %1042, null
  br i1 %1043, label %1044, label %1097

1044:                                             ; preds = %1037
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %1047 = call ptr @__errno_location() #12
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  store i32 %1048, ptr %27, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @s2n_print_stacktrace(ptr noundef %1049)
  %1051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1052 = trunc i8 %1051 to i1
  br i1 %1052, label %1053, label %1075

1053:                                             ; preds = %1046
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @fileno(ptr noundef %1054) #11
  %1056 = call i32 @isatty(i32 noundef %1055) #11
  %1057 = icmp ne i32 %1056, 0
  br i1 %1057, label %1058, label %1075

1058:                                             ; preds = %1053
  %1059 = load i32, ptr %27, align 4, !tbaa !5
  %1060 = call ptr @__errno_location() #12
  store i32 %1059, ptr %1060, align 4, !tbaa !5
  %1061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror(i32 noundef %1064, ptr noundef @.str.4)
  %1066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef @.str.4)
  %1069 = call ptr @__errno_location() #12
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call ptr @strerror(i32 noundef %1070) #11
  %1072 = call ptr @__errno_location() #12
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1061, ptr noundef @.str.2, i32 noundef %1062, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1065, ptr noundef %1068, ptr noundef %1071, i32 noundef %1073) #11
  br label %1092

1075:                                             ; preds = %1053, %1046
  %1076 = load i32, ptr %27, align 4, !tbaa !5
  %1077 = call ptr @__errno_location() #12
  store i32 %1076, ptr %1077, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call ptr @__errno_location() #12
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @strerror(i32 noundef %1087) #11
  %1089 = call ptr @__errno_location() #12
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef @.str.5, i32 noundef %1079, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1082, ptr noundef %1085, ptr noundef %1088, i32 noundef %1090) #11
  br label %1092

1092:                                             ; preds = %1075, %1058
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

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

1095:                                             ; No predecessors!
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096, %1037
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

1102:                                             ; preds = %1101
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1103, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1104 = call ptr @__errno_location() #12
  store i32 0, ptr %1104, align 4, !tbaa !5
  br label %1105

1105:                                             ; preds = %1102
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = add nsw i32 %1110, 1
  store i32 %1111, ptr @test_count, align 4, !tbaa !5
  %1112 = call i32 @s2n_blob_zero(ptr noundef %13)
  %1113 = icmp eq i32 %1112, -1
  br i1 %1113, label %1114, label %1167

1114:                                             ; preds = %1109
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

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

1123:                                             ; preds = %1116
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @fileno(ptr noundef %1124) #11
  %1126 = call i32 @isatty(i32 noundef %1125) #11
  %1127 = icmp ne i32 %1126, 0
  br i1 %1127, label %1128, label %1145

1128:                                             ; preds = %1123
  %1129 = load i32, ptr %28, align 4, !tbaa !5
  %1130 = call ptr @__errno_location() #12
  store i32 %1129, ptr %1130, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror(i32 noundef %1134, ptr noundef @.str.4)
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef @.str.4)
  %1139 = call ptr @__errno_location() #12
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #11
  %1142 = call ptr @__errno_location() #12
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef @.str.2, i32 noundef %1132, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1135, ptr noundef %1138, ptr noundef %1141, i32 noundef %1143) #11
  br label %1162

1145:                                             ; preds = %1123, %1116
  %1146 = load i32, ptr %28, align 4, !tbaa !5
  %1147 = call ptr @__errno_location() #12
  store i32 %1146, ptr %1147, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef @.str.4)
  %1156 = call ptr @__errno_location() #12
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #11
  %1159 = call ptr @__errno_location() #12
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1148, ptr noundef @.str.5, i32 noundef %1149, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1152, ptr noundef %1155, ptr noundef %1158, i32 noundef %1160) #11
  br label %1162

1162:                                             ; preds = %1145, %1128
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

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

1165:                                             ; No predecessors!
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166, %1109
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

1171:                                             ; preds = %1170
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, ptr @test_count, align 4, !tbaa !5
  %1174 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16629, i8 noundef zeroext 12, ptr noundef null)
  %1175 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %1174, ptr %1175, align 4
  %1176 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %1177 = load i32, ptr %1176, align 4
  %1178 = call zeroext i1 @s2n_result_is_error(i32 %1177)
  br i1 %1178, label %1232, label %1179

1179:                                             ; preds = %1171
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

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

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

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

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

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

1228:                                             ; preds = %1227
  br label %1229

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

1230:                                             ; No predecessors!
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

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

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

1235:                                             ; preds = %1234
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr @test_count, align 4, !tbaa !5
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = icmp eq i32 %1239, 0
  br i1 %1240, label %1241, label %1294

1241:                                             ; preds = %1235
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

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

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

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

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

1289:                                             ; preds = %1272, %1255
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

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

1292:                                             ; No predecessors!
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

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

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr @test_count, align 4, !tbaa !5
  %1300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef @.str.4)
  %1303 = icmp eq ptr %1302, null
  br i1 %1303, label %1304, label %1357

1304:                                             ; preds = %1297
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

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

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

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

1352:                                             ; preds = %1335, %1318
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1353

1353:                                             ; preds = %1352
  br label %1354

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

1355:                                             ; No predecessors!
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356, %1297
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1361, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1362 = call ptr @__errno_location() #12
  store i32 0, ptr %1362, align 4, !tbaa !5
  br label %1363

1363:                                             ; preds = %1360
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr @test_count, align 4, !tbaa !5
  %1370 = call i32 @s2n_blob_zero(ptr noundef %13)
  %1371 = icmp eq i32 %1370, -1
  br i1 %1371, label %1372, label %1425

1372:                                             ; preds = %1367
  br label %1373

1373:                                             ; preds = %1372
  br label %1374

1374:                                             ; preds = %1373
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1375 = call ptr @__errno_location() #12
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  store i32 %1376, ptr %33, align 4, !tbaa !5
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = call i32 @s2n_print_stacktrace(ptr noundef %1377)
  %1379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1380 = trunc i8 %1379 to i1
  br i1 %1380, label %1381, label %1403

1381:                                             ; preds = %1374
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = call i32 @fileno(ptr noundef %1382) #11
  %1384 = call i32 @isatty(i32 noundef %1383) #11
  %1385 = icmp ne i32 %1384, 0
  br i1 %1385, label %1386, label %1403

1386:                                             ; preds = %1381
  %1387 = load i32, ptr %33, align 4, !tbaa !5
  %1388 = call ptr @__errno_location() #12
  store i32 %1387, ptr %1388, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror(i32 noundef %1392, ptr noundef @.str.4)
  %1394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call ptr @s2n_strerror_debug(i32 noundef %1395, ptr noundef @.str.4)
  %1397 = call ptr @__errno_location() #12
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @strerror(i32 noundef %1398) #11
  %1400 = call ptr @__errno_location() #12
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1389, ptr noundef @.str.2, i32 noundef %1390, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1393, ptr noundef %1396, ptr noundef %1399, i32 noundef %1401) #11
  br label %1420

1403:                                             ; preds = %1381, %1374
  %1404 = load i32, ptr %33, align 4, !tbaa !5
  %1405 = call ptr @__errno_location() #12
  store i32 %1404, ptr %1405, align 4, !tbaa !5
  %1406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1407 = load i32, ptr @test_count, align 4, !tbaa !5
  %1408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror(i32 noundef %1409, ptr noundef @.str.4)
  %1411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror_debug(i32 noundef %1412, ptr noundef @.str.4)
  %1414 = call ptr @__errno_location() #12
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @strerror(i32 noundef %1415) #11
  %1417 = call ptr @__errno_location() #12
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1406, ptr noundef @.str.5, i32 noundef %1407, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1410, ptr noundef %1413, ptr noundef %1416, i32 noundef %1418) #11
  br label %1420

1420:                                             ; preds = %1403, %1386
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

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

1423:                                             ; No predecessors!
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424, %1367
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = add nsw i32 %1430, 1
  store i32 %1431, ptr @test_count, align 4, !tbaa !5
  %1432 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16628, i8 noundef zeroext 0, ptr noundef %13)
  %1433 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  store i32 %1432, ptr %1433, align 4
  %1434 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  %1435 = load i32, ptr %1434, align 4
  %1436 = call zeroext i1 @s2n_result_is_error(i32 %1435)
  br i1 %1436, label %1490, label %1437

1437:                                             ; preds = %1429
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1440 = call ptr @__errno_location() #12
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  store i32 %1441, ptr %35, align 4, !tbaa !5
  %1442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1443 = call i32 @s2n_print_stacktrace(ptr noundef %1442)
  %1444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1445 = trunc i8 %1444 to i1
  br i1 %1445, label %1446, label %1468

1446:                                             ; preds = %1439
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @fileno(ptr noundef %1447) #11
  %1449 = call i32 @isatty(i32 noundef %1448) #11
  %1450 = icmp ne i32 %1449, 0
  br i1 %1450, label %1451, label %1468

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

1468:                                             ; preds = %1446, %1439
  %1469 = load i32, ptr %35, align 4, !tbaa !5
  %1470 = call ptr @__errno_location() #12
  store i32 %1469, ptr %1470, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror(i32 noundef %1474, ptr noundef @.str.4)
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror_debug(i32 noundef %1477, ptr noundef @.str.4)
  %1479 = call ptr @__errno_location() #12
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @strerror(i32 noundef %1480) #11
  %1482 = call ptr @__errno_location() #12
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1471, ptr noundef @.str.5, i32 noundef %1472, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1475, ptr noundef %1478, ptr noundef %1481, i32 noundef %1483) #11
  br label %1485

1485:                                             ; preds = %1468, %1451
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

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

1488:                                             ; No predecessors!
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489, %1429
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

1493:                                             ; preds = %1492
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = add nsw i32 %1494, 1
  store i32 %1495, ptr @test_count, align 4, !tbaa !5
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = icmp eq i32 %1497, 0
  br i1 %1498, label %1499, label %1552

1499:                                             ; preds = %1493
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

1501:                                             ; preds = %1500
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1502 = call ptr @__errno_location() #12
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  store i32 %1503, ptr %36, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @s2n_print_stacktrace(ptr noundef %1504)
  %1506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1507 = trunc i8 %1506 to i1
  br i1 %1507, label %1508, label %1530

1508:                                             ; preds = %1501
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @fileno(ptr noundef %1509) #11
  %1511 = call i32 @isatty(i32 noundef %1510) #11
  %1512 = icmp ne i32 %1511, 0
  br i1 %1512, label %1513, label %1530

1513:                                             ; preds = %1508
  %1514 = load i32, ptr %36, align 4, !tbaa !5
  %1515 = call ptr @__errno_location() #12
  store i32 %1514, ptr %1515, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef @.str.4)
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror_debug(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call ptr @__errno_location() #12
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @strerror(i32 noundef %1525) #11
  %1527 = call ptr @__errno_location() #12
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef @.str.2, i32 noundef %1517, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1520, ptr noundef %1523, ptr noundef %1526, i32 noundef %1528) #11
  br label %1547

1530:                                             ; preds = %1508, %1501
  %1531 = load i32, ptr %36, align 4, !tbaa !5
  %1532 = call ptr @__errno_location() #12
  store i32 %1531, ptr %1532, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror(i32 noundef %1536, ptr noundef @.str.4)
  %1538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef %1539, ptr noundef @.str.4)
  %1541 = call ptr @__errno_location() #12
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call ptr @strerror(i32 noundef %1542) #11
  %1544 = call ptr @__errno_location() #12
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef @.str.5, i32 noundef %1534, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1537, ptr noundef %1540, ptr noundef %1543, i32 noundef %1545) #11
  br label %1547

1547:                                             ; preds = %1530, %1513
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

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

1550:                                             ; No predecessors!
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551, %1493
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554
  %1556 = load i32, ptr @test_count, align 4, !tbaa !5
  %1557 = add nsw i32 %1556, 1
  store i32 %1557, ptr @test_count, align 4, !tbaa !5
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror_debug(i32 noundef %1559, ptr noundef @.str.4)
  %1561 = icmp eq ptr %1560, null
  br i1 %1561, label %1562, label %1615

1562:                                             ; preds = %1555
  br label %1563

1563:                                             ; preds = %1562
  br label %1564

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

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

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

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

1610:                                             ; preds = %1593, %1576
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

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

1613:                                             ; No predecessors!
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

1615:                                             ; preds = %1614, %1555
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1619, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1620 = call ptr @__errno_location() #12
  store i32 0, ptr %1620, align 4, !tbaa !5
  br label %1621

1621:                                             ; preds = %1618
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

1626:                                             ; preds = %1625
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = add nsw i32 %1627, 1
  store i32 %1628, ptr @test_count, align 4, !tbaa !5
  %1629 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext -1, i8 noundef zeroext 0, ptr noundef %13)
  %1630 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  store i32 %1629, ptr %1630, align 4
  %1631 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  %1632 = load i32, ptr %1631, align 4
  %1633 = call zeroext i1 @s2n_result_is_error(i32 %1632)
  br i1 %1633, label %1687, label %1634

1634:                                             ; preds = %1626
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1637 = call ptr @__errno_location() #12
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  store i32 %1638, ptr %39, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = call i32 @s2n_print_stacktrace(ptr noundef %1639)
  %1641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1642 = trunc i8 %1641 to i1
  br i1 %1642, label %1643, label %1665

1643:                                             ; preds = %1636
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = call i32 @fileno(ptr noundef %1644) #11
  %1646 = call i32 @isatty(i32 noundef %1645) #11
  %1647 = icmp ne i32 %1646, 0
  br i1 %1647, label %1648, label %1665

1648:                                             ; preds = %1643
  %1649 = load i32, ptr %39, align 4, !tbaa !5
  %1650 = call ptr @__errno_location() #12
  store i32 %1649, ptr %1650, align 4, !tbaa !5
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = load i32, ptr @test_count, align 4, !tbaa !5
  %1653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror(i32 noundef %1654, ptr noundef @.str.4)
  %1656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror_debug(i32 noundef %1657, ptr noundef @.str.4)
  %1659 = call ptr @__errno_location() #12
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = call ptr @strerror(i32 noundef %1660) #11
  %1662 = call ptr @__errno_location() #12
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1651, ptr noundef @.str.2, i32 noundef %1652, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1655, ptr noundef %1658, ptr noundef %1661, i32 noundef %1663) #11
  br label %1682

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

1682:                                             ; preds = %1665, %1648
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

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

1685:                                             ; No predecessors!
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

1687:                                             ; preds = %1686, %1626
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = add nsw i32 %1691, 1
  store i32 %1692, ptr @test_count, align 4, !tbaa !5
  %1693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = icmp eq i32 %1694, 0
  br i1 %1695, label %1696, label %1749

1696:                                             ; preds = %1690
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1699 = call ptr @__errno_location() #12
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  store i32 %1700, ptr %40, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @s2n_print_stacktrace(ptr noundef %1701)
  %1703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1704 = trunc i8 %1703 to i1
  br i1 %1704, label %1705, label %1727

1705:                                             ; preds = %1698
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = call i32 @fileno(ptr noundef %1706) #11
  %1708 = call i32 @isatty(i32 noundef %1707) #11
  %1709 = icmp ne i32 %1708, 0
  br i1 %1709, label %1710, label %1727

1710:                                             ; preds = %1705
  %1711 = load i32, ptr %40, align 4, !tbaa !5
  %1712 = call ptr @__errno_location() #12
  store i32 %1711, ptr %1712, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror(i32 noundef %1716, ptr noundef @.str.4)
  %1718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror_debug(i32 noundef %1719, ptr noundef @.str.4)
  %1721 = call ptr @__errno_location() #12
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @strerror(i32 noundef %1722) #11
  %1724 = call ptr @__errno_location() #12
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1713, ptr noundef @.str.2, i32 noundef %1714, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1717, ptr noundef %1720, ptr noundef %1723, i32 noundef %1725) #11
  br label %1744

1727:                                             ; preds = %1705, %1698
  %1728 = load i32, ptr %40, align 4, !tbaa !5
  %1729 = call ptr @__errno_location() #12
  store i32 %1728, ptr %1729, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror(i32 noundef %1733, ptr noundef @.str.4)
  %1735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef %1736, ptr noundef @.str.4)
  %1738 = call ptr @__errno_location() #12
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @strerror(i32 noundef %1739) #11
  %1741 = call ptr @__errno_location() #12
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1730, ptr noundef @.str.5, i32 noundef %1731, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1734, ptr noundef %1737, ptr noundef %1740, i32 noundef %1742) #11
  br label %1744

1744:                                             ; preds = %1727, %1710
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

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

1747:                                             ; No predecessors!
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748, %1690
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = add nsw i32 %1753, 1
  store i32 %1754, ptr @test_count, align 4, !tbaa !5
  %1755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror_debug(i32 noundef %1756, ptr noundef @.str.4)
  %1758 = icmp eq ptr %1757, null
  br i1 %1758, label %1759, label %1812

1759:                                             ; preds = %1752
  br label %1760

1760:                                             ; preds = %1759
  br label %1761

1761:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1762 = call ptr @__errno_location() #12
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  store i32 %1763, ptr %41, align 4, !tbaa !5
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = call i32 @s2n_print_stacktrace(ptr noundef %1764)
  %1766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1767 = trunc i8 %1766 to i1
  br i1 %1767, label %1768, label %1790

1768:                                             ; preds = %1761
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = call i32 @fileno(ptr noundef %1769) #11
  %1771 = call i32 @isatty(i32 noundef %1770) #11
  %1772 = icmp ne i32 %1771, 0
  br i1 %1772, label %1773, label %1790

1773:                                             ; preds = %1768
  %1774 = load i32, ptr %41, align 4, !tbaa !5
  %1775 = call ptr @__errno_location() #12
  store i32 %1774, ptr %1775, align 4, !tbaa !5
  %1776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror(i32 noundef %1779, ptr noundef @.str.4)
  %1781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call ptr @s2n_strerror_debug(i32 noundef %1782, ptr noundef @.str.4)
  %1784 = call ptr @__errno_location() #12
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call ptr @strerror(i32 noundef %1785) #11
  %1787 = call ptr @__errno_location() #12
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1776, ptr noundef @.str.2, i32 noundef %1777, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1780, ptr noundef %1783, ptr noundef %1786, i32 noundef %1788) #11
  br label %1807

1790:                                             ; preds = %1768, %1761
  %1791 = load i32, ptr %41, align 4, !tbaa !5
  %1792 = call ptr @__errno_location() #12
  store i32 %1791, ptr %1792, align 4, !tbaa !5
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @s2n_strerror(i32 noundef %1796, ptr noundef @.str.4)
  %1798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror_debug(i32 noundef %1799, ptr noundef @.str.4)
  %1801 = call ptr @__errno_location() #12
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call ptr @strerror(i32 noundef %1802) #11
  %1804 = call ptr @__errno_location() #12
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1793, ptr noundef @.str.5, i32 noundef %1794, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1797, ptr noundef %1800, ptr noundef %1803, i32 noundef %1805) #11
  br label %1807

1807:                                             ; preds = %1790, %1773
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1808

1808:                                             ; preds = %1807
  br label %1809

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

1810:                                             ; No predecessors!
  br label %1811

1811:                                             ; preds = %1810
  br label %1812

1812:                                             ; preds = %1811, %1752
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1816, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1817 = call ptr @__errno_location() #12
  store i32 0, ptr %1817, align 4, !tbaa !5
  br label %1818

1818:                                             ; preds = %1815
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819
  br label %1821

1821:                                             ; preds = %1820
  store i32 0, ptr %12, align 4
  br label %1822

1822:                                             ; preds = %1821, %576
  %1823 = call i32 @s2n_free(ptr noundef %16)
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #11
  br label %1824

1824:                                             ; preds = %1822, %502
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #11
  br label %1825

1825:                                             ; preds = %1824, %490
  call void @llvm.lifetime.end.p0(i64 5, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  %1826 = load i32, ptr %12, align 4
  switch i32 %1826, label %8838 [
    i32 0, label %1827
    i32 1, label %8836
  ]

1827:                                             ; preds = %1825
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store ptr null, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  call void @llvm.memset.p0.i64(ptr align 8 %43, i8 0, i64 8, i1 false)
  br label %1828

1828:                                             ; preds = %1827
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = add nsw i32 %1829, 1
  store i32 %1830, ptr @test_count, align 4, !tbaa !5
  %1831 = call i32 @s2n_session_key_alloc(ptr noundef %43)
  %1832 = icmp eq i32 %1831, -1
  br i1 %1832, label %1833, label %1886

1833:                                             ; preds = %1828
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1836 = call ptr @__errno_location() #12
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  store i32 %1837, ptr %44, 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 %44, 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.23, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1854, ptr noundef %1857, ptr noundef %1860, i32 noundef %1862) #11
  br label %1881

1864:                                             ; preds = %1842, %1835
  %1865 = load i32, ptr %44, 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.23, ptr noundef @.str.1, i32 noundef 132, 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 %44) #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, %1828
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %45, align 8, !tbaa !9
  br label %1889

1889:                                             ; preds = %1888
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = add nsw i32 %1890, 1
  store i32 %1891, ptr @test_count, align 4, !tbaa !5
  %1892 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1892, ptr %42, align 8, !tbaa !9
  %1893 = icmp eq ptr %1892, null
  br i1 %1893, label %1894, label %1947

1894:                                             ; preds = %1889
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

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

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

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

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

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

1943:                                             ; preds = %1942
  br label %1944

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

1945:                                             ; No predecessors!
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

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

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948
  %1950 = load ptr, ptr %42, align 8, !tbaa !9
  %1951 = getelementptr inbounds %struct.s2n_connection, ptr %1950, i32 0, i32 23
  store i8 34, ptr %1951, align 4, !tbaa !23
  br label %1952

1952:                                             ; preds = %1949
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = add nsw i32 %1953, 1
  store i32 %1954, ptr @test_count, align 4, !tbaa !5
  %1955 = load ptr, ptr %45, align 8, !tbaa !9
  %1956 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1955, i32 0, i32 6
  %1957 = load ptr, ptr %1956, align 8, !tbaa !48
  %1958 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1957, i32 0, i32 0
  %1959 = load ptr, ptr %1958, align 8, !tbaa !50
  %1960 = getelementptr inbounds %struct.s2n_cipher, ptr %1959, i32 0, i32 4
  %1961 = load ptr, ptr %1960, align 8, !tbaa !52
  %1962 = call i32 %1961(ptr noundef %43)
  %1963 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  store i32 %1962, ptr %1963, align 4
  %1964 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  %1965 = load i32, ptr %1964, align 4
  %1966 = call zeroext i1 @s2n_result_is_ok(i32 %1965)
  br i1 %1966, label %2020, label %1967

1967:                                             ; preds = %1952
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1970 = call ptr @__errno_location() #12
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  store i32 %1971, ptr %48, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = call i32 @s2n_print_stacktrace(ptr noundef %1972)
  %1974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1975 = trunc i8 %1974 to i1
  br i1 %1975, label %1976, label %1998

1976:                                             ; preds = %1969
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @fileno(ptr noundef %1977) #11
  %1979 = call i32 @isatty(i32 noundef %1978) #11
  %1980 = icmp ne i32 %1979, 0
  br i1 %1980, label %1981, label %1998

1981:                                             ; preds = %1976
  %1982 = load i32, ptr %48, align 4, !tbaa !5
  %1983 = call ptr @__errno_location() #12
  store i32 %1982, ptr %1983, align 4, !tbaa !5
  %1984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1985 = load i32, ptr @test_count, align 4, !tbaa !5
  %1986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  %1988 = call ptr @s2n_strerror(i32 noundef %1987, ptr noundef @.str.4)
  %1989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror_debug(i32 noundef %1990, ptr noundef @.str.4)
  %1992 = call ptr @__errno_location() #12
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @strerror(i32 noundef %1993) #11
  %1995 = call ptr @__errno_location() #12
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1984, ptr noundef @.str.2, i32 noundef %1985, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1988, ptr noundef %1991, ptr noundef %1994, i32 noundef %1996) #11
  br label %2015

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

2015:                                             ; preds = %1998, %1981
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2016

2016:                                             ; preds = %2015
  br label %2017

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

2018:                                             ; No predecessors!
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019, %1952
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

2022:                                             ; preds = %2021
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #11
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 24, i1 false)
  br label %2023

2023:                                             ; preds = %2022
  %2024 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %49, ptr noundef @.str.26)
  %2025 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %2024, ptr %2025, align 4
  %2026 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %2027 = load i32, ptr %2026, align 4
  %2028 = call zeroext i1 @s2n_result_is_ok(i32 %2027)
  br i1 %2028, label %2030, label %2029

2029:                                             ; preds = %2023
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4309

2030:                                             ; preds = %2023
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

2033:                                             ; preds = %2032
  %2034 = load i32, ptr @test_count, align 4, !tbaa !5
  %2035 = add nsw i32 %2034, 1
  store i32 %2035, ptr @test_count, align 4, !tbaa !5
  %2036 = load ptr, ptr %45, align 8, !tbaa !9
  %2037 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2036, i32 0, i32 6
  %2038 = load ptr, ptr %2037, align 8, !tbaa !48
  %2039 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2038, i32 0, i32 0
  %2040 = load ptr, ptr %2039, align 8, !tbaa !50
  %2041 = getelementptr inbounds %struct.s2n_cipher, ptr %2040, i32 0, i32 5
  %2042 = load ptr, ptr %2041, align 8, !tbaa !54
  %2043 = call i32 %2042(ptr noundef %43, ptr noundef %49)
  %2044 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %2043, ptr %2044, align 4
  %2045 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  %2046 = load i32, ptr %2045, align 4
  %2047 = call zeroext i1 @s2n_result_is_ok(i32 %2046)
  br i1 %2047, label %2101, label %2048

2048:                                             ; preds = %2033
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

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

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

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

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

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

2097:                                             ; preds = %2096
  br label %2098

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

2099:                                             ; No predecessors!
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

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

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #11
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 24, i1 false)
  br label %2104

2104:                                             ; preds = %2103
  %2105 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %53, ptr noundef @protected_record_hex)
  %2106 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %2105, ptr %2106, align 4
  %2107 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  %2108 = load i32, ptr %2107, align 4
  %2109 = call zeroext i1 @s2n_result_is_ok(i32 %2108)
  br i1 %2109, label %2111, label %2110

2110:                                             ; preds = %2104
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4307

2111:                                             ; preds = %2104
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113
  %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 = load ptr, ptr %42, align 8, !tbaa !9
  %2118 = getelementptr inbounds %struct.s2n_connection, ptr %2117, i32 0, i32 40
  %2119 = call i32 @s2n_stuffer_write(ptr noundef %2118, ptr noundef %53)
  %2120 = icmp eq i32 %2119, -1
  br i1 %2120, label %2121, label %2174

2121:                                             ; preds = %2114
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

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

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

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

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

2169:                                             ; preds = %2152, %2135
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

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

2172:                                             ; No predecessors!
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173, %2114
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  call void @llvm.lifetime.start.p0(i64 24, ptr %56) #11
  call void @llvm.memset.p0.i64(ptr align 8 %56, i8 0, i64 24, i1 false)
  br label %2177

2177:                                             ; preds = %2176
  %2178 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %56, ptr noundef @.str.29)
  %2179 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %2178, ptr %2179, align 4
  %2180 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %2181 = load i32, ptr %2180, align 4
  %2182 = call zeroext i1 @s2n_result_is_ok(i32 %2181)
  br i1 %2182, label %2184, label %2183

2183:                                             ; preds = %2177
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4305

2184:                                             ; preds = %2177
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = add nsw i32 %2188, 1
  store i32 %2189, ptr @test_count, align 4, !tbaa !5
  %2190 = load ptr, ptr %45, align 8, !tbaa !9
  %2191 = load ptr, ptr %42, align 8, !tbaa !9
  %2192 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %2193 = load i32, ptr %2192, align 8, !tbaa !20
  %2194 = trunc i32 %2193 to i16
  %2195 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %2196 = load ptr, ptr %2195, align 8, !tbaa !22
  %2197 = load ptr, ptr %42, align 8, !tbaa !9
  %2198 = getelementptr inbounds %struct.s2n_connection, ptr %2197, i32 0, i32 27
  %2199 = load ptr, ptr %2198, align 8, !tbaa !55
  %2200 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2199, i32 0, i32 7
  %2201 = getelementptr inbounds [8 x i8], ptr %2200, i64 0, i64 0
  %2202 = call i32 @s2n_record_parse_aead(ptr noundef %2190, ptr noundef %2191, i8 noundef zeroext 0, i16 noundef zeroext %2194, ptr noundef %2196, ptr noundef null, ptr noundef %2201, ptr noundef %43)
  %2203 = icmp eq i32 %2202, -1
  br i1 %2203, label %2204, label %2257

2204:                                             ; preds = %2187
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

2206:                                             ; preds = %2205
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2207 = call ptr @__errno_location() #12
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  store i32 %2208, ptr %58, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = call i32 @s2n_print_stacktrace(ptr noundef %2209)
  %2211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2212 = trunc i8 %2211 to i1
  br i1 %2212, label %2213, label %2235

2213:                                             ; preds = %2206
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @fileno(ptr noundef %2214) #11
  %2216 = call i32 @isatty(i32 noundef %2215) #11
  %2217 = icmp ne i32 %2216, 0
  br i1 %2217, label %2218, label %2235

2218:                                             ; preds = %2213
  %2219 = load i32, ptr %58, align 4, !tbaa !5
  %2220 = call ptr @__errno_location() #12
  store i32 %2219, ptr %2220, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror(i32 noundef %2224, ptr noundef @.str.4)
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror_debug(i32 noundef %2227, ptr noundef @.str.4)
  %2229 = call ptr @__errno_location() #12
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @strerror(i32 noundef %2230) #11
  %2232 = call ptr @__errno_location() #12
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2221, ptr noundef @.str.2, i32 noundef %2222, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2225, ptr noundef %2228, ptr noundef %2231, i32 noundef %2233) #11
  br label %2252

2235:                                             ; preds = %2213, %2206
  %2236 = load i32, ptr %58, align 4, !tbaa !5
  %2237 = call ptr @__errno_location() #12
  store i32 %2236, ptr %2237, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef @.str.4)
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror_debug(i32 noundef %2244, ptr noundef @.str.4)
  %2246 = call ptr @__errno_location() #12
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @strerror(i32 noundef %2247) #11
  %2249 = call ptr @__errno_location() #12
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2238, ptr noundef @.str.5, i32 noundef %2239, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2242, ptr noundef %2245, ptr noundef %2248, i32 noundef %2250) #11
  br label %2252

2252:                                             ; preds = %2235, %2218
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

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

2255:                                             ; No predecessors!
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256, %2187
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #11
  call void @llvm.memset.p0.i64(ptr align 8 %59, i8 0, i64 24, i1 false)
  br label %2260

2260:                                             ; preds = %2259
  %2261 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %59, ptr noundef @plaintext_record_hex)
  %2262 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2261, ptr %2262, align 4
  %2263 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2264 = load i32, ptr %2263, align 4
  %2265 = call zeroext i1 @s2n_result_is_ok(i32 %2264)
  br i1 %2265, label %2267, label %2266

2266:                                             ; preds = %2260
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4303

2267:                                             ; preds = %2260
  br label %2268

2268:                                             ; preds = %2267
  br label %2269

2269:                                             ; preds = %2268
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %2270 = getelementptr inbounds %struct.s2n_blob, ptr %59, i32 0, i32 1
  %2271 = load i32, ptr %2270, align 8, !tbaa !20
  %2272 = zext i32 %2271 to i64
  store i64 %2272, ptr %61, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1000, ptr %62) #11
  call void @llvm.memset.p0.i64(ptr align 16 %62, i8 0, i64 1000, i1 false)
  br label %2273

2273:                                             ; preds = %2269
  %2274 = load i64, ptr %61, align 8, !tbaa !15
  %2275 = icmp ule i64 %2274, 1000
  br i1 %2275, label %2309, label %2276

2276:                                             ; preds = %2273
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

2278:                                             ; preds = %2277
  %2279 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2280 = getelementptr inbounds %struct.s2n_debug_info, ptr %2279, i32 0, i32 0
  store ptr @.str.31, ptr %2280, align 8, !tbaa !17
  %2281 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2282 = getelementptr inbounds %struct.s2n_debug_info, ptr %2281, i32 0, i32 0
  %2283 = load ptr, ptr %2282, align 8, !tbaa !17
  %2284 = getelementptr inbounds i8, ptr %2283, i64 21
  %2285 = call ptr @strrchr(ptr noundef %2284, i32 noundef 47) #14
  %2286 = icmp ne ptr %2285, null
  br i1 %2286, label %2287, label %2294

2287:                                             ; preds = %2278
  %2288 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2289 = getelementptr inbounds %struct.s2n_debug_info, ptr %2288, i32 0, i32 0
  %2290 = load ptr, ptr %2289, align 8, !tbaa !17
  %2291 = getelementptr inbounds i8, ptr %2290, i64 21
  %2292 = call ptr @strrchr(ptr noundef %2291, i32 noundef 47) #14
  %2293 = getelementptr inbounds i8, ptr %2292, i64 1
  br label %2299

2294:                                             ; preds = %2278
  %2295 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2296 = getelementptr inbounds %struct.s2n_debug_info, ptr %2295, i32 0, i32 0
  %2297 = load ptr, ptr %2296, align 8, !tbaa !17
  %2298 = getelementptr inbounds i8, ptr %2297, i64 21
  br label %2299

2299:                                             ; preds = %2294, %2287
  %2300 = phi ptr [ %2293, %2287 ], [ %2298, %2294 ]
  %2301 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2302 = getelementptr inbounds %struct.s2n_debug_info, ptr %2301, i32 0, i32 1
  store ptr %2300, ptr %2302, align 8, !tbaa !19
  %2303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %2303, align 4, !tbaa !5
  %2304 = call i32 @s2n_calculate_stacktrace()
  br label %2305

2305:                                             ; preds = %2299
  br label %2306

2306:                                             ; preds = %2305
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4302

2307:                                             ; No predecessors!
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308, %2273
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 24, ptr %63) #11
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 24, i1 false)
  br label %2312

2312:                                             ; preds = %2311
  %2313 = getelementptr inbounds [1000 x i8], ptr %62, i64 0, i64 0
  %2314 = load i64, ptr %61, align 8, !tbaa !15
  %2315 = trunc i64 %2314 to i32
  %2316 = call i32 @s2n_blob_init(ptr noundef %63, ptr noundef %2313, i32 noundef %2315)
  %2317 = icmp sgt i32 %2316, -1
  br i1 %2317, label %2319, label %2318

2318:                                             ; preds = %2312
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4301

2319:                                             ; preds = %2312
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 40, ptr %64) #11
  call void @llvm.memset.p0.i64(ptr align 8 %64, i8 0, i64 40, i1 false)
  br label %2322

2322:                                             ; preds = %2321
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = call i32 @s2n_stuffer_init(ptr noundef %64, ptr noundef %63)
  %2326 = icmp eq i32 %2325, -1
  br i1 %2326, label %2327, label %2380

2327:                                             ; preds = %2322
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

2329:                                             ; preds = %2328
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %2330 = call ptr @__errno_location() #12
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  store i32 %2331, ptr %65, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @s2n_print_stacktrace(ptr noundef %2332)
  %2334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc i8 %2334 to i1
  br i1 %2335, label %2336, label %2358

2336:                                             ; preds = %2329
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #11
  %2339 = call i32 @isatty(i32 noundef %2338) #11
  %2340 = icmp ne i32 %2339, 0
  br i1 %2340, label %2341, label %2358

2341:                                             ; preds = %2336
  %2342 = load i32, ptr %65, align 4, !tbaa !5
  %2343 = call ptr @__errno_location() #12
  store i32 %2342, ptr %2343, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef @.str.4)
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef @.str.4)
  %2352 = call ptr @__errno_location() #12
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #11
  %2355 = call ptr @__errno_location() #12
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef @.str.2, i32 noundef %2345, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2348, ptr noundef %2351, ptr noundef %2354, i32 noundef %2356) #11
  br label %2375

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

2375:                                             ; preds = %2358, %2341
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

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

2378:                                             ; No predecessors!
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379, %2322
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = add nsw i32 %2384, 1
  store i32 %2385, ptr @test_count, align 4, !tbaa !5
  %2386 = load ptr, ptr %42, align 8, !tbaa !9
  %2387 = getelementptr inbounds %struct.s2n_connection, ptr %2386, i32 0, i32 40
  %2388 = getelementptr inbounds %struct.s2n_stuffer, ptr %2387, i32 0, i32 0
  %2389 = getelementptr inbounds %struct.s2n_blob, ptr %2388, i32 0, i32 0
  %2390 = load ptr, ptr %2389, align 8, !tbaa !56
  %2391 = getelementptr inbounds %struct.s2n_blob, ptr %59, i32 0, i32 1
  %2392 = load i32, ptr %2391, align 8, !tbaa !20
  %2393 = call i32 @s2n_stuffer_write_bytes(ptr noundef %64, ptr noundef %2390, i32 noundef %2392)
  %2394 = icmp eq i32 %2393, -1
  br i1 %2394, label %2395, label %2448

2395:                                             ; preds = %2383
  br label %2396

2396:                                             ; preds = %2395
  br label %2397

2397:                                             ; preds = %2396
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2398 = call ptr @__errno_location() #12
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  store i32 %2399, ptr %66, align 4, !tbaa !5
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @s2n_print_stacktrace(ptr noundef %2400)
  %2402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2403 = trunc i8 %2402 to i1
  br i1 %2403, label %2404, label %2426

2404:                                             ; preds = %2397
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = call i32 @fileno(ptr noundef %2405) #11
  %2407 = call i32 @isatty(i32 noundef %2406) #11
  %2408 = icmp ne i32 %2407, 0
  br i1 %2408, label %2409, label %2426

2409:                                             ; preds = %2404
  %2410 = load i32, ptr %66, align 4, !tbaa !5
  %2411 = call ptr @__errno_location() #12
  store i32 %2410, ptr %2411, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = load i32, ptr @test_count, align 4, !tbaa !5
  %2414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @s2n_strerror(i32 noundef %2415, ptr noundef @.str.4)
  %2417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror_debug(i32 noundef %2418, ptr noundef @.str.4)
  %2420 = call ptr @__errno_location() #12
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @strerror(i32 noundef %2421) #11
  %2423 = call ptr @__errno_location() #12
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2412, ptr noundef @.str.2, i32 noundef %2413, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2416, ptr noundef %2419, ptr noundef %2422, i32 noundef %2424) #11
  br label %2443

2426:                                             ; preds = %2404, %2397
  %2427 = load i32, ptr %66, align 4, !tbaa !5
  %2428 = call ptr @__errno_location() #12
  store i32 %2427, ptr %2428, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror(i32 noundef %2432, ptr noundef @.str.4)
  %2434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror_debug(i32 noundef %2435, ptr noundef @.str.4)
  %2437 = call ptr @__errno_location() #12
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call ptr @strerror(i32 noundef %2438) #11
  %2440 = call ptr @__errno_location() #12
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2429, ptr noundef @.str.5, i32 noundef %2430, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2433, ptr noundef %2436, ptr noundef %2439, i32 noundef %2441) #11
  br label %2443

2443:                                             ; preds = %2426, %2409
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

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

2446:                                             ; No predecessors!
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447, %2383
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450
  br label %2452

2452:                                             ; preds = %2451
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = add nsw i32 %2453, 1
  store i32 %2454, ptr @test_count, align 4, !tbaa !5
  %2455 = getelementptr inbounds %struct.s2n_blob, ptr %59, i32 0, i32 1
  %2456 = load i32, ptr %2455, align 8, !tbaa !20
  %2457 = getelementptr inbounds %struct.s2n_stuffer, ptr %64, i32 0, i32 0
  %2458 = getelementptr inbounds %struct.s2n_blob, ptr %2457, i32 0, i32 1
  %2459 = load i32, ptr %2458, align 8, !tbaa !57
  %2460 = icmp eq i32 %2456, %2459
  br i1 %2460, label %2514, label %2461

2461:                                             ; preds = %2452
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

2463:                                             ; preds = %2462
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2464 = call ptr @__errno_location() #12
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  store i32 %2465, ptr %67, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @s2n_print_stacktrace(ptr noundef %2466)
  %2468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2469 = trunc i8 %2468 to i1
  br i1 %2469, label %2470, label %2492

2470:                                             ; preds = %2463
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @fileno(ptr noundef %2471) #11
  %2473 = call i32 @isatty(i32 noundef %2472) #11
  %2474 = icmp ne i32 %2473, 0
  br i1 %2474, label %2475, label %2492

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

2492:                                             ; preds = %2470, %2463
  %2493 = load i32, ptr %67, align 4, !tbaa !5
  %2494 = call ptr @__errno_location() #12
  store i32 %2493, ptr %2494, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror(i32 noundef %2498, ptr noundef @.str.4)
  %2500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = call ptr @s2n_strerror_debug(i32 noundef %2501, ptr noundef @.str.4)
  %2503 = call ptr @__errno_location() #12
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = call ptr @strerror(i32 noundef %2504) #11
  %2506 = call ptr @__errno_location() #12
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2495, ptr noundef @.str.5, i32 noundef %2496, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2499, ptr noundef %2502, ptr noundef %2505, i32 noundef %2507) #11
  br label %2509

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

2510:                                             ; preds = %2509
  br label %2511

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

2512:                                             ; No predecessors!
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513, %2452
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  %2518 = getelementptr inbounds %struct.s2n_blob, ptr %59, i32 0, i32 1
  %2519 = load i32, ptr %2518, align 8, !tbaa !20
  %2520 = icmp ne i32 %2519, 0
  br i1 %2520, label %2521, label %2591

2521:                                             ; preds = %2517
  br label %2522

2522:                                             ; preds = %2521
  %2523 = load i32, ptr @test_count, align 4, !tbaa !5
  %2524 = add nsw i32 %2523, 1
  store i32 %2524, ptr @test_count, align 4, !tbaa !5
  %2525 = getelementptr inbounds %struct.s2n_blob, ptr %59, i32 0, i32 0
  %2526 = load ptr, ptr %2525, align 8, !tbaa !22
  %2527 = getelementptr inbounds %struct.s2n_stuffer, ptr %64, i32 0, i32 0
  %2528 = getelementptr inbounds %struct.s2n_blob, ptr %2527, i32 0, i32 0
  %2529 = load ptr, ptr %2528, align 8, !tbaa !58
  %2530 = getelementptr inbounds %struct.s2n_blob, ptr %59, i32 0, i32 1
  %2531 = load i32, ptr %2530, align 8, !tbaa !20
  %2532 = zext i32 %2531 to i64
  %2533 = call i32 @memcmp(ptr noundef %2526, ptr noundef %2529, i64 noundef %2532) #14
  %2534 = icmp eq i32 %2533, 0
  br i1 %2534, label %2588, label %2535

2535:                                             ; preds = %2522
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

2537:                                             ; preds = %2536
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2538 = call ptr @__errno_location() #12
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  store i32 %2539, ptr %68, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = call i32 @s2n_print_stacktrace(ptr noundef %2540)
  %2542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2543 = trunc i8 %2542 to i1
  br i1 %2543, label %2544, label %2566

2544:                                             ; preds = %2537
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = call i32 @fileno(ptr noundef %2545) #11
  %2547 = call i32 @isatty(i32 noundef %2546) #11
  %2548 = icmp ne i32 %2547, 0
  br i1 %2548, label %2549, label %2566

2549:                                             ; preds = %2544
  %2550 = load i32, ptr %68, align 4, !tbaa !5
  %2551 = call ptr @__errno_location() #12
  store i32 %2550, ptr %2551, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @s2n_strerror(i32 noundef %2555, ptr noundef @.str.4)
  %2557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef @.str.4)
  %2560 = call ptr @__errno_location() #12
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #11
  %2563 = call ptr @__errno_location() #12
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2552, ptr noundef @.str.2, i32 noundef %2553, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2556, ptr noundef %2559, ptr noundef %2562, i32 noundef %2564) #11
  br label %2583

2566:                                             ; preds = %2544, %2537
  %2567 = load i32, ptr %68, align 4, !tbaa !5
  %2568 = call ptr @__errno_location() #12
  store i32 %2567, ptr %2568, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror(i32 noundef %2572, ptr noundef @.str.4)
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef @.str.4)
  %2577 = call ptr @__errno_location() #12
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @strerror(i32 noundef %2578) #11
  %2580 = call ptr @__errno_location() #12
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2569, ptr noundef @.str.5, i32 noundef %2570, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2573, ptr noundef %2576, ptr noundef %2579, i32 noundef %2581) #11
  br label %2583

2583:                                             ; preds = %2566, %2549
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

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

2586:                                             ; No predecessors!
  br label %2587

2587:                                             ; preds = %2586
  br label %2588

2588:                                             ; preds = %2587, %2522
  br label %2589

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590, %2517
  br label %2592

2592:                                             ; preds = %2591
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

2594:                                             ; preds = %2593
  br label %2595

2595:                                             ; preds = %2594
  br label %2596

2596:                                             ; preds = %2595
  %2597 = load i32, ptr @test_count, align 4, !tbaa !5
  %2598 = add nsw i32 %2597, 1
  store i32 %2598, ptr @test_count, align 4, !tbaa !5
  %2599 = load ptr, ptr %42, align 8, !tbaa !9
  %2600 = getelementptr inbounds %struct.s2n_connection, ptr %2599, i32 0, i32 40
  %2601 = call i32 @s2n_stuffer_wipe(ptr noundef %2600)
  %2602 = icmp eq i32 %2601, -1
  br i1 %2602, label %2603, label %2656

2603:                                             ; preds = %2596
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2606 = call ptr @__errno_location() #12
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  store i32 %2607, ptr %69, align 4, !tbaa !5
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @s2n_print_stacktrace(ptr noundef %2608)
  %2610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2611 = trunc i8 %2610 to i1
  br i1 %2611, label %2612, label %2634

2612:                                             ; preds = %2605
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = call i32 @fileno(ptr noundef %2613) #11
  %2615 = call i32 @isatty(i32 noundef %2614) #11
  %2616 = icmp ne i32 %2615, 0
  br i1 %2616, label %2617, label %2634

2617:                                             ; preds = %2612
  %2618 = load i32, ptr %69, align 4, !tbaa !5
  %2619 = call ptr @__errno_location() #12
  store i32 %2618, ptr %2619, align 4, !tbaa !5
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = load i32, ptr @test_count, align 4, !tbaa !5
  %2622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror(i32 noundef %2623, ptr noundef @.str.4)
  %2625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror_debug(i32 noundef %2626, ptr noundef @.str.4)
  %2628 = call ptr @__errno_location() #12
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @strerror(i32 noundef %2629) #11
  %2631 = call ptr @__errno_location() #12
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2620, ptr noundef @.str.2, i32 noundef %2621, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2624, ptr noundef %2627, ptr noundef %2630, i32 noundef %2632) #11
  br label %2651

2634:                                             ; preds = %2612, %2605
  %2635 = load i32, ptr %69, align 4, !tbaa !5
  %2636 = call ptr @__errno_location() #12
  store i32 %2635, ptr %2636, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror(i32 noundef %2640, ptr noundef @.str.4)
  %2642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror_debug(i32 noundef %2643, ptr noundef @.str.4)
  %2645 = call ptr @__errno_location() #12
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @strerror(i32 noundef %2646) #11
  %2648 = call ptr @__errno_location() #12
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2637, ptr noundef @.str.5, i32 noundef %2638, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2641, ptr noundef %2644, ptr noundef %2647, i32 noundef %2649) #11
  br label %2651

2651:                                             ; preds = %2634, %2617
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

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

2654:                                             ; No predecessors!
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655, %2596
  br label %2657

2657:                                             ; preds = %2656
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

2659:                                             ; preds = %2658
  %2660 = load i32, ptr @test_count, align 4, !tbaa !5
  %2661 = add nsw i32 %2660, 1
  store i32 %2661, ptr @test_count, align 4, !tbaa !5
  %2662 = load ptr, ptr %42, align 8, !tbaa !9
  %2663 = getelementptr inbounds %struct.s2n_connection, ptr %2662, i32 0, i32 40
  %2664 = call i32 @s2n_stuffer_write(ptr noundef %2663, ptr noundef %53)
  %2665 = icmp eq i32 %2664, -1
  br i1 %2665, label %2666, label %2719

2666:                                             ; preds = %2659
  br label %2667

2667:                                             ; preds = %2666
  br label %2668

2668:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2669 = call ptr @__errno_location() #12
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  store i32 %2670, ptr %70, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @s2n_print_stacktrace(ptr noundef %2671)
  %2673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2674 = trunc i8 %2673 to i1
  br i1 %2674, label %2675, label %2697

2675:                                             ; preds = %2668
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @fileno(ptr noundef %2676) #11
  %2678 = call i32 @isatty(i32 noundef %2677) #11
  %2679 = icmp ne i32 %2678, 0
  br i1 %2679, label %2680, label %2697

2680:                                             ; preds = %2675
  %2681 = load i32, ptr %70, align 4, !tbaa !5
  %2682 = call ptr @__errno_location() #12
  store i32 %2681, ptr %2682, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror(i32 noundef %2686, ptr noundef @.str.4)
  %2688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror_debug(i32 noundef %2689, ptr noundef @.str.4)
  %2691 = call ptr @__errno_location() #12
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @strerror(i32 noundef %2692) #11
  %2694 = call ptr @__errno_location() #12
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2683, ptr noundef @.str.2, i32 noundef %2684, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2687, ptr noundef %2690, ptr noundef %2693, i32 noundef %2695) #11
  br label %2714

2697:                                             ; preds = %2675, %2668
  %2698 = load i32, ptr %70, align 4, !tbaa !5
  %2699 = call ptr @__errno_location() #12
  store i32 %2698, ptr %2699, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror(i32 noundef %2703, ptr noundef @.str.4)
  %2705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror_debug(i32 noundef %2706, ptr noundef @.str.4)
  %2708 = call ptr @__errno_location() #12
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call ptr @strerror(i32 noundef %2709) #11
  %2711 = call ptr @__errno_location() #12
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef @.str.5, i32 noundef %2701, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2704, ptr noundef %2707, ptr noundef %2710, i32 noundef %2712) #11
  br label %2714

2714:                                             ; preds = %2697, %2680
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

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

2717:                                             ; No predecessors!
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718, %2659
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

2721:                                             ; preds = %2720
  %2722 = load ptr, ptr %42, align 8, !tbaa !9
  %2723 = getelementptr inbounds %struct.s2n_connection, ptr %2722, i32 0, i32 27
  %2724 = load ptr, ptr %2723, align 8, !tbaa !55
  %2725 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2724, i32 0, i32 7
  %2726 = getelementptr inbounds [8 x i8], ptr %2725, i64 0, i64 7
  store i8 0, ptr %2726, align 1, !tbaa !59
  br label %2727

2727:                                             ; preds = %2721
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = add nsw i32 %2728, 1
  store i32 %2729, ptr @test_count, align 4, !tbaa !5
  %2730 = load ptr, ptr %45, align 8, !tbaa !9
  %2731 = load ptr, ptr %42, align 8, !tbaa !9
  %2732 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %2733 = load i32, ptr %2732, align 8, !tbaa !20
  %2734 = trunc i32 %2733 to i16
  %2735 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %2736 = load ptr, ptr %2735, align 8, !tbaa !22
  %2737 = load ptr, ptr %42, align 8, !tbaa !9
  %2738 = getelementptr inbounds %struct.s2n_connection, ptr %2737, i32 0, i32 27
  %2739 = load ptr, ptr %2738, align 8, !tbaa !55
  %2740 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2739, i32 0, i32 7
  %2741 = getelementptr inbounds [8 x i8], ptr %2740, i64 0, i64 0
  %2742 = call i32 @s2n_record_parse_aead(ptr noundef %2730, ptr noundef %2731, i8 noundef zeroext 0, i16 noundef zeroext %2734, ptr noundef %2736, ptr noundef null, ptr noundef %2741, ptr noundef %43)
  %2743 = icmp eq i32 %2742, -1
  br i1 %2743, label %2744, label %2797

2744:                                             ; preds = %2727
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

2746:                                             ; preds = %2745
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2747 = call ptr @__errno_location() #12
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  store i32 %2748, ptr %71, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @s2n_print_stacktrace(ptr noundef %2749)
  %2751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2752 = trunc i8 %2751 to i1
  br i1 %2752, label %2753, label %2775

2753:                                             ; preds = %2746
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = call i32 @fileno(ptr noundef %2754) #11
  %2756 = call i32 @isatty(i32 noundef %2755) #11
  %2757 = icmp ne i32 %2756, 0
  br i1 %2757, label %2758, label %2775

2758:                                             ; preds = %2753
  %2759 = load i32, ptr %71, align 4, !tbaa !5
  %2760 = call ptr @__errno_location() #12
  store i32 %2759, ptr %2760, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @s2n_strerror(i32 noundef %2764, ptr noundef @.str.4)
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror_debug(i32 noundef %2767, ptr noundef @.str.4)
  %2769 = call ptr @__errno_location() #12
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @strerror(i32 noundef %2770) #11
  %2772 = call ptr @__errno_location() #12
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2761, ptr noundef @.str.2, i32 noundef %2762, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 182, ptr noundef %2765, ptr noundef %2768, ptr noundef %2771, i32 noundef %2773) #11
  br label %2792

2775:                                             ; preds = %2753, %2746
  %2776 = load i32, ptr %71, align 4, !tbaa !5
  %2777 = call ptr @__errno_location() #12
  store i32 %2776, ptr %2777, align 4, !tbaa !5
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %2780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call ptr @s2n_strerror(i32 noundef %2781, ptr noundef @.str.4)
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror_debug(i32 noundef %2784, ptr noundef @.str.4)
  %2786 = call ptr @__errno_location() #12
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @strerror(i32 noundef %2787) #11
  %2789 = call ptr @__errno_location() #12
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2778, ptr noundef @.str.5, i32 noundef %2779, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 182, ptr noundef %2782, ptr noundef %2785, ptr noundef %2788, i32 noundef %2790) #11
  br label %2792

2792:                                             ; preds = %2775, %2758
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

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

2795:                                             ; No predecessors!
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796, %2727
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = add nsw i32 %2801, 1
  store i32 %2802, ptr @test_count, align 4, !tbaa !5
  %2803 = load ptr, ptr %42, align 8, !tbaa !9
  %2804 = getelementptr inbounds %struct.s2n_connection, ptr %2803, i32 0, i32 40
  %2805 = call i32 @s2n_stuffer_wipe(ptr noundef %2804)
  %2806 = icmp eq i32 %2805, -1
  br i1 %2806, label %2807, label %2860

2807:                                             ; preds = %2800
  br label %2808

2808:                                             ; preds = %2807
  br label %2809

2809:                                             ; preds = %2808
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %2810 = call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  store i32 %2811, ptr %72, align 4, !tbaa !5
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @s2n_print_stacktrace(ptr noundef %2812)
  %2814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2815 = trunc i8 %2814 to i1
  br i1 %2815, label %2816, label %2838

2816:                                             ; preds = %2809
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = call i32 @fileno(ptr noundef %2817) #11
  %2819 = call i32 @isatty(i32 noundef %2818) #11
  %2820 = icmp ne i32 %2819, 0
  br i1 %2820, label %2821, label %2838

2821:                                             ; preds = %2816
  %2822 = load i32, ptr %72, align 4, !tbaa !5
  %2823 = call ptr @__errno_location() #12
  store i32 %2822, ptr %2823, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror(i32 noundef %2827, ptr noundef @.str.4)
  %2829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror_debug(i32 noundef %2830, ptr noundef @.str.4)
  %2832 = call ptr @__errno_location() #12
  %2833 = load i32, ptr %2832, align 4, !tbaa !5
  %2834 = call ptr @strerror(i32 noundef %2833) #11
  %2835 = call ptr @__errno_location() #12
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef @.str.2, i32 noundef %2825, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2828, ptr noundef %2831, ptr noundef %2834, i32 noundef %2836) #11
  br label %2855

2838:                                             ; preds = %2816, %2809
  %2839 = load i32, ptr %72, align 4, !tbaa !5
  %2840 = call ptr @__errno_location() #12
  store i32 %2839, ptr %2840, align 4, !tbaa !5
  %2841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2842 = load i32, ptr @test_count, align 4, !tbaa !5
  %2843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call ptr @s2n_strerror(i32 noundef %2844, ptr noundef @.str.4)
  %2846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call ptr @s2n_strerror_debug(i32 noundef %2847, ptr noundef @.str.4)
  %2849 = call ptr @__errno_location() #12
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call ptr @strerror(i32 noundef %2850) #11
  %2852 = call ptr @__errno_location() #12
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2841, ptr noundef @.str.5, i32 noundef %2842, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2845, ptr noundef %2848, ptr noundef %2851, i32 noundef %2853) #11
  br label %2855

2855:                                             ; preds = %2838, %2821
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2856

2856:                                             ; preds = %2855
  br label %2857

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

2858:                                             ; No predecessors!
  br label %2859

2859:                                             ; preds = %2858
  br label %2860

2860:                                             ; preds = %2859, %2800
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

2863:                                             ; preds = %2862
  %2864 = load i32, ptr @test_count, align 4, !tbaa !5
  %2865 = add nsw i32 %2864, 1
  store i32 %2865, ptr @test_count, align 4, !tbaa !5
  %2866 = load ptr, ptr %42, align 8, !tbaa !9
  %2867 = getelementptr inbounds %struct.s2n_connection, ptr %2866, i32 0, i32 40
  %2868 = call i32 @s2n_stuffer_write(ptr noundef %2867, ptr noundef %53)
  %2869 = icmp eq i32 %2868, -1
  br i1 %2869, label %2870, label %2923

2870:                                             ; preds = %2863
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

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

2879:                                             ; preds = %2872
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @fileno(ptr noundef %2880) #11
  %2882 = call i32 @isatty(i32 noundef %2881) #11
  %2883 = icmp ne i32 %2882, 0
  br i1 %2883, label %2884, label %2901

2884:                                             ; preds = %2879
  %2885 = load i32, ptr %73, align 4, !tbaa !5
  %2886 = call ptr @__errno_location() #12
  store i32 %2885, ptr %2886, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef @.str.4)
  %2892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef @.str.4)
  %2895 = call ptr @__errno_location() #12
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #11
  %2898 = call ptr @__errno_location() #12
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2887, ptr noundef @.str.2, i32 noundef %2888, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2891, ptr noundef %2894, ptr noundef %2897, i32 noundef %2899) #11
  br label %2918

2901:                                             ; preds = %2879, %2872
  %2902 = load i32, ptr %73, align 4, !tbaa !5
  %2903 = call ptr @__errno_location() #12
  store i32 %2902, ptr %2903, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = load i32, ptr @test_count, align 4, !tbaa !5
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror(i32 noundef %2907, ptr noundef @.str.4)
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror_debug(i32 noundef %2910, ptr noundef @.str.4)
  %2912 = call ptr @__errno_location() #12
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @strerror(i32 noundef %2913) #11
  %2915 = call ptr @__errno_location() #12
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2904, ptr noundef @.str.5, i32 noundef %2905, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2908, ptr noundef %2911, ptr noundef %2914, i32 noundef %2916) #11
  br label %2918

2918:                                             ; preds = %2901, %2884
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

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

2921:                                             ; No predecessors!
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922, %2863
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

2925:                                             ; preds = %2924
  %2926 = load ptr, ptr %42, align 8, !tbaa !9
  %2927 = getelementptr inbounds %struct.s2n_connection, ptr %2926, i32 0, i32 27
  %2928 = load ptr, ptr %2927, align 8, !tbaa !55
  %2929 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2928, i32 0, i32 7
  %2930 = getelementptr inbounds [8 x i8], ptr %2929, i64 0, i64 7
  store i8 0, ptr %2930, align 1, !tbaa !59
  %2931 = load ptr, ptr %42, align 8, !tbaa !9
  %2932 = getelementptr inbounds %struct.s2n_connection, ptr %2931, i32 0, i32 40
  %2933 = getelementptr inbounds %struct.s2n_stuffer, ptr %2932, i32 0, i32 0
  %2934 = getelementptr inbounds %struct.s2n_blob, ptr %2933, i32 0, i32 0
  %2935 = load ptr, ptr %2934, align 8, !tbaa !56
  %2936 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %2937 = load i32, ptr %2936, align 8, !tbaa !20
  %2938 = sub i32 %2937, 2
  %2939 = zext i32 %2938 to i64
  %2940 = getelementptr inbounds i8, ptr %2935, i64 %2939
  %2941 = load i8, ptr %2940, align 1, !tbaa !59
  %2942 = add i8 %2941, 1
  store i8 %2942, ptr %2940, align 1, !tbaa !59
  br label %2943

2943:                                             ; preds = %2925
  br label %2944

2944:                                             ; preds = %2943
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = add nsw i32 %2945, 1
  store i32 %2946, ptr @test_count, align 4, !tbaa !5
  %2947 = load ptr, ptr %45, align 8, !tbaa !9
  %2948 = load ptr, ptr %42, align 8, !tbaa !9
  %2949 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %2950 = load i32, ptr %2949, align 8, !tbaa !20
  %2951 = trunc i32 %2950 to i16
  %2952 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %2953 = load ptr, ptr %2952, align 8, !tbaa !22
  %2954 = load ptr, ptr %42, align 8, !tbaa !9
  %2955 = getelementptr inbounds %struct.s2n_connection, ptr %2954, i32 0, i32 27
  %2956 = load ptr, ptr %2955, align 8, !tbaa !55
  %2957 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2956, i32 0, i32 7
  %2958 = getelementptr inbounds [8 x i8], ptr %2957, i64 0, i64 0
  %2959 = call i32 @s2n_record_parse_aead(ptr noundef %2947, ptr noundef %2948, i8 noundef zeroext 0, i16 noundef zeroext %2951, ptr noundef %2953, ptr noundef null, ptr noundef %2958, ptr noundef %43)
  %2960 = icmp eq i32 %2959, -1
  br i1 %2960, label %3014, label %2961

2961:                                             ; preds = %2944
  br label %2962

2962:                                             ; preds = %2961
  br label %2963

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

2970:                                             ; preds = %2963
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = call i32 @fileno(ptr noundef %2971) #11
  %2973 = call i32 @isatty(i32 noundef %2972) #11
  %2974 = icmp ne i32 %2973, 0
  br i1 %2974, label %2975, label %2992

2975:                                             ; preds = %2970
  %2976 = load i32, ptr %74, align 4, !tbaa !5
  %2977 = call ptr @__errno_location() #12
  store i32 %2976, ptr %2977, align 4, !tbaa !5
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = load i32, ptr @test_count, align 4, !tbaa !5
  %2980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror(i32 noundef %2981, ptr noundef @.str.4)
  %2983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror_debug(i32 noundef %2984, ptr noundef @.str.4)
  %2986 = call ptr @__errno_location() #12
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @strerror(i32 noundef %2987) #11
  %2989 = call ptr @__errno_location() #12
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2978, ptr noundef @.str.2, i32 noundef %2979, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 188, ptr noundef %2982, ptr noundef %2985, ptr noundef %2988, i32 noundef %2990) #11
  br label %3009

2992:                                             ; preds = %2970, %2963
  %2993 = load i32, ptr %74, align 4, !tbaa !5
  %2994 = call ptr @__errno_location() #12
  store i32 %2993, ptr %2994, align 4, !tbaa !5
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = load i32, ptr @test_count, align 4, !tbaa !5
  %2997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror(i32 noundef %2998, ptr noundef @.str.4)
  %3000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror_debug(i32 noundef %3001, ptr noundef @.str.4)
  %3003 = call ptr @__errno_location() #12
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #11
  %3006 = call ptr @__errno_location() #12
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2995, ptr noundef @.str.5, i32 noundef %2996, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 188, ptr noundef %2999, ptr noundef %3002, ptr noundef %3005, i32 noundef %3007) #11
  br label %3009

3009:                                             ; preds = %2992, %2975
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

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

3012:                                             ; No predecessors!
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

3014:                                             ; preds = %3013, %2944
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016
  %3018 = load i32, ptr @test_count, align 4, !tbaa !5
  %3019 = add nsw i32 %3018, 1
  store i32 %3019, ptr @test_count, align 4, !tbaa !5
  %3020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = icmp eq i32 %3021, 0
  br i1 %3022, label %3023, label %3076

3023:                                             ; preds = %3017
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

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

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

3037:                                             ; preds = %3032
  %3038 = load i32, ptr %75, align 4, !tbaa !5
  %3039 = call ptr @__errno_location() #12
  store i32 %3038, ptr %3039, align 4, !tbaa !5
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3043, ptr noundef @.str.4)
  %3045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror_debug(i32 noundef %3046, ptr noundef @.str.4)
  %3048 = call ptr @__errno_location() #12
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @strerror(i32 noundef %3049) #11
  %3051 = call ptr @__errno_location() #12
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3040, ptr noundef @.str.2, i32 noundef %3041, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3044, ptr noundef %3047, ptr noundef %3050, i32 noundef %3052) #11
  br label %3071

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

3071:                                             ; preds = %3054, %3037
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3072

3072:                                             ; preds = %3071
  br label %3073

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

3074:                                             ; No predecessors!
  br label %3075

3075:                                             ; preds = %3074
  br label %3076

3076:                                             ; preds = %3075, %3017
  br label %3077

3077:                                             ; preds = %3076
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

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

3086:                                             ; preds = %3079
  br label %3087

3087:                                             ; preds = %3086
  br label %3088

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

3095:                                             ; preds = %3088
  %3096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3097 = call i32 @fileno(ptr noundef %3096) #11
  %3098 = call i32 @isatty(i32 noundef %3097) #11
  %3099 = icmp ne i32 %3098, 0
  br i1 %3099, label %3100, label %3117

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

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

3134:                                             ; preds = %3117, %3100
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3135

3135:                                             ; preds = %3134
  br label %3136

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

3137:                                             ; No predecessors!
  br label %3138

3138:                                             ; preds = %3137
  br label %3139

3139:                                             ; preds = %3138, %3079
  br label %3140

3140:                                             ; preds = %3139
  br label %3141

3141:                                             ; preds = %3140
  br label %3142

3142:                                             ; preds = %3141
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3143, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3144 = call ptr @__errno_location() #12
  store i32 0, ptr %3144, align 4, !tbaa !5
  br label %3145

3145:                                             ; preds = %3142
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = add nsw i32 %3150, 1
  store i32 %3151, ptr @test_count, align 4, !tbaa !5
  %3152 = load ptr, ptr %42, align 8, !tbaa !9
  %3153 = getelementptr inbounds %struct.s2n_connection, ptr %3152, i32 0, i32 40
  %3154 = call i32 @s2n_stuffer_wipe(ptr noundef %3153)
  %3155 = icmp eq i32 %3154, -1
  br i1 %3155, label %3156, label %3209

3156:                                             ; preds = %3149
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3159 = call ptr @__errno_location() #12
  %3160 = load i32, ptr %3159, align 4, !tbaa !5
  store i32 %3160, ptr %77, align 4, !tbaa !5
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = call i32 @s2n_print_stacktrace(ptr noundef %3161)
  %3163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3164 = trunc i8 %3163 to i1
  br i1 %3164, label %3165, label %3187

3165:                                             ; preds = %3158
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = call i32 @fileno(ptr noundef %3166) #11
  %3168 = call i32 @isatty(i32 noundef %3167) #11
  %3169 = icmp ne i32 %3168, 0
  br i1 %3169, label %3170, label %3187

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

3187:                                             ; preds = %3165, %3158
  %3188 = load i32, ptr %77, align 4, !tbaa !5
  %3189 = call ptr @__errno_location() #12
  store i32 %3188, ptr %3189, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %3192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror(i32 noundef %3193, ptr noundef @.str.4)
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3196, ptr noundef @.str.4)
  %3198 = call ptr @__errno_location() #12
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @strerror(i32 noundef %3199) #11
  %3201 = call ptr @__errno_location() #12
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3190, ptr noundef @.str.5, i32 noundef %3191, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 191, ptr noundef %3194, ptr noundef %3197, ptr noundef %3200, i32 noundef %3202) #11
  br label %3204

3204:                                             ; preds = %3187, %3170
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

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

3207:                                             ; No predecessors!
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208, %3149
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211
  %3213 = load i32, ptr @test_count, align 4, !tbaa !5
  %3214 = add nsw i32 %3213, 1
  store i32 %3214, ptr @test_count, align 4, !tbaa !5
  %3215 = load ptr, ptr %42, align 8, !tbaa !9
  %3216 = getelementptr inbounds %struct.s2n_connection, ptr %3215, i32 0, i32 40
  %3217 = call i32 @s2n_stuffer_write(ptr noundef %3216, ptr noundef %53)
  %3218 = icmp eq i32 %3217, -1
  br i1 %3218, label %3219, label %3272

3219:                                             ; preds = %3212
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

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

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

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

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

3267:                                             ; preds = %3250, %3233
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3268

3268:                                             ; preds = %3267
  br label %3269

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

3270:                                             ; No predecessors!
  br label %3271

3271:                                             ; preds = %3270
  br label %3272

3272:                                             ; preds = %3271, %3212
  br label %3273

3273:                                             ; preds = %3272
  br label %3274

3274:                                             ; preds = %3273
  %3275 = load ptr, ptr %42, align 8, !tbaa !9
  %3276 = getelementptr inbounds %struct.s2n_connection, ptr %3275, i32 0, i32 27
  %3277 = load ptr, ptr %3276, align 8, !tbaa !55
  %3278 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3277, i32 0, i32 7
  %3279 = getelementptr inbounds [8 x i8], ptr %3278, i64 0, i64 7
  store i8 0, ptr %3279, align 1, !tbaa !59
  %3280 = load ptr, ptr %42, align 8, !tbaa !9
  %3281 = getelementptr inbounds %struct.s2n_connection, ptr %3280, i32 0, i32 40
  %3282 = getelementptr inbounds %struct.s2n_stuffer, ptr %3281, i32 0, i32 0
  %3283 = getelementptr inbounds %struct.s2n_blob, ptr %3282, i32 0, i32 0
  %3284 = load ptr, ptr %3283, align 8, !tbaa !56
  %3285 = getelementptr inbounds i8, ptr %3284, i64 0
  %3286 = load i8, ptr %3285, align 1, !tbaa !59
  %3287 = add i8 %3286, 1
  store i8 %3287, ptr %3285, align 1, !tbaa !59
  br label %3288

3288:                                             ; preds = %3274
  br label %3289

3289:                                             ; preds = %3288
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = add nsw i32 %3290, 1
  store i32 %3291, ptr @test_count, align 4, !tbaa !5
  %3292 = load ptr, ptr %45, align 8, !tbaa !9
  %3293 = load ptr, ptr %42, align 8, !tbaa !9
  %3294 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %3295 = load i32, ptr %3294, align 8, !tbaa !20
  %3296 = trunc i32 %3295 to i16
  %3297 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %3298 = load ptr, ptr %3297, align 8, !tbaa !22
  %3299 = load ptr, ptr %42, align 8, !tbaa !9
  %3300 = getelementptr inbounds %struct.s2n_connection, ptr %3299, i32 0, i32 27
  %3301 = load ptr, ptr %3300, align 8, !tbaa !55
  %3302 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3301, i32 0, i32 7
  %3303 = getelementptr inbounds [8 x i8], ptr %3302, i64 0, i64 0
  %3304 = call i32 @s2n_record_parse_aead(ptr noundef %3292, ptr noundef %3293, i8 noundef zeroext 0, i16 noundef zeroext %3296, ptr noundef %3298, ptr noundef null, ptr noundef %3303, ptr noundef %43)
  %3305 = icmp eq i32 %3304, -1
  br i1 %3305, label %3359, label %3306

3306:                                             ; preds = %3289
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3309 = call ptr @__errno_location() #12
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  store i32 %3310, ptr %79, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @s2n_print_stacktrace(ptr noundef %3311)
  %3313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc i8 %3313 to i1
  br i1 %3314, label %3315, label %3337

3315:                                             ; preds = %3308
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @fileno(ptr noundef %3316) #11
  %3318 = call i32 @isatty(i32 noundef %3317) #11
  %3319 = icmp ne i32 %3318, 0
  br i1 %3319, label %3320, label %3337

3320:                                             ; preds = %3315
  %3321 = load i32, ptr %79, align 4, !tbaa !5
  %3322 = call ptr @__errno_location() #12
  store i32 %3321, ptr %3322, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef @.str.4)
  %3328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef @.str.4)
  %3331 = call ptr @__errno_location() #12
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #11
  %3334 = call ptr @__errno_location() #12
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef @.str.2, i32 noundef %3324, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3327, ptr noundef %3330, ptr noundef %3333, i32 noundef %3335) #11
  br label %3354

3337:                                             ; preds = %3315, %3308
  %3338 = load i32, ptr %79, align 4, !tbaa !5
  %3339 = call ptr @__errno_location() #12
  store i32 %3338, ptr %3339, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call ptr @s2n_strerror(i32 noundef %3343, ptr noundef @.str.4)
  %3345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror_debug(i32 noundef %3346, ptr noundef @.str.4)
  %3348 = call ptr @__errno_location() #12
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @strerror(i32 noundef %3349) #11
  %3351 = call ptr @__errno_location() #12
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef @.str.5, i32 noundef %3341, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3344, ptr noundef %3347, ptr noundef %3350, i32 noundef %3352) #11
  br label %3354

3354:                                             ; preds = %3337, %3320
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

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

3357:                                             ; No predecessors!
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358, %3289
  br label %3360

3360:                                             ; preds = %3359
  br label %3361

3361:                                             ; preds = %3360
  br label %3362

3362:                                             ; preds = %3361
  %3363 = load i32, ptr @test_count, align 4, !tbaa !5
  %3364 = add nsw i32 %3363, 1
  store i32 %3364, ptr @test_count, align 4, !tbaa !5
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = icmp eq i32 %3366, 0
  br i1 %3367, label %3368, label %3421

3368:                                             ; preds = %3362
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3371 = call ptr @__errno_location() #12
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  store i32 %3372, ptr %80, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = call i32 @s2n_print_stacktrace(ptr noundef %3373)
  %3375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3376 = trunc i8 %3375 to i1
  br i1 %3376, label %3377, label %3399

3377:                                             ; preds = %3370
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = call i32 @fileno(ptr noundef %3378) #11
  %3380 = call i32 @isatty(i32 noundef %3379) #11
  %3381 = icmp ne i32 %3380, 0
  br i1 %3381, label %3382, label %3399

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

3399:                                             ; preds = %3377, %3370
  %3400 = load i32, ptr %80, align 4, !tbaa !5
  %3401 = call ptr @__errno_location() #12
  store i32 %3400, ptr %3401, align 4, !tbaa !5
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = load i32, ptr @test_count, align 4, !tbaa !5
  %3404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror(i32 noundef %3405, ptr noundef @.str.4)
  %3407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @s2n_strerror_debug(i32 noundef %3408, ptr noundef @.str.4)
  %3410 = call ptr @__errno_location() #12
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @strerror(i32 noundef %3411) #11
  %3413 = call ptr @__errno_location() #12
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef @.str.5, i32 noundef %3403, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3406, ptr noundef %3409, ptr noundef %3412, i32 noundef %3414) #11
  br label %3416

3416:                                             ; preds = %3399, %3382
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

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

3419:                                             ; No predecessors!
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

3421:                                             ; preds = %3420, %3362
  br label %3422

3422:                                             ; preds = %3421
  br label %3423

3423:                                             ; preds = %3422
  br label %3424

3424:                                             ; preds = %3423
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = add nsw i32 %3425, 1
  store i32 %3426, ptr @test_count, align 4, !tbaa !5
  %3427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror_debug(i32 noundef %3428, ptr noundef @.str.4)
  %3430 = icmp eq ptr %3429, null
  br i1 %3430, label %3431, label %3484

3431:                                             ; preds = %3424
  br label %3432

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3434 = call ptr @__errno_location() #12
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  store i32 %3435, ptr %81, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @s2n_print_stacktrace(ptr noundef %3436)
  %3438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3439 = trunc i8 %3438 to i1
  br i1 %3439, label %3440, label %3462

3440:                                             ; preds = %3433
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = call i32 @fileno(ptr noundef %3441) #11
  %3443 = call i32 @isatty(i32 noundef %3442) #11
  %3444 = icmp ne i32 %3443, 0
  br i1 %3444, label %3445, label %3462

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

3462:                                             ; preds = %3440, %3433
  %3463 = load i32, ptr %81, align 4, !tbaa !5
  %3464 = call ptr @__errno_location() #12
  store i32 %3463, ptr %3464, align 4, !tbaa !5
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = load i32, ptr @test_count, align 4, !tbaa !5
  %3467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call ptr @s2n_strerror(i32 noundef %3468, ptr noundef @.str.4)
  %3470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror_debug(i32 noundef %3471, ptr noundef @.str.4)
  %3473 = call ptr @__errno_location() #12
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @strerror(i32 noundef %3474) #11
  %3476 = call ptr @__errno_location() #12
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3465, ptr noundef @.str.5, i32 noundef %3466, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3469, ptr noundef %3472, ptr noundef %3475, i32 noundef %3477) #11
  br label %3479

3479:                                             ; preds = %3462, %3445
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

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

3482:                                             ; No predecessors!
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

3484:                                             ; preds = %3483, %3424
  br label %3485

3485:                                             ; preds = %3484
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486
  %3488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3488, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3489 = call ptr @__errno_location() #12
  store i32 0, ptr %3489, align 4, !tbaa !5
  br label %3490

3490:                                             ; preds = %3487
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  br label %3494

3494:                                             ; preds = %3493
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = add nsw i32 %3495, 1
  store i32 %3496, ptr @test_count, align 4, !tbaa !5
  %3497 = load ptr, ptr %42, align 8, !tbaa !9
  %3498 = getelementptr inbounds %struct.s2n_connection, ptr %3497, i32 0, i32 40
  %3499 = call i32 @s2n_stuffer_wipe(ptr noundef %3498)
  %3500 = icmp eq i32 %3499, -1
  br i1 %3500, label %3501, label %3554

3501:                                             ; preds = %3494
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

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

3510:                                             ; preds = %3503
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = call i32 @fileno(ptr noundef %3511) #11
  %3513 = call i32 @isatty(i32 noundef %3512) #11
  %3514 = icmp ne i32 %3513, 0
  br i1 %3514, label %3515, label %3532

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

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

3549:                                             ; preds = %3532, %3515
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3550

3550:                                             ; preds = %3549
  br label %3551

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

3552:                                             ; No predecessors!
  br label %3553

3553:                                             ; preds = %3552
  br label %3554

3554:                                             ; preds = %3553, %3494
  br label %3555

3555:                                             ; preds = %3554
  br label %3556

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556
  %3558 = load i32, ptr @test_count, align 4, !tbaa !5
  %3559 = add nsw i32 %3558, 1
  store i32 %3559, ptr @test_count, align 4, !tbaa !5
  %3560 = load ptr, ptr %42, align 8, !tbaa !9
  %3561 = getelementptr inbounds %struct.s2n_connection, ptr %3560, i32 0, i32 40
  %3562 = call i32 @s2n_stuffer_write(ptr noundef %3561, ptr noundef %53)
  %3563 = icmp eq i32 %3562, -1
  br i1 %3563, label %3564, label %3617

3564:                                             ; preds = %3557
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

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

3573:                                             ; preds = %3566
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = call i32 @fileno(ptr noundef %3574) #11
  %3576 = call i32 @isatty(i32 noundef %3575) #11
  %3577 = icmp ne i32 %3576, 0
  br i1 %3577, label %3578, label %3595

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

3595:                                             ; preds = %3573, %3566
  %3596 = load i32, ptr %83, align 4, !tbaa !5
  %3597 = call ptr @__errno_location() #12
  store i32 %3596, ptr %3597, align 4, !tbaa !5
  %3598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3599 = load i32, ptr @test_count, align 4, !tbaa !5
  %3600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @s2n_strerror(i32 noundef %3601, ptr noundef @.str.4)
  %3603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror_debug(i32 noundef %3604, ptr noundef @.str.4)
  %3606 = call ptr @__errno_location() #12
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call ptr @strerror(i32 noundef %3607) #11
  %3609 = call ptr @__errno_location() #12
  %3610 = load i32, ptr %3609, align 4, !tbaa !5
  %3611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3598, ptr noundef @.str.5, i32 noundef %3599, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 197, ptr noundef %3602, ptr noundef %3605, ptr noundef %3608, i32 noundef %3610) #11
  br label %3612

3612:                                             ; preds = %3595, %3578
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

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

3615:                                             ; No predecessors!
  br label %3616

3616:                                             ; preds = %3615
  br label %3617

3617:                                             ; preds = %3616, %3557
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618
  %3620 = load ptr, ptr %42, align 8, !tbaa !9
  %3621 = getelementptr inbounds %struct.s2n_connection, ptr %3620, i32 0, i32 27
  %3622 = load ptr, ptr %3621, align 8, !tbaa !55
  %3623 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3622, i32 0, i32 7
  %3624 = getelementptr inbounds [8 x i8], ptr %3623, i64 0, i64 7
  store i8 0, ptr %3624, align 1, !tbaa !59
  %3625 = load ptr, ptr %42, align 8, !tbaa !9
  %3626 = getelementptr inbounds %struct.s2n_connection, ptr %3625, i32 0, i32 27
  %3627 = load ptr, ptr %3626, align 8, !tbaa !55
  %3628 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3627, i32 0, i32 7
  %3629 = getelementptr inbounds [8 x i8], ptr %3628, i64 0, i64 7
  store i8 1, ptr %3629, align 1, !tbaa !59
  br label %3630

3630:                                             ; preds = %3619
  br label %3631

3631:                                             ; preds = %3630
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = add nsw i32 %3632, 1
  store i32 %3633, ptr @test_count, align 4, !tbaa !5
  %3634 = load ptr, ptr %45, align 8, !tbaa !9
  %3635 = load ptr, ptr %42, align 8, !tbaa !9
  %3636 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %3637 = load i32, ptr %3636, align 8, !tbaa !20
  %3638 = trunc i32 %3637 to i16
  %3639 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %3640 = load ptr, ptr %3639, align 8, !tbaa !22
  %3641 = load ptr, ptr %42, align 8, !tbaa !9
  %3642 = getelementptr inbounds %struct.s2n_connection, ptr %3641, i32 0, i32 27
  %3643 = load ptr, ptr %3642, align 8, !tbaa !55
  %3644 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3643, i32 0, i32 7
  %3645 = getelementptr inbounds [8 x i8], ptr %3644, i64 0, i64 0
  %3646 = call i32 @s2n_record_parse_aead(ptr noundef %3634, ptr noundef %3635, i8 noundef zeroext 0, i16 noundef zeroext %3638, ptr noundef %3640, ptr noundef null, ptr noundef %3645, ptr noundef %43)
  %3647 = icmp eq i32 %3646, -1
  br i1 %3647, label %3701, label %3648

3648:                                             ; preds = %3631
  br label %3649

3649:                                             ; preds = %3648
  br label %3650

3650:                                             ; preds = %3649
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %3651 = call ptr @__errno_location() #12
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  store i32 %3652, ptr %84, align 4, !tbaa !5
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = call i32 @s2n_print_stacktrace(ptr noundef %3653)
  %3655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3656 = trunc i8 %3655 to i1
  br i1 %3656, label %3657, label %3679

3657:                                             ; preds = %3650
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = call i32 @fileno(ptr noundef %3658) #11
  %3660 = call i32 @isatty(i32 noundef %3659) #11
  %3661 = icmp ne i32 %3660, 0
  br i1 %3661, label %3662, label %3679

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

3679:                                             ; preds = %3657, %3650
  %3680 = load i32, ptr %84, align 4, !tbaa !5
  %3681 = call ptr @__errno_location() #12
  store i32 %3680, ptr %3681, align 4, !tbaa !5
  %3682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3683 = load i32, ptr @test_count, align 4, !tbaa !5
  %3684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call ptr @s2n_strerror(i32 noundef %3685, ptr noundef @.str.4)
  %3687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  %3689 = call ptr @s2n_strerror_debug(i32 noundef %3688, ptr noundef @.str.4)
  %3690 = call ptr @__errno_location() #12
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  %3692 = call ptr @strerror(i32 noundef %3691) #11
  %3693 = call ptr @__errno_location() #12
  %3694 = load i32, ptr %3693, align 4, !tbaa !5
  %3695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3682, ptr noundef @.str.5, i32 noundef %3683, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3686, ptr noundef %3689, ptr noundef %3692, i32 noundef %3694) #11
  br label %3696

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

3697:                                             ; preds = %3696
  br label %3698

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

3699:                                             ; No predecessors!
  br label %3700

3700:                                             ; preds = %3699
  br label %3701

3701:                                             ; preds = %3700, %3631
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

3704:                                             ; preds = %3703
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = add nsw i32 %3705, 1
  store i32 %3706, ptr @test_count, align 4, !tbaa !5
  %3707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  %3709 = icmp eq i32 %3708, 0
  br i1 %3709, label %3710, label %3763

3710:                                             ; preds = %3704
  br label %3711

3711:                                             ; preds = %3710
  br label %3712

3712:                                             ; preds = %3711
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %3713 = call ptr @__errno_location() #12
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  store i32 %3714, ptr %85, align 4, !tbaa !5
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = call i32 @s2n_print_stacktrace(ptr noundef %3715)
  %3717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3718 = trunc i8 %3717 to i1
  br i1 %3718, label %3719, label %3741

3719:                                             ; preds = %3712
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = call i32 @fileno(ptr noundef %3720) #11
  %3722 = call i32 @isatty(i32 noundef %3721) #11
  %3723 = icmp ne i32 %3722, 0
  br i1 %3723, label %3724, label %3741

3724:                                             ; preds = %3719
  %3725 = load i32, ptr %85, align 4, !tbaa !5
  %3726 = call ptr @__errno_location() #12
  store i32 %3725, ptr %3726, align 4, !tbaa !5
  %3727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3728 = load i32, ptr @test_count, align 4, !tbaa !5
  %3729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror(i32 noundef %3730, ptr noundef @.str.4)
  %3732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror_debug(i32 noundef %3733, ptr noundef @.str.4)
  %3735 = call ptr @__errno_location() #12
  %3736 = load i32, ptr %3735, align 4, !tbaa !5
  %3737 = call ptr @strerror(i32 noundef %3736) #11
  %3738 = call ptr @__errno_location() #12
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3727, ptr noundef @.str.2, i32 noundef %3728, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3731, ptr noundef %3734, ptr noundef %3737, i32 noundef %3739) #11
  br label %3758

3741:                                             ; preds = %3719, %3712
  %3742 = load i32, ptr %85, align 4, !tbaa !5
  %3743 = call ptr @__errno_location() #12
  store i32 %3742, ptr %3743, align 4, !tbaa !5
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = load i32, ptr @test_count, align 4, !tbaa !5
  %3746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @s2n_strerror(i32 noundef %3747, ptr noundef @.str.4)
  %3749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @s2n_strerror_debug(i32 noundef %3750, ptr noundef @.str.4)
  %3752 = call ptr @__errno_location() #12
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call ptr @strerror(i32 noundef %3753) #11
  %3755 = call ptr @__errno_location() #12
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3744, ptr noundef @.str.5, i32 noundef %3745, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3748, ptr noundef %3751, ptr noundef %3754, i32 noundef %3756) #11
  br label %3758

3758:                                             ; preds = %3741, %3724
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3759

3759:                                             ; preds = %3758
  br label %3760

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

3761:                                             ; No predecessors!
  br label %3762

3762:                                             ; preds = %3761
  br label %3763

3763:                                             ; preds = %3762, %3704
  br label %3764

3764:                                             ; preds = %3763
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

3766:                                             ; preds = %3765
  %3767 = load i32, ptr @test_count, align 4, !tbaa !5
  %3768 = add nsw i32 %3767, 1
  store i32 %3768, ptr @test_count, align 4, !tbaa !5
  %3769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call ptr @s2n_strerror_debug(i32 noundef %3770, ptr noundef @.str.4)
  %3772 = icmp eq ptr %3771, null
  br i1 %3772, label %3773, label %3826

3773:                                             ; preds = %3766
  br label %3774

3774:                                             ; preds = %3773
  br label %3775

3775:                                             ; preds = %3774
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3776 = call ptr @__errno_location() #12
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  store i32 %3777, ptr %86, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @s2n_print_stacktrace(ptr noundef %3778)
  %3780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3781 = trunc i8 %3780 to i1
  br i1 %3781, label %3782, label %3804

3782:                                             ; preds = %3775
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @fileno(ptr noundef %3783) #11
  %3785 = call i32 @isatty(i32 noundef %3784) #11
  %3786 = icmp ne i32 %3785, 0
  br i1 %3786, label %3787, label %3804

3787:                                             ; preds = %3782
  %3788 = load i32, ptr %86, align 4, !tbaa !5
  %3789 = call ptr @__errno_location() #12
  store i32 %3788, ptr %3789, align 4, !tbaa !5
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = load i32, ptr @test_count, align 4, !tbaa !5
  %3792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call ptr @s2n_strerror(i32 noundef %3793, ptr noundef @.str.4)
  %3795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @s2n_strerror_debug(i32 noundef %3796, ptr noundef @.str.4)
  %3798 = call ptr @__errno_location() #12
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @strerror(i32 noundef %3799) #11
  %3801 = call ptr @__errno_location() #12
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3790, ptr noundef @.str.2, i32 noundef %3791, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3794, ptr noundef %3797, ptr noundef %3800, i32 noundef %3802) #11
  br label %3821

3804:                                             ; preds = %3782, %3775
  %3805 = load i32, ptr %86, align 4, !tbaa !5
  %3806 = call ptr @__errno_location() #12
  store i32 %3805, ptr %3806, align 4, !tbaa !5
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  %3811 = call ptr @s2n_strerror(i32 noundef %3810, ptr noundef @.str.4)
  %3812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror_debug(i32 noundef %3813, ptr noundef @.str.4)
  %3815 = call ptr @__errno_location() #12
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  %3817 = call ptr @strerror(i32 noundef %3816) #11
  %3818 = call ptr @__errno_location() #12
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3807, ptr noundef @.str.5, i32 noundef %3808, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3811, ptr noundef %3814, ptr noundef %3817, i32 noundef %3819) #11
  br label %3821

3821:                                             ; preds = %3804, %3787
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3822

3822:                                             ; preds = %3821
  br label %3823

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

3824:                                             ; No predecessors!
  br label %3825

3825:                                             ; preds = %3824
  br label %3826

3826:                                             ; preds = %3825, %3766
  br label %3827

3827:                                             ; preds = %3826
  br label %3828

3828:                                             ; preds = %3827
  br label %3829

3829:                                             ; preds = %3828
  %3830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3830, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3831 = call ptr @__errno_location() #12
  store i32 0, ptr %3831, align 4, !tbaa !5
  br label %3832

3832:                                             ; preds = %3829
  br label %3833

3833:                                             ; preds = %3832
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

3835:                                             ; preds = %3834
  br label %3836

3836:                                             ; preds = %3835
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = add nsw i32 %3837, 1
  store i32 %3838, ptr @test_count, align 4, !tbaa !5
  %3839 = load ptr, ptr %42, align 8, !tbaa !9
  %3840 = getelementptr inbounds %struct.s2n_connection, ptr %3839, i32 0, i32 40
  %3841 = call i32 @s2n_stuffer_wipe(ptr noundef %3840)
  %3842 = icmp eq i32 %3841, -1
  br i1 %3842, label %3843, label %3896

3843:                                             ; preds = %3836
  br label %3844

3844:                                             ; preds = %3843
  br label %3845

3845:                                             ; preds = %3844
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3846 = call ptr @__errno_location() #12
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  store i32 %3847, ptr %87, align 4, !tbaa !5
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = call i32 @s2n_print_stacktrace(ptr noundef %3848)
  %3850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3851 = trunc i8 %3850 to i1
  br i1 %3851, label %3852, label %3874

3852:                                             ; preds = %3845
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @fileno(ptr noundef %3853) #11
  %3855 = call i32 @isatty(i32 noundef %3854) #11
  %3856 = icmp ne i32 %3855, 0
  br i1 %3856, label %3857, label %3874

3857:                                             ; preds = %3852
  %3858 = load i32, ptr %87, align 4, !tbaa !5
  %3859 = call ptr @__errno_location() #12
  store i32 %3858, ptr %3859, align 4, !tbaa !5
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3861 = load i32, ptr @test_count, align 4, !tbaa !5
  %3862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3863 = load i32, ptr %3862, align 4, !tbaa !5
  %3864 = call ptr @s2n_strerror(i32 noundef %3863, ptr noundef @.str.4)
  %3865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror_debug(i32 noundef %3866, ptr noundef @.str.4)
  %3868 = call ptr @__errno_location() #12
  %3869 = load i32, ptr %3868, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #11
  %3871 = call ptr @__errno_location() #12
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3860, ptr noundef @.str.2, i32 noundef %3861, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3864, ptr noundef %3867, ptr noundef %3870, i32 noundef %3872) #11
  br label %3891

3874:                                             ; preds = %3852, %3845
  %3875 = load i32, ptr %87, align 4, !tbaa !5
  %3876 = call ptr @__errno_location() #12
  store i32 %3875, ptr %3876, align 4, !tbaa !5
  %3877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3878 = load i32, ptr @test_count, align 4, !tbaa !5
  %3879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror(i32 noundef %3880, ptr noundef @.str.4)
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror_debug(i32 noundef %3883, ptr noundef @.str.4)
  %3885 = call ptr @__errno_location() #12
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call ptr @strerror(i32 noundef %3886) #11
  %3888 = call ptr @__errno_location() #12
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3877, ptr noundef @.str.5, i32 noundef %3878, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3881, ptr noundef %3884, ptr noundef %3887, i32 noundef %3889) #11
  br label %3891

3891:                                             ; preds = %3874, %3857
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3892

3892:                                             ; preds = %3891
  br label %3893

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

3894:                                             ; No predecessors!
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895, %3836
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

3898:                                             ; preds = %3897
  br label %3899

3899:                                             ; preds = %3898
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = add nsw i32 %3900, 1
  store i32 %3901, ptr @test_count, align 4, !tbaa !5
  %3902 = load ptr, ptr %42, align 8, !tbaa !9
  %3903 = getelementptr inbounds %struct.s2n_connection, ptr %3902, i32 0, i32 40
  %3904 = call i32 @s2n_stuffer_write(ptr noundef %3903, ptr noundef %53)
  %3905 = icmp eq i32 %3904, -1
  br i1 %3905, label %3906, label %3959

3906:                                             ; preds = %3899
  br label %3907

3907:                                             ; preds = %3906
  br label %3908

3908:                                             ; preds = %3907
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3909 = call ptr @__errno_location() #12
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  store i32 %3910, ptr %88, align 4, !tbaa !5
  %3911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3912 = call i32 @s2n_print_stacktrace(ptr noundef %3911)
  %3913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3914 = trunc i8 %3913 to i1
  br i1 %3914, label %3915, label %3937

3915:                                             ; preds = %3908
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = call i32 @fileno(ptr noundef %3916) #11
  %3918 = call i32 @isatty(i32 noundef %3917) #11
  %3919 = icmp ne i32 %3918, 0
  br i1 %3919, label %3920, label %3937

3920:                                             ; preds = %3915
  %3921 = load i32, ptr %88, align 4, !tbaa !5
  %3922 = call ptr @__errno_location() #12
  store i32 %3921, ptr %3922, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = load i32, ptr @test_count, align 4, !tbaa !5
  %3925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3926 = load i32, ptr %3925, align 4, !tbaa !5
  %3927 = call ptr @s2n_strerror(i32 noundef %3926, ptr noundef @.str.4)
  %3928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror_debug(i32 noundef %3929, ptr noundef @.str.4)
  %3931 = call ptr @__errno_location() #12
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @strerror(i32 noundef %3932) #11
  %3934 = call ptr @__errno_location() #12
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3923, ptr noundef @.str.2, i32 noundef %3924, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3927, ptr noundef %3930, ptr noundef %3933, i32 noundef %3935) #11
  br label %3954

3937:                                             ; preds = %3915, %3908
  %3938 = load i32, ptr %88, align 4, !tbaa !5
  %3939 = call ptr @__errno_location() #12
  store i32 %3938, ptr %3939, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = load i32, ptr @test_count, align 4, !tbaa !5
  %3942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3943 = load i32, ptr %3942, align 4, !tbaa !5
  %3944 = call ptr @s2n_strerror(i32 noundef %3943, ptr noundef @.str.4)
  %3945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror_debug(i32 noundef %3946, ptr noundef @.str.4)
  %3948 = call ptr @__errno_location() #12
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call ptr @strerror(i32 noundef %3949) #11
  %3951 = call ptr @__errno_location() #12
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3940, ptr noundef @.str.5, i32 noundef %3941, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3944, ptr noundef %3947, ptr noundef %3950, i32 noundef %3952) #11
  br label %3954

3954:                                             ; preds = %3937, %3920
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3955

3955:                                             ; preds = %3954
  br label %3956

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

3957:                                             ; No predecessors!
  br label %3958

3958:                                             ; preds = %3957
  br label %3959

3959:                                             ; preds = %3958, %3899
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

3961:                                             ; preds = %3960
  %3962 = load ptr, ptr %42, align 8, !tbaa !9
  %3963 = getelementptr inbounds %struct.s2n_connection, ptr %3962, i32 0, i32 27
  %3964 = load ptr, ptr %3963, align 8, !tbaa !55
  %3965 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3964, i32 0, i32 7
  %3966 = getelementptr inbounds [8 x i8], ptr %3965, i64 0, i64 7
  store i8 0, ptr %3966, align 1, !tbaa !59
  %3967 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %3968 = load ptr, ptr %3967, align 8, !tbaa !22
  %3969 = getelementptr inbounds i8, ptr %3968, i64 0
  %3970 = load i8, ptr %3969, align 1, !tbaa !59
  %3971 = add i8 %3970, 1
  store i8 %3971, ptr %3969, align 1, !tbaa !59
  br label %3972

3972:                                             ; preds = %3961
  br label %3973

3973:                                             ; preds = %3972
  %3974 = load i32, ptr @test_count, align 4, !tbaa !5
  %3975 = add nsw i32 %3974, 1
  store i32 %3975, ptr @test_count, align 4, !tbaa !5
  %3976 = load ptr, ptr %45, align 8, !tbaa !9
  %3977 = load ptr, ptr %42, align 8, !tbaa !9
  %3978 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %3979 = load i32, ptr %3978, align 8, !tbaa !20
  %3980 = trunc i32 %3979 to i16
  %3981 = getelementptr inbounds %struct.s2n_blob, ptr %56, i32 0, i32 0
  %3982 = load ptr, ptr %3981, align 8, !tbaa !22
  %3983 = load ptr, ptr %42, align 8, !tbaa !9
  %3984 = getelementptr inbounds %struct.s2n_connection, ptr %3983, i32 0, i32 27
  %3985 = load ptr, ptr %3984, align 8, !tbaa !55
  %3986 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3985, i32 0, i32 7
  %3987 = getelementptr inbounds [8 x i8], ptr %3986, i64 0, i64 0
  %3988 = call i32 @s2n_record_parse_aead(ptr noundef %3976, ptr noundef %3977, i8 noundef zeroext 0, i16 noundef zeroext %3980, ptr noundef %3982, ptr noundef null, ptr noundef %3987, ptr noundef %43)
  %3989 = icmp eq i32 %3988, -1
  br i1 %3989, label %4043, label %3990

3990:                                             ; preds = %3973
  br label %3991

3991:                                             ; preds = %3990
  br label %3992

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

3999:                                             ; preds = %3992
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = call i32 @fileno(ptr noundef %4000) #11
  %4002 = call i32 @isatty(i32 noundef %4001) #11
  %4003 = icmp ne i32 %4002, 0
  br i1 %4003, label %4004, label %4021

4004:                                             ; preds = %3999
  %4005 = load i32, ptr %89, align 4, !tbaa !5
  %4006 = call ptr @__errno_location() #12
  store i32 %4005, ptr %4006, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call ptr @s2n_strerror(i32 noundef %4010, ptr noundef @.str.4)
  %4012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror_debug(i32 noundef %4013, ptr noundef @.str.4)
  %4015 = call ptr @__errno_location() #12
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @strerror(i32 noundef %4016) #11
  %4018 = call ptr @__errno_location() #12
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4007, ptr noundef @.str.2, i32 noundef %4008, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4011, ptr noundef %4014, ptr noundef %4017, i32 noundef %4019) #11
  br label %4038

4021:                                             ; preds = %3999, %3992
  %4022 = load i32, ptr %89, align 4, !tbaa !5
  %4023 = call ptr @__errno_location() #12
  store i32 %4022, ptr %4023, align 4, !tbaa !5
  %4024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4025 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4027, ptr noundef @.str.4)
  %4029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror_debug(i32 noundef %4030, ptr noundef @.str.4)
  %4032 = call ptr @__errno_location() #12
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @strerror(i32 noundef %4033) #11
  %4035 = call ptr @__errno_location() #12
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4024, ptr noundef @.str.5, i32 noundef %4025, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4028, ptr noundef %4031, ptr noundef %4034, i32 noundef %4036) #11
  br label %4038

4038:                                             ; preds = %4021, %4004
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

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

4041:                                             ; No predecessors!
  br label %4042

4042:                                             ; preds = %4041
  br label %4043

4043:                                             ; preds = %4042, %3973
  br label %4044

4044:                                             ; preds = %4043
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

4046:                                             ; preds = %4045
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = add nsw i32 %4047, 1
  store i32 %4048, ptr @test_count, align 4, !tbaa !5
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = icmp eq i32 %4050, 0
  br i1 %4051, label %4052, label %4105

4052:                                             ; preds = %4046
  br label %4053

4053:                                             ; preds = %4052
  br label %4054

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

4061:                                             ; preds = %4054
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = call i32 @fileno(ptr noundef %4062) #11
  %4064 = call i32 @isatty(i32 noundef %4063) #11
  %4065 = icmp ne i32 %4064, 0
  br i1 %4065, label %4066, label %4083

4066:                                             ; preds = %4061
  %4067 = load i32, ptr %90, align 4, !tbaa !5
  %4068 = call ptr @__errno_location() #12
  store i32 %4067, ptr %4068, align 4, !tbaa !5
  %4069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4070 = load i32, ptr @test_count, align 4, !tbaa !5
  %4071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4072 = load i32, ptr %4071, align 4, !tbaa !5
  %4073 = call ptr @s2n_strerror(i32 noundef %4072, ptr noundef @.str.4)
  %4074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4075 = load i32, ptr %4074, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror_debug(i32 noundef %4075, ptr noundef @.str.4)
  %4077 = call ptr @__errno_location() #12
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  %4079 = call ptr @strerror(i32 noundef %4078) #11
  %4080 = call ptr @__errno_location() #12
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4069, ptr noundef @.str.2, i32 noundef %4070, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4073, ptr noundef %4076, ptr noundef %4079, i32 noundef %4081) #11
  br label %4100

4083:                                             ; preds = %4061, %4054
  %4084 = load i32, ptr %90, align 4, !tbaa !5
  %4085 = call ptr @__errno_location() #12
  store i32 %4084, ptr %4085, align 4, !tbaa !5
  %4086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4087 = load i32, ptr @test_count, align 4, !tbaa !5
  %4088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror(i32 noundef %4089, ptr noundef @.str.4)
  %4091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4092 = load i32, ptr %4091, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror_debug(i32 noundef %4092, ptr noundef @.str.4)
  %4094 = call ptr @__errno_location() #12
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call ptr @strerror(i32 noundef %4095) #11
  %4097 = call ptr @__errno_location() #12
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4086, ptr noundef @.str.5, i32 noundef %4087, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4090, ptr noundef %4093, ptr noundef %4096, i32 noundef %4098) #11
  br label %4100

4100:                                             ; preds = %4083, %4066
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4101

4101:                                             ; preds = %4100
  br label %4102

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

4103:                                             ; No predecessors!
  br label %4104

4104:                                             ; preds = %4103
  br label %4105

4105:                                             ; preds = %4104, %4046
  br label %4106

4106:                                             ; preds = %4105
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

4108:                                             ; preds = %4107
  %4109 = load i32, ptr @test_count, align 4, !tbaa !5
  %4110 = add nsw i32 %4109, 1
  store i32 %4110, ptr @test_count, align 4, !tbaa !5
  %4111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call ptr @s2n_strerror_debug(i32 noundef %4112, ptr noundef @.str.4)
  %4114 = icmp eq ptr %4113, null
  br i1 %4114, label %4115, label %4168

4115:                                             ; preds = %4108
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

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

4124:                                             ; preds = %4117
  %4125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4126 = call i32 @fileno(ptr noundef %4125) #11
  %4127 = call i32 @isatty(i32 noundef %4126) #11
  %4128 = icmp ne i32 %4127, 0
  br i1 %4128, label %4129, label %4146

4129:                                             ; preds = %4124
  %4130 = load i32, ptr %91, align 4, !tbaa !5
  %4131 = call ptr @__errno_location() #12
  store i32 %4130, ptr %4131, align 4, !tbaa !5
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror(i32 noundef %4135, ptr noundef @.str.4)
  %4137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @s2n_strerror_debug(i32 noundef %4138, ptr noundef @.str.4)
  %4140 = call ptr @__errno_location() #12
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call ptr @strerror(i32 noundef %4141) #11
  %4143 = call ptr @__errno_location() #12
  %4144 = load i32, ptr %4143, align 4, !tbaa !5
  %4145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4132, ptr noundef @.str.2, i32 noundef %4133, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4136, ptr noundef %4139, ptr noundef %4142, i32 noundef %4144) #11
  br label %4163

4146:                                             ; preds = %4124, %4117
  %4147 = load i32, ptr %91, align 4, !tbaa !5
  %4148 = call ptr @__errno_location() #12
  store i32 %4147, ptr %4148, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror(i32 noundef %4152, ptr noundef @.str.4)
  %4154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call ptr @s2n_strerror_debug(i32 noundef %4155, ptr noundef @.str.4)
  %4157 = call ptr @__errno_location() #12
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #11
  %4160 = call ptr @__errno_location() #12
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef @.str.5, i32 noundef %4150, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4153, ptr noundef %4156, ptr noundef %4159, i32 noundef %4161) #11
  br label %4163

4163:                                             ; preds = %4146, %4129
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

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

4166:                                             ; No predecessors!
  br label %4167

4167:                                             ; preds = %4166
  br label %4168

4168:                                             ; preds = %4167, %4108
  br label %4169

4169:                                             ; preds = %4168
  br label %4170

4170:                                             ; preds = %4169
  br label %4171

4171:                                             ; preds = %4170
  %4172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4172, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4173 = call ptr @__errno_location() #12
  store i32 0, ptr %4173, align 4, !tbaa !5
  br label %4174

4174:                                             ; preds = %4171
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

4178:                                             ; preds = %4177
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = add nsw i32 %4179, 1
  store i32 %4180, ptr @test_count, align 4, !tbaa !5
  %4181 = load ptr, ptr %42, align 8, !tbaa !9
  %4182 = call i32 @s2n_connection_free(ptr noundef %4181)
  %4183 = icmp eq i32 %4182, -1
  br i1 %4183, label %4184, label %4237

4184:                                             ; preds = %4178
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

4186:                                             ; preds = %4185
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %4187 = call ptr @__errno_location() #12
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  store i32 %4188, ptr %92, align 4, !tbaa !5
  %4189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4190 = call i32 @s2n_print_stacktrace(ptr noundef %4189)
  %4191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4192 = trunc i8 %4191 to i1
  br i1 %4192, label %4193, label %4215

4193:                                             ; preds = %4186
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = call i32 @fileno(ptr noundef %4194) #11
  %4196 = call i32 @isatty(i32 noundef %4195) #11
  %4197 = icmp ne i32 %4196, 0
  br i1 %4197, label %4198, label %4215

4198:                                             ; preds = %4193
  %4199 = load i32, ptr %92, align 4, !tbaa !5
  %4200 = call ptr @__errno_location() #12
  store i32 %4199, ptr %4200, align 4, !tbaa !5
  %4201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4202 = load i32, ptr @test_count, align 4, !tbaa !5
  %4203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call ptr @s2n_strerror(i32 noundef %4204, ptr noundef @.str.4)
  %4206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4207 = load i32, ptr %4206, align 4, !tbaa !5
  %4208 = call ptr @s2n_strerror_debug(i32 noundef %4207, ptr noundef @.str.4)
  %4209 = call ptr @__errno_location() #12
  %4210 = load i32, ptr %4209, align 4, !tbaa !5
  %4211 = call ptr @strerror(i32 noundef %4210) #11
  %4212 = call ptr @__errno_location() #12
  %4213 = load i32, ptr %4212, align 4, !tbaa !5
  %4214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4201, ptr noundef @.str.2, i32 noundef %4202, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4205, ptr noundef %4208, ptr noundef %4211, i32 noundef %4213) #11
  br label %4232

4215:                                             ; preds = %4193, %4186
  %4216 = load i32, ptr %92, align 4, !tbaa !5
  %4217 = call ptr @__errno_location() #12
  store i32 %4216, ptr %4217, align 4, !tbaa !5
  %4218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4219 = load i32, ptr @test_count, align 4, !tbaa !5
  %4220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @s2n_strerror(i32 noundef %4221, ptr noundef @.str.4)
  %4223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call ptr @s2n_strerror_debug(i32 noundef %4224, ptr noundef @.str.4)
  %4226 = call ptr @__errno_location() #12
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call ptr @strerror(i32 noundef %4227) #11
  %4229 = call ptr @__errno_location() #12
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4218, ptr noundef @.str.5, i32 noundef %4219, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4222, ptr noundef %4225, ptr noundef %4228, i32 noundef %4230) #11
  br label %4232

4232:                                             ; preds = %4215, %4198
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4233

4233:                                             ; preds = %4232
  br label %4234

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

4235:                                             ; No predecessors!
  br label %4236

4236:                                             ; preds = %4235
  br label %4237

4237:                                             ; preds = %4236, %4178
  br label %4238

4238:                                             ; preds = %4237
  br label %4239

4239:                                             ; preds = %4238
  br label %4240

4240:                                             ; preds = %4239
  %4241 = load i32, ptr @test_count, align 4, !tbaa !5
  %4242 = add nsw i32 %4241, 1
  store i32 %4242, ptr @test_count, align 4, !tbaa !5
  %4243 = call i32 @s2n_session_key_free(ptr noundef %43)
  %4244 = icmp eq i32 %4243, -1
  br i1 %4244, label %4245, label %4298

4245:                                             ; preds = %4240
  br label %4246

4246:                                             ; preds = %4245
  br label %4247

4247:                                             ; preds = %4246
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %4248 = call ptr @__errno_location() #12
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  store i32 %4249, ptr %93, align 4, !tbaa !5
  %4250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4251 = call i32 @s2n_print_stacktrace(ptr noundef %4250)
  %4252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4253 = trunc i8 %4252 to i1
  br i1 %4253, label %4254, label %4276

4254:                                             ; preds = %4247
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = call i32 @fileno(ptr noundef %4255) #11
  %4257 = call i32 @isatty(i32 noundef %4256) #11
  %4258 = icmp ne i32 %4257, 0
  br i1 %4258, label %4259, label %4276

4259:                                             ; preds = %4254
  %4260 = load i32, ptr %93, align 4, !tbaa !5
  %4261 = call ptr @__errno_location() #12
  store i32 %4260, ptr %4261, align 4, !tbaa !5
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = load i32, ptr @test_count, align 4, !tbaa !5
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror(i32 noundef %4265, ptr noundef @.str.4)
  %4267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @s2n_strerror_debug(i32 noundef %4268, ptr noundef @.str.4)
  %4270 = call ptr @__errno_location() #12
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call ptr @strerror(i32 noundef %4271) #11
  %4273 = call ptr @__errno_location() #12
  %4274 = load i32, ptr %4273, align 4, !tbaa !5
  %4275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4262, ptr noundef @.str.2, i32 noundef %4263, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4266, ptr noundef %4269, ptr noundef %4272, i32 noundef %4274) #11
  br label %4293

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

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

4294:                                             ; preds = %4293
  br label %4295

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

4296:                                             ; No predecessors!
  br label %4297

4297:                                             ; preds = %4296
  br label %4298

4298:                                             ; preds = %4297, %4240
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  call void @llvm.lifetime.end.p0(i64 40, ptr %64) #11
  store i32 0, ptr %12, align 4
  br label %4301

4301:                                             ; preds = %4300, %2318
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #11
  br label %4302

4302:                                             ; preds = %4301, %2306
  call void @llvm.lifetime.end.p0(i64 1000, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  br label %4303

4303:                                             ; preds = %4302, %2266
  %4304 = call i32 @s2n_free(ptr noundef %59)
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #11
  br label %4305

4305:                                             ; preds = %4303, %2183
  %4306 = call i32 @s2n_free(ptr noundef %56)
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #11
  br label %4307

4307:                                             ; preds = %4305, %2110
  %4308 = call i32 @s2n_free(ptr noundef %53)
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #11
  br label %4309

4309:                                             ; preds = %4307, %2029
  %4310 = call i32 @s2n_free(ptr noundef %49)
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  %4311 = load i32, ptr %12, align 4
  switch i32 %4311, label %8838 [
    i32 0, label %4312
    i32 1, label %8836
  ]

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

4313:                                             ; preds = %4312
  %4314 = load i32, ptr @test_count, align 4, !tbaa !5
  %4315 = add nsw i32 %4314, 1
  store i32 %4315, ptr @test_count, align 4, !tbaa !5
  %4316 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4316, ptr %94, align 8, !tbaa !9
  %4317 = icmp eq ptr %4316, null
  br i1 %4317, label %4318, label %4371

4318:                                             ; preds = %4313
  br label %4319

4319:                                             ; preds = %4318
  br label %4320

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

4327:                                             ; preds = %4320
  %4328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4329 = call i32 @fileno(ptr noundef %4328) #11
  %4330 = call i32 @isatty(i32 noundef %4329) #11
  %4331 = icmp ne i32 %4330, 0
  br i1 %4331, label %4332, label %4349

4332:                                             ; preds = %4327
  %4333 = load i32, ptr %96, align 4, !tbaa !5
  %4334 = call ptr @__errno_location() #12
  store i32 %4333, ptr %4334, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call ptr @s2n_strerror(i32 noundef %4338, ptr noundef @.str.4)
  %4340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = call ptr @s2n_strerror_debug(i32 noundef %4341, ptr noundef @.str.4)
  %4343 = call ptr @__errno_location() #12
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call ptr @strerror(i32 noundef %4344) #11
  %4346 = call ptr @__errno_location() #12
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  %4348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4335, ptr noundef @.str.2, i32 noundef %4336, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4339, ptr noundef %4342, ptr noundef %4345, i32 noundef %4347) #11
  br label %4366

4349:                                             ; preds = %4327, %4320
  %4350 = load i32, ptr %96, align 4, !tbaa !5
  %4351 = call ptr @__errno_location() #12
  store i32 %4350, ptr %4351, align 4, !tbaa !5
  %4352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror(i32 noundef %4355, ptr noundef @.str.4)
  %4357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call ptr @s2n_strerror_debug(i32 noundef %4358, ptr noundef @.str.4)
  %4360 = call ptr @__errno_location() #12
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call ptr @strerror(i32 noundef %4361) #11
  %4363 = call ptr @__errno_location() #12
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4352, ptr noundef @.str.5, i32 noundef %4353, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4356, ptr noundef %4359, ptr noundef %4362, i32 noundef %4364) #11
  br label %4366

4366:                                             ; preds = %4349, %4332
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4367

4367:                                             ; preds = %4366
  br label %4368

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

4369:                                             ; No predecessors!
  br label %4370

4370:                                             ; preds = %4369
  br label %4371

4371:                                             ; preds = %4370, %4313
  br label %4372

4372:                                             ; preds = %4371
  br label %4373

4373:                                             ; preds = %4372
  %4374 = load ptr, ptr %94, align 8, !tbaa !9
  %4375 = getelementptr inbounds %struct.s2n_connection, ptr %4374, i32 0, i32 23
  store i8 34, ptr %4375, align 4, !tbaa !23
  %4376 = load ptr, ptr %95, align 8, !tbaa !9
  %4377 = load ptr, ptr %94, align 8, !tbaa !9
  %4378 = getelementptr inbounds %struct.s2n_connection, ptr %4377, i32 0, i32 30
  %4379 = load ptr, ptr %4378, align 8, !tbaa !60
  %4380 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4379, i32 0, i32 0
  store ptr %4376, ptr %4380, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %4381 = load ptr, ptr %94, align 8, !tbaa !9
  %4382 = getelementptr inbounds %struct.s2n_connection, ptr %4381, i32 0, i32 30
  %4383 = load ptr, ptr %4382, align 8, !tbaa !60
  %4384 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4383, i32 0, i32 2
  store ptr %4384, ptr %97, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  %4385 = load ptr, ptr %94, align 8, !tbaa !9
  %4386 = getelementptr inbounds %struct.s2n_connection, ptr %4385, i32 0, i32 30
  %4387 = load ptr, ptr %4386, align 8, !tbaa !60
  %4388 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4387, i32 0, i32 6
  %4389 = getelementptr inbounds [16 x i8], ptr %4388, i64 0, i64 0
  store ptr %4389, ptr %98, align 8, !tbaa !9
  br label %4390

4390:                                             ; preds = %4373
  %4391 = load i32, ptr @test_count, align 4, !tbaa !5
  %4392 = add nsw i32 %4391, 1
  store i32 %4392, ptr @test_count, align 4, !tbaa !5
  %4393 = load ptr, ptr %95, align 8, !tbaa !9
  %4394 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4393, i32 0, i32 6
  %4395 = load ptr, ptr %4394, align 8, !tbaa !48
  %4396 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4395, i32 0, i32 0
  %4397 = load ptr, ptr %4396, align 8, !tbaa !50
  %4398 = getelementptr inbounds %struct.s2n_cipher, ptr %4397, i32 0, i32 4
  %4399 = load ptr, ptr %4398, align 8, !tbaa !52
  %4400 = load ptr, ptr %97, align 8, !tbaa !9
  %4401 = call i32 %4399(ptr noundef %4400)
  %4402 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4401, ptr %4402, align 4
  %4403 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %4404 = load i32, ptr %4403, align 4
  %4405 = call zeroext i1 @s2n_result_is_ok(i32 %4404)
  br i1 %4405, label %4459, label %4406

4406:                                             ; preds = %4390
  br label %4407

4407:                                             ; preds = %4406
  br label %4408

4408:                                             ; preds = %4407
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4409 = call ptr @__errno_location() #12
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  store i32 %4410, ptr %100, align 4, !tbaa !5
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = call i32 @s2n_print_stacktrace(ptr noundef %4411)
  %4413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4414 = trunc i8 %4413 to i1
  br i1 %4414, label %4415, label %4437

4415:                                             ; preds = %4408
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4417 = call i32 @fileno(ptr noundef %4416) #11
  %4418 = call i32 @isatty(i32 noundef %4417) #11
  %4419 = icmp ne i32 %4418, 0
  br i1 %4419, label %4420, label %4437

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

4437:                                             ; preds = %4415, %4408
  %4438 = load i32, ptr %100, align 4, !tbaa !5
  %4439 = call ptr @__errno_location() #12
  store i32 %4438, ptr %4439, align 4, !tbaa !5
  %4440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4441 = load i32, ptr @test_count, align 4, !tbaa !5
  %4442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  %4444 = call ptr @s2n_strerror(i32 noundef %4443, ptr noundef @.str.4)
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror_debug(i32 noundef %4446, ptr noundef @.str.4)
  %4448 = call ptr @__errno_location() #12
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @strerror(i32 noundef %4449) #11
  %4451 = call ptr @__errno_location() #12
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4440, ptr noundef @.str.5, i32 noundef %4441, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4444, ptr noundef %4447, ptr noundef %4450, i32 noundef %4452) #11
  br label %4454

4454:                                             ; preds = %4437, %4420
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

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

4457:                                             ; No predecessors!
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

4459:                                             ; preds = %4458, %4390
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460
  call void @llvm.lifetime.start.p0(i64 24, ptr %101) #11
  call void @llvm.memset.p0.i64(ptr align 8 %101, i8 0, i64 24, i1 false)
  br label %4462

4462:                                             ; preds = %4461
  %4463 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %101, ptr noundef @.str.26)
  %4464 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  store i32 %4463, ptr %4464, align 4
  %4465 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  %4466 = load i32, ptr %4465, align 4
  %4467 = call zeroext i1 @s2n_result_is_ok(i32 %4466)
  br i1 %4467, label %4469, label %4468

4468:                                             ; preds = %4462
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5182

4469:                                             ; preds = %4462
  br label %4470

4470:                                             ; preds = %4469
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471
  %4473 = load i32, ptr @test_count, align 4, !tbaa !5
  %4474 = add nsw i32 %4473, 1
  store i32 %4474, ptr @test_count, align 4, !tbaa !5
  %4475 = load ptr, ptr %95, align 8, !tbaa !9
  %4476 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4475, i32 0, i32 6
  %4477 = load ptr, ptr %4476, align 8, !tbaa !48
  %4478 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4477, i32 0, i32 0
  %4479 = load ptr, ptr %4478, align 8, !tbaa !50
  %4480 = getelementptr inbounds %struct.s2n_cipher, ptr %4479, i32 0, i32 6
  %4481 = load ptr, ptr %4480, align 8, !tbaa !66
  %4482 = load ptr, ptr %97, align 8, !tbaa !9
  %4483 = call i32 %4481(ptr noundef %4482, ptr noundef %101)
  %4484 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %4483, ptr %4484, align 4
  %4485 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  %4486 = load i32, ptr %4485, align 4
  %4487 = call zeroext i1 @s2n_result_is_ok(i32 %4486)
  br i1 %4487, label %4541, label %4488

4488:                                             ; preds = %4472
  br label %4489

4489:                                             ; preds = %4488
  br label %4490

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

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

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

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

4536:                                             ; preds = %4519, %4502
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %4537

4537:                                             ; preds = %4536
  br label %4538

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

4539:                                             ; No predecessors!
  br label %4540

4540:                                             ; preds = %4539
  br label %4541

4541:                                             ; preds = %4540, %4472
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

4543:                                             ; preds = %4542
  call void @llvm.lifetime.start.p0(i64 24, ptr %105) #11
  call void @llvm.memset.p0.i64(ptr align 8 %105, i8 0, i64 24, i1 false)
  br label %4544

4544:                                             ; preds = %4543
  %4545 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %105, ptr noundef @protected_record_hex)
  %4546 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %4545, ptr %4546, align 4
  %4547 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %4548 = load i32, ptr %4547, align 4
  %4549 = call zeroext i1 @s2n_result_is_ok(i32 %4548)
  br i1 %4549, label %4551, label %4550

4550:                                             ; preds = %4544
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5180

4551:                                             ; preds = %4544
  br label %4552

4552:                                             ; preds = %4551
  br label %4553

4553:                                             ; preds = %4552
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #11
  call void @llvm.memset.p0.i64(ptr align 8 %107, i8 0, i64 24, i1 false)
  br label %4554

4554:                                             ; preds = %4553
  %4555 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %107, ptr noundef @.str.29)
  %4556 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %4555, ptr %4556, align 4
  %4557 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  %4558 = load i32, ptr %4557, align 4
  %4559 = call zeroext i1 @s2n_result_is_ok(i32 %4558)
  br i1 %4559, label %4561, label %4560

4560:                                             ; preds = %4554
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5178

4561:                                             ; preds = %4554
  br label %4562

4562:                                             ; preds = %4561
  br label %4563

4563:                                             ; preds = %4562
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  store i64 0, ptr %109, align 8, !tbaa !15
  br label %4564

4564:                                             ; preds = %4580, %4563
  %4565 = load i64, ptr %109, align 8, !tbaa !15
  %4566 = getelementptr inbounds %struct.s2n_blob, ptr %107, i32 0, i32 1
  %4567 = load i32, ptr %4566, align 8, !tbaa !20
  %4568 = zext i32 %4567 to i64
  %4569 = icmp ult i64 %4565, %4568
  br i1 %4569, label %4571, label %4570

4570:                                             ; preds = %4564
  store i32 452, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  br label %4583

4571:                                             ; preds = %4564
  %4572 = getelementptr inbounds %struct.s2n_blob, ptr %107, i32 0, i32 0
  %4573 = load ptr, ptr %4572, align 8, !tbaa !22
  %4574 = load i64, ptr %109, align 8, !tbaa !15
  %4575 = getelementptr inbounds i8, ptr %4573, i64 %4574
  %4576 = load i8, ptr %4575, align 1, !tbaa !59
  %4577 = load ptr, ptr %98, align 8, !tbaa !9
  %4578 = load i64, ptr %109, align 8, !tbaa !15
  %4579 = getelementptr inbounds i8, ptr %4577, i64 %4578
  store i8 %4576, ptr %4579, align 1, !tbaa !59
  br label %4580

4580:                                             ; preds = %4571
  %4581 = load i64, ptr %109, align 8, !tbaa !15
  %4582 = add i64 %4581, 1
  store i64 %4582, ptr %109, align 8, !tbaa !15
  br label %4564, !llvm.loop !67

4583:                                             ; preds = %4570
  call void @llvm.lifetime.start.p0(i64 24, ptr %110) #11
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 24, i1 false)
  br label %4584

4584:                                             ; preds = %4583
  %4585 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %110, ptr noundef @plaintext_record_hex)
  %4586 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %4585, ptr %4586, align 4
  %4587 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %4588 = load i32, ptr %4587, align 4
  %4589 = call zeroext i1 @s2n_result_is_ok(i32 %4588)
  br i1 %4589, label %4591, label %4590

4590:                                             ; preds = %4584
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5176

4591:                                             ; preds = %4584
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  call void @llvm.lifetime.start.p0(i64 24, ptr %112) #11
  %4594 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 0
  %4595 = getelementptr inbounds %struct.s2n_blob, ptr %110, i32 0, i32 0
  %4596 = load ptr, ptr %4595, align 8, !tbaa !22
  %4597 = getelementptr inbounds i8, ptr %4596, i64 0
  store ptr %4597, ptr %4594, align 8, !tbaa !22
  %4598 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 1
  %4599 = getelementptr inbounds %struct.s2n_blob, ptr %110, i32 0, i32 1
  %4600 = load i32, ptr %4599, align 8, !tbaa !20
  %4601 = sub i32 %4600, 1
  store i32 %4601, ptr %4598, align 8, !tbaa !20
  %4602 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 2
  store i32 0, ptr %4602, align 4, !tbaa !69
  %4603 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 3
  %4604 = load i8, ptr %4603, align 8
  %4605 = and i8 %4604, -2
  %4606 = or i8 %4605, 0
  store i8 %4606, ptr %4603, align 8
  br label %4607

4607:                                             ; preds = %4593
  %4608 = load i32, ptr @test_count, align 4, !tbaa !5
  %4609 = add nsw i32 %4608, 1
  store i32 %4609, ptr @test_count, align 4, !tbaa !5
  %4610 = load ptr, ptr %94, align 8, !tbaa !9
  %4611 = call i32 @s2n_record_write(ptr noundef %4610, i8 noundef zeroext 22, ptr noundef %112)
  %4612 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  store i32 %4611, ptr %4612, align 4
  %4613 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  %4614 = load i32, ptr %4613, align 4
  %4615 = call zeroext i1 @s2n_result_is_ok(i32 %4614)
  br i1 %4615, label %4669, label %4616

4616:                                             ; preds = %4607
  br label %4617

4617:                                             ; preds = %4616
  br label %4618

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

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

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

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

4664:                                             ; preds = %4647, %4630
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4665

4665:                                             ; preds = %4664
  br label %4666

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

4667:                                             ; No predecessors!
  br label %4668

4668:                                             ; preds = %4667
  br label %4669

4669:                                             ; preds = %4668, %4607
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  %4673 = load i32, ptr @test_count, align 4, !tbaa !5
  %4674 = add nsw i32 %4673, 1
  store i32 %4674, ptr @test_count, align 4, !tbaa !5
  %4675 = load ptr, ptr %94, align 8, !tbaa !9
  %4676 = getelementptr inbounds %struct.s2n_connection, ptr %4675, i32 0, i32 41
  %4677 = getelementptr inbounds %struct.s2n_stuffer, ptr %4676, i32 0, i32 0
  %4678 = getelementptr inbounds %struct.s2n_blob, ptr %4677, i32 0, i32 0
  %4679 = load ptr, ptr %4678, align 8, !tbaa !70
  %4680 = getelementptr inbounds i8, ptr %4679, i64 0
  %4681 = load i8, ptr %4680, align 1, !tbaa !59
  %4682 = zext i8 %4681 to i32
  %4683 = icmp eq i32 %4682, 23
  br i1 %4683, label %4737, label %4684

4684:                                             ; preds = %4672
  br label %4685

4685:                                             ; preds = %4684
  br label %4686

4686:                                             ; preds = %4685
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4687 = call ptr @__errno_location() #12
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  store i32 %4688, ptr %115, align 4, !tbaa !5
  %4689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4690 = call i32 @s2n_print_stacktrace(ptr noundef %4689)
  %4691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4692 = trunc i8 %4691 to i1
  br i1 %4692, label %4693, label %4715

4693:                                             ; preds = %4686
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = call i32 @fileno(ptr noundef %4694) #11
  %4696 = call i32 @isatty(i32 noundef %4695) #11
  %4697 = icmp ne i32 %4696, 0
  br i1 %4697, label %4698, label %4715

4698:                                             ; preds = %4693
  %4699 = load i32, ptr %115, align 4, !tbaa !5
  %4700 = call ptr @__errno_location() #12
  store i32 %4699, ptr %4700, align 4, !tbaa !5
  %4701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4702 = load i32, ptr @test_count, align 4, !tbaa !5
  %4703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call ptr @s2n_strerror(i32 noundef %4704, ptr noundef @.str.4)
  %4706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror_debug(i32 noundef %4707, ptr noundef @.str.4)
  %4709 = call ptr @__errno_location() #12
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  %4711 = call ptr @strerror(i32 noundef %4710) #11
  %4712 = call ptr @__errno_location() #12
  %4713 = load i32, ptr %4712, align 4, !tbaa !5
  %4714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4701, ptr noundef @.str.2, i32 noundef %4702, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 251, ptr noundef %4705, ptr noundef %4708, ptr noundef %4711, i32 noundef %4713) #11
  br label %4732

4715:                                             ; preds = %4693, %4686
  %4716 = load i32, ptr %115, align 4, !tbaa !5
  %4717 = call ptr @__errno_location() #12
  store i32 %4716, ptr %4717, align 4, !tbaa !5
  %4718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4719 = load i32, ptr @test_count, align 4, !tbaa !5
  %4720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call ptr @s2n_strerror(i32 noundef %4721, ptr noundef @.str.4)
  %4723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @s2n_strerror_debug(i32 noundef %4724, ptr noundef @.str.4)
  %4726 = call ptr @__errno_location() #12
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call ptr @strerror(i32 noundef %4727) #11
  %4729 = call ptr @__errno_location() #12
  %4730 = load i32, ptr %4729, align 4, !tbaa !5
  %4731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4718, ptr noundef @.str.5, i32 noundef %4719, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 251, ptr noundef %4722, ptr noundef %4725, ptr noundef %4728, i32 noundef %4730) #11
  br label %4732

4732:                                             ; preds = %4715, %4698
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

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

4735:                                             ; No predecessors!
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

4737:                                             ; preds = %4736, %4672
  br label %4738

4738:                                             ; preds = %4737
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = add nsw i32 %4741, 1
  store i32 %4742, ptr @test_count, align 4, !tbaa !5
  %4743 = load ptr, ptr %94, align 8, !tbaa !9
  %4744 = getelementptr inbounds %struct.s2n_connection, ptr %4743, i32 0, i32 41
  %4745 = getelementptr inbounds %struct.s2n_stuffer, ptr %4744, i32 0, i32 0
  %4746 = getelementptr inbounds %struct.s2n_blob, ptr %4745, i32 0, i32 0
  %4747 = load ptr, ptr %4746, align 8, !tbaa !70
  %4748 = getelementptr inbounds i8, ptr %4747, i64 1
  %4749 = load i8, ptr %4748, align 1, !tbaa !59
  %4750 = zext i8 %4749 to i32
  %4751 = icmp eq i32 %4750, 3
  br i1 %4751, label %4805, label %4752

4752:                                             ; preds = %4740
  br label %4753

4753:                                             ; preds = %4752
  br label %4754

4754:                                             ; preds = %4753
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4755 = call ptr @__errno_location() #12
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  store i32 %4756, ptr %116, align 4, !tbaa !5
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = call i32 @s2n_print_stacktrace(ptr noundef %4757)
  %4759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4760 = trunc i8 %4759 to i1
  br i1 %4760, label %4761, label %4783

4761:                                             ; preds = %4754
  %4762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4763 = call i32 @fileno(ptr noundef %4762) #11
  %4764 = call i32 @isatty(i32 noundef %4763) #11
  %4765 = icmp ne i32 %4764, 0
  br i1 %4765, label %4766, label %4783

4766:                                             ; preds = %4761
  %4767 = load i32, ptr %116, align 4, !tbaa !5
  %4768 = call ptr @__errno_location() #12
  store i32 %4767, ptr %4768, align 4, !tbaa !5
  %4769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4770 = load i32, ptr @test_count, align 4, !tbaa !5
  %4771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call ptr @s2n_strerror(i32 noundef %4772, ptr noundef @.str.4)
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror_debug(i32 noundef %4775, ptr noundef @.str.4)
  %4777 = call ptr @__errno_location() #12
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @strerror(i32 noundef %4778) #11
  %4780 = call ptr @__errno_location() #12
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4769, ptr noundef @.str.2, i32 noundef %4770, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4773, ptr noundef %4776, ptr noundef %4779, i32 noundef %4781) #11
  br label %4800

4783:                                             ; preds = %4761, %4754
  %4784 = load i32, ptr %116, align 4, !tbaa !5
  %4785 = call ptr @__errno_location() #12
  store i32 %4784, ptr %4785, align 4, !tbaa !5
  %4786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4787 = load i32, ptr @test_count, align 4, !tbaa !5
  %4788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4789 = load i32, ptr %4788, align 4, !tbaa !5
  %4790 = call ptr @s2n_strerror(i32 noundef %4789, ptr noundef @.str.4)
  %4791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  %4793 = call ptr @s2n_strerror_debug(i32 noundef %4792, ptr noundef @.str.4)
  %4794 = call ptr @__errno_location() #12
  %4795 = load i32, ptr %4794, align 4, !tbaa !5
  %4796 = call ptr @strerror(i32 noundef %4795) #11
  %4797 = call ptr @__errno_location() #12
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  %4799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4786, ptr noundef @.str.5, i32 noundef %4787, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4790, ptr noundef %4793, ptr noundef %4796, i32 noundef %4798) #11
  br label %4800

4800:                                             ; preds = %4783, %4766
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4801

4801:                                             ; preds = %4800
  br label %4802

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

4803:                                             ; No predecessors!
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804, %4740
  br label %4806

4806:                                             ; preds = %4805
  br label %4807

4807:                                             ; preds = %4806
  br label %4808

4808:                                             ; preds = %4807
  %4809 = load i32, ptr @test_count, align 4, !tbaa !5
  %4810 = add nsw i32 %4809, 1
  store i32 %4810, ptr @test_count, align 4, !tbaa !5
  %4811 = load ptr, ptr %94, align 8, !tbaa !9
  %4812 = getelementptr inbounds %struct.s2n_connection, ptr %4811, i32 0, i32 41
  %4813 = getelementptr inbounds %struct.s2n_stuffer, ptr %4812, i32 0, i32 0
  %4814 = getelementptr inbounds %struct.s2n_blob, ptr %4813, i32 0, i32 0
  %4815 = load ptr, ptr %4814, align 8, !tbaa !70
  %4816 = getelementptr inbounds i8, ptr %4815, i64 2
  %4817 = load i8, ptr %4816, align 1, !tbaa !59
  %4818 = zext i8 %4817 to i32
  %4819 = icmp eq i32 %4818, 3
  br i1 %4819, label %4873, label %4820

4820:                                             ; preds = %4808
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4823 = call ptr @__errno_location() #12
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  store i32 %4824, ptr %117, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = call i32 @s2n_print_stacktrace(ptr noundef %4825)
  %4827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4828 = trunc i8 %4827 to i1
  br i1 %4828, label %4829, label %4851

4829:                                             ; preds = %4822
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = call i32 @fileno(ptr noundef %4830) #11
  %4832 = call i32 @isatty(i32 noundef %4831) #11
  %4833 = icmp ne i32 %4832, 0
  br i1 %4833, label %4834, label %4851

4834:                                             ; preds = %4829
  %4835 = load i32, ptr %117, align 4, !tbaa !5
  %4836 = call ptr @__errno_location() #12
  store i32 %4835, ptr %4836, align 4, !tbaa !5
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = load i32, ptr @test_count, align 4, !tbaa !5
  %4839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror(i32 noundef %4840, ptr noundef @.str.4)
  %4842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror_debug(i32 noundef %4843, ptr noundef @.str.4)
  %4845 = call ptr @__errno_location() #12
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @strerror(i32 noundef %4846) #11
  %4848 = call ptr @__errno_location() #12
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4837, ptr noundef @.str.2, i32 noundef %4838, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4841, ptr noundef %4844, ptr noundef %4847, i32 noundef %4849) #11
  br label %4868

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

4868:                                             ; preds = %4851, %4834
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4869

4869:                                             ; preds = %4868
  br label %4870

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

4871:                                             ; No predecessors!
  br label %4872

4872:                                             ; preds = %4871
  br label %4873

4873:                                             ; preds = %4872, %4808
  br label %4874

4874:                                             ; preds = %4873
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = add nsw i32 %4877, 1
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = load ptr, ptr %94, align 8, !tbaa !9
  %4880 = getelementptr inbounds %struct.s2n_connection, ptr %4879, i32 0, i32 41
  %4881 = getelementptr inbounds %struct.s2n_stuffer, ptr %4880, i32 0, i32 0
  %4882 = getelementptr inbounds %struct.s2n_blob, ptr %4881, i32 0, i32 0
  %4883 = load ptr, ptr %4882, align 8, !tbaa !70
  %4884 = getelementptr inbounds i8, ptr %4883, i64 3
  %4885 = load i8, ptr %4884, align 1, !tbaa !59
  %4886 = zext i8 %4885 to i32
  %4887 = shl i32 %4886, 8
  %4888 = load ptr, ptr %94, align 8, !tbaa !9
  %4889 = getelementptr inbounds %struct.s2n_connection, ptr %4888, i32 0, i32 41
  %4890 = getelementptr inbounds %struct.s2n_stuffer, ptr %4889, i32 0, i32 0
  %4891 = getelementptr inbounds %struct.s2n_blob, ptr %4890, i32 0, i32 0
  %4892 = load ptr, ptr %4891, align 8, !tbaa !70
  %4893 = getelementptr inbounds i8, ptr %4892, i64 4
  %4894 = load i8, ptr %4893, align 1, !tbaa !59
  %4895 = zext i8 %4894 to i32
  %4896 = add nsw i32 %4887, %4895
  %4897 = getelementptr inbounds %struct.s2n_blob, ptr %105, i32 0, i32 1
  %4898 = load i32, ptr %4897, align 8, !tbaa !20
  %4899 = icmp eq i32 %4896, %4898
  br i1 %4899, label %4953, label %4900

4900:                                             ; preds = %4876
  br label %4901

4901:                                             ; preds = %4900
  br label %4902

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

4909:                                             ; preds = %4902
  %4910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4911 = call i32 @fileno(ptr noundef %4910) #11
  %4912 = call i32 @isatty(i32 noundef %4911) #11
  %4913 = icmp ne i32 %4912, 0
  br i1 %4913, label %4914, label %4931

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

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

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

4949:                                             ; preds = %4948
  br label %4950

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

4951:                                             ; No predecessors!
  br label %4952

4952:                                             ; preds = %4951
  br label %4953

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

4954:                                             ; preds = %4953
  br label %4955

4955:                                             ; preds = %4954
  call void @llvm.lifetime.start.p0(i64 24, ptr %119) #11
  %4956 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 0
  %4957 = load ptr, ptr %94, align 8, !tbaa !9
  %4958 = getelementptr inbounds %struct.s2n_connection, ptr %4957, i32 0, i32 41
  %4959 = getelementptr inbounds %struct.s2n_stuffer, ptr %4958, i32 0, i32 0
  %4960 = getelementptr inbounds %struct.s2n_blob, ptr %4959, i32 0, i32 0
  %4961 = load ptr, ptr %4960, align 8, !tbaa !70
  %4962 = getelementptr inbounds i8, ptr %4961, i64 5
  store ptr %4962, ptr %4956, align 8, !tbaa !22
  %4963 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 1
  %4964 = getelementptr inbounds %struct.s2n_blob, ptr %105, i32 0, i32 1
  %4965 = load i32, ptr %4964, align 8, !tbaa !20
  store i32 %4965, ptr %4963, align 8, !tbaa !20
  %4966 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 2
  store i32 0, ptr %4966, align 4, !tbaa !69
  %4967 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 3
  %4968 = load i8, ptr %4967, align 8
  %4969 = and i8 %4968, -2
  %4970 = or i8 %4969, 0
  store i8 %4970, ptr %4967, align 8
  br label %4971

4971:                                             ; preds = %4955
  br label %4972

4972:                                             ; preds = %4971
  %4973 = load i32, ptr @test_count, align 4, !tbaa !5
  %4974 = add nsw i32 %4973, 1
  store i32 %4974, ptr @test_count, align 4, !tbaa !5
  %4975 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 1
  %4976 = load i32, ptr %4975, align 8, !tbaa !20
  %4977 = getelementptr inbounds %struct.s2n_blob, ptr %105, i32 0, i32 1
  %4978 = load i32, ptr %4977, align 8, !tbaa !20
  %4979 = icmp eq i32 %4976, %4978
  br i1 %4979, label %5033, label %4980

4980:                                             ; preds = %4972
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

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

4989:                                             ; preds = %4982
  %4990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4991 = call i32 @fileno(ptr noundef %4990) #11
  %4992 = call i32 @isatty(i32 noundef %4991) #11
  %4993 = icmp ne i32 %4992, 0
  br i1 %4993, label %4994, label %5011

4994:                                             ; preds = %4989
  %4995 = load i32, ptr %120, align 4, !tbaa !5
  %4996 = call ptr @__errno_location() #12
  store i32 %4995, ptr %4996, align 4, !tbaa !5
  %4997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror(i32 noundef %5000, ptr noundef @.str.4)
  %5002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef @.str.4)
  %5005 = call ptr @__errno_location() #12
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @strerror(i32 noundef %5006) #11
  %5008 = call ptr @__errno_location() #12
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4997, ptr noundef @.str.2, i32 noundef %4998, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 264, ptr noundef %5001, ptr noundef %5004, ptr noundef %5007, i32 noundef %5009) #11
  br label %5028

5011:                                             ; preds = %4989, %4982
  %5012 = load i32, ptr %120, align 4, !tbaa !5
  %5013 = call ptr @__errno_location() #12
  store i32 %5012, ptr %5013, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = load i32, ptr @test_count, align 4, !tbaa !5
  %5016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror(i32 noundef %5017, ptr noundef @.str.4)
  %5019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @s2n_strerror_debug(i32 noundef %5020, ptr noundef @.str.4)
  %5022 = call ptr @__errno_location() #12
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #11
  %5025 = call ptr @__errno_location() #12
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5014, ptr noundef @.str.5, i32 noundef %5015, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 264, ptr noundef %5018, ptr noundef %5021, ptr noundef %5024, i32 noundef %5026) #11
  br label %5028

5028:                                             ; preds = %5011, %4994
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

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

5031:                                             ; No predecessors!
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032, %4972
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

5036:                                             ; preds = %5035
  %5037 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 1
  %5038 = load i32, ptr %5037, align 8, !tbaa !20
  %5039 = icmp ne i32 %5038, 0
  br i1 %5039, label %5040, label %5109

5040:                                             ; preds = %5036
  br label %5041

5041:                                             ; preds = %5040
  %5042 = load i32, ptr @test_count, align 4, !tbaa !5
  %5043 = add nsw i32 %5042, 1
  store i32 %5043, ptr @test_count, align 4, !tbaa !5
  %5044 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 0
  %5045 = load ptr, ptr %5044, align 8, !tbaa !22
  %5046 = getelementptr inbounds %struct.s2n_blob, ptr %105, i32 0, i32 0
  %5047 = load ptr, ptr %5046, align 8, !tbaa !22
  %5048 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 1
  %5049 = load i32, ptr %5048, align 8, !tbaa !20
  %5050 = zext i32 %5049 to i64
  %5051 = call i32 @memcmp(ptr noundef %5045, ptr noundef %5047, i64 noundef %5050) #14
  %5052 = icmp eq i32 %5051, 0
  br i1 %5052, label %5106, label %5053

5053:                                             ; preds = %5041
  br label %5054

5054:                                             ; preds = %5053
  br label %5055

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

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

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

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

5101:                                             ; preds = %5084, %5067
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %5102

5102:                                             ; preds = %5101
  br label %5103

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

5104:                                             ; No predecessors!
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

5106:                                             ; preds = %5105, %5041
  br label %5107

5107:                                             ; preds = %5106
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

5109:                                             ; preds = %5108, %5036
  br label %5110

5110:                                             ; preds = %5109
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113
  %5115 = load i32, ptr @test_count, align 4, !tbaa !5
  %5116 = add nsw i32 %5115, 1
  store i32 %5116, ptr @test_count, align 4, !tbaa !5
  %5117 = load ptr, ptr %94, align 8, !tbaa !9
  %5118 = call i32 @s2n_connection_free(ptr noundef %5117)
  %5119 = icmp eq i32 %5118, -1
  br i1 %5119, label %5120, label %5173

5120:                                             ; preds = %5114
  br label %5121

5121:                                             ; preds = %5120
  br label %5122

5122:                                             ; preds = %5121
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %5123 = call ptr @__errno_location() #12
  %5124 = load i32, ptr %5123, align 4, !tbaa !5
  store i32 %5124, ptr %122, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = call i32 @s2n_print_stacktrace(ptr noundef %5125)
  %5127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5128 = trunc i8 %5127 to i1
  br i1 %5128, label %5129, label %5151

5129:                                             ; preds = %5122
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = call i32 @fileno(ptr noundef %5130) #11
  %5132 = call i32 @isatty(i32 noundef %5131) #11
  %5133 = icmp ne i32 %5132, 0
  br i1 %5133, label %5134, label %5151

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

5151:                                             ; preds = %5129, %5122
  %5152 = load i32, ptr %122, align 4, !tbaa !5
  %5153 = call ptr @__errno_location() #12
  store i32 %5152, ptr %5153, align 4, !tbaa !5
  %5154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5155 = load i32, ptr @test_count, align 4, !tbaa !5
  %5156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5157 = load i32, ptr %5156, align 4, !tbaa !5
  %5158 = call ptr @s2n_strerror(i32 noundef %5157, ptr noundef @.str.4)
  %5159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5160 = load i32, ptr %5159, align 4, !tbaa !5
  %5161 = call ptr @s2n_strerror_debug(i32 noundef %5160, ptr noundef @.str.4)
  %5162 = call ptr @__errno_location() #12
  %5163 = load i32, ptr %5162, align 4, !tbaa !5
  %5164 = call ptr @strerror(i32 noundef %5163) #11
  %5165 = call ptr @__errno_location() #12
  %5166 = load i32, ptr %5165, align 4, !tbaa !5
  %5167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5154, ptr noundef @.str.5, i32 noundef %5155, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 266, ptr noundef %5158, ptr noundef %5161, ptr noundef %5164, i32 noundef %5166) #11
  br label %5168

5168:                                             ; preds = %5151, %5134
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %5169

5169:                                             ; preds = %5168
  br label %5170

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

5171:                                             ; No predecessors!
  br label %5172

5172:                                             ; preds = %5171
  br label %5173

5173:                                             ; preds = %5172, %5114
  br label %5174

5174:                                             ; preds = %5173
  br label %5175

5175:                                             ; preds = %5174
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %112) #11
  store i32 0, ptr %12, align 4
  br label %5176

5176:                                             ; preds = %5175, %4590
  %5177 = call i32 @s2n_free(ptr noundef %110)
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #11
  br label %5178

5178:                                             ; preds = %5176, %4560
  %5179 = call i32 @s2n_free(ptr noundef %107)
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #11
  br label %5180

5180:                                             ; preds = %5178, %4550
  %5181 = call i32 @s2n_free(ptr noundef %105)
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #11
  br label %5182

5182:                                             ; preds = %5180, %4468
  %5183 = call i32 @s2n_free(ptr noundef %101)
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #11
  %5184 = load i32, ptr %12, align 4
  switch i32 %5184, label %8838 [
    i32 0, label %5185
    i32 1, label %8836
  ]

5185:                                             ; preds = %5182
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #11
  store ptr null, ptr %123, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %124, align 8, !tbaa !9
  br label %5186

5186:                                             ; preds = %5185
  %5187 = load i32, ptr @test_count, align 4, !tbaa !5
  %5188 = add nsw i32 %5187, 1
  store i32 %5188, ptr @test_count, align 4, !tbaa !5
  %5189 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5189, ptr %123, align 8, !tbaa !9
  %5190 = icmp eq ptr %5189, null
  br i1 %5190, label %5191, label %5244

5191:                                             ; preds = %5186
  br label %5192

5192:                                             ; preds = %5191
  br label %5193

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

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

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

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

5239:                                             ; preds = %5222, %5205
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %5240

5240:                                             ; preds = %5239
  br label %5241

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

5242:                                             ; No predecessors!
  br label %5243

5243:                                             ; preds = %5242
  br label %5244

5244:                                             ; preds = %5243, %5186
  br label %5245

5245:                                             ; preds = %5244
  br label %5246

5246:                                             ; preds = %5245
  %5247 = load ptr, ptr %123, align 8, !tbaa !9
  %5248 = getelementptr inbounds %struct.s2n_connection, ptr %5247, i32 0, i32 23
  store i8 34, ptr %5248, align 4, !tbaa !23
  %5249 = load ptr, ptr %124, align 8, !tbaa !9
  %5250 = load ptr, ptr %123, align 8, !tbaa !9
  %5251 = getelementptr inbounds %struct.s2n_connection, ptr %5250, i32 0, i32 30
  %5252 = load ptr, ptr %5251, align 8, !tbaa !60
  %5253 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5252, i32 0, i32 0
  store ptr %5249, ptr %5253, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #11
  %5254 = load ptr, ptr %123, align 8, !tbaa !9
  %5255 = getelementptr inbounds %struct.s2n_connection, ptr %5254, i32 0, i32 30
  %5256 = load ptr, ptr %5255, align 8, !tbaa !60
  %5257 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5256, i32 0, i32 2
  store ptr %5257, ptr %126, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #11
  %5258 = load ptr, ptr %123, align 8, !tbaa !9
  %5259 = getelementptr inbounds %struct.s2n_connection, ptr %5258, i32 0, i32 30
  %5260 = load ptr, ptr %5259, align 8, !tbaa !60
  %5261 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5260, i32 0, i32 6
  %5262 = getelementptr inbounds [16 x i8], ptr %5261, i64 0, i64 0
  store ptr %5262, ptr %127, align 8, !tbaa !9
  br label %5263

5263:                                             ; preds = %5246
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = add nsw i32 %5264, 1
  store i32 %5265, ptr @test_count, align 4, !tbaa !5
  %5266 = load ptr, ptr %124, align 8, !tbaa !9
  %5267 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5266, i32 0, i32 6
  %5268 = load ptr, ptr %5267, align 8, !tbaa !48
  %5269 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5268, i32 0, i32 0
  %5270 = load ptr, ptr %5269, align 8, !tbaa !50
  %5271 = getelementptr inbounds %struct.s2n_cipher, ptr %5270, i32 0, i32 4
  %5272 = load ptr, ptr %5271, align 8, !tbaa !52
  %5273 = load ptr, ptr %126, align 8, !tbaa !9
  %5274 = call i32 %5272(ptr noundef %5273)
  %5275 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  store i32 %5274, ptr %5275, align 4
  %5276 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  %5277 = load i32, ptr %5276, align 4
  %5278 = call zeroext i1 @s2n_result_is_ok(i32 %5277)
  br i1 %5278, label %5332, label %5279

5279:                                             ; preds = %5263
  br label %5280

5280:                                             ; preds = %5279
  br label %5281

5281:                                             ; preds = %5280
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5282 = call ptr @__errno_location() #12
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  store i32 %5283, ptr %129, align 4, !tbaa !5
  %5284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5285 = call i32 @s2n_print_stacktrace(ptr noundef %5284)
  %5286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5287 = trunc i8 %5286 to i1
  br i1 %5287, label %5288, label %5310

5288:                                             ; preds = %5281
  %5289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5290 = call i32 @fileno(ptr noundef %5289) #11
  %5291 = call i32 @isatty(i32 noundef %5290) #11
  %5292 = icmp ne i32 %5291, 0
  br i1 %5292, label %5293, label %5310

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

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

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

5328:                                             ; preds = %5327
  br label %5329

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

5330:                                             ; No predecessors!
  br label %5331

5331:                                             ; preds = %5330
  br label %5332

5332:                                             ; preds = %5331, %5263
  br label %5333

5333:                                             ; preds = %5332
  br label %5334

5334:                                             ; preds = %5333
  call void @llvm.lifetime.start.p0(i64 24, ptr %130) #11
  call void @llvm.memset.p0.i64(ptr align 8 %130, i8 0, i64 24, i1 false)
  br label %5335

5335:                                             ; preds = %5334
  %5336 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %130, ptr noundef @.str.26)
  %5337 = getelementptr inbounds %struct.s2n_result, ptr %131, i32 0, i32 0
  store i32 %5336, ptr %5337, align 4
  %5338 = getelementptr inbounds %struct.s2n_result, ptr %131, i32 0, i32 0
  %5339 = load i32, ptr %5338, align 4
  %5340 = call zeroext i1 @s2n_result_is_ok(i32 %5339)
  br i1 %5340, label %5342, label %5341

5341:                                             ; preds = %5335
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6032

5342:                                             ; preds = %5335
  br label %5343

5343:                                             ; preds = %5342
  br label %5344

5344:                                             ; preds = %5343
  br label %5345

5345:                                             ; preds = %5344
  %5346 = load i32, ptr @test_count, align 4, !tbaa !5
  %5347 = add nsw i32 %5346, 1
  store i32 %5347, ptr @test_count, align 4, !tbaa !5
  %5348 = load ptr, ptr %124, align 8, !tbaa !9
  %5349 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5348, i32 0, i32 6
  %5350 = load ptr, ptr %5349, align 8, !tbaa !48
  %5351 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5350, i32 0, i32 0
  %5352 = load ptr, ptr %5351, align 8, !tbaa !50
  %5353 = getelementptr inbounds %struct.s2n_cipher, ptr %5352, i32 0, i32 6
  %5354 = load ptr, ptr %5353, align 8, !tbaa !66
  %5355 = load ptr, ptr %126, align 8, !tbaa !9
  %5356 = call i32 %5354(ptr noundef %5355, ptr noundef %130)
  %5357 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %5356, ptr %5357, align 4
  %5358 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  %5359 = load i32, ptr %5358, align 4
  %5360 = call zeroext i1 @s2n_result_is_ok(i32 %5359)
  br i1 %5360, label %5414, label %5361

5361:                                             ; preds = %5345
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

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

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

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

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

5409:                                             ; preds = %5392, %5375
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

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

5412:                                             ; No predecessors!
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

5414:                                             ; preds = %5413, %5345
  br label %5415

5415:                                             ; preds = %5414
  br label %5416

5416:                                             ; preds = %5415
  br label %5417

5417:                                             ; preds = %5416
  %5418 = load i32, ptr @test_count, align 4, !tbaa !5
  %5419 = add nsw i32 %5418, 1
  store i32 %5419, ptr @test_count, align 4, !tbaa !5
  %5420 = load ptr, ptr %124, align 8, !tbaa !9
  %5421 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5420, i32 0, i32 6
  %5422 = load ptr, ptr %5421, align 8, !tbaa !48
  %5423 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5422, i32 0, i32 0
  %5424 = load ptr, ptr %5423, align 8, !tbaa !50
  %5425 = getelementptr inbounds %struct.s2n_cipher, ptr %5424, i32 0, i32 5
  %5426 = load ptr, ptr %5425, align 8, !tbaa !54
  %5427 = load ptr, ptr %126, align 8, !tbaa !9
  %5428 = call i32 %5426(ptr noundef %5427, ptr noundef %130)
  %5429 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  store i32 %5428, ptr %5429, align 4
  %5430 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  %5431 = load i32, ptr %5430, align 4
  %5432 = call zeroext i1 @s2n_result_is_ok(i32 %5431)
  br i1 %5432, label %5486, label %5433

5433:                                             ; preds = %5417
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %5436 = call ptr @__errno_location() #12
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  store i32 %5437, ptr %135, align 4, !tbaa !5
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = call i32 @s2n_print_stacktrace(ptr noundef %5438)
  %5440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5441 = trunc i8 %5440 to i1
  br i1 %5441, label %5442, label %5464

5442:                                             ; preds = %5435
  %5443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5444 = call i32 @fileno(ptr noundef %5443) #11
  %5445 = call i32 @isatty(i32 noundef %5444) #11
  %5446 = icmp ne i32 %5445, 0
  br i1 %5446, label %5447, label %5464

5447:                                             ; preds = %5442
  %5448 = load i32, ptr %135, align 4, !tbaa !5
  %5449 = call ptr @__errno_location() #12
  store i32 %5448, ptr %5449, align 4, !tbaa !5
  %5450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5451 = load i32, ptr @test_count, align 4, !tbaa !5
  %5452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5453 = load i32, ptr %5452, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror(i32 noundef %5453, ptr noundef @.str.4)
  %5455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5456 = load i32, ptr %5455, align 4, !tbaa !5
  %5457 = call ptr @s2n_strerror_debug(i32 noundef %5456, ptr noundef @.str.4)
  %5458 = call ptr @__errno_location() #12
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call ptr @strerror(i32 noundef %5459) #11
  %5461 = call ptr @__errno_location() #12
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5450, ptr noundef @.str.2, i32 noundef %5451, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5454, ptr noundef %5457, ptr noundef %5460, i32 noundef %5462) #11
  br label %5481

5464:                                             ; preds = %5442, %5435
  %5465 = load i32, ptr %135, align 4, !tbaa !5
  %5466 = call ptr @__errno_location() #12
  store i32 %5465, ptr %5466, align 4, !tbaa !5
  %5467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5468 = load i32, ptr @test_count, align 4, !tbaa !5
  %5469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5470 = load i32, ptr %5469, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror(i32 noundef %5470, ptr noundef @.str.4)
  %5472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5473 = load i32, ptr %5472, align 4, !tbaa !5
  %5474 = call ptr @s2n_strerror_debug(i32 noundef %5473, ptr noundef @.str.4)
  %5475 = call ptr @__errno_location() #12
  %5476 = load i32, ptr %5475, align 4, !tbaa !5
  %5477 = call ptr @strerror(i32 noundef %5476) #11
  %5478 = call ptr @__errno_location() #12
  %5479 = load i32, ptr %5478, align 4, !tbaa !5
  %5480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5467, ptr noundef @.str.5, i32 noundef %5468, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5471, ptr noundef %5474, ptr noundef %5477, i32 noundef %5479) #11
  br label %5481

5481:                                             ; preds = %5464, %5447
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

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

5484:                                             ; No predecessors!
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485, %5417
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  call void @llvm.lifetime.start.p0(i64 24, ptr %136) #11
  call void @llvm.memset.p0.i64(ptr align 8 %136, i8 0, i64 24, i1 false)
  br label %5489

5489:                                             ; preds = %5488
  %5490 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %136, ptr noundef @.str.29)
  %5491 = getelementptr inbounds %struct.s2n_result, ptr %137, i32 0, i32 0
  store i32 %5490, ptr %5491, align 4
  %5492 = getelementptr inbounds %struct.s2n_result, ptr %137, i32 0, i32 0
  %5493 = load i32, ptr %5492, align 4
  %5494 = call zeroext i1 @s2n_result_is_ok(i32 %5493)
  br i1 %5494, label %5496, label %5495

5495:                                             ; preds = %5489
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6030

5496:                                             ; preds = %5489
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #11
  store i64 0, ptr %138, align 8, !tbaa !15
  br label %5499

5499:                                             ; preds = %5515, %5498
  %5500 = load i64, ptr %138, align 8, !tbaa !15
  %5501 = getelementptr inbounds %struct.s2n_blob, ptr %136, i32 0, i32 1
  %5502 = load i32, ptr %5501, align 8, !tbaa !20
  %5503 = zext i32 %5502 to i64
  %5504 = icmp ult i64 %5500, %5503
  br i1 %5504, label %5506, label %5505

5505:                                             ; preds = %5499
  store i32 537, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  br label %5518

5506:                                             ; preds = %5499
  %5507 = getelementptr inbounds %struct.s2n_blob, ptr %136, i32 0, i32 0
  %5508 = load ptr, ptr %5507, align 8, !tbaa !22
  %5509 = load i64, ptr %138, align 8, !tbaa !15
  %5510 = getelementptr inbounds i8, ptr %5508, i64 %5509
  %5511 = load i8, ptr %5510, align 1, !tbaa !59
  %5512 = load ptr, ptr %127, align 8, !tbaa !9
  %5513 = load i64, ptr %138, align 8, !tbaa !15
  %5514 = getelementptr inbounds i8, ptr %5512, i64 %5513
  store i8 %5511, ptr %5514, align 1, !tbaa !59
  br label %5515

5515:                                             ; preds = %5506
  %5516 = load i64, ptr %138, align 8, !tbaa !15
  %5517 = add i64 %5516, 1
  store i64 %5517, ptr %138, align 8, !tbaa !15
  br label %5499, !llvm.loop !71

5518:                                             ; preds = %5505
  call void @llvm.lifetime.start.p0(i64 24, ptr %139) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %139, ptr align 8 @__const.main.expect_plaintext, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %140) #11
  call void @llvm.memset.p0.i64(ptr align 8 %140, i8 0, i64 24, i1 false)
  br label %5519

5519:                                             ; preds = %5518
  %5520 = load i32, ptr @test_count, align 4, !tbaa !5
  %5521 = add nsw i32 %5520, 1
  store i32 %5521, ptr @test_count, align 4, !tbaa !5
  %5522 = call i32 @s2n_blob_init(ptr noundef %140, ptr noundef @main.hello_data, i32 noundef 11)
  %5523 = icmp eq i32 %5522, -1
  br i1 %5523, label %5524, label %5577

5524:                                             ; preds = %5519
  br label %5525

5525:                                             ; preds = %5524
  br label %5526

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

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

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

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

5572:                                             ; preds = %5555, %5538
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %5573

5573:                                             ; preds = %5572
  br label %5574

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

5575:                                             ; No predecessors!
  br label %5576

5576:                                             ; preds = %5575
  br label %5577

5577:                                             ; preds = %5576, %5519
  br label %5578

5578:                                             ; preds = %5577
  br label %5579

5579:                                             ; preds = %5578
  br label %5580

5580:                                             ; preds = %5579
  %5581 = load i32, ptr @test_count, align 4, !tbaa !5
  %5582 = add nsw i32 %5581, 1
  store i32 %5582, ptr @test_count, align 4, !tbaa !5
  %5583 = load ptr, ptr %123, align 8, !tbaa !9
  %5584 = call i32 @s2n_record_write(ptr noundef %5583, i8 noundef zeroext 22, ptr noundef %140)
  %5585 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %5584, ptr %5585, align 4
  %5586 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  %5587 = load i32, ptr %5586, align 4
  %5588 = call zeroext i1 @s2n_result_is_ok(i32 %5587)
  br i1 %5588, label %5642, label %5589

5589:                                             ; preds = %5580
  br label %5590

5590:                                             ; preds = %5589
  br label %5591

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

5598:                                             ; preds = %5591
  %5599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5600 = call i32 @fileno(ptr noundef %5599) #11
  %5601 = call i32 @isatty(i32 noundef %5600) #11
  %5602 = icmp ne i32 %5601, 0
  br i1 %5602, label %5603, label %5620

5603:                                             ; preds = %5598
  %5604 = load i32, ptr %143, align 4, !tbaa !5
  %5605 = call ptr @__errno_location() #12
  store i32 %5604, ptr %5605, align 4, !tbaa !5
  %5606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5607 = load i32, ptr @test_count, align 4, !tbaa !5
  %5608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5609 = load i32, ptr %5608, align 4, !tbaa !5
  %5610 = call ptr @s2n_strerror(i32 noundef %5609, ptr noundef @.str.4)
  %5611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call ptr @s2n_strerror_debug(i32 noundef %5612, ptr noundef @.str.4)
  %5614 = call ptr @__errno_location() #12
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @strerror(i32 noundef %5615) #11
  %5617 = call ptr @__errno_location() #12
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5606, ptr noundef @.str.2, i32 noundef %5607, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5610, ptr noundef %5613, ptr noundef %5616, i32 noundef %5618) #11
  br label %5637

5620:                                             ; preds = %5598, %5591
  %5621 = load i32, ptr %143, align 4, !tbaa !5
  %5622 = call ptr @__errno_location() #12
  store i32 %5621, ptr %5622, align 4, !tbaa !5
  %5623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5624 = load i32, ptr @test_count, align 4, !tbaa !5
  %5625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5626 = load i32, ptr %5625, align 4, !tbaa !5
  %5627 = call ptr @s2n_strerror(i32 noundef %5626, ptr noundef @.str.4)
  %5628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5629 = load i32, ptr %5628, align 4, !tbaa !5
  %5630 = call ptr @s2n_strerror_debug(i32 noundef %5629, ptr noundef @.str.4)
  %5631 = call ptr @__errno_location() #12
  %5632 = load i32, ptr %5631, align 4, !tbaa !5
  %5633 = call ptr @strerror(i32 noundef %5632) #11
  %5634 = call ptr @__errno_location() #12
  %5635 = load i32, ptr %5634, align 4, !tbaa !5
  %5636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5623, ptr noundef @.str.5, i32 noundef %5624, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5627, ptr noundef %5630, ptr noundef %5633, i32 noundef %5635) #11
  br label %5637

5637:                                             ; preds = %5620, %5603
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %5638

5638:                                             ; preds = %5637
  br label %5639

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

5640:                                             ; No predecessors!
  br label %5641

5641:                                             ; preds = %5640
  br label %5642

5642:                                             ; preds = %5641, %5580
  br label %5643

5643:                                             ; preds = %5642
  br label %5644

5644:                                             ; preds = %5643
  %5645 = load ptr, ptr %123, align 8, !tbaa !9
  %5646 = getelementptr inbounds %struct.s2n_connection, ptr %5645, i32 0, i32 27
  %5647 = load ptr, ptr %5646, align 8, !tbaa !55
  %5648 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5647, i32 0, i32 7
  %5649 = getelementptr inbounds [8 x i8], ptr %5648, i64 0, i64 7
  store i8 0, ptr %5649, align 1, !tbaa !59
  br label %5650

5650:                                             ; preds = %5644
  %5651 = load i32, ptr @test_count, align 4, !tbaa !5
  %5652 = add nsw i32 %5651, 1
  store i32 %5652, ptr @test_count, align 4, !tbaa !5
  %5653 = load ptr, ptr %123, align 8, !tbaa !9
  %5654 = getelementptr inbounds %struct.s2n_connection, ptr %5653, i32 0, i32 40
  %5655 = load ptr, ptr %123, align 8, !tbaa !9
  %5656 = getelementptr inbounds %struct.s2n_connection, ptr %5655, i32 0, i32 41
  %5657 = getelementptr inbounds %struct.s2n_stuffer, ptr %5656, i32 0, i32 0
  %5658 = getelementptr inbounds %struct.s2n_blob, ptr %5657, i32 0, i32 0
  %5659 = load ptr, ptr %5658, align 8, !tbaa !70
  %5660 = getelementptr inbounds i8, ptr %5659, i64 5
  %5661 = getelementptr inbounds %struct.s2n_blob, ptr %140, i32 0, i32 1
  %5662 = load i32, ptr %5661, align 8, !tbaa !20
  %5663 = add i32 %5662, 16
  %5664 = add i32 %5663, 1
  %5665 = call i32 @s2n_stuffer_write_bytes(ptr noundef %5654, ptr noundef %5660, i32 noundef %5664)
  %5666 = icmp eq i32 %5665, -1
  br i1 %5666, label %5667, label %5720

5667:                                             ; preds = %5650
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

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

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

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

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

5715:                                             ; preds = %5698, %5681
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %5716

5716:                                             ; preds = %5715
  br label %5717

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

5718:                                             ; No predecessors!
  br label %5719

5719:                                             ; preds = %5718
  br label %5720

5720:                                             ; preds = %5719, %5650
  br label %5721

5721:                                             ; preds = %5720
  br label %5722

5722:                                             ; preds = %5721
  call void @llvm.lifetime.start.p0(i64 24, ptr %145) #11
  %5723 = getelementptr inbounds %struct.s2n_blob, ptr %145, i32 0, i32 0
  %5724 = load ptr, ptr %123, align 8, !tbaa !9
  %5725 = getelementptr inbounds %struct.s2n_connection, ptr %5724, i32 0, i32 40
  %5726 = getelementptr inbounds %struct.s2n_stuffer, ptr %5725, i32 0, i32 0
  %5727 = getelementptr inbounds %struct.s2n_blob, ptr %5726, i32 0, i32 0
  %5728 = load ptr, ptr %5727, align 8, !tbaa !56
  %5729 = getelementptr inbounds i8, ptr %5728, i64 0
  store ptr %5729, ptr %5723, align 8, !tbaa !22
  %5730 = getelementptr inbounds %struct.s2n_blob, ptr %145, i32 0, i32 1
  %5731 = getelementptr inbounds %struct.s2n_blob, ptr %140, i32 0, i32 1
  %5732 = load i32, ptr %5731, align 8, !tbaa !20
  %5733 = add i32 %5732, 16
  %5734 = add i32 %5733, 1
  store i32 %5734, ptr %5730, align 8, !tbaa !20
  %5735 = getelementptr inbounds %struct.s2n_blob, ptr %145, i32 0, i32 2
  store i32 0, ptr %5735, align 4, !tbaa !69
  %5736 = getelementptr inbounds %struct.s2n_blob, ptr %145, i32 0, i32 3
  %5737 = load i8, ptr %5736, align 8
  %5738 = and i8 %5737, -2
  %5739 = or i8 %5738, 0
  store i8 %5739, ptr %5736, align 8
  br label %5740

5740:                                             ; preds = %5722
  %5741 = load i32, ptr @test_count, align 4, !tbaa !5
  %5742 = add nsw i32 %5741, 1
  store i32 %5742, ptr @test_count, align 4, !tbaa !5
  %5743 = load ptr, ptr %124, align 8, !tbaa !9
  %5744 = load ptr, ptr %123, align 8, !tbaa !9
  %5745 = getelementptr inbounds %struct.s2n_blob, ptr %145, i32 0, i32 1
  %5746 = load i32, ptr %5745, align 8, !tbaa !20
  %5747 = trunc i32 %5746 to i16
  %5748 = getelementptr inbounds %struct.s2n_blob, ptr %136, i32 0, i32 0
  %5749 = load ptr, ptr %5748, align 8, !tbaa !22
  %5750 = load ptr, ptr %123, align 8, !tbaa !9
  %5751 = getelementptr inbounds %struct.s2n_connection, ptr %5750, i32 0, i32 27
  %5752 = load ptr, ptr %5751, align 8, !tbaa !55
  %5753 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5752, i32 0, i32 7
  %5754 = getelementptr inbounds [8 x i8], ptr %5753, i64 0, i64 0
  %5755 = load ptr, ptr %126, align 8, !tbaa !9
  %5756 = call i32 @s2n_record_parse_aead(ptr noundef %5743, ptr noundef %5744, i8 noundef zeroext 0, i16 noundef zeroext %5747, ptr noundef %5749, ptr noundef null, ptr noundef %5754, ptr noundef %5755)
  %5757 = icmp eq i32 %5756, -1
  br i1 %5757, label %5758, label %5811

5758:                                             ; preds = %5740
  br label %5759

5759:                                             ; preds = %5758
  br label %5760

5760:                                             ; preds = %5759
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %5761 = call ptr @__errno_location() #12
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  store i32 %5762, ptr %146, align 4, !tbaa !5
  %5763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5764 = call i32 @s2n_print_stacktrace(ptr noundef %5763)
  %5765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5766 = trunc i8 %5765 to i1
  br i1 %5766, label %5767, label %5789

5767:                                             ; preds = %5760
  %5768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5769 = call i32 @fileno(ptr noundef %5768) #11
  %5770 = call i32 @isatty(i32 noundef %5769) #11
  %5771 = icmp ne i32 %5770, 0
  br i1 %5771, label %5772, label %5789

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

5789:                                             ; preds = %5767, %5760
  %5790 = load i32, ptr %146, align 4, !tbaa !5
  %5791 = call ptr @__errno_location() #12
  store i32 %5790, ptr %5791, align 4, !tbaa !5
  %5792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5793 = load i32, ptr @test_count, align 4, !tbaa !5
  %5794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  %5796 = call ptr @s2n_strerror(i32 noundef %5795, ptr noundef @.str.4)
  %5797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5798 = load i32, ptr %5797, align 4, !tbaa !5
  %5799 = call ptr @s2n_strerror_debug(i32 noundef %5798, ptr noundef @.str.4)
  %5800 = call ptr @__errno_location() #12
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  %5802 = call ptr @strerror(i32 noundef %5801) #11
  %5803 = call ptr @__errno_location() #12
  %5804 = load i32, ptr %5803, align 4, !tbaa !5
  %5805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5792, ptr noundef @.str.5, i32 noundef %5793, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 324, ptr noundef %5796, ptr noundef %5799, ptr noundef %5802, i32 noundef %5804) #11
  br label %5806

5806:                                             ; preds = %5789, %5772
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %5807

5807:                                             ; preds = %5806
  br label %5808

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

5809:                                             ; No predecessors!
  br label %5810

5810:                                             ; preds = %5809
  br label %5811

5811:                                             ; preds = %5810, %5740
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812
  call void @llvm.lifetime.start.p0(i64 24, ptr %147) #11
  %5814 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 0
  %5815 = load ptr, ptr %123, align 8, !tbaa !9
  %5816 = getelementptr inbounds %struct.s2n_connection, ptr %5815, i32 0, i32 40
  %5817 = getelementptr inbounds %struct.s2n_stuffer, ptr %5816, i32 0, i32 0
  %5818 = getelementptr inbounds %struct.s2n_blob, ptr %5817, i32 0, i32 0
  %5819 = load ptr, ptr %5818, align 8, !tbaa !56
  %5820 = getelementptr inbounds i8, ptr %5819, i64 0
  store ptr %5820, ptr %5814, align 8, !tbaa !22
  %5821 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 1
  store i32 11, ptr %5821, align 8, !tbaa !20
  %5822 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 2
  store i32 0, ptr %5822, align 4, !tbaa !69
  %5823 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 3
  %5824 = load i8, ptr %5823, align 8
  %5825 = and i8 %5824, -2
  %5826 = or i8 %5825, 0
  store i8 %5826, ptr %5823, align 8
  br label %5827

5827:                                             ; preds = %5813
  br label %5828

5828:                                             ; preds = %5827
  %5829 = load i32, ptr @test_count, align 4, !tbaa !5
  %5830 = add nsw i32 %5829, 1
  store i32 %5830, ptr @test_count, align 4, !tbaa !5
  %5831 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 1
  %5832 = load i32, ptr %5831, align 8, !tbaa !20
  %5833 = icmp eq i32 %5832, 11
  br i1 %5833, label %5887, label %5834

5834:                                             ; preds = %5828
  br label %5835

5835:                                             ; preds = %5834
  br label %5836

5836:                                             ; preds = %5835
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %5837 = call ptr @__errno_location() #12
  %5838 = load i32, ptr %5837, align 4, !tbaa !5
  store i32 %5838, ptr %148, align 4, !tbaa !5
  %5839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5840 = call i32 @s2n_print_stacktrace(ptr noundef %5839)
  %5841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5842 = trunc i8 %5841 to i1
  br i1 %5842, label %5843, label %5865

5843:                                             ; preds = %5836
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = call i32 @fileno(ptr noundef %5844) #11
  %5846 = call i32 @isatty(i32 noundef %5845) #11
  %5847 = icmp ne i32 %5846, 0
  br i1 %5847, label %5848, label %5865

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

5865:                                             ; preds = %5843, %5836
  %5866 = load i32, ptr %148, align 4, !tbaa !5
  %5867 = call ptr @__errno_location() #12
  store i32 %5866, ptr %5867, align 4, !tbaa !5
  %5868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5869 = load i32, ptr @test_count, align 4, !tbaa !5
  %5870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @s2n_strerror(i32 noundef %5871, ptr noundef @.str.4)
  %5873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @s2n_strerror_debug(i32 noundef %5874, ptr noundef @.str.4)
  %5876 = call ptr @__errno_location() #12
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call ptr @strerror(i32 noundef %5877) #11
  %5879 = call ptr @__errno_location() #12
  %5880 = load i32, ptr %5879, align 4, !tbaa !5
  %5881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5868, ptr noundef @.str.5, i32 noundef %5869, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 332, ptr noundef %5872, ptr noundef %5875, ptr noundef %5878, i32 noundef %5880) #11
  br label %5882

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

5883:                                             ; preds = %5882
  br label %5884

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

5885:                                             ; No predecessors!
  br label %5886

5886:                                             ; preds = %5885
  br label %5887

5887:                                             ; preds = %5886, %5828
  br label %5888

5888:                                             ; preds = %5887
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889
  %5891 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 1
  %5892 = load i32, ptr %5891, align 8, !tbaa !20
  %5893 = icmp ne i32 %5892, 0
  br i1 %5893, label %5894, label %5963

5894:                                             ; preds = %5890
  br label %5895

5895:                                             ; preds = %5894
  %5896 = load i32, ptr @test_count, align 4, !tbaa !5
  %5897 = add nsw i32 %5896, 1
  store i32 %5897, ptr @test_count, align 4, !tbaa !5
  %5898 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 0
  %5899 = load ptr, ptr %5898, align 8, !tbaa !22
  %5900 = getelementptr inbounds %struct.s2n_blob, ptr %139, i32 0, i32 0
  %5901 = load ptr, ptr %5900, align 8, !tbaa !22
  %5902 = getelementptr inbounds %struct.s2n_blob, ptr %147, i32 0, i32 1
  %5903 = load i32, ptr %5902, align 8, !tbaa !20
  %5904 = zext i32 %5903 to i64
  %5905 = call i32 @memcmp(ptr noundef %5899, ptr noundef %5901, i64 noundef %5904) #14
  %5906 = icmp eq i32 %5905, 0
  br i1 %5906, label %5960, label %5907

5907:                                             ; preds = %5895
  br label %5908

5908:                                             ; preds = %5907
  br label %5909

5909:                                             ; preds = %5908
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %5910 = call ptr @__errno_location() #12
  %5911 = load i32, ptr %5910, align 4, !tbaa !5
  store i32 %5911, ptr %149, align 4, !tbaa !5
  %5912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5913 = call i32 @s2n_print_stacktrace(ptr noundef %5912)
  %5914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5915 = trunc i8 %5914 to i1
  br i1 %5915, label %5916, label %5938

5916:                                             ; preds = %5909
  %5917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5918 = call i32 @fileno(ptr noundef %5917) #11
  %5919 = call i32 @isatty(i32 noundef %5918) #11
  %5920 = icmp ne i32 %5919, 0
  br i1 %5920, label %5921, label %5938

5921:                                             ; preds = %5916
  %5922 = load i32, ptr %149, align 4, !tbaa !5
  %5923 = call ptr @__errno_location() #12
  store i32 %5922, ptr %5923, align 4, !tbaa !5
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = load i32, ptr @test_count, align 4, !tbaa !5
  %5926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @s2n_strerror(i32 noundef %5927, ptr noundef @.str.4)
  %5929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @s2n_strerror_debug(i32 noundef %5930, ptr noundef @.str.4)
  %5932 = call ptr @__errno_location() #12
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call ptr @strerror(i32 noundef %5933) #11
  %5935 = call ptr @__errno_location() #12
  %5936 = load i32, ptr %5935, align 4, !tbaa !5
  %5937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5924, ptr noundef @.str.2, i32 noundef %5925, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 332, ptr noundef %5928, ptr noundef %5931, ptr noundef %5934, i32 noundef %5936) #11
  br label %5955

5938:                                             ; preds = %5916, %5909
  %5939 = load i32, ptr %149, align 4, !tbaa !5
  %5940 = call ptr @__errno_location() #12
  store i32 %5939, ptr %5940, align 4, !tbaa !5
  %5941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5942 = load i32, ptr @test_count, align 4, !tbaa !5
  %5943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call ptr @s2n_strerror(i32 noundef %5944, ptr noundef @.str.4)
  %5946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call ptr @s2n_strerror_debug(i32 noundef %5947, ptr noundef @.str.4)
  %5949 = call ptr @__errno_location() #12
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  %5951 = call ptr @strerror(i32 noundef %5950) #11
  %5952 = call ptr @__errno_location() #12
  %5953 = load i32, ptr %5952, align 4, !tbaa !5
  %5954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5941, ptr noundef @.str.5, i32 noundef %5942, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 332, ptr noundef %5945, ptr noundef %5948, ptr noundef %5951, i32 noundef %5953) #11
  br label %5955

5955:                                             ; preds = %5938, %5921
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %5956

5956:                                             ; preds = %5955
  br label %5957

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

5958:                                             ; No predecessors!
  br label %5959

5959:                                             ; preds = %5958
  br label %5960

5960:                                             ; preds = %5959, %5895
  br label %5961

5961:                                             ; preds = %5960
  br label %5962

5962:                                             ; preds = %5961
  br label %5963

5963:                                             ; preds = %5962, %5890
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  br label %5967

5967:                                             ; preds = %5966
  br label %5968

5968:                                             ; preds = %5967
  %5969 = load i32, ptr @test_count, align 4, !tbaa !5
  %5970 = add nsw i32 %5969, 1
  store i32 %5970, ptr @test_count, align 4, !tbaa !5
  %5971 = load ptr, ptr %123, align 8, !tbaa !9
  %5972 = call i32 @s2n_connection_free(ptr noundef %5971)
  %5973 = icmp eq i32 %5972, -1
  br i1 %5973, label %5974, label %6027

5974:                                             ; preds = %5968
  br label %5975

5975:                                             ; preds = %5974
  br label %5976

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

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

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

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

6022:                                             ; preds = %6005, %5988
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %6023

6023:                                             ; preds = %6022
  br label %6024

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

6025:                                             ; No predecessors!
  br label %6026

6026:                                             ; preds = %6025
  br label %6027

6027:                                             ; preds = %6026, %5968
  br label %6028

6028:                                             ; preds = %6027
  br label %6029

6029:                                             ; preds = %6028
  call void @llvm.lifetime.end.p0(i64 24, ptr %147) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %145) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %140) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %139) #11
  store i32 0, ptr %12, align 4
  br label %6030

6030:                                             ; preds = %6029, %5495
  %6031 = call i32 @s2n_free(ptr noundef %136)
  call void @llvm.lifetime.end.p0(i64 24, ptr %136) #11
  br label %6032

6032:                                             ; preds = %6030, %5341
  %6033 = call i32 @s2n_free(ptr noundef %130)
  call void @llvm.lifetime.end.p0(i64 24, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  %6034 = load i32, ptr %12, align 4
  switch i32 %6034, label %8838 [
    i32 0, label %6035
    i32 1, label %8836
  ]

6035:                                             ; preds = %6032
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %151, ptr align 4 @__const.main.modes, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #11
  store i64 0, ptr %152, align 8, !tbaa !15
  br label %6036

6036:                                             ; preds = %8682, %6035
  %6037 = load i64, ptr %152, align 8, !tbaa !15
  %6038 = icmp ult i64 %6037, 2
  br i1 %6038, label %6040, label %6039

6039:                                             ; preds = %6036
  store i32 586, ptr %12, align 4
  br label %8685

6040:                                             ; preds = %6036
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  store ptr null, ptr %153, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #11
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %154, align 8, !tbaa !9
  br label %6041

6041:                                             ; preds = %6040
  %6042 = load i32, ptr @test_count, align 4, !tbaa !5
  %6043 = add nsw i32 %6042, 1
  store i32 %6043, ptr @test_count, align 4, !tbaa !5
  %6044 = load i64, ptr %152, align 8, !tbaa !15
  %6045 = getelementptr inbounds [2 x i32], ptr %151, i64 0, i64 %6044
  %6046 = load i32, ptr %6045, align 4, !tbaa !5
  %6047 = call ptr @s2n_connection_new(i32 noundef %6046)
  store ptr %6047, ptr %153, align 8, !tbaa !9
  %6048 = icmp eq ptr %6047, null
  br i1 %6048, label %6049, label %6102

6049:                                             ; preds = %6041
  br label %6050

6050:                                             ; preds = %6049
  br label %6051

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

6058:                                             ; preds = %6051
  %6059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6060 = call i32 @fileno(ptr noundef %6059) #11
  %6061 = call i32 @isatty(i32 noundef %6060) #11
  %6062 = icmp ne i32 %6061, 0
  br i1 %6062, label %6063, label %6080

6063:                                             ; preds = %6058
  %6064 = load i32, ptr %155, align 4, !tbaa !5
  %6065 = call ptr @__errno_location() #12
  store i32 %6064, ptr %6065, align 4, !tbaa !5
  %6066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6067 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6069, ptr noundef @.str.4)
  %6071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call ptr @s2n_strerror_debug(i32 noundef %6072, ptr noundef @.str.4)
  %6074 = call ptr @__errno_location() #12
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  %6076 = call ptr @strerror(i32 noundef %6075) #11
  %6077 = call ptr @__errno_location() #12
  %6078 = load i32, ptr %6077, align 4, !tbaa !5
  %6079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6066, ptr noundef @.str.2, i32 noundef %6067, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 343, ptr noundef %6070, ptr noundef %6073, ptr noundef %6076, i32 noundef %6078) #11
  br label %6097

6080:                                             ; preds = %6058, %6051
  %6081 = load i32, ptr %155, align 4, !tbaa !5
  %6082 = call ptr @__errno_location() #12
  store i32 %6081, ptr %6082, align 4, !tbaa !5
  %6083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6084 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6086, ptr noundef @.str.4)
  %6088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call ptr @s2n_strerror_debug(i32 noundef %6089, ptr noundef @.str.4)
  %6091 = call ptr @__errno_location() #12
  %6092 = load i32, ptr %6091, align 4, !tbaa !5
  %6093 = call ptr @strerror(i32 noundef %6092) #11
  %6094 = call ptr @__errno_location() #12
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  %6096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6083, ptr noundef @.str.5, i32 noundef %6084, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 343, ptr noundef %6087, ptr noundef %6090, ptr noundef %6093, i32 noundef %6095) #11
  br label %6097

6097:                                             ; preds = %6080, %6063
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

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

6100:                                             ; No predecessors!
  br label %6101

6101:                                             ; preds = %6100
  br label %6102

6102:                                             ; preds = %6101, %6041
  br label %6103

6103:                                             ; preds = %6102
  br label %6104

6104:                                             ; preds = %6103
  %6105 = load ptr, ptr %153, align 8, !tbaa !9
  %6106 = getelementptr inbounds %struct.s2n_connection, ptr %6105, i32 0, i32 23
  store i8 34, ptr %6106, align 4, !tbaa !23
  %6107 = load ptr, ptr %153, align 8, !tbaa !9
  %6108 = getelementptr inbounds %struct.s2n_connection, ptr %6107, i32 0, i32 22
  store i8 34, ptr %6108, align 1, !tbaa !72
  %6109 = load ptr, ptr %154, align 8, !tbaa !9
  %6110 = load ptr, ptr %153, align 8, !tbaa !9
  %6111 = getelementptr inbounds %struct.s2n_connection, ptr %6110, i32 0, i32 27
  %6112 = load ptr, ptr %6111, align 8, !tbaa !55
  %6113 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6112, i32 0, i32 0
  store ptr %6109, ptr %6113, align 8, !tbaa !61
  %6114 = load ptr, ptr %153, align 8, !tbaa !9
  %6115 = getelementptr inbounds %struct.s2n_connection, ptr %6114, i32 0, i32 27
  %6116 = load ptr, ptr %6115, align 8, !tbaa !55
  %6117 = load ptr, ptr %153, align 8, !tbaa !9
  %6118 = getelementptr inbounds %struct.s2n_connection, ptr %6117, i32 0, i32 30
  store ptr %6116, ptr %6118, align 8, !tbaa !60
  %6119 = load ptr, ptr %153, align 8, !tbaa !9
  %6120 = getelementptr inbounds %struct.s2n_connection, ptr %6119, i32 0, i32 27
  %6121 = load ptr, ptr %6120, align 8, !tbaa !55
  %6122 = load ptr, ptr %153, align 8, !tbaa !9
  %6123 = getelementptr inbounds %struct.s2n_connection, ptr %6122, i32 0, i32 29
  store ptr %6121, ptr %6123, align 8, !tbaa !73
  br label %6124

6124:                                             ; preds = %6104
  %6125 = load i32, ptr @test_count, align 4, !tbaa !5
  %6126 = add nsw i32 %6125, 1
  store i32 %6126, ptr @test_count, align 4, !tbaa !5
  %6127 = load ptr, ptr %154, align 8, !tbaa !9
  %6128 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6127, i32 0, i32 6
  %6129 = load ptr, ptr %6128, align 8, !tbaa !48
  %6130 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %6129, i32 0, i32 0
  %6131 = load ptr, ptr %6130, align 8, !tbaa !50
  %6132 = getelementptr inbounds %struct.s2n_cipher, ptr %6131, i32 0, i32 4
  %6133 = load ptr, ptr %6132, align 8, !tbaa !52
  %6134 = load ptr, ptr %153, align 8, !tbaa !9
  %6135 = getelementptr inbounds %struct.s2n_connection, ptr %6134, i32 0, i32 27
  %6136 = load ptr, ptr %6135, align 8, !tbaa !55
  %6137 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6136, i32 0, i32 2
  %6138 = call i32 %6133(ptr noundef %6137)
  %6139 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  store i32 %6138, ptr %6139, align 4
  %6140 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  %6141 = load i32, ptr %6140, align 4
  %6142 = call zeroext i1 @s2n_result_is_ok(i32 %6141)
  br i1 %6142, label %6196, label %6143

6143:                                             ; preds = %6124
  br label %6144

6144:                                             ; preds = %6143
  br label %6145

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

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

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

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

6191:                                             ; preds = %6174, %6157
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %6192

6192:                                             ; preds = %6191
  br label %6193

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

6194:                                             ; No predecessors!
  br label %6195

6195:                                             ; preds = %6194
  br label %6196

6196:                                             ; preds = %6195, %6124
  br label %6197

6197:                                             ; preds = %6196
  br label %6198

6198:                                             ; preds = %6197
  br label %6199

6199:                                             ; preds = %6198
  %6200 = load i32, ptr @test_count, align 4, !tbaa !5
  %6201 = add nsw i32 %6200, 1
  store i32 %6201, ptr @test_count, align 4, !tbaa !5
  %6202 = load ptr, ptr %154, align 8, !tbaa !9
  %6203 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6202, i32 0, i32 6
  %6204 = load ptr, ptr %6203, align 8, !tbaa !48
  %6205 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %6204, i32 0, i32 0
  %6206 = load ptr, ptr %6205, align 8, !tbaa !50
  %6207 = getelementptr inbounds %struct.s2n_cipher, ptr %6206, i32 0, i32 4
  %6208 = load ptr, ptr %6207, align 8, !tbaa !52
  %6209 = load ptr, ptr %153, align 8, !tbaa !9
  %6210 = getelementptr inbounds %struct.s2n_connection, ptr %6209, i32 0, i32 27
  %6211 = load ptr, ptr %6210, align 8, !tbaa !55
  %6212 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6211, i32 0, i32 1
  %6213 = call i32 %6208(ptr noundef %6212)
  %6214 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  store i32 %6213, ptr %6214, align 4
  %6215 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  %6216 = load i32, ptr %6215, align 4
  %6217 = call zeroext i1 @s2n_result_is_ok(i32 %6216)
  br i1 %6217, label %6271, label %6218

6218:                                             ; preds = %6199
  br label %6219

6219:                                             ; preds = %6218
  br label %6220

6220:                                             ; preds = %6219
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %6221 = call ptr @__errno_location() #12
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  store i32 %6222, ptr %159, align 4, !tbaa !5
  %6223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6224 = call i32 @s2n_print_stacktrace(ptr noundef %6223)
  %6225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6226 = trunc i8 %6225 to i1
  br i1 %6226, label %6227, label %6249

6227:                                             ; preds = %6220
  %6228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6229 = call i32 @fileno(ptr noundef %6228) #11
  %6230 = call i32 @isatty(i32 noundef %6229) #11
  %6231 = icmp ne i32 %6230, 0
  br i1 %6231, label %6232, label %6249

6232:                                             ; preds = %6227
  %6233 = load i32, ptr %159, align 4, !tbaa !5
  %6234 = call ptr @__errno_location() #12
  store i32 %6233, ptr %6234, align 4, !tbaa !5
  %6235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6236 = load i32, ptr @test_count, align 4, !tbaa !5
  %6237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6238 = load i32, ptr %6237, align 4, !tbaa !5
  %6239 = call ptr @s2n_strerror(i32 noundef %6238, ptr noundef @.str.4)
  %6240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call ptr @s2n_strerror_debug(i32 noundef %6241, ptr noundef @.str.4)
  %6243 = call ptr @__errno_location() #12
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @strerror(i32 noundef %6244) #11
  %6246 = call ptr @__errno_location() #12
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6235, ptr noundef @.str.2, i32 noundef %6236, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 352, ptr noundef %6239, ptr noundef %6242, ptr noundef %6245, i32 noundef %6247) #11
  br label %6266

6249:                                             ; preds = %6227, %6220
  %6250 = load i32, ptr %159, align 4, !tbaa !5
  %6251 = call ptr @__errno_location() #12
  store i32 %6250, ptr %6251, align 4, !tbaa !5
  %6252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6253 = load i32, ptr @test_count, align 4, !tbaa !5
  %6254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call ptr @s2n_strerror(i32 noundef %6255, ptr noundef @.str.4)
  %6257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6258 = load i32, ptr %6257, align 4, !tbaa !5
  %6259 = call ptr @s2n_strerror_debug(i32 noundef %6258, ptr noundef @.str.4)
  %6260 = call ptr @__errno_location() #12
  %6261 = load i32, ptr %6260, align 4, !tbaa !5
  %6262 = call ptr @strerror(i32 noundef %6261) #11
  %6263 = call ptr @__errno_location() #12
  %6264 = load i32, ptr %6263, align 4, !tbaa !5
  %6265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6252, ptr noundef @.str.5, i32 noundef %6253, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 352, ptr noundef %6256, ptr noundef %6259, ptr noundef %6262, i32 noundef %6264) #11
  br label %6266

6266:                                             ; preds = %6249, %6232
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %6267

6267:                                             ; preds = %6266
  br label %6268

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

6269:                                             ; No predecessors!
  br label %6270

6270:                                             ; preds = %6269
  br label %6271

6271:                                             ; preds = %6270, %6199
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

6273:                                             ; preds = %6272
  call void @llvm.lifetime.start.p0(i64 24, ptr %160) #11
  call void @llvm.memset.p0.i64(ptr align 8 %160, i8 0, i64 24, i1 false)
  br label %6274

6274:                                             ; preds = %6273
  %6275 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %160, ptr noundef @.str.26)
  %6276 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  store i32 %6275, ptr %6276, align 4
  %6277 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  %6278 = load i32, ptr %6277, align 4
  %6279 = call zeroext i1 @s2n_result_is_ok(i32 %6278)
  br i1 %6279, label %6281, label %6280

6280:                                             ; preds = %6274
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8678

6281:                                             ; preds = %6274
  br label %6282

6282:                                             ; preds = %6281
  br label %6283

6283:                                             ; preds = %6282
  br label %6284

6284:                                             ; preds = %6283
  %6285 = load i32, ptr @test_count, align 4, !tbaa !5
  %6286 = add nsw i32 %6285, 1
  store i32 %6286, ptr @test_count, align 4, !tbaa !5
  %6287 = load ptr, ptr %154, align 8, !tbaa !9
  %6288 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6287, i32 0, i32 6
  %6289 = load ptr, ptr %6288, align 8, !tbaa !48
  %6290 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %6289, i32 0, i32 0
  %6291 = load ptr, ptr %6290, align 8, !tbaa !50
  %6292 = getelementptr inbounds %struct.s2n_cipher, ptr %6291, i32 0, i32 6
  %6293 = load ptr, ptr %6292, align 8, !tbaa !66
  %6294 = load ptr, ptr %153, align 8, !tbaa !9
  %6295 = getelementptr inbounds %struct.s2n_connection, ptr %6294, i32 0, i32 27
  %6296 = load ptr, ptr %6295, align 8, !tbaa !55
  %6297 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6296, i32 0, i32 2
  %6298 = call i32 %6293(ptr noundef %6297, ptr noundef %160)
  %6299 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %6298, ptr %6299, align 4
  %6300 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  %6301 = load i32, ptr %6300, align 4
  %6302 = call zeroext i1 @s2n_result_is_ok(i32 %6301)
  br i1 %6302, label %6356, label %6303

6303:                                             ; preds = %6284
  br label %6304

6304:                                             ; preds = %6303
  br label %6305

6305:                                             ; preds = %6304
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %6306 = call ptr @__errno_location() #12
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  store i32 %6307, ptr %163, align 4, !tbaa !5
  %6308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6309 = call i32 @s2n_print_stacktrace(ptr noundef %6308)
  %6310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6311 = trunc i8 %6310 to i1
  br i1 %6311, label %6312, label %6334

6312:                                             ; preds = %6305
  %6313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6314 = call i32 @fileno(ptr noundef %6313) #11
  %6315 = call i32 @isatty(i32 noundef %6314) #11
  %6316 = icmp ne i32 %6315, 0
  br i1 %6316, label %6317, label %6334

6317:                                             ; preds = %6312
  %6318 = load i32, ptr %163, align 4, !tbaa !5
  %6319 = call ptr @__errno_location() #12
  store i32 %6318, ptr %6319, align 4, !tbaa !5
  %6320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6321 = load i32, ptr @test_count, align 4, !tbaa !5
  %6322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call ptr @s2n_strerror(i32 noundef %6323, ptr noundef @.str.4)
  %6325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call ptr @s2n_strerror_debug(i32 noundef %6326, ptr noundef @.str.4)
  %6328 = call ptr @__errno_location() #12
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  %6330 = call ptr @strerror(i32 noundef %6329) #11
  %6331 = call ptr @__errno_location() #12
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6320, ptr noundef @.str.2, i32 noundef %6321, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6324, ptr noundef %6327, ptr noundef %6330, i32 noundef %6332) #11
  br label %6351

6334:                                             ; preds = %6312, %6305
  %6335 = load i32, ptr %163, align 4, !tbaa !5
  %6336 = call ptr @__errno_location() #12
  store i32 %6335, ptr %6336, align 4, !tbaa !5
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = load i32, ptr @test_count, align 4, !tbaa !5
  %6339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call ptr @s2n_strerror(i32 noundef %6340, ptr noundef @.str.4)
  %6342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call ptr @s2n_strerror_debug(i32 noundef %6343, ptr noundef @.str.4)
  %6345 = call ptr @__errno_location() #12
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @strerror(i32 noundef %6346) #11
  %6348 = call ptr @__errno_location() #12
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6337, ptr noundef @.str.5, i32 noundef %6338, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6341, ptr noundef %6344, ptr noundef %6347, i32 noundef %6349) #11
  br label %6351

6351:                                             ; preds = %6334, %6317
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %6352

6352:                                             ; preds = %6351
  br label %6353

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

6354:                                             ; No predecessors!
  br label %6355

6355:                                             ; preds = %6354
  br label %6356

6356:                                             ; preds = %6355, %6284
  br label %6357

6357:                                             ; preds = %6356
  br label %6358

6358:                                             ; preds = %6357
  br label %6359

6359:                                             ; preds = %6358
  %6360 = load i32, ptr @test_count, align 4, !tbaa !5
  %6361 = add nsw i32 %6360, 1
  store i32 %6361, ptr @test_count, align 4, !tbaa !5
  %6362 = load ptr, ptr %154, align 8, !tbaa !9
  %6363 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6362, i32 0, i32 6
  %6364 = load ptr, ptr %6363, align 8, !tbaa !48
  %6365 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %6364, i32 0, i32 0
  %6366 = load ptr, ptr %6365, align 8, !tbaa !50
  %6367 = getelementptr inbounds %struct.s2n_cipher, ptr %6366, i32 0, i32 5
  %6368 = load ptr, ptr %6367, align 8, !tbaa !54
  %6369 = load ptr, ptr %153, align 8, !tbaa !9
  %6370 = getelementptr inbounds %struct.s2n_connection, ptr %6369, i32 0, i32 27
  %6371 = load ptr, ptr %6370, align 8, !tbaa !55
  %6372 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6371, i32 0, i32 1
  %6373 = call i32 %6368(ptr noundef %6372, ptr noundef %160)
  %6374 = getelementptr inbounds %struct.s2n_result, ptr %164, i32 0, i32 0
  store i32 %6373, ptr %6374, align 4
  %6375 = getelementptr inbounds %struct.s2n_result, ptr %164, i32 0, i32 0
  %6376 = load i32, ptr %6375, align 4
  %6377 = call zeroext i1 @s2n_result_is_ok(i32 %6376)
  br i1 %6377, label %6431, label %6378

6378:                                             ; preds = %6359
  br label %6379

6379:                                             ; preds = %6378
  br label %6380

6380:                                             ; preds = %6379
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %6381 = call ptr @__errno_location() #12
  %6382 = load i32, ptr %6381, align 4, !tbaa !5
  store i32 %6382, ptr %165, align 4, !tbaa !5
  %6383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6384 = call i32 @s2n_print_stacktrace(ptr noundef %6383)
  %6385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6386 = trunc i8 %6385 to i1
  br i1 %6386, label %6387, label %6409

6387:                                             ; preds = %6380
  %6388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6389 = call i32 @fileno(ptr noundef %6388) #11
  %6390 = call i32 @isatty(i32 noundef %6389) #11
  %6391 = icmp ne i32 %6390, 0
  br i1 %6391, label %6392, label %6409

6392:                                             ; preds = %6387
  %6393 = load i32, ptr %165, align 4, !tbaa !5
  %6394 = call ptr @__errno_location() #12
  store i32 %6393, ptr %6394, align 4, !tbaa !5
  %6395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6396 = load i32, ptr @test_count, align 4, !tbaa !5
  %6397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6398 = load i32, ptr %6397, align 4, !tbaa !5
  %6399 = call ptr @s2n_strerror(i32 noundef %6398, ptr noundef @.str.4)
  %6400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6401 = load i32, ptr %6400, align 4, !tbaa !5
  %6402 = call ptr @s2n_strerror_debug(i32 noundef %6401, ptr noundef @.str.4)
  %6403 = call ptr @__errno_location() #12
  %6404 = load i32, ptr %6403, align 4, !tbaa !5
  %6405 = call ptr @strerror(i32 noundef %6404) #11
  %6406 = call ptr @__errno_location() #12
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6395, ptr noundef @.str.2, i32 noundef %6396, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6399, ptr noundef %6402, ptr noundef %6405, i32 noundef %6407) #11
  br label %6426

6409:                                             ; preds = %6387, %6380
  %6410 = load i32, ptr %165, align 4, !tbaa !5
  %6411 = call ptr @__errno_location() #12
  store i32 %6410, ptr %6411, align 4, !tbaa !5
  %6412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6413 = load i32, ptr @test_count, align 4, !tbaa !5
  %6414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6415 = load i32, ptr %6414, align 4, !tbaa !5
  %6416 = call ptr @s2n_strerror(i32 noundef %6415, ptr noundef @.str.4)
  %6417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6418 = load i32, ptr %6417, align 4, !tbaa !5
  %6419 = call ptr @s2n_strerror_debug(i32 noundef %6418, ptr noundef @.str.4)
  %6420 = call ptr @__errno_location() #12
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call ptr @strerror(i32 noundef %6421) #11
  %6423 = call ptr @__errno_location() #12
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6412, ptr noundef @.str.5, i32 noundef %6413, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6416, ptr noundef %6419, ptr noundef %6422, i32 noundef %6424) #11
  br label %6426

6426:                                             ; preds = %6409, %6392
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %6427

6427:                                             ; preds = %6426
  br label %6428

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

6429:                                             ; No predecessors!
  br label %6430

6430:                                             ; preds = %6429
  br label %6431

6431:                                             ; preds = %6430, %6359
  br label %6432

6432:                                             ; preds = %6431
  br label %6433

6433:                                             ; preds = %6432
  call void @llvm.lifetime.start.p0(i64 24, ptr %166) #11
  call void @llvm.memset.p0.i64(ptr align 8 %166, i8 0, i64 24, i1 false)
  br label %6434

6434:                                             ; preds = %6433
  %6435 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %166, ptr noundef @protected_record_hex)
  %6436 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  store i32 %6435, ptr %6436, align 4
  %6437 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  %6438 = load i32, ptr %6437, align 4
  %6439 = call zeroext i1 @s2n_result_is_ok(i32 %6438)
  br i1 %6439, label %6441, label %6440

6440:                                             ; preds = %6434
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8676

6441:                                             ; preds = %6434
  br label %6442

6442:                                             ; preds = %6441
  br label %6443

6443:                                             ; preds = %6442
  call void @llvm.lifetime.start.p0(i64 24, ptr %168) #11
  call void @llvm.memset.p0.i64(ptr align 8 %168, i8 0, i64 24, i1 false)
  br label %6444

6444:                                             ; preds = %6443
  %6445 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %168, ptr noundef @.str.29)
  %6446 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  store i32 %6445, ptr %6446, align 4
  %6447 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  %6448 = load i32, ptr %6447, align 4
  %6449 = call zeroext i1 @s2n_result_is_ok(i32 %6448)
  br i1 %6449, label %6451, label %6450

6450:                                             ; preds = %6444
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8674

6451:                                             ; preds = %6444
  br label %6452

6452:                                             ; preds = %6451
  br label %6453

6453:                                             ; preds = %6452
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #11
  store i64 0, ptr %170, align 8, !tbaa !15
  br label %6454

6454:                                             ; preds = %6484, %6453
  %6455 = load i64, ptr %170, align 8, !tbaa !15
  %6456 = getelementptr inbounds %struct.s2n_blob, ptr %168, i32 0, i32 1
  %6457 = load i32, ptr %6456, align 8, !tbaa !20
  %6458 = zext i32 %6457 to i64
  %6459 = icmp ult i64 %6455, %6458
  br i1 %6459, label %6461, label %6460

6460:                                             ; preds = %6454
  store i32 625, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  br label %6487

6461:                                             ; preds = %6454
  %6462 = getelementptr inbounds %struct.s2n_blob, ptr %168, i32 0, i32 0
  %6463 = load ptr, ptr %6462, align 8, !tbaa !22
  %6464 = load i64, ptr %170, align 8, !tbaa !15
  %6465 = getelementptr inbounds i8, ptr %6463, i64 %6464
  %6466 = load i8, ptr %6465, align 1, !tbaa !59
  %6467 = load ptr, ptr %153, align 8, !tbaa !9
  %6468 = getelementptr inbounds %struct.s2n_connection, ptr %6467, i32 0, i32 27
  %6469 = load ptr, ptr %6468, align 8, !tbaa !55
  %6470 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6469, i32 0, i32 6
  %6471 = load i64, ptr %170, align 8, !tbaa !15
  %6472 = getelementptr inbounds [16 x i8], ptr %6470, i64 0, i64 %6471
  store i8 %6466, ptr %6472, align 1, !tbaa !59
  %6473 = getelementptr inbounds %struct.s2n_blob, ptr %168, i32 0, i32 0
  %6474 = load ptr, ptr %6473, align 8, !tbaa !22
  %6475 = load i64, ptr %170, align 8, !tbaa !15
  %6476 = getelementptr inbounds i8, ptr %6474, i64 %6475
  %6477 = load i8, ptr %6476, align 1, !tbaa !59
  %6478 = load ptr, ptr %153, align 8, !tbaa !9
  %6479 = getelementptr inbounds %struct.s2n_connection, ptr %6478, i32 0, i32 27
  %6480 = load ptr, ptr %6479, align 8, !tbaa !55
  %6481 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6480, i32 0, i32 5
  %6482 = load i64, ptr %170, align 8, !tbaa !15
  %6483 = getelementptr inbounds [16 x i8], ptr %6481, i64 0, i64 %6482
  store i8 %6477, ptr %6483, align 1, !tbaa !59
  br label %6484

6484:                                             ; preds = %6461
  %6485 = load i64, ptr %170, align 8, !tbaa !15
  %6486 = add i64 %6485, 1
  store i64 %6486, ptr %170, align 8, !tbaa !15
  br label %6454, !llvm.loop !74

6487:                                             ; preds = %6460
  call void @llvm.lifetime.start.p0(i64 24, ptr %171) #11
  call void @llvm.memset.p0.i64(ptr align 8 %171, i8 0, i64 24, i1 false)
  br label %6488

6488:                                             ; preds = %6487
  %6489 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %171, ptr noundef @plaintext_record_hex)
  %6490 = getelementptr inbounds %struct.s2n_result, ptr %172, i32 0, i32 0
  store i32 %6489, ptr %6490, align 4
  %6491 = getelementptr inbounds %struct.s2n_result, ptr %172, i32 0, i32 0
  %6492 = load i32, ptr %6491, align 4
  %6493 = call zeroext i1 @s2n_result_is_ok(i32 %6492)
  br i1 %6493, label %6495, label %6494

6494:                                             ; preds = %6488
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8672

6495:                                             ; preds = %6488
  br label %6496

6496:                                             ; preds = %6495
  br label %6497

6497:                                             ; preds = %6496
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %173, ptr align 1 @__const.main.change_cipher_spec, i64 1, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %174) #11
  %6498 = getelementptr inbounds %struct.s2n_blob, ptr %174, i32 0, i32 0
  %6499 = getelementptr inbounds [1 x i8], ptr %173, i64 0, i64 0
  store ptr %6499, ptr %6498, align 8, !tbaa !22
  %6500 = getelementptr inbounds %struct.s2n_blob, ptr %174, i32 0, i32 1
  store i32 1, ptr %6500, align 8, !tbaa !20
  %6501 = getelementptr inbounds %struct.s2n_blob, ptr %174, i32 0, i32 2
  store i32 0, ptr %6501, align 4, !tbaa !69
  %6502 = getelementptr inbounds %struct.s2n_blob, ptr %174, i32 0, i32 3
  %6503 = load i8, ptr %6502, align 8
  %6504 = and i8 %6503, -2
  %6505 = or i8 %6504, 0
  store i8 %6505, ptr %6502, align 8
  br label %6506

6506:                                             ; preds = %6497
  %6507 = load i32, ptr @test_count, align 4, !tbaa !5
  %6508 = add nsw i32 %6507, 1
  store i32 %6508, ptr @test_count, align 4, !tbaa !5
  %6509 = load ptr, ptr %153, align 8, !tbaa !9
  %6510 = call i32 @s2n_record_write(ptr noundef %6509, i8 noundef zeroext 20, ptr noundef %174)
  %6511 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  store i32 %6510, ptr %6511, align 4
  %6512 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  %6513 = load i32, ptr %6512, align 4
  %6514 = call zeroext i1 @s2n_result_is_ok(i32 %6513)
  br i1 %6514, label %6568, label %6515

6515:                                             ; preds = %6506
  br label %6516

6516:                                             ; preds = %6515
  br label %6517

6517:                                             ; preds = %6516
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %6518 = call ptr @__errno_location() #12
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  store i32 %6519, ptr %176, align 4, !tbaa !5
  %6520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6521 = call i32 @s2n_print_stacktrace(ptr noundef %6520)
  %6522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6523 = trunc i8 %6522 to i1
  br i1 %6523, label %6524, label %6546

6524:                                             ; preds = %6517
  %6525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6526 = call i32 @fileno(ptr noundef %6525) #11
  %6527 = call i32 @isatty(i32 noundef %6526) #11
  %6528 = icmp ne i32 %6527, 0
  br i1 %6528, label %6529, label %6546

6529:                                             ; preds = %6524
  %6530 = load i32, ptr %176, align 4, !tbaa !5
  %6531 = call ptr @__errno_location() #12
  store i32 %6530, ptr %6531, align 4, !tbaa !5
  %6532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6533 = load i32, ptr @test_count, align 4, !tbaa !5
  %6534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6535 = load i32, ptr %6534, align 4, !tbaa !5
  %6536 = call ptr @s2n_strerror(i32 noundef %6535, ptr noundef @.str.4)
  %6537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  %6539 = call ptr @s2n_strerror_debug(i32 noundef %6538, ptr noundef @.str.4)
  %6540 = call ptr @__errno_location() #12
  %6541 = load i32, ptr %6540, align 4, !tbaa !5
  %6542 = call ptr @strerror(i32 noundef %6541) #11
  %6543 = call ptr @__errno_location() #12
  %6544 = load i32, ptr %6543, align 4, !tbaa !5
  %6545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6532, ptr noundef @.str.2, i32 noundef %6533, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 373, ptr noundef %6536, ptr noundef %6539, ptr noundef %6542, i32 noundef %6544) #11
  br label %6563

6546:                                             ; preds = %6524, %6517
  %6547 = load i32, ptr %176, align 4, !tbaa !5
  %6548 = call ptr @__errno_location() #12
  store i32 %6547, ptr %6548, align 4, !tbaa !5
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = load i32, ptr @test_count, align 4, !tbaa !5
  %6551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6552 = load i32, ptr %6551, align 4, !tbaa !5
  %6553 = call ptr @s2n_strerror(i32 noundef %6552, ptr noundef @.str.4)
  %6554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call ptr @s2n_strerror_debug(i32 noundef %6555, ptr noundef @.str.4)
  %6557 = call ptr @__errno_location() #12
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call ptr @strerror(i32 noundef %6558) #11
  %6560 = call ptr @__errno_location() #12
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6549, ptr noundef @.str.5, i32 noundef %6550, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 373, ptr noundef %6553, ptr noundef %6556, ptr noundef %6559, i32 noundef %6561) #11
  br label %6563

6563:                                             ; preds = %6546, %6529
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %6564

6564:                                             ; preds = %6563
  br label %6565

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

6566:                                             ; No predecessors!
  br label %6567

6567:                                             ; preds = %6566
  br label %6568

6568:                                             ; preds = %6567, %6506
  br label %6569

6569:                                             ; preds = %6568
  br label %6570

6570:                                             ; preds = %6569
  br label %6571

6571:                                             ; preds = %6570
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #11
  br label %6572

6572:                                             ; preds = %6571
  %6573 = load i32, ptr @test_count, align 4, !tbaa !5
  %6574 = add nsw i32 %6573, 1
  store i32 %6574, ptr @test_count, align 4, !tbaa !5
  %6575 = load ptr, ptr %153, align 8, !tbaa !9
  %6576 = getelementptr inbounds %struct.s2n_connection, ptr %6575, i32 0, i32 41
  %6577 = call i32 @s2n_stuffer_read_uint8(ptr noundef %6576, ptr noundef %177)
  %6578 = icmp eq i32 %6577, -1
  br i1 %6578, label %6579, label %6632

6579:                                             ; preds = %6572
  br label %6580

6580:                                             ; preds = %6579
  br label %6581

6581:                                             ; preds = %6580
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %6582 = call ptr @__errno_location() #12
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  store i32 %6583, ptr %178, align 4, !tbaa !5
  %6584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6585 = call i32 @s2n_print_stacktrace(ptr noundef %6584)
  %6586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6587 = trunc i8 %6586 to i1
  br i1 %6587, label %6588, label %6610

6588:                                             ; preds = %6581
  %6589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6590 = call i32 @fileno(ptr noundef %6589) #11
  %6591 = call i32 @isatty(i32 noundef %6590) #11
  %6592 = icmp ne i32 %6591, 0
  br i1 %6592, label %6593, label %6610

6593:                                             ; preds = %6588
  %6594 = load i32, ptr %178, align 4, !tbaa !5
  %6595 = call ptr @__errno_location() #12
  store i32 %6594, ptr %6595, align 4, !tbaa !5
  %6596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6597 = load i32, ptr @test_count, align 4, !tbaa !5
  %6598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call ptr @s2n_strerror(i32 noundef %6599, ptr noundef @.str.4)
  %6601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call ptr @s2n_strerror_debug(i32 noundef %6602, ptr noundef @.str.4)
  %6604 = call ptr @__errno_location() #12
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  %6606 = call ptr @strerror(i32 noundef %6605) #11
  %6607 = call ptr @__errno_location() #12
  %6608 = load i32, ptr %6607, align 4, !tbaa !5
  %6609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6596, ptr noundef @.str.2, i32 noundef %6597, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 375, ptr noundef %6600, ptr noundef %6603, ptr noundef %6606, i32 noundef %6608) #11
  br label %6627

6610:                                             ; preds = %6588, %6581
  %6611 = load i32, ptr %178, align 4, !tbaa !5
  %6612 = call ptr @__errno_location() #12
  store i32 %6611, ptr %6612, align 4, !tbaa !5
  %6613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6614 = load i32, ptr @test_count, align 4, !tbaa !5
  %6615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call ptr @s2n_strerror(i32 noundef %6616, ptr noundef @.str.4)
  %6618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call ptr @s2n_strerror_debug(i32 noundef %6619, ptr noundef @.str.4)
  %6621 = call ptr @__errno_location() #12
  %6622 = load i32, ptr %6621, align 4, !tbaa !5
  %6623 = call ptr @strerror(i32 noundef %6622) #11
  %6624 = call ptr @__errno_location() #12
  %6625 = load i32, ptr %6624, align 4, !tbaa !5
  %6626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6613, ptr noundef @.str.5, i32 noundef %6614, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 375, ptr noundef %6617, ptr noundef %6620, ptr noundef %6623, i32 noundef %6625) #11
  br label %6627

6627:                                             ; preds = %6610, %6593
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %6628

6628:                                             ; preds = %6627
  br label %6629

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

6630:                                             ; No predecessors!
  br label %6631

6631:                                             ; preds = %6630
  br label %6632

6632:                                             ; preds = %6631, %6572
  br label %6633

6633:                                             ; preds = %6632
  br label %6634

6634:                                             ; preds = %6633
  br label %6635

6635:                                             ; preds = %6634
  %6636 = load i32, ptr @test_count, align 4, !tbaa !5
  %6637 = add nsw i32 %6636, 1
  store i32 %6637, ptr @test_count, align 4, !tbaa !5
  %6638 = load i8, ptr %177, align 1, !tbaa !59
  %6639 = zext i8 %6638 to i32
  %6640 = icmp eq i32 %6639, 20
  br i1 %6640, label %6694, label %6641

6641:                                             ; preds = %6635
  br label %6642

6642:                                             ; preds = %6641
  br label %6643

6643:                                             ; preds = %6642
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %6644 = call ptr @__errno_location() #12
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  store i32 %6645, ptr %179, align 4, !tbaa !5
  %6646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6647 = call i32 @s2n_print_stacktrace(ptr noundef %6646)
  %6648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6649 = trunc i8 %6648 to i1
  br i1 %6649, label %6650, label %6672

6650:                                             ; preds = %6643
  %6651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6652 = call i32 @fileno(ptr noundef %6651) #11
  %6653 = call i32 @isatty(i32 noundef %6652) #11
  %6654 = icmp ne i32 %6653, 0
  br i1 %6654, label %6655, label %6672

6655:                                             ; preds = %6650
  %6656 = load i32, ptr %179, align 4, !tbaa !5
  %6657 = call ptr @__errno_location() #12
  store i32 %6656, ptr %6657, align 4, !tbaa !5
  %6658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6659 = load i32, ptr @test_count, align 4, !tbaa !5
  %6660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  %6662 = call ptr @s2n_strerror(i32 noundef %6661, ptr noundef @.str.4)
  %6663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = call ptr @s2n_strerror_debug(i32 noundef %6664, ptr noundef @.str.4)
  %6666 = call ptr @__errno_location() #12
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  %6668 = call ptr @strerror(i32 noundef %6667) #11
  %6669 = call ptr @__errno_location() #12
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  %6671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6658, ptr noundef @.str.2, i32 noundef %6659, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 375, ptr noundef %6662, ptr noundef %6665, ptr noundef %6668, i32 noundef %6670) #11
  br label %6689

6672:                                             ; preds = %6650, %6643
  %6673 = load i32, ptr %179, align 4, !tbaa !5
  %6674 = call ptr @__errno_location() #12
  store i32 %6673, ptr %6674, align 4, !tbaa !5
  %6675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6676 = load i32, ptr @test_count, align 4, !tbaa !5
  %6677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  %6679 = call ptr @s2n_strerror(i32 noundef %6678, ptr noundef @.str.4)
  %6680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6681 = load i32, ptr %6680, align 4, !tbaa !5
  %6682 = call ptr @s2n_strerror_debug(i32 noundef %6681, ptr noundef @.str.4)
  %6683 = call ptr @__errno_location() #12
  %6684 = load i32, ptr %6683, align 4, !tbaa !5
  %6685 = call ptr @strerror(i32 noundef %6684) #11
  %6686 = call ptr @__errno_location() #12
  %6687 = load i32, ptr %6686, align 4, !tbaa !5
  %6688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6675, ptr noundef @.str.5, i32 noundef %6676, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 375, ptr noundef %6679, ptr noundef %6682, ptr noundef %6685, i32 noundef %6687) #11
  br label %6689

6689:                                             ; preds = %6672, %6655
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %6690

6690:                                             ; preds = %6689
  br label %6691

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

6692:                                             ; No predecessors!
  br label %6693

6693:                                             ; preds = %6692
  br label %6694

6694:                                             ; preds = %6693, %6635
  br label %6695

6695:                                             ; preds = %6694
  br label %6696

6696:                                             ; preds = %6695
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #11
  br label %6697

6697:                                             ; preds = %6696
  br label %6698

6698:                                             ; preds = %6697
  br label %6699

6699:                                             ; preds = %6698
  call void @llvm.lifetime.start.p0(i64 2, ptr %180) #11
  br label %6700

6700:                                             ; preds = %6699
  %6701 = load i32, ptr @test_count, align 4, !tbaa !5
  %6702 = add nsw i32 %6701, 1
  store i32 %6702, ptr @test_count, align 4, !tbaa !5
  %6703 = load ptr, ptr %153, align 8, !tbaa !9
  %6704 = getelementptr inbounds %struct.s2n_connection, ptr %6703, i32 0, i32 41
  %6705 = call i32 @s2n_stuffer_read_uint16(ptr noundef %6704, ptr noundef %180)
  %6706 = icmp eq i32 %6705, -1
  br i1 %6706, label %6707, label %6760

6707:                                             ; preds = %6700
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %6710 = call ptr @__errno_location() #12
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  store i32 %6711, ptr %181, align 4, !tbaa !5
  %6712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6713 = call i32 @s2n_print_stacktrace(ptr noundef %6712)
  %6714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6715 = trunc i8 %6714 to i1
  br i1 %6715, label %6716, label %6738

6716:                                             ; preds = %6709
  %6717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6718 = call i32 @fileno(ptr noundef %6717) #11
  %6719 = call i32 @isatty(i32 noundef %6718) #11
  %6720 = icmp ne i32 %6719, 0
  br i1 %6720, label %6721, label %6738

6721:                                             ; preds = %6716
  %6722 = load i32, ptr %181, align 4, !tbaa !5
  %6723 = call ptr @__errno_location() #12
  store i32 %6722, ptr %6723, align 4, !tbaa !5
  %6724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6725 = load i32, ptr @test_count, align 4, !tbaa !5
  %6726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6727 = load i32, ptr %6726, align 4, !tbaa !5
  %6728 = call ptr @s2n_strerror(i32 noundef %6727, ptr noundef @.str.4)
  %6729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6730 = load i32, ptr %6729, align 4, !tbaa !5
  %6731 = call ptr @s2n_strerror_debug(i32 noundef %6730, ptr noundef @.str.4)
  %6732 = call ptr @__errno_location() #12
  %6733 = load i32, ptr %6732, align 4, !tbaa !5
  %6734 = call ptr @strerror(i32 noundef %6733) #11
  %6735 = call ptr @__errno_location() #12
  %6736 = load i32, ptr %6735, align 4, !tbaa !5
  %6737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6724, ptr noundef @.str.2, i32 noundef %6725, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 376, ptr noundef %6728, ptr noundef %6731, ptr noundef %6734, i32 noundef %6736) #11
  br label %6755

6738:                                             ; preds = %6716, %6709
  %6739 = load i32, ptr %181, align 4, !tbaa !5
  %6740 = call ptr @__errno_location() #12
  store i32 %6739, ptr %6740, align 4, !tbaa !5
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = load i32, ptr @test_count, align 4, !tbaa !5
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror(i32 noundef %6744, ptr noundef @.str.4)
  %6746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @s2n_strerror_debug(i32 noundef %6747, ptr noundef @.str.4)
  %6749 = call ptr @__errno_location() #12
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call ptr @strerror(i32 noundef %6750) #11
  %6752 = call ptr @__errno_location() #12
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6741, ptr noundef @.str.5, i32 noundef %6742, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 376, ptr noundef %6745, ptr noundef %6748, ptr noundef %6751, i32 noundef %6753) #11
  br label %6755

6755:                                             ; preds = %6738, %6721
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %6756

6756:                                             ; preds = %6755
  br label %6757

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

6758:                                             ; No predecessors!
  br label %6759

6759:                                             ; preds = %6758
  br label %6760

6760:                                             ; preds = %6759, %6700
  br label %6761

6761:                                             ; preds = %6760
  br label %6762

6762:                                             ; preds = %6761
  br label %6763

6763:                                             ; preds = %6762
  %6764 = load i32, ptr @test_count, align 4, !tbaa !5
  %6765 = add nsw i32 %6764, 1
  store i32 %6765, ptr @test_count, align 4, !tbaa !5
  %6766 = load i16, ptr %180, align 2, !tbaa !75
  %6767 = zext i16 %6766 to i32
  %6768 = icmp eq i32 %6767, 771
  br i1 %6768, label %6822, label %6769

6769:                                             ; preds = %6763
  br label %6770

6770:                                             ; preds = %6769
  br label %6771

6771:                                             ; preds = %6770
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %6772 = call ptr @__errno_location() #12
  %6773 = load i32, ptr %6772, align 4, !tbaa !5
  store i32 %6773, ptr %182, align 4, !tbaa !5
  %6774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6775 = call i32 @s2n_print_stacktrace(ptr noundef %6774)
  %6776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6777 = trunc i8 %6776 to i1
  br i1 %6777, label %6778, label %6800

6778:                                             ; preds = %6771
  %6779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6780 = call i32 @fileno(ptr noundef %6779) #11
  %6781 = call i32 @isatty(i32 noundef %6780) #11
  %6782 = icmp ne i32 %6781, 0
  br i1 %6782, label %6783, label %6800

6783:                                             ; preds = %6778
  %6784 = load i32, ptr %182, align 4, !tbaa !5
  %6785 = call ptr @__errno_location() #12
  store i32 %6784, ptr %6785, align 4, !tbaa !5
  %6786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6787 = load i32, ptr @test_count, align 4, !tbaa !5
  %6788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  %6790 = call ptr @s2n_strerror(i32 noundef %6789, ptr noundef @.str.4)
  %6791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6792 = load i32, ptr %6791, align 4, !tbaa !5
  %6793 = call ptr @s2n_strerror_debug(i32 noundef %6792, ptr noundef @.str.4)
  %6794 = call ptr @__errno_location() #12
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  %6796 = call ptr @strerror(i32 noundef %6795) #11
  %6797 = call ptr @__errno_location() #12
  %6798 = load i32, ptr %6797, align 4, !tbaa !5
  %6799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6786, ptr noundef @.str.2, i32 noundef %6787, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 376, ptr noundef %6790, ptr noundef %6793, ptr noundef %6796, i32 noundef %6798) #11
  br label %6817

6800:                                             ; preds = %6778, %6771
  %6801 = load i32, ptr %182, align 4, !tbaa !5
  %6802 = call ptr @__errno_location() #12
  store i32 %6801, ptr %6802, align 4, !tbaa !5
  %6803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6804 = load i32, ptr @test_count, align 4, !tbaa !5
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror(i32 noundef %6806, ptr noundef @.str.4)
  %6808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @s2n_strerror_debug(i32 noundef %6809, ptr noundef @.str.4)
  %6811 = call ptr @__errno_location() #12
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @strerror(i32 noundef %6812) #11
  %6814 = call ptr @__errno_location() #12
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6803, ptr noundef @.str.5, i32 noundef %6804, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 376, ptr noundef %6807, ptr noundef %6810, ptr noundef %6813, i32 noundef %6815) #11
  br label %6817

6817:                                             ; preds = %6800, %6783
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %6818

6818:                                             ; preds = %6817
  br label %6819

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

6820:                                             ; No predecessors!
  br label %6821

6821:                                             ; preds = %6820
  br label %6822

6822:                                             ; preds = %6821, %6763
  br label %6823

6823:                                             ; preds = %6822
  br label %6824

6824:                                             ; preds = %6823
  call void @llvm.lifetime.end.p0(i64 2, ptr %180) #11
  br label %6825

6825:                                             ; preds = %6824
  br label %6826

6826:                                             ; preds = %6825
  br label %6827

6827:                                             ; preds = %6826
  call void @llvm.lifetime.start.p0(i64 2, ptr %183) #11
  br label %6828

6828:                                             ; preds = %6827
  %6829 = load i32, ptr @test_count, align 4, !tbaa !5
  %6830 = add nsw i32 %6829, 1
  store i32 %6830, ptr @test_count, align 4, !tbaa !5
  %6831 = load ptr, ptr %153, align 8, !tbaa !9
  %6832 = getelementptr inbounds %struct.s2n_connection, ptr %6831, i32 0, i32 41
  %6833 = call i32 @s2n_stuffer_read_uint16(ptr noundef %6832, ptr noundef %183)
  %6834 = icmp eq i32 %6833, -1
  br i1 %6834, label %6835, label %6888

6835:                                             ; preds = %6828
  br label %6836

6836:                                             ; preds = %6835
  br label %6837

6837:                                             ; preds = %6836
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %6838 = call ptr @__errno_location() #12
  %6839 = load i32, ptr %6838, align 4, !tbaa !5
  store i32 %6839, ptr %184, align 4, !tbaa !5
  %6840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6841 = call i32 @s2n_print_stacktrace(ptr noundef %6840)
  %6842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6843 = trunc i8 %6842 to i1
  br i1 %6843, label %6844, label %6866

6844:                                             ; preds = %6837
  %6845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6846 = call i32 @fileno(ptr noundef %6845) #11
  %6847 = call i32 @isatty(i32 noundef %6846) #11
  %6848 = icmp ne i32 %6847, 0
  br i1 %6848, label %6849, label %6866

6849:                                             ; preds = %6844
  %6850 = load i32, ptr %184, align 4, !tbaa !5
  %6851 = call ptr @__errno_location() #12
  store i32 %6850, ptr %6851, align 4, !tbaa !5
  %6852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6853 = load i32, ptr @test_count, align 4, !tbaa !5
  %6854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6855 = load i32, ptr %6854, align 4, !tbaa !5
  %6856 = call ptr @s2n_strerror(i32 noundef %6855, ptr noundef @.str.4)
  %6857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6858 = load i32, ptr %6857, align 4, !tbaa !5
  %6859 = call ptr @s2n_strerror_debug(i32 noundef %6858, ptr noundef @.str.4)
  %6860 = call ptr @__errno_location() #12
  %6861 = load i32, ptr %6860, align 4, !tbaa !5
  %6862 = call ptr @strerror(i32 noundef %6861) #11
  %6863 = call ptr @__errno_location() #12
  %6864 = load i32, ptr %6863, align 4, !tbaa !5
  %6865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6852, ptr noundef @.str.2, i32 noundef %6853, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 377, ptr noundef %6856, ptr noundef %6859, ptr noundef %6862, i32 noundef %6864) #11
  br label %6883

6866:                                             ; preds = %6844, %6837
  %6867 = load i32, ptr %184, align 4, !tbaa !5
  %6868 = call ptr @__errno_location() #12
  store i32 %6867, ptr %6868, align 4, !tbaa !5
  %6869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6870 = load i32, ptr @test_count, align 4, !tbaa !5
  %6871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6872 = load i32, ptr %6871, align 4, !tbaa !5
  %6873 = call ptr @s2n_strerror(i32 noundef %6872, ptr noundef @.str.4)
  %6874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6875 = load i32, ptr %6874, align 4, !tbaa !5
  %6876 = call ptr @s2n_strerror_debug(i32 noundef %6875, ptr noundef @.str.4)
  %6877 = call ptr @__errno_location() #12
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  %6879 = call ptr @strerror(i32 noundef %6878) #11
  %6880 = call ptr @__errno_location() #12
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6869, ptr noundef @.str.5, i32 noundef %6870, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 377, ptr noundef %6873, ptr noundef %6876, ptr noundef %6879, i32 noundef %6881) #11
  br label %6883

6883:                                             ; preds = %6866, %6849
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %6884

6884:                                             ; preds = %6883
  br label %6885

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

6886:                                             ; No predecessors!
  br label %6887

6887:                                             ; preds = %6886
  br label %6888

6888:                                             ; preds = %6887, %6828
  br label %6889

6889:                                             ; preds = %6888
  br label %6890

6890:                                             ; preds = %6889
  br label %6891

6891:                                             ; preds = %6890
  %6892 = load i32, ptr @test_count, align 4, !tbaa !5
  %6893 = add nsw i32 %6892, 1
  store i32 %6893, ptr @test_count, align 4, !tbaa !5
  %6894 = load i16, ptr %183, align 2, !tbaa !75
  %6895 = zext i16 %6894 to i32
  %6896 = icmp eq i32 %6895, 1
  br i1 %6896, label %6950, label %6897

6897:                                             ; preds = %6891
  br label %6898

6898:                                             ; preds = %6897
  br label %6899

6899:                                             ; preds = %6898
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %6900 = call ptr @__errno_location() #12
  %6901 = load i32, ptr %6900, align 4, !tbaa !5
  store i32 %6901, ptr %185, align 4, !tbaa !5
  %6902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6903 = call i32 @s2n_print_stacktrace(ptr noundef %6902)
  %6904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6905 = trunc i8 %6904 to i1
  br i1 %6905, label %6906, label %6928

6906:                                             ; preds = %6899
  %6907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6908 = call i32 @fileno(ptr noundef %6907) #11
  %6909 = call i32 @isatty(i32 noundef %6908) #11
  %6910 = icmp ne i32 %6909, 0
  br i1 %6910, label %6911, label %6928

6911:                                             ; preds = %6906
  %6912 = load i32, ptr %185, align 4, !tbaa !5
  %6913 = call ptr @__errno_location() #12
  store i32 %6912, ptr %6913, align 4, !tbaa !5
  %6914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6915 = load i32, ptr @test_count, align 4, !tbaa !5
  %6916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6917 = load i32, ptr %6916, align 4, !tbaa !5
  %6918 = call ptr @s2n_strerror(i32 noundef %6917, ptr noundef @.str.4)
  %6919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6920 = load i32, ptr %6919, align 4, !tbaa !5
  %6921 = call ptr @s2n_strerror_debug(i32 noundef %6920, ptr noundef @.str.4)
  %6922 = call ptr @__errno_location() #12
  %6923 = load i32, ptr %6922, align 4, !tbaa !5
  %6924 = call ptr @strerror(i32 noundef %6923) #11
  %6925 = call ptr @__errno_location() #12
  %6926 = load i32, ptr %6925, align 4, !tbaa !5
  %6927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6914, ptr noundef @.str.2, i32 noundef %6915, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 377, ptr noundef %6918, ptr noundef %6921, ptr noundef %6924, i32 noundef %6926) #11
  br label %6945

6928:                                             ; preds = %6906, %6899
  %6929 = load i32, ptr %185, align 4, !tbaa !5
  %6930 = call ptr @__errno_location() #12
  store i32 %6929, ptr %6930, align 4, !tbaa !5
  %6931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6932 = load i32, ptr @test_count, align 4, !tbaa !5
  %6933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @s2n_strerror(i32 noundef %6934, ptr noundef @.str.4)
  %6936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @s2n_strerror_debug(i32 noundef %6937, ptr noundef @.str.4)
  %6939 = call ptr @__errno_location() #12
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @strerror(i32 noundef %6940) #11
  %6942 = call ptr @__errno_location() #12
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6931, ptr noundef @.str.5, i32 noundef %6932, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 377, ptr noundef %6935, ptr noundef %6938, ptr noundef %6941, i32 noundef %6943) #11
  br label %6945

6945:                                             ; preds = %6928, %6911
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %6946

6946:                                             ; preds = %6945
  br label %6947

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

6948:                                             ; No predecessors!
  br label %6949

6949:                                             ; preds = %6948
  br label %6950

6950:                                             ; preds = %6949, %6891
  br label %6951

6951:                                             ; preds = %6950
  br label %6952

6952:                                             ; preds = %6951
  call void @llvm.lifetime.end.p0(i64 2, ptr %183) #11
  br label %6953

6953:                                             ; preds = %6952
  br label %6954

6954:                                             ; preds = %6953
  br label %6955

6955:                                             ; preds = %6954
  call void @llvm.lifetime.start.p0(i64 1, ptr %186) #11
  br label %6956

6956:                                             ; preds = %6955
  %6957 = load i32, ptr @test_count, align 4, !tbaa !5
  %6958 = add nsw i32 %6957, 1
  store i32 %6958, ptr @test_count, align 4, !tbaa !5
  %6959 = load ptr, ptr %153, align 8, !tbaa !9
  %6960 = getelementptr inbounds %struct.s2n_connection, ptr %6959, i32 0, i32 41
  %6961 = call i32 @s2n_stuffer_read_uint8(ptr noundef %6960, ptr noundef %186)
  %6962 = icmp eq i32 %6961, -1
  br i1 %6962, label %6963, label %7016

6963:                                             ; preds = %6956
  br label %6964

6964:                                             ; preds = %6963
  br label %6965

6965:                                             ; preds = %6964
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %6966 = call ptr @__errno_location() #12
  %6967 = load i32, ptr %6966, align 4, !tbaa !5
  store i32 %6967, ptr %187, align 4, !tbaa !5
  %6968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6969 = call i32 @s2n_print_stacktrace(ptr noundef %6968)
  %6970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6971 = trunc i8 %6970 to i1
  br i1 %6971, label %6972, label %6994

6972:                                             ; preds = %6965
  %6973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6974 = call i32 @fileno(ptr noundef %6973) #11
  %6975 = call i32 @isatty(i32 noundef %6974) #11
  %6976 = icmp ne i32 %6975, 0
  br i1 %6976, label %6977, label %6994

6977:                                             ; preds = %6972
  %6978 = load i32, ptr %187, align 4, !tbaa !5
  %6979 = call ptr @__errno_location() #12
  store i32 %6978, ptr %6979, align 4, !tbaa !5
  %6980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6981 = load i32, ptr @test_count, align 4, !tbaa !5
  %6982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @s2n_strerror(i32 noundef %6983, ptr noundef @.str.4)
  %6985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call ptr @s2n_strerror_debug(i32 noundef %6986, ptr noundef @.str.4)
  %6988 = call ptr @__errno_location() #12
  %6989 = load i32, ptr %6988, align 4, !tbaa !5
  %6990 = call ptr @strerror(i32 noundef %6989) #11
  %6991 = call ptr @__errno_location() #12
  %6992 = load i32, ptr %6991, align 4, !tbaa !5
  %6993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6980, ptr noundef @.str.2, i32 noundef %6981, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 378, ptr noundef %6984, ptr noundef %6987, ptr noundef %6990, i32 noundef %6992) #11
  br label %7011

6994:                                             ; preds = %6972, %6965
  %6995 = load i32, ptr %187, align 4, !tbaa !5
  %6996 = call ptr @__errno_location() #12
  store i32 %6995, ptr %6996, align 4, !tbaa !5
  %6997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6998 = load i32, ptr @test_count, align 4, !tbaa !5
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @s2n_strerror_debug(i32 noundef %7003, ptr noundef @.str.4)
  %7005 = call ptr @__errno_location() #12
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call ptr @strerror(i32 noundef %7006) #11
  %7008 = call ptr @__errno_location() #12
  %7009 = load i32, ptr %7008, align 4, !tbaa !5
  %7010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6997, ptr noundef @.str.5, i32 noundef %6998, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7001, ptr noundef %7004, ptr noundef %7007, i32 noundef %7009) #11
  br label %7011

7011:                                             ; preds = %6994, %6977
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %7012

7012:                                             ; preds = %7011
  br label %7013

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

7014:                                             ; No predecessors!
  br label %7015

7015:                                             ; preds = %7014
  br label %7016

7016:                                             ; preds = %7015, %6956
  br label %7017

7017:                                             ; preds = %7016
  br label %7018

7018:                                             ; preds = %7017
  br label %7019

7019:                                             ; preds = %7018
  %7020 = load i32, ptr @test_count, align 4, !tbaa !5
  %7021 = add nsw i32 %7020, 1
  store i32 %7021, ptr @test_count, align 4, !tbaa !5
  %7022 = load i8, ptr %186, align 1, !tbaa !59
  %7023 = zext i8 %7022 to i32
  %7024 = icmp eq i32 %7023, 1
  br i1 %7024, label %7078, label %7025

7025:                                             ; preds = %7019
  br label %7026

7026:                                             ; preds = %7025
  br label %7027

7027:                                             ; preds = %7026
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %7028 = call ptr @__errno_location() #12
  %7029 = load i32, ptr %7028, align 4, !tbaa !5
  store i32 %7029, ptr %188, align 4, !tbaa !5
  %7030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7031 = call i32 @s2n_print_stacktrace(ptr noundef %7030)
  %7032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7033 = trunc i8 %7032 to i1
  br i1 %7033, label %7034, label %7056

7034:                                             ; preds = %7027
  %7035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7036 = call i32 @fileno(ptr noundef %7035) #11
  %7037 = call i32 @isatty(i32 noundef %7036) #11
  %7038 = icmp ne i32 %7037, 0
  br i1 %7038, label %7039, label %7056

7039:                                             ; preds = %7034
  %7040 = load i32, ptr %188, 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.2, i32 noundef %7043, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7046, ptr noundef %7049, ptr noundef %7052, i32 noundef %7054) #11
  br label %7073

7056:                                             ; preds = %7034, %7027
  %7057 = load i32, ptr %188, align 4, !tbaa !5
  %7058 = call ptr @__errno_location() #12
  store i32 %7057, ptr %7058, align 4, !tbaa !5
  %7059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7060 = load i32, ptr @test_count, align 4, !tbaa !5
  %7061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call ptr @s2n_strerror(i32 noundef %7062, ptr noundef @.str.4)
  %7064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call ptr @s2n_strerror_debug(i32 noundef %7065, ptr noundef @.str.4)
  %7067 = call ptr @__errno_location() #12
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  %7069 = call ptr @strerror(i32 noundef %7068) #11
  %7070 = call ptr @__errno_location() #12
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7059, ptr noundef @.str.5, i32 noundef %7060, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7063, ptr noundef %7066, ptr noundef %7069, i32 noundef %7071) #11
  br label %7073

7073:                                             ; preds = %7056, %7039
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %7074

7074:                                             ; preds = %7073
  br label %7075

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

7076:                                             ; No predecessors!
  br label %7077

7077:                                             ; preds = %7076
  br label %7078

7078:                                             ; preds = %7077, %7019
  br label %7079

7079:                                             ; preds = %7078
  br label %7080

7080:                                             ; preds = %7079
  call void @llvm.lifetime.end.p0(i64 1, ptr %186) #11
  br label %7081

7081:                                             ; preds = %7080
  br label %7082

7082:                                             ; preds = %7081
  br label %7083

7083:                                             ; preds = %7082
  %7084 = load i32, ptr @test_count, align 4, !tbaa !5
  %7085 = add nsw i32 %7084, 1
  store i32 %7085, ptr @test_count, align 4, !tbaa !5
  %7086 = load ptr, ptr %153, align 8, !tbaa !9
  %7087 = getelementptr inbounds %struct.s2n_connection, ptr %7086, i32 0, i32 41
  %7088 = call i32 @s2n_stuffer_wipe(ptr noundef %7087)
  %7089 = icmp eq i32 %7088, -1
  br i1 %7089, label %7090, label %7143

7090:                                             ; preds = %7083
  br label %7091

7091:                                             ; preds = %7090
  br label %7092

7092:                                             ; preds = %7091
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %7093 = call ptr @__errno_location() #12
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  store i32 %7094, ptr %189, align 4, !tbaa !5
  %7095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7096 = call i32 @s2n_print_stacktrace(ptr noundef %7095)
  %7097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7098 = trunc i8 %7097 to i1
  br i1 %7098, label %7099, label %7121

7099:                                             ; preds = %7092
  %7100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7101 = call i32 @fileno(ptr noundef %7100) #11
  %7102 = call i32 @isatty(i32 noundef %7101) #11
  %7103 = icmp ne i32 %7102, 0
  br i1 %7103, label %7104, label %7121

7104:                                             ; preds = %7099
  %7105 = load i32, ptr %189, align 4, !tbaa !5
  %7106 = call ptr @__errno_location() #12
  store i32 %7105, ptr %7106, align 4, !tbaa !5
  %7107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7108 = load i32, ptr @test_count, align 4, !tbaa !5
  %7109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7110 = load i32, ptr %7109, align 4, !tbaa !5
  %7111 = call ptr @s2n_strerror(i32 noundef %7110, ptr noundef @.str.4)
  %7112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7113 = load i32, ptr %7112, align 4, !tbaa !5
  %7114 = call ptr @s2n_strerror_debug(i32 noundef %7113, ptr noundef @.str.4)
  %7115 = call ptr @__errno_location() #12
  %7116 = load i32, ptr %7115, align 4, !tbaa !5
  %7117 = call ptr @strerror(i32 noundef %7116) #11
  %7118 = call ptr @__errno_location() #12
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7107, ptr noundef @.str.2, i32 noundef %7108, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 380, ptr noundef %7111, ptr noundef %7114, ptr noundef %7117, i32 noundef %7119) #11
  br label %7138

7121:                                             ; preds = %7099, %7092
  %7122 = load i32, ptr %189, align 4, !tbaa !5
  %7123 = call ptr @__errno_location() #12
  store i32 %7122, ptr %7123, align 4, !tbaa !5
  %7124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7125 = load i32, ptr @test_count, align 4, !tbaa !5
  %7126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7127 = load i32, ptr %7126, align 4, !tbaa !5
  %7128 = call ptr @s2n_strerror(i32 noundef %7127, ptr noundef @.str.4)
  %7129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7130 = load i32, ptr %7129, align 4, !tbaa !5
  %7131 = call ptr @s2n_strerror_debug(i32 noundef %7130, ptr noundef @.str.4)
  %7132 = call ptr @__errno_location() #12
  %7133 = load i32, ptr %7132, align 4, !tbaa !5
  %7134 = call ptr @strerror(i32 noundef %7133) #11
  %7135 = call ptr @__errno_location() #12
  %7136 = load i32, ptr %7135, align 4, !tbaa !5
  %7137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7124, ptr noundef @.str.5, i32 noundef %7125, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 380, ptr noundef %7128, ptr noundef %7131, ptr noundef %7134, i32 noundef %7136) #11
  br label %7138

7138:                                             ; preds = %7121, %7104
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %7139

7139:                                             ; preds = %7138
  br label %7140

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

7141:                                             ; No predecessors!
  br label %7142

7142:                                             ; preds = %7141
  br label %7143

7143:                                             ; preds = %7142, %7083
  br label %7144

7144:                                             ; preds = %7143
  br label %7145

7145:                                             ; preds = %7144
  br label %7146

7146:                                             ; preds = %7145
  %7147 = load i32, ptr @test_count, align 4, !tbaa !5
  %7148 = add nsw i32 %7147, 1
  store i32 %7148, ptr @test_count, align 4, !tbaa !5
  %7149 = load ptr, ptr %153, align 8, !tbaa !9
  %7150 = call i32 @s2n_record_write(ptr noundef %7149, i8 noundef zeroext 22, ptr noundef %174)
  %7151 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  store i32 %7150, ptr %7151, align 4
  %7152 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  %7153 = load i32, ptr %7152, align 4
  %7154 = call zeroext i1 @s2n_result_is_ok(i32 %7153)
  br i1 %7154, label %7208, label %7155

7155:                                             ; preds = %7146
  br label %7156

7156:                                             ; preds = %7155
  br label %7157

7157:                                             ; preds = %7156
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %7158 = call ptr @__errno_location() #12
  %7159 = load i32, ptr %7158, align 4, !tbaa !5
  store i32 %7159, ptr %191, align 4, !tbaa !5
  %7160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7161 = call i32 @s2n_print_stacktrace(ptr noundef %7160)
  %7162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7163 = trunc i8 %7162 to i1
  br i1 %7163, label %7164, label %7186

7164:                                             ; preds = %7157
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = call i32 @fileno(ptr noundef %7165) #11
  %7167 = call i32 @isatty(i32 noundef %7166) #11
  %7168 = icmp ne i32 %7167, 0
  br i1 %7168, label %7169, label %7186

7169:                                             ; preds = %7164
  %7170 = load i32, ptr %191, align 4, !tbaa !5
  %7171 = call ptr @__errno_location() #12
  store i32 %7170, ptr %7171, align 4, !tbaa !5
  %7172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7173 = load i32, ptr @test_count, align 4, !tbaa !5
  %7174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7175 = load i32, ptr %7174, align 4, !tbaa !5
  %7176 = call ptr @s2n_strerror(i32 noundef %7175, ptr noundef @.str.4)
  %7177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7178 = load i32, ptr %7177, align 4, !tbaa !5
  %7179 = call ptr @s2n_strerror_debug(i32 noundef %7178, ptr noundef @.str.4)
  %7180 = call ptr @__errno_location() #12
  %7181 = load i32, ptr %7180, align 4, !tbaa !5
  %7182 = call ptr @strerror(i32 noundef %7181) #11
  %7183 = call ptr @__errno_location() #12
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7172, ptr noundef @.str.2, i32 noundef %7173, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 383, ptr noundef %7176, ptr noundef %7179, ptr noundef %7182, i32 noundef %7184) #11
  br label %7203

7186:                                             ; preds = %7164, %7157
  %7187 = load i32, ptr %191, align 4, !tbaa !5
  %7188 = call ptr @__errno_location() #12
  store i32 %7187, ptr %7188, align 4, !tbaa !5
  %7189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7190 = load i32, ptr @test_count, align 4, !tbaa !5
  %7191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7192 = load i32, ptr %7191, align 4, !tbaa !5
  %7193 = call ptr @s2n_strerror(i32 noundef %7192, ptr noundef @.str.4)
  %7194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  %7196 = call ptr @s2n_strerror_debug(i32 noundef %7195, ptr noundef @.str.4)
  %7197 = call ptr @__errno_location() #12
  %7198 = load i32, ptr %7197, align 4, !tbaa !5
  %7199 = call ptr @strerror(i32 noundef %7198) #11
  %7200 = call ptr @__errno_location() #12
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7189, ptr noundef @.str.5, i32 noundef %7190, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 383, ptr noundef %7193, ptr noundef %7196, ptr noundef %7199, i32 noundef %7201) #11
  br label %7203

7203:                                             ; preds = %7186, %7169
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %7204

7204:                                             ; preds = %7203
  br label %7205

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

7206:                                             ; No predecessors!
  br label %7207

7207:                                             ; preds = %7206
  br label %7208

7208:                                             ; preds = %7207, %7146
  br label %7209

7209:                                             ; preds = %7208
  br label %7210

7210:                                             ; preds = %7209
  br label %7211

7211:                                             ; preds = %7210
  call void @llvm.lifetime.start.p0(i64 1, ptr %192) #11
  br label %7212

7212:                                             ; preds = %7211
  %7213 = load i32, ptr @test_count, align 4, !tbaa !5
  %7214 = add nsw i32 %7213, 1
  store i32 %7214, ptr @test_count, align 4, !tbaa !5
  %7215 = load ptr, ptr %153, align 8, !tbaa !9
  %7216 = getelementptr inbounds %struct.s2n_connection, ptr %7215, i32 0, i32 41
  %7217 = call i32 @s2n_stuffer_read_uint8(ptr noundef %7216, ptr noundef %192)
  %7218 = icmp eq i32 %7217, -1
  br i1 %7218, label %7219, label %7272

7219:                                             ; preds = %7212
  br label %7220

7220:                                             ; preds = %7219
  br label %7221

7221:                                             ; preds = %7220
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %7222 = call ptr @__errno_location() #12
  %7223 = load i32, ptr %7222, align 4, !tbaa !5
  store i32 %7223, ptr %193, align 4, !tbaa !5
  %7224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7225 = call i32 @s2n_print_stacktrace(ptr noundef %7224)
  %7226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7227 = trunc i8 %7226 to i1
  br i1 %7227, label %7228, label %7250

7228:                                             ; preds = %7221
  %7229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7230 = call i32 @fileno(ptr noundef %7229) #11
  %7231 = call i32 @isatty(i32 noundef %7230) #11
  %7232 = icmp ne i32 %7231, 0
  br i1 %7232, label %7233, label %7250

7233:                                             ; preds = %7228
  %7234 = load i32, ptr %193, align 4, !tbaa !5
  %7235 = call ptr @__errno_location() #12
  store i32 %7234, ptr %7235, align 4, !tbaa !5
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = load i32, ptr @test_count, align 4, !tbaa !5
  %7238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7239 = load i32, ptr %7238, align 4, !tbaa !5
  %7240 = call ptr @s2n_strerror(i32 noundef %7239, ptr noundef @.str.4)
  %7241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7242 = load i32, ptr %7241, align 4, !tbaa !5
  %7243 = call ptr @s2n_strerror_debug(i32 noundef %7242, ptr noundef @.str.4)
  %7244 = call ptr @__errno_location() #12
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = call ptr @strerror(i32 noundef %7245) #11
  %7247 = call ptr @__errno_location() #12
  %7248 = load i32, ptr %7247, align 4, !tbaa !5
  %7249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7236, ptr noundef @.str.2, i32 noundef %7237, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7240, ptr noundef %7243, ptr noundef %7246, i32 noundef %7248) #11
  br label %7267

7250:                                             ; preds = %7228, %7221
  %7251 = load i32, ptr %193, align 4, !tbaa !5
  %7252 = call ptr @__errno_location() #12
  store i32 %7251, ptr %7252, align 4, !tbaa !5
  %7253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7254 = load i32, ptr @test_count, align 4, !tbaa !5
  %7255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7256 = load i32, ptr %7255, align 4, !tbaa !5
  %7257 = call ptr @s2n_strerror(i32 noundef %7256, ptr noundef @.str.4)
  %7258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7259 = load i32, ptr %7258, align 4, !tbaa !5
  %7260 = call ptr @s2n_strerror_debug(i32 noundef %7259, ptr noundef @.str.4)
  %7261 = call ptr @__errno_location() #12
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  %7263 = call ptr @strerror(i32 noundef %7262) #11
  %7264 = call ptr @__errno_location() #12
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7253, ptr noundef @.str.5, i32 noundef %7254, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7257, ptr noundef %7260, ptr noundef %7263, i32 noundef %7265) #11
  br label %7267

7267:                                             ; preds = %7250, %7233
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %7268

7268:                                             ; preds = %7267
  br label %7269

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

7270:                                             ; No predecessors!
  br label %7271

7271:                                             ; preds = %7270
  br label %7272

7272:                                             ; preds = %7271, %7212
  br label %7273

7273:                                             ; preds = %7272
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

7275:                                             ; preds = %7274
  %7276 = load i32, ptr @test_count, align 4, !tbaa !5
  %7277 = add nsw i32 %7276, 1
  store i32 %7277, ptr @test_count, align 4, !tbaa !5
  %7278 = load i8, ptr %192, align 1, !tbaa !59
  %7279 = zext i8 %7278 to i32
  %7280 = icmp eq i32 %7279, 23
  br i1 %7280, label %7334, label %7281

7281:                                             ; preds = %7275
  br label %7282

7282:                                             ; preds = %7281
  br label %7283

7283:                                             ; preds = %7282
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %7284 = call ptr @__errno_location() #12
  %7285 = load i32, ptr %7284, align 4, !tbaa !5
  store i32 %7285, ptr %194, align 4, !tbaa !5
  %7286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7287 = call i32 @s2n_print_stacktrace(ptr noundef %7286)
  %7288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7289 = trunc i8 %7288 to i1
  br i1 %7289, label %7290, label %7312

7290:                                             ; preds = %7283
  %7291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7292 = call i32 @fileno(ptr noundef %7291) #11
  %7293 = call i32 @isatty(i32 noundef %7292) #11
  %7294 = icmp ne i32 %7293, 0
  br i1 %7294, label %7295, label %7312

7295:                                             ; preds = %7290
  %7296 = load i32, ptr %194, align 4, !tbaa !5
  %7297 = call ptr @__errno_location() #12
  store i32 %7296, ptr %7297, align 4, !tbaa !5
  %7298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7299 = load i32, ptr @test_count, align 4, !tbaa !5
  %7300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7301 = load i32, ptr %7300, align 4, !tbaa !5
  %7302 = call ptr @s2n_strerror(i32 noundef %7301, ptr noundef @.str.4)
  %7303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7304 = load i32, ptr %7303, align 4, !tbaa !5
  %7305 = call ptr @s2n_strerror_debug(i32 noundef %7304, ptr noundef @.str.4)
  %7306 = call ptr @__errno_location() #12
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @strerror(i32 noundef %7307) #11
  %7309 = call ptr @__errno_location() #12
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7298, ptr noundef @.str.2, i32 noundef %7299, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7302, ptr noundef %7305, ptr noundef %7308, i32 noundef %7310) #11
  br label %7329

7312:                                             ; preds = %7290, %7283
  %7313 = load i32, ptr %194, align 4, !tbaa !5
  %7314 = call ptr @__errno_location() #12
  store i32 %7313, ptr %7314, align 4, !tbaa !5
  %7315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7316 = load i32, ptr @test_count, align 4, !tbaa !5
  %7317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7318 = load i32, ptr %7317, align 4, !tbaa !5
  %7319 = call ptr @s2n_strerror(i32 noundef %7318, ptr noundef @.str.4)
  %7320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  %7322 = call ptr @s2n_strerror_debug(i32 noundef %7321, ptr noundef @.str.4)
  %7323 = call ptr @__errno_location() #12
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call ptr @strerror(i32 noundef %7324) #11
  %7326 = call ptr @__errno_location() #12
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7315, ptr noundef @.str.5, i32 noundef %7316, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7319, ptr noundef %7322, ptr noundef %7325, i32 noundef %7327) #11
  br label %7329

7329:                                             ; preds = %7312, %7295
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %7330

7330:                                             ; preds = %7329
  br label %7331

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

7332:                                             ; No predecessors!
  br label %7333

7333:                                             ; preds = %7332
  br label %7334

7334:                                             ; preds = %7333, %7275
  br label %7335

7335:                                             ; preds = %7334
  br label %7336

7336:                                             ; preds = %7335
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #11
  br label %7337

7337:                                             ; preds = %7336
  br label %7338

7338:                                             ; preds = %7337
  br label %7339

7339:                                             ; preds = %7338
  call void @llvm.lifetime.start.p0(i64 2, ptr %195) #11
  br label %7340

7340:                                             ; preds = %7339
  %7341 = load i32, ptr @test_count, align 4, !tbaa !5
  %7342 = add nsw i32 %7341, 1
  store i32 %7342, ptr @test_count, align 4, !tbaa !5
  %7343 = load ptr, ptr %153, align 8, !tbaa !9
  %7344 = getelementptr inbounds %struct.s2n_connection, ptr %7343, i32 0, i32 41
  %7345 = call i32 @s2n_stuffer_read_uint16(ptr noundef %7344, ptr noundef %195)
  %7346 = icmp eq i32 %7345, -1
  br i1 %7346, label %7347, label %7400

7347:                                             ; preds = %7340
  br label %7348

7348:                                             ; preds = %7347
  br label %7349

7349:                                             ; preds = %7348
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %7350 = call ptr @__errno_location() #12
  %7351 = load i32, ptr %7350, align 4, !tbaa !5
  store i32 %7351, ptr %196, align 4, !tbaa !5
  %7352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7353 = call i32 @s2n_print_stacktrace(ptr noundef %7352)
  %7354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7355 = trunc i8 %7354 to i1
  br i1 %7355, label %7356, label %7378

7356:                                             ; preds = %7349
  %7357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7358 = call i32 @fileno(ptr noundef %7357) #11
  %7359 = call i32 @isatty(i32 noundef %7358) #11
  %7360 = icmp ne i32 %7359, 0
  br i1 %7360, label %7361, label %7378

7361:                                             ; preds = %7356
  %7362 = load i32, ptr %196, align 4, !tbaa !5
  %7363 = call ptr @__errno_location() #12
  store i32 %7362, ptr %7363, align 4, !tbaa !5
  %7364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7365 = load i32, ptr @test_count, align 4, !tbaa !5
  %7366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  %7368 = call ptr @s2n_strerror(i32 noundef %7367, ptr noundef @.str.4)
  %7369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  %7371 = call ptr @s2n_strerror_debug(i32 noundef %7370, ptr noundef @.str.4)
  %7372 = call ptr @__errno_location() #12
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @strerror(i32 noundef %7373) #11
  %7375 = call ptr @__errno_location() #12
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7364, ptr noundef @.str.2, i32 noundef %7365, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 387, ptr noundef %7368, ptr noundef %7371, ptr noundef %7374, i32 noundef %7376) #11
  br label %7395

7378:                                             ; preds = %7356, %7349
  %7379 = load i32, ptr %196, align 4, !tbaa !5
  %7380 = call ptr @__errno_location() #12
  store i32 %7379, ptr %7380, align 4, !tbaa !5
  %7381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7382 = load i32, ptr @test_count, align 4, !tbaa !5
  %7383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7384 = load i32, ptr %7383, align 4, !tbaa !5
  %7385 = call ptr @s2n_strerror(i32 noundef %7384, ptr noundef @.str.4)
  %7386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7387 = load i32, ptr %7386, align 4, !tbaa !5
  %7388 = call ptr @s2n_strerror_debug(i32 noundef %7387, ptr noundef @.str.4)
  %7389 = call ptr @__errno_location() #12
  %7390 = load i32, ptr %7389, align 4, !tbaa !5
  %7391 = call ptr @strerror(i32 noundef %7390) #11
  %7392 = call ptr @__errno_location() #12
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7381, ptr noundef @.str.5, i32 noundef %7382, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 387, ptr noundef %7385, ptr noundef %7388, ptr noundef %7391, i32 noundef %7393) #11
  br label %7395

7395:                                             ; preds = %7378, %7361
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %7396

7396:                                             ; preds = %7395
  br label %7397

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

7398:                                             ; No predecessors!
  br label %7399

7399:                                             ; preds = %7398
  br label %7400

7400:                                             ; preds = %7399, %7340
  br label %7401

7401:                                             ; preds = %7400
  br label %7402

7402:                                             ; preds = %7401
  br label %7403

7403:                                             ; preds = %7402
  %7404 = load i32, ptr @test_count, align 4, !tbaa !5
  %7405 = add nsw i32 %7404, 1
  store i32 %7405, ptr @test_count, align 4, !tbaa !5
  %7406 = load i16, ptr %195, align 2, !tbaa !75
  %7407 = zext i16 %7406 to i32
  %7408 = icmp eq i32 %7407, 771
  br i1 %7408, label %7462, label %7409

7409:                                             ; preds = %7403
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %7412 = call ptr @__errno_location() #12
  %7413 = load i32, ptr %7412, align 4, !tbaa !5
  store i32 %7413, ptr %197, align 4, !tbaa !5
  %7414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7415 = call i32 @s2n_print_stacktrace(ptr noundef %7414)
  %7416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7417 = trunc i8 %7416 to i1
  br i1 %7417, label %7418, label %7440

7418:                                             ; preds = %7411
  %7419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7420 = call i32 @fileno(ptr noundef %7419) #11
  %7421 = call i32 @isatty(i32 noundef %7420) #11
  %7422 = icmp ne i32 %7421, 0
  br i1 %7422, label %7423, label %7440

7423:                                             ; preds = %7418
  %7424 = load i32, ptr %197, align 4, !tbaa !5
  %7425 = call ptr @__errno_location() #12
  store i32 %7424, ptr %7425, align 4, !tbaa !5
  %7426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7427 = load i32, ptr @test_count, align 4, !tbaa !5
  %7428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7429 = load i32, ptr %7428, align 4, !tbaa !5
  %7430 = call ptr @s2n_strerror(i32 noundef %7429, ptr noundef @.str.4)
  %7431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7432 = load i32, ptr %7431, align 4, !tbaa !5
  %7433 = call ptr @s2n_strerror_debug(i32 noundef %7432, ptr noundef @.str.4)
  %7434 = call ptr @__errno_location() #12
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @strerror(i32 noundef %7435) #11
  %7437 = call ptr @__errno_location() #12
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7426, ptr noundef @.str.2, i32 noundef %7427, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 387, ptr noundef %7430, ptr noundef %7433, ptr noundef %7436, i32 noundef %7438) #11
  br label %7457

7440:                                             ; preds = %7418, %7411
  %7441 = load i32, ptr %197, align 4, !tbaa !5
  %7442 = call ptr @__errno_location() #12
  store i32 %7441, ptr %7442, align 4, !tbaa !5
  %7443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7444 = load i32, ptr @test_count, align 4, !tbaa !5
  %7445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call ptr @s2n_strerror(i32 noundef %7446, ptr noundef @.str.4)
  %7448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7449 = load i32, ptr %7448, align 4, !tbaa !5
  %7450 = call ptr @s2n_strerror_debug(i32 noundef %7449, ptr noundef @.str.4)
  %7451 = call ptr @__errno_location() #12
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call ptr @strerror(i32 noundef %7452) #11
  %7454 = call ptr @__errno_location() #12
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  %7456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7443, ptr noundef @.str.5, i32 noundef %7444, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 387, ptr noundef %7447, ptr noundef %7450, ptr noundef %7453, i32 noundef %7455) #11
  br label %7457

7457:                                             ; preds = %7440, %7423
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %7458

7458:                                             ; preds = %7457
  br label %7459

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

7460:                                             ; No predecessors!
  br label %7461

7461:                                             ; preds = %7460
  br label %7462

7462:                                             ; preds = %7461, %7403
  br label %7463

7463:                                             ; preds = %7462
  br label %7464

7464:                                             ; preds = %7463
  call void @llvm.lifetime.end.p0(i64 2, ptr %195) #11
  br label %7465

7465:                                             ; preds = %7464
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

7467:                                             ; preds = %7466
  call void @llvm.lifetime.start.p0(i64 2, ptr %198) #11
  br label %7468

7468:                                             ; preds = %7467
  %7469 = load i32, ptr @test_count, align 4, !tbaa !5
  %7470 = add nsw i32 %7469, 1
  store i32 %7470, ptr @test_count, align 4, !tbaa !5
  %7471 = load ptr, ptr %153, align 8, !tbaa !9
  %7472 = getelementptr inbounds %struct.s2n_connection, ptr %7471, i32 0, i32 41
  %7473 = call i32 @s2n_stuffer_read_uint16(ptr noundef %7472, ptr noundef %198)
  %7474 = icmp eq i32 %7473, -1
  br i1 %7474, label %7475, label %7528

7475:                                             ; preds = %7468
  br label %7476

7476:                                             ; preds = %7475
  br label %7477

7477:                                             ; preds = %7476
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %7478 = call ptr @__errno_location() #12
  %7479 = load i32, ptr %7478, align 4, !tbaa !5
  store i32 %7479, ptr %199, align 4, !tbaa !5
  %7480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7481 = call i32 @s2n_print_stacktrace(ptr noundef %7480)
  %7482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7483 = trunc i8 %7482 to i1
  br i1 %7483, label %7484, label %7506

7484:                                             ; preds = %7477
  %7485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7486 = call i32 @fileno(ptr noundef %7485) #11
  %7487 = call i32 @isatty(i32 noundef %7486) #11
  %7488 = icmp ne i32 %7487, 0
  br i1 %7488, label %7489, label %7506

7489:                                             ; preds = %7484
  %7490 = load i32, ptr %199, align 4, !tbaa !5
  %7491 = call ptr @__errno_location() #12
  store i32 %7490, ptr %7491, align 4, !tbaa !5
  %7492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7493 = load i32, ptr @test_count, align 4, !tbaa !5
  %7494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7495 = load i32, ptr %7494, align 4, !tbaa !5
  %7496 = call ptr @s2n_strerror(i32 noundef %7495, ptr noundef @.str.4)
  %7497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7498 = load i32, ptr %7497, align 4, !tbaa !5
  %7499 = call ptr @s2n_strerror_debug(i32 noundef %7498, ptr noundef @.str.4)
  %7500 = call ptr @__errno_location() #12
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @strerror(i32 noundef %7501) #11
  %7503 = call ptr @__errno_location() #12
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7492, ptr noundef @.str.2, i32 noundef %7493, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 388, ptr noundef %7496, ptr noundef %7499, ptr noundef %7502, i32 noundef %7504) #11
  br label %7523

7506:                                             ; preds = %7484, %7477
  %7507 = load i32, ptr %199, align 4, !tbaa !5
  %7508 = call ptr @__errno_location() #12
  store i32 %7507, ptr %7508, align 4, !tbaa !5
  %7509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7510 = load i32, ptr @test_count, align 4, !tbaa !5
  %7511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7512 = load i32, ptr %7511, align 4, !tbaa !5
  %7513 = call ptr @s2n_strerror(i32 noundef %7512, ptr noundef @.str.4)
  %7514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call ptr @s2n_strerror_debug(i32 noundef %7515, ptr noundef @.str.4)
  %7517 = call ptr @__errno_location() #12
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @strerror(i32 noundef %7518) #11
  %7520 = call ptr @__errno_location() #12
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7509, ptr noundef @.str.5, i32 noundef %7510, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 388, ptr noundef %7513, ptr noundef %7516, ptr noundef %7519, i32 noundef %7521) #11
  br label %7523

7523:                                             ; preds = %7506, %7489
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %7524

7524:                                             ; preds = %7523
  br label %7525

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

7526:                                             ; No predecessors!
  br label %7527

7527:                                             ; preds = %7526
  br label %7528

7528:                                             ; preds = %7527, %7468
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

7531:                                             ; preds = %7530
  %7532 = load i32, ptr @test_count, align 4, !tbaa !5
  %7533 = add nsw i32 %7532, 1
  store i32 %7533, ptr @test_count, align 4, !tbaa !5
  %7534 = load i16, ptr %198, align 2, !tbaa !75
  %7535 = zext i16 %7534 to i32
  %7536 = icmp eq i32 %7535, 18
  br i1 %7536, label %7590, label %7537

7537:                                             ; preds = %7531
  br label %7538

7538:                                             ; preds = %7537
  br label %7539

7539:                                             ; preds = %7538
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %7540 = call ptr @__errno_location() #12
  %7541 = load i32, ptr %7540, align 4, !tbaa !5
  store i32 %7541, ptr %200, align 4, !tbaa !5
  %7542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7543 = call i32 @s2n_print_stacktrace(ptr noundef %7542)
  %7544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7545 = trunc i8 %7544 to i1
  br i1 %7545, label %7546, label %7568

7546:                                             ; preds = %7539
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = call i32 @fileno(ptr noundef %7547) #11
  %7549 = call i32 @isatty(i32 noundef %7548) #11
  %7550 = icmp ne i32 %7549, 0
  br i1 %7550, label %7551, label %7568

7551:                                             ; preds = %7546
  %7552 = load i32, ptr %200, align 4, !tbaa !5
  %7553 = call ptr @__errno_location() #12
  store i32 %7552, ptr %7553, align 4, !tbaa !5
  %7554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7555 = load i32, ptr @test_count, align 4, !tbaa !5
  %7556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7557 = load i32, ptr %7556, align 4, !tbaa !5
  %7558 = call ptr @s2n_strerror(i32 noundef %7557, ptr noundef @.str.4)
  %7559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call ptr @s2n_strerror_debug(i32 noundef %7560, ptr noundef @.str.4)
  %7562 = call ptr @__errno_location() #12
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call ptr @strerror(i32 noundef %7563) #11
  %7565 = call ptr @__errno_location() #12
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7554, ptr noundef @.str.2, i32 noundef %7555, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 388, ptr noundef %7558, ptr noundef %7561, ptr noundef %7564, i32 noundef %7566) #11
  br label %7585

7568:                                             ; preds = %7546, %7539
  %7569 = load i32, ptr %200, align 4, !tbaa !5
  %7570 = call ptr @__errno_location() #12
  store i32 %7569, ptr %7570, align 4, !tbaa !5
  %7571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7572 = load i32, ptr @test_count, align 4, !tbaa !5
  %7573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call ptr @s2n_strerror(i32 noundef %7574, ptr noundef @.str.4)
  %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_debug(i32 noundef %7577, ptr noundef @.str.4)
  %7579 = call ptr @__errno_location() #12
  %7580 = load i32, ptr %7579, align 4, !tbaa !5
  %7581 = call ptr @strerror(i32 noundef %7580) #11
  %7582 = call ptr @__errno_location() #12
  %7583 = load i32, ptr %7582, align 4, !tbaa !5
  %7584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7571, ptr noundef @.str.5, i32 noundef %7572, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 388, ptr noundef %7575, ptr noundef %7578, ptr noundef %7581, i32 noundef %7583) #11
  br label %7585

7585:                                             ; preds = %7568, %7551
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %7586

7586:                                             ; preds = %7585
  br label %7587

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

7588:                                             ; No predecessors!
  br label %7589

7589:                                             ; preds = %7588
  br label %7590

7590:                                             ; preds = %7589, %7531
  br label %7591

7591:                                             ; preds = %7590
  br label %7592

7592:                                             ; preds = %7591
  call void @llvm.lifetime.end.p0(i64 2, ptr %198) #11
  br label %7593

7593:                                             ; preds = %7592
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

7595:                                             ; preds = %7594
  call void @llvm.lifetime.start.p0(i64 1, ptr %201) #11
  br label %7596

7596:                                             ; preds = %7595
  %7597 = load i32, ptr @test_count, align 4, !tbaa !5
  %7598 = add nsw i32 %7597, 1
  store i32 %7598, ptr @test_count, align 4, !tbaa !5
  %7599 = load ptr, ptr %153, align 8, !tbaa !9
  %7600 = getelementptr inbounds %struct.s2n_connection, ptr %7599, i32 0, i32 41
  %7601 = call i32 @s2n_stuffer_read_uint8(ptr noundef %7600, ptr noundef %201)
  %7602 = icmp eq i32 %7601, -1
  br i1 %7602, label %7603, label %7656

7603:                                             ; preds = %7596
  br label %7604

7604:                                             ; preds = %7603
  br label %7605

7605:                                             ; preds = %7604
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %7606 = call ptr @__errno_location() #12
  %7607 = load i32, ptr %7606, align 4, !tbaa !5
  store i32 %7607, ptr %202, align 4, !tbaa !5
  %7608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7609 = call i32 @s2n_print_stacktrace(ptr noundef %7608)
  %7610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7611 = trunc i8 %7610 to i1
  br i1 %7611, label %7612, label %7634

7612:                                             ; preds = %7605
  %7613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7614 = call i32 @fileno(ptr noundef %7613) #11
  %7615 = call i32 @isatty(i32 noundef %7614) #11
  %7616 = icmp ne i32 %7615, 0
  br i1 %7616, label %7617, label %7634

7617:                                             ; preds = %7612
  %7618 = load i32, ptr %202, align 4, !tbaa !5
  %7619 = call ptr @__errno_location() #12
  store i32 %7618, ptr %7619, align 4, !tbaa !5
  %7620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7621 = load i32, ptr @test_count, align 4, !tbaa !5
  %7622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7623 = load i32, ptr %7622, align 4, !tbaa !5
  %7624 = call ptr @s2n_strerror(i32 noundef %7623, ptr noundef @.str.4)
  %7625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @s2n_strerror_debug(i32 noundef %7626, ptr noundef @.str.4)
  %7628 = call ptr @__errno_location() #12
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @strerror(i32 noundef %7629) #11
  %7631 = call ptr @__errno_location() #12
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7620, ptr noundef @.str.2, i32 noundef %7621, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7624, ptr noundef %7627, ptr noundef %7630, i32 noundef %7632) #11
  br label %7651

7634:                                             ; preds = %7612, %7605
  %7635 = load i32, ptr %202, align 4, !tbaa !5
  %7636 = call ptr @__errno_location() #12
  store i32 %7635, ptr %7636, align 4, !tbaa !5
  %7637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7638 = load i32, ptr @test_count, align 4, !tbaa !5
  %7639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7640 = load i32, ptr %7639, align 4, !tbaa !5
  %7641 = call ptr @s2n_strerror(i32 noundef %7640, ptr noundef @.str.4)
  %7642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7643 = load i32, ptr %7642, align 4, !tbaa !5
  %7644 = call ptr @s2n_strerror_debug(i32 noundef %7643, ptr noundef @.str.4)
  %7645 = call ptr @__errno_location() #12
  %7646 = load i32, ptr %7645, align 4, !tbaa !5
  %7647 = call ptr @strerror(i32 noundef %7646) #11
  %7648 = call ptr @__errno_location() #12
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7637, ptr noundef @.str.5, i32 noundef %7638, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7641, ptr noundef %7644, ptr noundef %7647, i32 noundef %7649) #11
  br label %7651

7651:                                             ; preds = %7634, %7617
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

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

7654:                                             ; No predecessors!
  br label %7655

7655:                                             ; preds = %7654
  br label %7656

7656:                                             ; preds = %7655, %7596
  br label %7657

7657:                                             ; preds = %7656
  br label %7658

7658:                                             ; preds = %7657
  br label %7659

7659:                                             ; preds = %7658
  %7660 = load i32, ptr @test_count, align 4, !tbaa !5
  %7661 = add nsw i32 %7660, 1
  store i32 %7661, ptr @test_count, align 4, !tbaa !5
  %7662 = load i8, ptr %201, align 1, !tbaa !59
  %7663 = zext i8 %7662 to i32
  %7664 = icmp eq i32 %7663, 216
  br i1 %7664, label %7718, label %7665

7665:                                             ; preds = %7659
  br label %7666

7666:                                             ; preds = %7665
  br label %7667

7667:                                             ; preds = %7666
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %7668 = call ptr @__errno_location() #12
  %7669 = load i32, ptr %7668, align 4, !tbaa !5
  store i32 %7669, ptr %203, align 4, !tbaa !5
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = call i32 @s2n_print_stacktrace(ptr noundef %7670)
  %7672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7673 = trunc i8 %7672 to i1
  br i1 %7673, label %7674, label %7696

7674:                                             ; preds = %7667
  %7675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7676 = call i32 @fileno(ptr noundef %7675) #11
  %7677 = call i32 @isatty(i32 noundef %7676) #11
  %7678 = icmp ne i32 %7677, 0
  br i1 %7678, label %7679, label %7696

7679:                                             ; preds = %7674
  %7680 = load i32, ptr %203, align 4, !tbaa !5
  %7681 = call ptr @__errno_location() #12
  store i32 %7680, ptr %7681, align 4, !tbaa !5
  %7682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7683 = load i32, ptr @test_count, align 4, !tbaa !5
  %7684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7685 = load i32, ptr %7684, align 4, !tbaa !5
  %7686 = call ptr @s2n_strerror(i32 noundef %7685, ptr noundef @.str.4)
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @s2n_strerror_debug(i32 noundef %7688, ptr noundef @.str.4)
  %7690 = call ptr @__errno_location() #12
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call ptr @strerror(i32 noundef %7691) #11
  %7693 = call ptr @__errno_location() #12
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7682, ptr noundef @.str.2, i32 noundef %7683, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7686, ptr noundef %7689, ptr noundef %7692, i32 noundef %7694) #11
  br label %7713

7696:                                             ; preds = %7674, %7667
  %7697 = load i32, ptr %203, 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.5, i32 noundef %7700, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7703, ptr noundef %7706, ptr noundef %7709, i32 noundef %7711) #11
  br label %7713

7713:                                             ; preds = %7696, %7679
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %7714

7714:                                             ; preds = %7713
  br label %7715

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

7716:                                             ; No predecessors!
  br label %7717

7717:                                             ; preds = %7716
  br label %7718

7718:                                             ; preds = %7717, %7659
  br label %7719

7719:                                             ; preds = %7718
  br label %7720

7720:                                             ; preds = %7719
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #11
  br label %7721

7721:                                             ; preds = %7720
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722
  %7724 = load i32, ptr @test_count, align 4, !tbaa !5
  %7725 = add nsw i32 %7724, 1
  store i32 %7725, ptr @test_count, align 4, !tbaa !5
  %7726 = load ptr, ptr %153, align 8, !tbaa !9
  %7727 = getelementptr inbounds %struct.s2n_connection, ptr %7726, i32 0, i32 38
  %7728 = call i32 @s2n_stuffer_write_uint8(ptr noundef %7727, i8 noundef zeroext 20)
  %7729 = icmp eq i32 %7728, -1
  br i1 %7729, label %7730, label %7783

7730:                                             ; preds = %7723
  br label %7731

7731:                                             ; preds = %7730
  br label %7732

7732:                                             ; preds = %7731
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %7733 = call ptr @__errno_location() #12
  %7734 = load i32, ptr %7733, align 4, !tbaa !5
  store i32 %7734, ptr %204, align 4, !tbaa !5
  %7735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7736 = call i32 @s2n_print_stacktrace(ptr noundef %7735)
  %7737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7738 = trunc i8 %7737 to i1
  br i1 %7738, label %7739, label %7761

7739:                                             ; preds = %7732
  %7740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7741 = call i32 @fileno(ptr noundef %7740) #11
  %7742 = call i32 @isatty(i32 noundef %7741) #11
  %7743 = icmp ne i32 %7742, 0
  br i1 %7743, label %7744, label %7761

7744:                                             ; preds = %7739
  %7745 = load i32, ptr %204, align 4, !tbaa !5
  %7746 = call ptr @__errno_location() #12
  store i32 %7745, ptr %7746, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = load i32, ptr @test_count, align 4, !tbaa !5
  %7749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7750 = load i32, ptr %7749, align 4, !tbaa !5
  %7751 = call ptr @s2n_strerror(i32 noundef %7750, ptr noundef @.str.4)
  %7752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7753 = load i32, ptr %7752, align 4, !tbaa !5
  %7754 = call ptr @s2n_strerror_debug(i32 noundef %7753, ptr noundef @.str.4)
  %7755 = call ptr @__errno_location() #12
  %7756 = load i32, ptr %7755, align 4, !tbaa !5
  %7757 = call ptr @strerror(i32 noundef %7756) #11
  %7758 = call ptr @__errno_location() #12
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7747, ptr noundef @.str.2, i32 noundef %7748, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7751, ptr noundef %7754, ptr noundef %7757, i32 noundef %7759) #11
  br label %7778

7761:                                             ; preds = %7739, %7732
  %7762 = load i32, ptr %204, align 4, !tbaa !5
  %7763 = call ptr @__errno_location() #12
  store i32 %7762, ptr %7763, align 4, !tbaa !5
  %7764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7765 = load i32, ptr @test_count, align 4, !tbaa !5
  %7766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7767 = load i32, ptr %7766, align 4, !tbaa !5
  %7768 = call ptr @s2n_strerror(i32 noundef %7767, ptr noundef @.str.4)
  %7769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7770 = load i32, ptr %7769, align 4, !tbaa !5
  %7771 = call ptr @s2n_strerror_debug(i32 noundef %7770, ptr noundef @.str.4)
  %7772 = call ptr @__errno_location() #12
  %7773 = load i32, ptr %7772, align 4, !tbaa !5
  %7774 = call ptr @strerror(i32 noundef %7773) #11
  %7775 = call ptr @__errno_location() #12
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7764, ptr noundef @.str.5, i32 noundef %7765, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7768, ptr noundef %7771, ptr noundef %7774, i32 noundef %7776) #11
  br label %7778

7778:                                             ; preds = %7761, %7744
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %7779

7779:                                             ; preds = %7778
  br label %7780

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

7781:                                             ; No predecessors!
  br label %7782

7782:                                             ; preds = %7781
  br label %7783

7783:                                             ; preds = %7782, %7723
  br label %7784

7784:                                             ; preds = %7783
  br label %7785

7785:                                             ; preds = %7784
  br label %7786

7786:                                             ; preds = %7785
  %7787 = load i32, ptr @test_count, align 4, !tbaa !5
  %7788 = add nsw i32 %7787, 1
  store i32 %7788, ptr @test_count, align 4, !tbaa !5
  %7789 = load ptr, ptr %153, align 8, !tbaa !9
  %7790 = getelementptr inbounds %struct.s2n_connection, ptr %7789, i32 0, i32 38
  %7791 = call i32 @s2n_stuffer_write_uint16(ptr noundef %7790, i16 noundef zeroext 771)
  %7792 = icmp eq i32 %7791, -1
  br i1 %7792, label %7793, label %7846

7793:                                             ; preds = %7786
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %7796 = call ptr @__errno_location() #12
  %7797 = load i32, ptr %7796, align 4, !tbaa !5
  store i32 %7797, ptr %205, align 4, !tbaa !5
  %7798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7799 = call i32 @s2n_print_stacktrace(ptr noundef %7798)
  %7800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7801 = trunc i8 %7800 to i1
  br i1 %7801, label %7802, label %7824

7802:                                             ; preds = %7795
  %7803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7804 = call i32 @fileno(ptr noundef %7803) #11
  %7805 = call i32 @isatty(i32 noundef %7804) #11
  %7806 = icmp ne i32 %7805, 0
  br i1 %7806, label %7807, label %7824

7807:                                             ; preds = %7802
  %7808 = load i32, ptr %205, align 4, !tbaa !5
  %7809 = call ptr @__errno_location() #12
  store i32 %7808, ptr %7809, align 4, !tbaa !5
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = load i32, ptr @test_count, align 4, !tbaa !5
  %7812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7813 = load i32, ptr %7812, align 4, !tbaa !5
  %7814 = call ptr @s2n_strerror(i32 noundef %7813, ptr noundef @.str.4)
  %7815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7816 = load i32, ptr %7815, align 4, !tbaa !5
  %7817 = call ptr @s2n_strerror_debug(i32 noundef %7816, ptr noundef @.str.4)
  %7818 = call ptr @__errno_location() #12
  %7819 = load i32, ptr %7818, align 4, !tbaa !5
  %7820 = call ptr @strerror(i32 noundef %7819) #11
  %7821 = call ptr @__errno_location() #12
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7810, ptr noundef @.str.2, i32 noundef %7811, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7814, ptr noundef %7817, ptr noundef %7820, i32 noundef %7822) #11
  br label %7841

7824:                                             ; preds = %7802, %7795
  %7825 = load i32, ptr %205, align 4, !tbaa !5
  %7826 = call ptr @__errno_location() #12
  store i32 %7825, ptr %7826, align 4, !tbaa !5
  %7827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7828 = load i32, ptr @test_count, align 4, !tbaa !5
  %7829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7830 = load i32, ptr %7829, align 4, !tbaa !5
  %7831 = call ptr @s2n_strerror(i32 noundef %7830, ptr noundef @.str.4)
  %7832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7833 = load i32, ptr %7832, align 4, !tbaa !5
  %7834 = call ptr @s2n_strerror_debug(i32 noundef %7833, ptr noundef @.str.4)
  %7835 = call ptr @__errno_location() #12
  %7836 = load i32, ptr %7835, align 4, !tbaa !5
  %7837 = call ptr @strerror(i32 noundef %7836) #11
  %7838 = call ptr @__errno_location() #12
  %7839 = load i32, ptr %7838, align 4, !tbaa !5
  %7840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7827, ptr noundef @.str.5, i32 noundef %7828, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7831, ptr noundef %7834, ptr noundef %7837, i32 noundef %7839) #11
  br label %7841

7841:                                             ; preds = %7824, %7807
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %7842

7842:                                             ; preds = %7841
  br label %7843

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

7844:                                             ; No predecessors!
  br label %7845

7845:                                             ; preds = %7844
  br label %7846

7846:                                             ; preds = %7845, %7786
  br label %7847

7847:                                             ; preds = %7846
  br label %7848

7848:                                             ; preds = %7847
  br label %7849

7849:                                             ; preds = %7848
  %7850 = load i32, ptr @test_count, align 4, !tbaa !5
  %7851 = add nsw i32 %7850, 1
  store i32 %7851, ptr @test_count, align 4, !tbaa !5
  %7852 = load ptr, ptr %153, align 8, !tbaa !9
  %7853 = getelementptr inbounds %struct.s2n_connection, ptr %7852, i32 0, i32 38
  %7854 = call i32 @s2n_stuffer_write_uint16(ptr noundef %7853, i16 noundef zeroext 1)
  %7855 = icmp eq i32 %7854, -1
  br i1 %7855, label %7856, label %7909

7856:                                             ; preds = %7849
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

7858:                                             ; preds = %7857
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %7859 = call ptr @__errno_location() #12
  %7860 = load i32, ptr %7859, align 4, !tbaa !5
  store i32 %7860, ptr %206, align 4, !tbaa !5
  %7861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7862 = call i32 @s2n_print_stacktrace(ptr noundef %7861)
  %7863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7864 = trunc i8 %7863 to i1
  br i1 %7864, label %7865, label %7887

7865:                                             ; preds = %7858
  %7866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7867 = call i32 @fileno(ptr noundef %7866) #11
  %7868 = call i32 @isatty(i32 noundef %7867) #11
  %7869 = icmp ne i32 %7868, 0
  br i1 %7869, label %7870, label %7887

7870:                                             ; preds = %7865
  %7871 = load i32, ptr %206, align 4, !tbaa !5
  %7872 = call ptr @__errno_location() #12
  store i32 %7871, ptr %7872, align 4, !tbaa !5
  %7873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7874 = load i32, ptr @test_count, align 4, !tbaa !5
  %7875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7876 = load i32, ptr %7875, align 4, !tbaa !5
  %7877 = call ptr @s2n_strerror(i32 noundef %7876, ptr noundef @.str.4)
  %7878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7879 = load i32, ptr %7878, align 4, !tbaa !5
  %7880 = call ptr @s2n_strerror_debug(i32 noundef %7879, ptr noundef @.str.4)
  %7881 = call ptr @__errno_location() #12
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @strerror(i32 noundef %7882) #11
  %7884 = call ptr @__errno_location() #12
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7873, ptr noundef @.str.2, i32 noundef %7874, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 393, ptr noundef %7877, ptr noundef %7880, ptr noundef %7883, i32 noundef %7885) #11
  br label %7904

7887:                                             ; preds = %7865, %7858
  %7888 = load i32, ptr %206, align 4, !tbaa !5
  %7889 = call ptr @__errno_location() #12
  store i32 %7888, ptr %7889, align 4, !tbaa !5
  %7890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7891 = load i32, ptr @test_count, align 4, !tbaa !5
  %7892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7893 = load i32, ptr %7892, align 4, !tbaa !5
  %7894 = call ptr @s2n_strerror(i32 noundef %7893, ptr noundef @.str.4)
  %7895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7896 = load i32, ptr %7895, align 4, !tbaa !5
  %7897 = call ptr @s2n_strerror_debug(i32 noundef %7896, ptr noundef @.str.4)
  %7898 = call ptr @__errno_location() #12
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call ptr @strerror(i32 noundef %7899) #11
  %7901 = call ptr @__errno_location() #12
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7890, ptr noundef @.str.5, i32 noundef %7891, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 393, ptr noundef %7894, ptr noundef %7897, ptr noundef %7900, i32 noundef %7902) #11
  br label %7904

7904:                                             ; preds = %7887, %7870
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %7905

7905:                                             ; preds = %7904
  br label %7906

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

7907:                                             ; No predecessors!
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908, %7849
  br label %7910

7910:                                             ; preds = %7909
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

7912:                                             ; preds = %7911
  %7913 = load i32, ptr @test_count, align 4, !tbaa !5
  %7914 = add nsw i32 %7913, 1
  store i32 %7914, ptr @test_count, align 4, !tbaa !5
  %7915 = load ptr, ptr %153, align 8, !tbaa !9
  %7916 = getelementptr inbounds %struct.s2n_connection, ptr %7915, i32 0, i32 40
  %7917 = call i32 @s2n_stuffer_write_uint8(ptr noundef %7916, i8 noundef zeroext 1)
  %7918 = icmp eq i32 %7917, -1
  br i1 %7918, label %7919, label %7972

7919:                                             ; preds = %7912
  br label %7920

7920:                                             ; preds = %7919
  br label %7921

7921:                                             ; preds = %7920
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %7922 = call ptr @__errno_location() #12
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  store i32 %7923, ptr %207, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = call i32 @s2n_print_stacktrace(ptr noundef %7924)
  %7926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7927 = trunc i8 %7926 to i1
  br i1 %7927, label %7928, label %7950

7928:                                             ; preds = %7921
  %7929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7930 = call i32 @fileno(ptr noundef %7929) #11
  %7931 = call i32 @isatty(i32 noundef %7930) #11
  %7932 = icmp ne i32 %7931, 0
  br i1 %7932, label %7933, label %7950

7933:                                             ; preds = %7928
  %7934 = load i32, ptr %207, align 4, !tbaa !5
  %7935 = call ptr @__errno_location() #12
  store i32 %7934, ptr %7935, align 4, !tbaa !5
  %7936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7937 = load i32, ptr @test_count, align 4, !tbaa !5
  %7938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @s2n_strerror(i32 noundef %7939, ptr noundef @.str.4)
  %7941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call ptr @s2n_strerror_debug(i32 noundef %7942, ptr noundef @.str.4)
  %7944 = call ptr @__errno_location() #12
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call ptr @strerror(i32 noundef %7945) #11
  %7947 = call ptr @__errno_location() #12
  %7948 = load i32, ptr %7947, align 4, !tbaa !5
  %7949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7936, ptr noundef @.str.2, i32 noundef %7937, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 394, ptr noundef %7940, ptr noundef %7943, ptr noundef %7946, i32 noundef %7948) #11
  br label %7967

7950:                                             ; preds = %7928, %7921
  %7951 = load i32, ptr %207, align 4, !tbaa !5
  %7952 = call ptr @__errno_location() #12
  store i32 %7951, ptr %7952, align 4, !tbaa !5
  %7953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7954 = load i32, ptr @test_count, align 4, !tbaa !5
  %7955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @s2n_strerror(i32 noundef %7956, ptr noundef @.str.4)
  %7958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call ptr @s2n_strerror_debug(i32 noundef %7959, ptr noundef @.str.4)
  %7961 = call ptr @__errno_location() #12
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @strerror(i32 noundef %7962) #11
  %7964 = call ptr @__errno_location() #12
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7953, ptr noundef @.str.5, i32 noundef %7954, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 394, ptr noundef %7957, ptr noundef %7960, ptr noundef %7963, i32 noundef %7965) #11
  br label %7967

7967:                                             ; preds = %7950, %7933
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %7968

7968:                                             ; preds = %7967
  br label %7969

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

7970:                                             ; No predecessors!
  br label %7971

7971:                                             ; preds = %7970
  br label %7972

7972:                                             ; preds = %7971, %7912
  br label %7973

7973:                                             ; preds = %7972
  br label %7974

7974:                                             ; preds = %7973
  br label %7975

7975:                                             ; preds = %7974
  %7976 = load i32, ptr @test_count, align 4, !tbaa !5
  %7977 = add nsw i32 %7976, 1
  store i32 %7977, ptr @test_count, align 4, !tbaa !5
  %7978 = load ptr, ptr %153, align 8, !tbaa !9
  %7979 = call i32 @s2n_record_parse(ptr noundef %7978)
  %7980 = icmp eq i32 %7979, -1
  br i1 %7980, label %7981, label %8034

7981:                                             ; preds = %7975
  br label %7982

7982:                                             ; preds = %7981
  br label %7983

7983:                                             ; preds = %7982
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %7984 = call ptr @__errno_location() #12
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  store i32 %7985, ptr %208, align 4, !tbaa !5
  %7986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7987 = call i32 @s2n_print_stacktrace(ptr noundef %7986)
  %7988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7989 = trunc i8 %7988 to i1
  br i1 %7989, label %7990, label %8012

7990:                                             ; preds = %7983
  %7991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7992 = call i32 @fileno(ptr noundef %7991) #11
  %7993 = call i32 @isatty(i32 noundef %7992) #11
  %7994 = icmp ne i32 %7993, 0
  br i1 %7994, label %7995, label %8012

7995:                                             ; preds = %7990
  %7996 = load i32, ptr %208, align 4, !tbaa !5
  %7997 = call ptr @__errno_location() #12
  store i32 %7996, ptr %7997, align 4, !tbaa !5
  %7998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7999 = load i32, ptr @test_count, align 4, !tbaa !5
  %8000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @s2n_strerror(i32 noundef %8001, ptr noundef @.str.4)
  %8003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8004 = load i32, ptr %8003, align 4, !tbaa !5
  %8005 = call ptr @s2n_strerror_debug(i32 noundef %8004, ptr noundef @.str.4)
  %8006 = call ptr @__errno_location() #12
  %8007 = load i32, ptr %8006, align 4, !tbaa !5
  %8008 = call ptr @strerror(i32 noundef %8007) #11
  %8009 = call ptr @__errno_location() #12
  %8010 = load i32, ptr %8009, align 4, !tbaa !5
  %8011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7998, ptr noundef @.str.2, i32 noundef %7999, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8002, ptr noundef %8005, ptr noundef %8008, i32 noundef %8010) #11
  br label %8029

8012:                                             ; preds = %7990, %7983
  %8013 = load i32, ptr %208, align 4, !tbaa !5
  %8014 = call ptr @__errno_location() #12
  store i32 %8013, ptr %8014, align 4, !tbaa !5
  %8015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8016 = load i32, ptr @test_count, align 4, !tbaa !5
  %8017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8018 = load i32, ptr %8017, align 4, !tbaa !5
  %8019 = call ptr @s2n_strerror(i32 noundef %8018, ptr noundef @.str.4)
  %8020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8021 = load i32, ptr %8020, align 4, !tbaa !5
  %8022 = call ptr @s2n_strerror_debug(i32 noundef %8021, ptr noundef @.str.4)
  %8023 = call ptr @__errno_location() #12
  %8024 = load i32, ptr %8023, align 4, !tbaa !5
  %8025 = call ptr @strerror(i32 noundef %8024) #11
  %8026 = call ptr @__errno_location() #12
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  %8028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8015, ptr noundef @.str.5, i32 noundef %8016, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8019, ptr noundef %8022, ptr noundef %8025, i32 noundef %8027) #11
  br label %8029

8029:                                             ; preds = %8012, %7995
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %8030

8030:                                             ; preds = %8029
  br label %8031

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

8032:                                             ; No predecessors!
  br label %8033

8033:                                             ; preds = %8032
  br label %8034

8034:                                             ; preds = %8033, %7975
  br label %8035

8035:                                             ; preds = %8034
  br label %8036

8036:                                             ; preds = %8035
  br label %8037

8037:                                             ; preds = %8036
  %8038 = load i32, ptr @test_count, align 4, !tbaa !5
  %8039 = add nsw i32 %8038, 1
  store i32 %8039, ptr @test_count, align 4, !tbaa !5
  %8040 = load ptr, ptr %153, align 8, !tbaa !9
  %8041 = getelementptr inbounds %struct.s2n_connection, ptr %8040, i32 0, i32 38
  %8042 = call i32 @s2n_stuffer_wipe(ptr noundef %8041)
  %8043 = icmp eq i32 %8042, -1
  br i1 %8043, label %8044, label %8097

8044:                                             ; preds = %8037
  br label %8045

8045:                                             ; preds = %8044
  br label %8046

8046:                                             ; preds = %8045
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %8047 = call ptr @__errno_location() #12
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  store i32 %8048, ptr %209, align 4, !tbaa !5
  %8049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8050 = call i32 @s2n_print_stacktrace(ptr noundef %8049)
  %8051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8052 = trunc i8 %8051 to i1
  br i1 %8052, label %8053, label %8075

8053:                                             ; preds = %8046
  %8054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8055 = call i32 @fileno(ptr noundef %8054) #11
  %8056 = call i32 @isatty(i32 noundef %8055) #11
  %8057 = icmp ne i32 %8056, 0
  br i1 %8057, label %8058, label %8075

8058:                                             ; preds = %8053
  %8059 = load i32, ptr %209, align 4, !tbaa !5
  %8060 = call ptr @__errno_location() #12
  store i32 %8059, ptr %8060, align 4, !tbaa !5
  %8061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8062 = load i32, ptr @test_count, align 4, !tbaa !5
  %8063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  %8065 = call ptr @s2n_strerror(i32 noundef %8064, ptr noundef @.str.4)
  %8066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call ptr @s2n_strerror_debug(i32 noundef %8067, ptr noundef @.str.4)
  %8069 = call ptr @__errno_location() #12
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call ptr @strerror(i32 noundef %8070) #11
  %8072 = call ptr @__errno_location() #12
  %8073 = load i32, ptr %8072, align 4, !tbaa !5
  %8074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8061, ptr noundef @.str.2, i32 noundef %8062, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8065, ptr noundef %8068, ptr noundef %8071, i32 noundef %8073) #11
  br label %8092

8075:                                             ; preds = %8053, %8046
  %8076 = load i32, ptr %209, align 4, !tbaa !5
  %8077 = call ptr @__errno_location() #12
  store i32 %8076, ptr %8077, align 4, !tbaa !5
  %8078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8079 = load i32, 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(i32 noundef %8081, ptr noundef @.str.4)
  %8083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call ptr @s2n_strerror_debug(i32 noundef %8084, ptr noundef @.str.4)
  %8086 = call ptr @__errno_location() #12
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @strerror(i32 noundef %8087) #11
  %8089 = call ptr @__errno_location() #12
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8078, ptr noundef @.str.5, i32 noundef %8079, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8082, ptr noundef %8085, ptr noundef %8088, i32 noundef %8090) #11
  br label %8092

8092:                                             ; preds = %8075, %8058
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %8093

8093:                                             ; preds = %8092
  br label %8094

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

8095:                                             ; No predecessors!
  br label %8096

8096:                                             ; preds = %8095
  br label %8097

8097:                                             ; preds = %8096, %8037
  br label %8098

8098:                                             ; preds = %8097
  br label %8099

8099:                                             ; preds = %8098
  br label %8100

8100:                                             ; preds = %8099
  %8101 = load i32, ptr @test_count, align 4, !tbaa !5
  %8102 = add nsw i32 %8101, 1
  store i32 %8102, ptr @test_count, align 4, !tbaa !5
  %8103 = load ptr, ptr %153, align 8, !tbaa !9
  %8104 = getelementptr inbounds %struct.s2n_connection, ptr %8103, i32 0, i32 40
  %8105 = call i32 @s2n_stuffer_wipe(ptr noundef %8104)
  %8106 = icmp eq i32 %8105, -1
  br i1 %8106, label %8107, label %8160

8107:                                             ; preds = %8100
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

8109:                                             ; preds = %8108
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %8110 = call ptr @__errno_location() #12
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  store i32 %8111, ptr %210, align 4, !tbaa !5
  %8112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8113 = call i32 @s2n_print_stacktrace(ptr noundef %8112)
  %8114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8115 = trunc i8 %8114 to i1
  br i1 %8115, label %8116, label %8138

8116:                                             ; preds = %8109
  %8117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8118 = call i32 @fileno(ptr noundef %8117) #11
  %8119 = call i32 @isatty(i32 noundef %8118) #11
  %8120 = icmp ne i32 %8119, 0
  br i1 %8120, label %8121, label %8138

8121:                                             ; preds = %8116
  %8122 = load i32, ptr %210, align 4, !tbaa !5
  %8123 = call ptr @__errno_location() #12
  store i32 %8122, ptr %8123, align 4, !tbaa !5
  %8124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8125 = load i32, ptr @test_count, align 4, !tbaa !5
  %8126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  %8128 = call ptr @s2n_strerror(i32 noundef %8127, ptr noundef @.str.4)
  %8129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call ptr @s2n_strerror_debug(i32 noundef %8130, ptr noundef @.str.4)
  %8132 = call ptr @__errno_location() #12
  %8133 = load i32, ptr %8132, align 4, !tbaa !5
  %8134 = call ptr @strerror(i32 noundef %8133) #11
  %8135 = call ptr @__errno_location() #12
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8124, ptr noundef @.str.2, i32 noundef %8125, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 401, ptr noundef %8128, ptr noundef %8131, ptr noundef %8134, i32 noundef %8136) #11
  br label %8155

8138:                                             ; preds = %8116, %8109
  %8139 = load i32, ptr %210, align 4, !tbaa !5
  %8140 = call ptr @__errno_location() #12
  store i32 %8139, ptr %8140, align 4, !tbaa !5
  %8141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8142 = load i32, ptr @test_count, align 4, !tbaa !5
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8144 = load i32, ptr %8143, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror(i32 noundef %8144, ptr noundef @.str.4)
  %8146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @s2n_strerror_debug(i32 noundef %8147, ptr noundef @.str.4)
  %8149 = call ptr @__errno_location() #12
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @strerror(i32 noundef %8150) #11
  %8152 = call ptr @__errno_location() #12
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8141, ptr noundef @.str.5, i32 noundef %8142, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 401, ptr noundef %8145, ptr noundef %8148, ptr noundef %8151, i32 noundef %8153) #11
  br label %8155

8155:                                             ; preds = %8138, %8121
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %8156

8156:                                             ; preds = %8155
  br label %8157

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

8158:                                             ; No predecessors!
  br label %8159

8159:                                             ; preds = %8158
  br label %8160

8160:                                             ; preds = %8159, %8100
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

8162:                                             ; preds = %8161
  br label %8163

8163:                                             ; preds = %8162
  %8164 = load i32, ptr @test_count, align 4, !tbaa !5
  %8165 = add nsw i32 %8164, 1
  store i32 %8165, ptr @test_count, align 4, !tbaa !5
  %8166 = load ptr, ptr %153, align 8, !tbaa !9
  %8167 = getelementptr inbounds %struct.s2n_connection, ptr %8166, i32 0, i32 38
  %8168 = call i32 @s2n_stuffer_write_uint8(ptr noundef %8167, i8 noundef zeroext 23)
  %8169 = icmp eq i32 %8168, -1
  br i1 %8169, label %8170, label %8223

8170:                                             ; preds = %8163
  br label %8171

8171:                                             ; preds = %8170
  br label %8172

8172:                                             ; preds = %8171
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %8173 = call ptr @__errno_location() #12
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  store i32 %8174, ptr %211, align 4, !tbaa !5
  %8175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8176 = call i32 @s2n_print_stacktrace(ptr noundef %8175)
  %8177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8178 = trunc i8 %8177 to i1
  br i1 %8178, label %8179, label %8201

8179:                                             ; preds = %8172
  %8180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8181 = call i32 @fileno(ptr noundef %8180) #11
  %8182 = call i32 @isatty(i32 noundef %8181) #11
  %8183 = icmp ne i32 %8182, 0
  br i1 %8183, label %8184, label %8201

8184:                                             ; preds = %8179
  %8185 = load i32, ptr %211, align 4, !tbaa !5
  %8186 = call ptr @__errno_location() #12
  store i32 %8185, ptr %8186, align 4, !tbaa !5
  %8187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8188 = load i32, ptr @test_count, align 4, !tbaa !5
  %8189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8190 = load i32, ptr %8189, align 4, !tbaa !5
  %8191 = call ptr @s2n_strerror(i32 noundef %8190, ptr noundef @.str.4)
  %8192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8193 = load i32, ptr %8192, align 4, !tbaa !5
  %8194 = call ptr @s2n_strerror_debug(i32 noundef %8193, ptr noundef @.str.4)
  %8195 = call ptr @__errno_location() #12
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  %8197 = call ptr @strerror(i32 noundef %8196) #11
  %8198 = call ptr @__errno_location() #12
  %8199 = load i32, ptr %8198, align 4, !tbaa !5
  %8200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8187, ptr noundef @.str.2, i32 noundef %8188, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8191, ptr noundef %8194, ptr noundef %8197, i32 noundef %8199) #11
  br label %8218

8201:                                             ; preds = %8179, %8172
  %8202 = load i32, ptr %211, align 4, !tbaa !5
  %8203 = call ptr @__errno_location() #12
  store i32 %8202, ptr %8203, align 4, !tbaa !5
  %8204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8205 = load i32, ptr @test_count, align 4, !tbaa !5
  %8206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call ptr @s2n_strerror(i32 noundef %8207, ptr noundef @.str.4)
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror_debug(i32 noundef %8210, ptr noundef @.str.4)
  %8212 = call ptr @__errno_location() #12
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @strerror(i32 noundef %8213) #11
  %8215 = call ptr @__errno_location() #12
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8204, ptr noundef @.str.5, i32 noundef %8205, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8208, ptr noundef %8211, ptr noundef %8214, i32 noundef %8216) #11
  br label %8218

8218:                                             ; preds = %8201, %8184
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %8219

8219:                                             ; preds = %8218
  br label %8220

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

8221:                                             ; No predecessors!
  br label %8222

8222:                                             ; preds = %8221
  br label %8223

8223:                                             ; preds = %8222, %8163
  br label %8224

8224:                                             ; preds = %8223
  br label %8225

8225:                                             ; preds = %8224
  br label %8226

8226:                                             ; preds = %8225
  %8227 = load i32, ptr @test_count, align 4, !tbaa !5
  %8228 = add nsw i32 %8227, 1
  store i32 %8228, ptr @test_count, align 4, !tbaa !5
  %8229 = load ptr, ptr %153, align 8, !tbaa !9
  %8230 = getelementptr inbounds %struct.s2n_connection, ptr %8229, i32 0, i32 38
  %8231 = call i32 @s2n_stuffer_write_uint16(ptr noundef %8230, i16 noundef zeroext 771)
  %8232 = icmp eq i32 %8231, -1
  br i1 %8232, label %8233, label %8286

8233:                                             ; preds = %8226
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

8235:                                             ; preds = %8234
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %8236 = call ptr @__errno_location() #12
  %8237 = load i32, ptr %8236, align 4, !tbaa !5
  store i32 %8237, ptr %212, align 4, !tbaa !5
  %8238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8239 = call i32 @s2n_print_stacktrace(ptr noundef %8238)
  %8240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8241 = trunc i8 %8240 to i1
  br i1 %8241, label %8242, label %8264

8242:                                             ; preds = %8235
  %8243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8244 = call i32 @fileno(ptr noundef %8243) #11
  %8245 = call i32 @isatty(i32 noundef %8244) #11
  %8246 = icmp ne i32 %8245, 0
  br i1 %8246, label %8247, label %8264

8247:                                             ; preds = %8242
  %8248 = load i32, ptr %212, align 4, !tbaa !5
  %8249 = call ptr @__errno_location() #12
  store i32 %8248, ptr %8249, align 4, !tbaa !5
  %8250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8251 = load i32, ptr @test_count, align 4, !tbaa !5
  %8252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8253 = load i32, ptr %8252, align 4, !tbaa !5
  %8254 = call ptr @s2n_strerror(i32 noundef %8253, ptr noundef @.str.4)
  %8255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8256 = load i32, ptr %8255, align 4, !tbaa !5
  %8257 = call ptr @s2n_strerror_debug(i32 noundef %8256, ptr noundef @.str.4)
  %8258 = call ptr @__errno_location() #12
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call ptr @strerror(i32 noundef %8259) #11
  %8261 = call ptr @__errno_location() #12
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8250, ptr noundef @.str.2, i32 noundef %8251, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8254, ptr noundef %8257, ptr noundef %8260, i32 noundef %8262) #11
  br label %8281

8264:                                             ; preds = %8242, %8235
  %8265 = load i32, ptr %212, align 4, !tbaa !5
  %8266 = call ptr @__errno_location() #12
  store i32 %8265, ptr %8266, align 4, !tbaa !5
  %8267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8268 = load i32, ptr @test_count, align 4, !tbaa !5
  %8269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  %8271 = call ptr @s2n_strerror(i32 noundef %8270, ptr noundef @.str.4)
  %8272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8273 = load i32, ptr %8272, align 4, !tbaa !5
  %8274 = call ptr @s2n_strerror_debug(i32 noundef %8273, ptr noundef @.str.4)
  %8275 = call ptr @__errno_location() #12
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call ptr @strerror(i32 noundef %8276) #11
  %8278 = call ptr @__errno_location() #12
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8267, ptr noundef @.str.5, i32 noundef %8268, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8271, ptr noundef %8274, ptr noundef %8277, i32 noundef %8279) #11
  br label %8281

8281:                                             ; preds = %8264, %8247
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %8282

8282:                                             ; preds = %8281
  br label %8283

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

8284:                                             ; No predecessors!
  br label %8285

8285:                                             ; preds = %8284
  br label %8286

8286:                                             ; preds = %8285, %8226
  br label %8287

8287:                                             ; preds = %8286
  br label %8288

8288:                                             ; preds = %8287
  br label %8289

8289:                                             ; preds = %8288
  %8290 = load i32, ptr @test_count, align 4, !tbaa !5
  %8291 = add nsw i32 %8290, 1
  store i32 %8291, ptr @test_count, align 4, !tbaa !5
  %8292 = load ptr, ptr %153, align 8, !tbaa !9
  %8293 = getelementptr inbounds %struct.s2n_connection, ptr %8292, i32 0, i32 38
  %8294 = call i32 @s2n_stuffer_write_uint16(ptr noundef %8293, i16 noundef zeroext 1)
  %8295 = icmp eq i32 %8294, -1
  br i1 %8295, label %8296, label %8349

8296:                                             ; preds = %8289
  br label %8297

8297:                                             ; preds = %8296
  br label %8298

8298:                                             ; preds = %8297
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %8299 = call ptr @__errno_location() #12
  %8300 = load i32, ptr %8299, align 4, !tbaa !5
  store i32 %8300, ptr %213, align 4, !tbaa !5
  %8301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8302 = call i32 @s2n_print_stacktrace(ptr noundef %8301)
  %8303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8304 = trunc i8 %8303 to i1
  br i1 %8304, label %8305, label %8327

8305:                                             ; preds = %8298
  %8306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8307 = call i32 @fileno(ptr noundef %8306) #11
  %8308 = call i32 @isatty(i32 noundef %8307) #11
  %8309 = icmp ne i32 %8308, 0
  br i1 %8309, label %8310, label %8327

8310:                                             ; preds = %8305
  %8311 = load i32, ptr %213, align 4, !tbaa !5
  %8312 = call ptr @__errno_location() #12
  store i32 %8311, ptr %8312, align 4, !tbaa !5
  %8313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8314 = load i32, ptr @test_count, align 4, !tbaa !5
  %8315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8316 = load i32, ptr %8315, align 4, !tbaa !5
  %8317 = call ptr @s2n_strerror(i32 noundef %8316, ptr noundef @.str.4)
  %8318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  %8320 = call ptr @s2n_strerror_debug(i32 noundef %8319, ptr noundef @.str.4)
  %8321 = call ptr @__errno_location() #12
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  %8323 = call ptr @strerror(i32 noundef %8322) #11
  %8324 = call ptr @__errno_location() #12
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  %8326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8313, ptr noundef @.str.2, i32 noundef %8314, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 404, ptr noundef %8317, ptr noundef %8320, ptr noundef %8323, i32 noundef %8325) #11
  br label %8344

8327:                                             ; preds = %8305, %8298
  %8328 = load i32, ptr %213, align 4, !tbaa !5
  %8329 = call ptr @__errno_location() #12
  store i32 %8328, ptr %8329, align 4, !tbaa !5
  %8330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8331 = load i32, ptr @test_count, align 4, !tbaa !5
  %8332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call ptr @s2n_strerror(i32 noundef %8333, ptr noundef @.str.4)
  %8335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8336 = load i32, ptr %8335, align 4, !tbaa !5
  %8337 = call ptr @s2n_strerror_debug(i32 noundef %8336, ptr noundef @.str.4)
  %8338 = call ptr @__errno_location() #12
  %8339 = load i32, ptr %8338, align 4, !tbaa !5
  %8340 = call ptr @strerror(i32 noundef %8339) #11
  %8341 = call ptr @__errno_location() #12
  %8342 = load i32, ptr %8341, align 4, !tbaa !5
  %8343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8330, ptr noundef @.str.5, i32 noundef %8331, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 404, ptr noundef %8334, ptr noundef %8337, ptr noundef %8340, i32 noundef %8342) #11
  br label %8344

8344:                                             ; preds = %8327, %8310
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %8345

8345:                                             ; preds = %8344
  br label %8346

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

8347:                                             ; No predecessors!
  br label %8348

8348:                                             ; preds = %8347
  br label %8349

8349:                                             ; preds = %8348, %8289
  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 %153, align 8, !tbaa !9
  %8356 = getelementptr inbounds %struct.s2n_connection, ptr %8355, i32 0, i32 40
  %8357 = call i32 @s2n_stuffer_write_uint8(ptr noundef %8356, i8 noundef zeroext 1)
  %8358 = icmp eq i32 %8357, -1
  br i1 %8358, label %8359, label %8412

8359:                                             ; preds = %8352
  br label %8360

8360:                                             ; preds = %8359
  br label %8361

8361:                                             ; preds = %8360
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %8362 = call ptr @__errno_location() #12
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  store i32 %8363, ptr %214, align 4, !tbaa !5
  %8364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8365 = call i32 @s2n_print_stacktrace(ptr noundef %8364)
  %8366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8367 = trunc i8 %8366 to i1
  br i1 %8367, label %8368, label %8390

8368:                                             ; preds = %8361
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @fileno(ptr noundef %8369) #11
  %8371 = call i32 @isatty(i32 noundef %8370) #11
  %8372 = icmp ne i32 %8371, 0
  br i1 %8372, label %8373, label %8390

8373:                                             ; preds = %8368
  %8374 = load i32, ptr %214, align 4, !tbaa !5
  %8375 = call ptr @__errno_location() #12
  store i32 %8374, ptr %8375, align 4, !tbaa !5
  %8376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8377 = load i32, ptr @test_count, align 4, !tbaa !5
  %8378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call ptr @s2n_strerror(i32 noundef %8379, ptr noundef @.str.4)
  %8381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @s2n_strerror_debug(i32 noundef %8382, ptr noundef @.str.4)
  %8384 = call ptr @__errno_location() #12
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @strerror(i32 noundef %8385) #11
  %8387 = call ptr @__errno_location() #12
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8376, ptr noundef @.str.2, i32 noundef %8377, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8380, ptr noundef %8383, ptr noundef %8386, i32 noundef %8388) #11
  br label %8407

8390:                                             ; preds = %8368, %8361
  %8391 = load i32, ptr %214, align 4, !tbaa !5
  %8392 = call ptr @__errno_location() #12
  store i32 %8391, ptr %8392, align 4, !tbaa !5
  %8393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8394 = load i32, ptr @test_count, align 4, !tbaa !5
  %8395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call ptr @s2n_strerror(i32 noundef %8396, ptr noundef @.str.4)
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror_debug(i32 noundef %8399, ptr noundef @.str.4)
  %8401 = call ptr @__errno_location() #12
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @strerror(i32 noundef %8402) #11
  %8404 = call ptr @__errno_location() #12
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8393, ptr noundef @.str.5, i32 noundef %8394, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8397, ptr noundef %8400, ptr noundef %8403, i32 noundef %8405) #11
  br label %8407

8407:                                             ; preds = %8390, %8373
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

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

8410:                                             ; No predecessors!
  br label %8411

8411:                                             ; preds = %8410
  br label %8412

8412:                                             ; preds = %8411, %8352
  br label %8413

8413:                                             ; preds = %8412
  br label %8414

8414:                                             ; preds = %8413
  br label %8415

8415:                                             ; preds = %8414
  br label %8416

8416:                                             ; preds = %8415
  %8417 = load i32, ptr @test_count, align 4, !tbaa !5
  %8418 = add nsw i32 %8417, 1
  store i32 %8418, ptr @test_count, align 4, !tbaa !5
  %8419 = load ptr, ptr %153, align 8, !tbaa !9
  %8420 = call i32 @s2n_record_parse(ptr noundef %8419)
  %8421 = icmp eq i32 %8420, -1
  br i1 %8421, label %8475, label %8422

8422:                                             ; preds = %8416
  br label %8423

8423:                                             ; preds = %8422
  br label %8424

8424:                                             ; preds = %8423
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %8425 = call ptr @__errno_location() #12
  %8426 = load i32, ptr %8425, align 4, !tbaa !5
  store i32 %8426, ptr %215, align 4, !tbaa !5
  %8427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8428 = call i32 @s2n_print_stacktrace(ptr noundef %8427)
  %8429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8430 = trunc i8 %8429 to i1
  br i1 %8430, label %8431, label %8453

8431:                                             ; preds = %8424
  %8432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8433 = call i32 @fileno(ptr noundef %8432) #11
  %8434 = call i32 @isatty(i32 noundef %8433) #11
  %8435 = icmp ne i32 %8434, 0
  br i1 %8435, label %8436, label %8453

8436:                                             ; preds = %8431
  %8437 = load i32, ptr %215, align 4, !tbaa !5
  %8438 = call ptr @__errno_location() #12
  store i32 %8437, ptr %8438, align 4, !tbaa !5
  %8439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8440 = load i32, ptr @test_count, align 4, !tbaa !5
  %8441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8442 = load i32, ptr %8441, align 4, !tbaa !5
  %8443 = call ptr @s2n_strerror(i32 noundef %8442, ptr noundef @.str.4)
  %8444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8445 = load i32, ptr %8444, align 4, !tbaa !5
  %8446 = call ptr @s2n_strerror_debug(i32 noundef %8445, ptr noundef @.str.4)
  %8447 = call ptr @__errno_location() #12
  %8448 = load i32, ptr %8447, align 4, !tbaa !5
  %8449 = call ptr @strerror(i32 noundef %8448) #11
  %8450 = call ptr @__errno_location() #12
  %8451 = load i32, ptr %8450, align 4, !tbaa !5
  %8452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8439, ptr noundef @.str.2, i32 noundef %8440, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8443, ptr noundef %8446, ptr noundef %8449, i32 noundef %8451) #11
  br label %8470

8453:                                             ; preds = %8431, %8424
  %8454 = load i32, ptr %215, align 4, !tbaa !5
  %8455 = call ptr @__errno_location() #12
  store i32 %8454, ptr %8455, align 4, !tbaa !5
  %8456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8457 = load i32, ptr @test_count, align 4, !tbaa !5
  %8458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8459 = load i32, ptr %8458, align 4, !tbaa !5
  %8460 = call ptr @s2n_strerror(i32 noundef %8459, ptr noundef @.str.4)
  %8461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8462 = load i32, ptr %8461, align 4, !tbaa !5
  %8463 = call ptr @s2n_strerror_debug(i32 noundef %8462, ptr noundef @.str.4)
  %8464 = call ptr @__errno_location() #12
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @strerror(i32 noundef %8465) #11
  %8467 = call ptr @__errno_location() #12
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8456, ptr noundef @.str.5, i32 noundef %8457, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8460, ptr noundef %8463, ptr noundef %8466, i32 noundef %8468) #11
  br label %8470

8470:                                             ; preds = %8453, %8436
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %8471

8471:                                             ; preds = %8470
  br label %8472

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

8473:                                             ; No predecessors!
  br label %8474

8474:                                             ; preds = %8473
  br label %8475

8475:                                             ; preds = %8474, %8416
  br label %8476

8476:                                             ; preds = %8475
  br label %8477

8477:                                             ; preds = %8476
  br label %8478

8478:                                             ; preds = %8477
  %8479 = load i32, ptr @test_count, align 4, !tbaa !5
  %8480 = add nsw i32 %8479, 1
  store i32 %8480, ptr @test_count, align 4, !tbaa !5
  %8481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = icmp eq i32 %8482, 0
  br i1 %8483, label %8484, label %8537

8484:                                             ; preds = %8478
  br label %8485

8485:                                             ; preds = %8484
  br label %8486

8486:                                             ; preds = %8485
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %8487 = call ptr @__errno_location() #12
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  store i32 %8488, ptr %216, align 4, !tbaa !5
  %8489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8490 = call i32 @s2n_print_stacktrace(ptr noundef %8489)
  %8491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8492 = trunc i8 %8491 to i1
  br i1 %8492, label %8493, label %8515

8493:                                             ; preds = %8486
  %8494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8495 = call i32 @fileno(ptr noundef %8494) #11
  %8496 = call i32 @isatty(i32 noundef %8495) #11
  %8497 = icmp ne i32 %8496, 0
  br i1 %8497, label %8498, label %8515

8498:                                             ; preds = %8493
  %8499 = load i32, ptr %216, align 4, !tbaa !5
  %8500 = call ptr @__errno_location() #12
  store i32 %8499, ptr %8500, align 4, !tbaa !5
  %8501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8502 = load i32, ptr @test_count, align 4, !tbaa !5
  %8503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8504 = load i32, ptr %8503, align 4, !tbaa !5
  %8505 = call ptr @s2n_strerror(i32 noundef %8504, ptr noundef @.str.4)
  %8506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8507 = load i32, ptr %8506, align 4, !tbaa !5
  %8508 = call ptr @s2n_strerror_debug(i32 noundef %8507, ptr noundef @.str.4)
  %8509 = call ptr @__errno_location() #12
  %8510 = load i32, ptr %8509, align 4, !tbaa !5
  %8511 = call ptr @strerror(i32 noundef %8510) #11
  %8512 = call ptr @__errno_location() #12
  %8513 = load i32, ptr %8512, align 4, !tbaa !5
  %8514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8501, ptr noundef @.str.2, i32 noundef %8502, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8505, ptr noundef %8508, ptr noundef %8511, i32 noundef %8513) #11
  br label %8532

8515:                                             ; preds = %8493, %8486
  %8516 = load i32, ptr %216, align 4, !tbaa !5
  %8517 = call ptr @__errno_location() #12
  store i32 %8516, ptr %8517, align 4, !tbaa !5
  %8518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8519 = load i32, ptr @test_count, align 4, !tbaa !5
  %8520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  %8522 = call ptr @s2n_strerror(i32 noundef %8521, ptr noundef @.str.4)
  %8523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8524 = load i32, ptr %8523, align 4, !tbaa !5
  %8525 = call ptr @s2n_strerror_debug(i32 noundef %8524, ptr noundef @.str.4)
  %8526 = call ptr @__errno_location() #12
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call ptr @strerror(i32 noundef %8527) #11
  %8529 = call ptr @__errno_location() #12
  %8530 = load i32, ptr %8529, align 4, !tbaa !5
  %8531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8518, ptr noundef @.str.5, i32 noundef %8519, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8522, ptr noundef %8525, ptr noundef %8528, i32 noundef %8530) #11
  br label %8532

8532:                                             ; preds = %8515, %8498
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %8533

8533:                                             ; preds = %8532
  br label %8534

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

8535:                                             ; No predecessors!
  br label %8536

8536:                                             ; preds = %8535
  br label %8537

8537:                                             ; preds = %8536, %8478
  br label %8538

8538:                                             ; preds = %8537
  br label %8539

8539:                                             ; preds = %8538
  br label %8540

8540:                                             ; preds = %8539
  %8541 = load i32, ptr @test_count, align 4, !tbaa !5
  %8542 = add nsw i32 %8541, 1
  store i32 %8542, ptr @test_count, align 4, !tbaa !5
  %8543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call ptr @s2n_strerror_debug(i32 noundef %8544, ptr noundef @.str.4)
  %8546 = icmp eq ptr %8545, null
  br i1 %8546, label %8547, label %8600

8547:                                             ; preds = %8540
  br label %8548

8548:                                             ; preds = %8547
  br label %8549

8549:                                             ; preds = %8548
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %8550 = call ptr @__errno_location() #12
  %8551 = load i32, ptr %8550, align 4, !tbaa !5
  store i32 %8551, ptr %217, align 4, !tbaa !5
  %8552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8553 = call i32 @s2n_print_stacktrace(ptr noundef %8552)
  %8554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8555 = trunc i8 %8554 to i1
  br i1 %8555, label %8556, label %8578

8556:                                             ; preds = %8549
  %8557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8558 = call i32 @fileno(ptr noundef %8557) #11
  %8559 = call i32 @isatty(i32 noundef %8558) #11
  %8560 = icmp ne i32 %8559, 0
  br i1 %8560, label %8561, label %8578

8561:                                             ; preds = %8556
  %8562 = load i32, ptr %217, align 4, !tbaa !5
  %8563 = call ptr @__errno_location() #12
  store i32 %8562, ptr %8563, align 4, !tbaa !5
  %8564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8565 = load i32, ptr @test_count, align 4, !tbaa !5
  %8566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8567 = load i32, ptr %8566, align 4, !tbaa !5
  %8568 = call ptr @s2n_strerror(i32 noundef %8567, ptr noundef @.str.4)
  %8569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8570 = load i32, ptr %8569, align 4, !tbaa !5
  %8571 = call ptr @s2n_strerror_debug(i32 noundef %8570, ptr noundef @.str.4)
  %8572 = call ptr @__errno_location() #12
  %8573 = load i32, ptr %8572, align 4, !tbaa !5
  %8574 = call ptr @strerror(i32 noundef %8573) #11
  %8575 = call ptr @__errno_location() #12
  %8576 = load i32, ptr %8575, align 4, !tbaa !5
  %8577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8564, ptr noundef @.str.2, i32 noundef %8565, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8568, ptr noundef %8571, ptr noundef %8574, i32 noundef %8576) #11
  br label %8595

8578:                                             ; preds = %8556, %8549
  %8579 = load i32, ptr %217, align 4, !tbaa !5
  %8580 = call ptr @__errno_location() #12
  store i32 %8579, ptr %8580, align 4, !tbaa !5
  %8581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8582 = load i32, ptr @test_count, align 4, !tbaa !5
  %8583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  %8585 = call ptr @s2n_strerror(i32 noundef %8584, ptr noundef @.str.4)
  %8586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call ptr @s2n_strerror_debug(i32 noundef %8587, ptr noundef @.str.4)
  %8589 = call ptr @__errno_location() #12
  %8590 = load i32, ptr %8589, align 4, !tbaa !5
  %8591 = call ptr @strerror(i32 noundef %8590) #11
  %8592 = call ptr @__errno_location() #12
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8581, ptr noundef @.str.5, i32 noundef %8582, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8585, ptr noundef %8588, ptr noundef %8591, i32 noundef %8593) #11
  br label %8595

8595:                                             ; preds = %8578, %8561
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %8596

8596:                                             ; preds = %8595
  br label %8597

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

8598:                                             ; No predecessors!
  br label %8599

8599:                                             ; preds = %8598
  br label %8600

8600:                                             ; preds = %8599, %8540
  br label %8601

8601:                                             ; preds = %8600
  br label %8602

8602:                                             ; preds = %8601
  br label %8603

8603:                                             ; preds = %8602
  %8604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8604, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8605 = call ptr @__errno_location() #12
  store i32 0, ptr %8605, align 4, !tbaa !5
  br label %8606

8606:                                             ; preds = %8603
  br label %8607

8607:                                             ; preds = %8606
  br label %8608

8608:                                             ; preds = %8607
  br label %8609

8609:                                             ; preds = %8608
  br label %8610

8610:                                             ; preds = %8609
  %8611 = load i32, ptr @test_count, align 4, !tbaa !5
  %8612 = add nsw i32 %8611, 1
  store i32 %8612, ptr @test_count, align 4, !tbaa !5
  %8613 = load ptr, ptr %153, align 8, !tbaa !9
  %8614 = call i32 @s2n_connection_free(ptr noundef %8613)
  %8615 = icmp eq i32 %8614, -1
  br i1 %8615, label %8616, label %8669

8616:                                             ; preds = %8610
  br label %8617

8617:                                             ; preds = %8616
  br label %8618

8618:                                             ; preds = %8617
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %8619 = call ptr @__errno_location() #12
  %8620 = load i32, ptr %8619, align 4, !tbaa !5
  store i32 %8620, ptr %218, align 4, !tbaa !5
  %8621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8622 = call i32 @s2n_print_stacktrace(ptr noundef %8621)
  %8623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8624 = trunc i8 %8623 to i1
  br i1 %8624, label %8625, label %8647

8625:                                             ; preds = %8618
  %8626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8627 = call i32 @fileno(ptr noundef %8626) #11
  %8628 = call i32 @isatty(i32 noundef %8627) #11
  %8629 = icmp ne i32 %8628, 0
  br i1 %8629, label %8630, label %8647

8630:                                             ; preds = %8625
  %8631 = load i32, ptr %218, align 4, !tbaa !5
  %8632 = call ptr @__errno_location() #12
  store i32 %8631, ptr %8632, align 4, !tbaa !5
  %8633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8634 = load i32, ptr @test_count, align 4, !tbaa !5
  %8635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8636 = load i32, ptr %8635, align 4, !tbaa !5
  %8637 = call ptr @s2n_strerror(i32 noundef %8636, ptr noundef @.str.4)
  %8638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  %8640 = call ptr @s2n_strerror_debug(i32 noundef %8639, ptr noundef @.str.4)
  %8641 = call ptr @__errno_location() #12
  %8642 = load i32, ptr %8641, align 4, !tbaa !5
  %8643 = call ptr @strerror(i32 noundef %8642) #11
  %8644 = call ptr @__errno_location() #12
  %8645 = load i32, ptr %8644, align 4, !tbaa !5
  %8646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8633, ptr noundef @.str.2, i32 noundef %8634, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 408, ptr noundef %8637, ptr noundef %8640, ptr noundef %8643, i32 noundef %8645) #11
  br label %8664

8647:                                             ; preds = %8625, %8618
  %8648 = load i32, ptr %218, align 4, !tbaa !5
  %8649 = call ptr @__errno_location() #12
  store i32 %8648, ptr %8649, align 4, !tbaa !5
  %8650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8651 = load i32, ptr @test_count, align 4, !tbaa !5
  %8652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8653 = load i32, ptr %8652, align 4, !tbaa !5
  %8654 = call ptr @s2n_strerror(i32 noundef %8653, ptr noundef @.str.4)
  %8655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call ptr @s2n_strerror_debug(i32 noundef %8656, ptr noundef @.str.4)
  %8658 = call ptr @__errno_location() #12
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call ptr @strerror(i32 noundef %8659) #11
  %8661 = call ptr @__errno_location() #12
  %8662 = load i32, ptr %8661, align 4, !tbaa !5
  %8663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8650, ptr noundef @.str.5, i32 noundef %8651, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 408, ptr noundef %8654, ptr noundef %8657, ptr noundef %8660, i32 noundef %8662) #11
  br label %8664

8664:                                             ; preds = %8647, %8630
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %8665

8665:                                             ; preds = %8664
  br label %8666

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

8667:                                             ; No predecessors!
  br label %8668

8668:                                             ; preds = %8667
  br label %8669

8669:                                             ; preds = %8668, %8610
  br label %8670

8670:                                             ; preds = %8669
  br label %8671

8671:                                             ; preds = %8670
  call void @llvm.lifetime.end.p0(i64 24, ptr %174) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #11
  store i32 0, ptr %12, align 4
  br label %8672

8672:                                             ; preds = %8671, %6494
  %8673 = call i32 @s2n_free(ptr noundef %171)
  call void @llvm.lifetime.end.p0(i64 24, ptr %171) #11
  br label %8674

8674:                                             ; preds = %8672, %6450
  %8675 = call i32 @s2n_free(ptr noundef %168)
  call void @llvm.lifetime.end.p0(i64 24, ptr %168) #11
  br label %8676

8676:                                             ; preds = %8674, %6440
  %8677 = call i32 @s2n_free(ptr noundef %166)
  call void @llvm.lifetime.end.p0(i64 24, ptr %166) #11
  br label %8678

8678:                                             ; preds = %8676, %6280
  %8679 = call i32 @s2n_free(ptr noundef %160)
  call void @llvm.lifetime.end.p0(i64 24, ptr %160) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  %8680 = load i32, ptr %12, align 4
  switch i32 %8680, label %8685 [
    i32 0, label %8681
  ]

8681:                                             ; preds = %8678
  br label %8682

8682:                                             ; preds = %8681
  %8683 = load i64, ptr %152, align 8, !tbaa !15
  %8684 = add i64 %8683, 1
  store i64 %8684, ptr %152, align 8, !tbaa !15
  br label %6036, !llvm.loop !76

8685:                                             ; preds = %8678, %6039
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  %8686 = load i32, ptr %12, align 4
  switch i32 %8686, label %8688 [
    i32 586, label %8687
  ]

8687:                                             ; preds = %8685
  store i32 0, ptr %12, align 4
  br label %8688

8688:                                             ; preds = %8687, %8685
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  %8689 = load i32, ptr %12, align 4
  switch i32 %8689, label %8838 [
    i32 0, label %8690
    i32 1, label %8836
  ]

8690:                                             ; preds = %8688
  br label %8691

8691:                                             ; preds = %8690
  br label %8692

8692:                                             ; preds = %8691
  %8693 = call i32 @s2n_cleanup()
  %8694 = icmp eq i32 %8693, -1
  br i1 %8694, label %8695, label %8746

8695:                                             ; preds = %8692
  br label %8696

8696:                                             ; preds = %8695
  br label %8697

8697:                                             ; preds = %8696
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %8698 = call ptr @__errno_location() #12
  %8699 = load i32, ptr %8698, align 4, !tbaa !5
  store i32 %8699, ptr %219, align 4, !tbaa !5
  %8700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8701 = call i32 @s2n_print_stacktrace(ptr noundef %8700)
  %8702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8703 = trunc i8 %8702 to i1
  br i1 %8703, label %8704, label %8726

8704:                                             ; preds = %8697
  %8705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8706 = call i32 @fileno(ptr noundef %8705) #11
  %8707 = call i32 @isatty(i32 noundef %8706) #11
  %8708 = icmp ne i32 %8707, 0
  br i1 %8708, label %8709, label %8726

8709:                                             ; preds = %8704
  %8710 = load i32, ptr %219, align 4, !tbaa !5
  %8711 = call ptr @__errno_location() #12
  store i32 %8710, ptr %8711, align 4, !tbaa !5
  %8712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8713 = load i32, ptr @test_count, align 4, !tbaa !5
  %8714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8715 = load i32, ptr %8714, align 4, !tbaa !5
  %8716 = call ptr @s2n_strerror(i32 noundef %8715, ptr noundef @.str.4)
  %8717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call ptr @s2n_strerror_debug(i32 noundef %8718, ptr noundef @.str.4)
  %8720 = call ptr @__errno_location() #12
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call ptr @strerror(i32 noundef %8721) #11
  %8723 = call ptr @__errno_location() #12
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8712, ptr noundef @.str.2, i32 noundef %8713, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8716, ptr noundef %8719, ptr noundef %8722, i32 noundef %8724) #11
  br label %8743

8726:                                             ; preds = %8704, %8697
  %8727 = load i32, ptr %219, align 4, !tbaa !5
  %8728 = call ptr @__errno_location() #12
  store i32 %8727, ptr %8728, align 4, !tbaa !5
  %8729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8730 = load i32, ptr @test_count, align 4, !tbaa !5
  %8731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @s2n_strerror(i32 noundef %8732, ptr noundef @.str.4)
  %8734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @s2n_strerror_debug(i32 noundef %8735, ptr noundef @.str.4)
  %8737 = call ptr @__errno_location() #12
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call ptr @strerror(i32 noundef %8738) #11
  %8740 = call ptr @__errno_location() #12
  %8741 = load i32, ptr %8740, align 4, !tbaa !5
  %8742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8729, ptr noundef @.str.5, i32 noundef %8730, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8733, ptr noundef %8736, ptr noundef %8739, i32 noundef %8741) #11
  br label %8743

8743:                                             ; preds = %8726, %8709
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %8744

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

8745:                                             ; No predecessors!
  br label %8746

8746:                                             ; preds = %8745, %8692
  br label %8747

8747:                                             ; preds = %8746
  br label %8748

8748:                                             ; preds = %8747
  br label %8749

8749:                                             ; preds = %8748
  %8750 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %8751 = icmp eq i32 %8750, -1
  br i1 %8751, label %8752, label %8803

8752:                                             ; preds = %8749
  br label %8753

8753:                                             ; preds = %8752
  br label %8754

8754:                                             ; preds = %8753
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %8755 = call ptr @__errno_location() #12
  %8756 = load i32, ptr %8755, align 4, !tbaa !5
  store i32 %8756, ptr %220, align 4, !tbaa !5
  %8757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8758 = call i32 @s2n_print_stacktrace(ptr noundef %8757)
  %8759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8760 = trunc i8 %8759 to i1
  br i1 %8760, label %8761, label %8783

8761:                                             ; preds = %8754
  %8762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8763 = call i32 @fileno(ptr noundef %8762) #11
  %8764 = call i32 @isatty(i32 noundef %8763) #11
  %8765 = icmp ne i32 %8764, 0
  br i1 %8765, label %8766, label %8783

8766:                                             ; preds = %8761
  %8767 = load i32, ptr %220, align 4, !tbaa !5
  %8768 = call ptr @__errno_location() #12
  store i32 %8767, ptr %8768, align 4, !tbaa !5
  %8769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8770 = load i32, ptr @test_count, align 4, !tbaa !5
  %8771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8772 = load i32, ptr %8771, align 4, !tbaa !5
  %8773 = call ptr @s2n_strerror(i32 noundef %8772, ptr noundef @.str.4)
  %8774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8775 = load i32, ptr %8774, align 4, !tbaa !5
  %8776 = call ptr @s2n_strerror_debug(i32 noundef %8775, ptr noundef @.str.4)
  %8777 = call ptr @__errno_location() #12
  %8778 = load i32, ptr %8777, align 4, !tbaa !5
  %8779 = call ptr @strerror(i32 noundef %8778) #11
  %8780 = call ptr @__errno_location() #12
  %8781 = load i32, ptr %8780, align 4, !tbaa !5
  %8782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8769, ptr noundef @.str.2, i32 noundef %8770, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8773, ptr noundef %8776, ptr noundef %8779, i32 noundef %8781) #11
  br label %8800

8783:                                             ; preds = %8761, %8754
  %8784 = load i32, ptr %220, align 4, !tbaa !5
  %8785 = call ptr @__errno_location() #12
  store i32 %8784, ptr %8785, align 4, !tbaa !5
  %8786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8787 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8789, ptr noundef @.str.4)
  %8791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8792 = load i32, ptr %8791, align 4, !tbaa !5
  %8793 = call ptr @s2n_strerror_debug(i32 noundef %8792, ptr noundef @.str.4)
  %8794 = call ptr @__errno_location() #12
  %8795 = load i32, ptr %8794, align 4, !tbaa !5
  %8796 = call ptr @strerror(i32 noundef %8795) #11
  %8797 = call ptr @__errno_location() #12
  %8798 = load i32, ptr %8797, align 4, !tbaa !5
  %8799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8786, ptr noundef @.str.5, i32 noundef %8787, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8790, ptr noundef %8793, ptr noundef %8796, i32 noundef %8798) #11
  br label %8800

8800:                                             ; preds = %8783, %8766
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %8801

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

8802:                                             ; No predecessors!
  br label %8803

8803:                                             ; preds = %8802, %8749
  br label %8804

8804:                                             ; preds = %8803
  %8805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8806 = trunc i8 %8805 to i1
  br i1 %8806, label %8807, label %8823

8807:                                             ; preds = %8804
  %8808 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8809 = call i32 @fileno(ptr noundef %8808) #11
  %8810 = call i32 @isatty(i32 noundef %8809) #11
  %8811 = icmp ne i32 %8810, 0
  br i1 %8811, label %8812, label %8823

8812:                                             ; preds = %8807
  %8813 = load i32, ptr @test_count, align 4, !tbaa !5
  %8814 = icmp ne i32 %8813, 0
  br i1 %8814, label %8815, label %8819

8815:                                             ; preds = %8812
  %8816 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8817 = load i32, ptr @test_count, align 4, !tbaa !5
  %8818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8816, ptr noundef @.str.82, i32 noundef %8817) #11
  br label %8822

8819:                                             ; preds = %8812
  %8820 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8820, ptr noundef @.str.83) #11
  br label %8822

8822:                                             ; preds = %8819, %8815
  br label %8834

8823:                                             ; preds = %8807, %8804
  %8824 = load i32, ptr @test_count, align 4, !tbaa !5
  %8825 = icmp ne i32 %8824, 0
  br i1 %8825, label %8826, label %8830

8826:                                             ; preds = %8823
  %8827 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8828 = load i32, ptr @test_count, align 4, !tbaa !5
  %8829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8827, ptr noundef @.str.84, i32 noundef %8828) #11
  br label %8833

8830:                                             ; preds = %8823
  %8831 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8831, ptr noundef @.str.85) #11
  br label %8833

8833:                                             ; preds = %8830, %8826
  br label %8834

8834:                                             ; preds = %8833, %8822
  store i32 0, ptr %3, align 4
  br label %8836

8835:                                             ; No predecessors!
  br label %8836

8836:                                             ; preds = %8835, %8834, %8688, %6032, %5182, %4309, %1825
  %8837 = load i32, ptr %3, align 4
  ret i32 %8837

8838:                                             ; preds = %8688, %6032, %5182, %4309, %1825
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

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

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strrchr(ptr noundef, i32 noundef) #8

declare i32 @s2n_calculate_stacktrace() #2

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

declare i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext, i8 noundef zeroext, ptr noundef) #2

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #8

declare i32 @s2n_blob_zero(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #9

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_session_key_alloc(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) #2

declare i32 @s2n_record_parse_aead(ptr noundef, ptr noundef, i8 noundef zeroext, i16 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_session_key_free(ptr noundef) #2

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

declare i32 @s2n_record_parse(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 = { 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 #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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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, !10, i64 0}
!18 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!19 = !{!18, !10, i64 8}
!20 = !{!21, !6, i64 8}
!21 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!22 = !{!21, !10, i64 0}
!23 = !{!24, !7, i64 220}
!24 = !{!"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, !25, 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, !26, i64 240, !10, i64 632, !10, i64 640, !27, i64 648, !32, i64 1144, !35, 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, !16, 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, !37, i64 2208, !6, i64 2212, !37, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !21, i64 2792, !6, i64 2816, !21, i64 2824, !21, i64 2848, !21, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !21, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !38, i64 3992, !21, i64 4032, !21, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !37, i64 4084, !37, i64 4086, !6, i64 4088, !6, i64 4092, !21, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!25 = !{!"s2n_timer", !16, 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, !21, i64 448, !21, 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, !21, i64 8, !21, i64 32, !21, i64 56, !12, i64 80}
!32 = !{!"s2n_handshake_parameters", !33, i64 0, !33, i64 48, !21, i64 96, !6, i64 120, !34, 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}
!33 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!34 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!35 = !{!"s2n_psk_parameters", !6, i64 0, !36, i64 8, !37, i64 40, !37, i64 42, !10, i64 48, !6, i64 56}
!36 = !{!"s2n_array", !21, i64 0, !6, i64 24, !6, i64 28}
!37 = !{!"short", !7, i64 0}
!38 = !{!"s2n_stuffer", !21, 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", !21, i64 0, !43, i64 24, !21, i64 728, !21, i64 752, !21, 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, !21, i64 672, !37, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !37, 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", !21, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !38, i64 0, !7, i64 40}
!48 = !{!49, !10, i64 48}
!49 = !{!"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}
!50 = !{!51, !10, i64 0}
!51 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !16, i64 16}
!52 = !{!53, !10, i64 64}
!53 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!54 = !{!53, !10, i64 72}
!55 = !{!24, !10, i64 232}
!56 = !{!24, !10, i64 1856}
!57 = !{!38, !6, i64 8}
!58 = !{!38, !10, i64 0}
!59 = !{!7, !7, i64 0}
!60 = !{!24, !10, i64 640}
!61 = !{!62, !10, i64 0}
!62 = !{!"s2n_crypto_parameters", !10, i64 0, !63, i64 8, !63, i64 16, !64, i64 24, !64, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!63 = !{!"s2n_session_key", !10, i64 0}
!64 = !{!"s2n_hmac_state", !6, i64 0, !37, i64 4, !6, i64 8, !37, i64 12, !7, i64 14, !65, i64 16, !65, i64 72, !65, i64 128, !65, i64 184, !7, i64 240, !7, i64 368}
!65 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !16, i64 16, !7, i64 24}
!66 = !{!53, !10, i64 80}
!67 = distinct !{!67, !68}
!68 = !{!"llvm.loop.mustprogress"}
!69 = !{!21, !6, i64 12}
!70 = !{!24, !10, i64 1896}
!71 = distinct !{!71, !68}
!72 = !{!24, !7, i64 219}
!73 = !{!24, !10, i64 632}
!74 = distinct !{!74, !68}
!75 = !{!37, !37, i64 0}
!76 = distinct !{!76, !68}


; 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_debug_info = type { ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_session_key = type { ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@protected_record_hex = external dso_local constant [1349 x i8], align 16
@plaintext_record_hex = external dso_local constant [1317 x i8], align 16
@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 [85 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [64 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.24 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [170 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [169 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [103 x i8], align 1
@__const.main.expect_plaintext = external hidden unnamed_addr constant %struct.s2n_blob, align 8
@main.hello_data = external hidden global [12 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.modes = external hidden unnamed_addr constant [2 x i32], align 4
@.str.57 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [117 x i8], align 1
@__const.main.change_cipher_spec = external hidden unnamed_addr constant [1 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.85 = 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 [5 x i8], align 1
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_session_key, align 8
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca %struct.s2n_blob, align 8
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca [1000 x i8], align 16
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca %struct.s2n_blob, align 8
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca %struct.s2n_blob, align 8
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca %struct.s2n_blob, align 8
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca %struct.s2n_blob, align 8
  %24 = alloca %struct.s2n_blob, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca [1 x i8], align 1
  %27 = alloca %struct.s2n_blob, align 8
  %28 = alloca i8, align 1
  %29 = alloca i16, align 2
  %30 = alloca i16, align 2
  %31 = alloca i8, align 1
  %32 = alloca i8, align 1
  %33 = alloca i16, align 2
  %34 = alloca i16, align 2
  %35 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %36 = load ptr, ptr @stdout, align 8, !tbaa !9
  %37 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %38 = load ptr, ptr @stdout, align 8, !tbaa !9
  %39 = tail call i32 @fflush(ptr noundef %38)
  %40 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %41 = icmp eq i32 %40, -1
  br i1 %41, label %42, label %66

42:                                               ; preds = %2
  %43 = tail call ptr @__errno_location() #13
  %44 = load i32, ptr %43, align 4, !tbaa !5
  %45 = load ptr, ptr @stderr, align 8, !tbaa !9
  %46 = tail call i32 @s2n_print_stacktrace(ptr noundef %45) #12
  %47 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %48 = trunc nuw i8 %47 to i1
  br i1 %48, label %49, label %53

49:                                               ; preds = %42
  %50 = load ptr, ptr @stderr, align 8, !tbaa !9
  %51 = tail call i32 @fileno(ptr noundef %50) #12
  %52 = tail call i32 @isatty(i32 noundef %51) #12
  %.not611 = icmp eq i32 %52, 0
  br i1 %.not611, label %53, label %54

53:                                               ; preds = %49, %42
  br label %54

54:                                               ; preds = %49, %53
  %.str.5.sink = phi ptr [ @.str.5, %53 ], [ @.str.2, %49 ]
  store i32 %44, ptr %43, align 4, !tbaa !5
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = load i32, ptr @test_count, align 4, !tbaa !5
  %57 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = tail call ptr @s2n_strerror(i32 noundef %58, ptr noundef nonnull @.str.4) #12
  %60 = load i32, ptr %57, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror_debug(i32 noundef %60, ptr noundef nonnull @.str.4) #12
  %62 = load i32, ptr %43, align 4, !tbaa !5
  %63 = tail call ptr @strerror(i32 noundef %62) #12
  %64 = load i32, ptr %43, align 4, !tbaa !5
  %65 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef nonnull %.str.5.sink, i32 noundef %56, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %59, ptr noundef %61, ptr noundef %63, i32 noundef %64) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

66:                                               ; preds = %2
  %67 = load i32, ptr @test_count, align 4, !tbaa !5
  %68 = add nsw i32 %67, 1
  store i32 %68, ptr @test_count, align 4, !tbaa !5
  %69 = tail call i32 @s2n_enable_atexit() #12
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %95

71:                                               ; preds = %66
  %72 = tail call ptr @__errno_location() #13
  %73 = load i32, ptr %72, align 4, !tbaa !5
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @s2n_print_stacktrace(ptr noundef %74) #12
  %76 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %77 = trunc nuw i8 %76 to i1
  br i1 %77, label %78, label %82

78:                                               ; preds = %71
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = tail call i32 @fileno(ptr noundef %79) #12
  %81 = tail call i32 @isatty(i32 noundef %80) #12
  %.not610 = icmp eq i32 %81, 0
  br i1 %.not610, label %82, label %83

82:                                               ; preds = %78, %71
  br label %83

83:                                               ; preds = %78, %82
  %.str.5.sink682 = phi ptr [ @.str.5, %82 ], [ @.str.2, %78 ]
  store i32 %73, ptr %72, align 4, !tbaa !5
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = load i32, ptr @test_count, align 4, !tbaa !5
  %86 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror(i32 noundef %87, ptr noundef nonnull @.str.4) #12
  %89 = load i32, ptr %86, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror_debug(i32 noundef %89, ptr noundef nonnull @.str.4) #12
  %91 = load i32, ptr %72, align 4, !tbaa !5
  %92 = tail call ptr @strerror(i32 noundef %91) #12
  %93 = load i32, ptr %72, align 4, !tbaa !5
  %94 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %84, ptr noundef nonnull %.str.5.sink682, i32 noundef %85, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %88, ptr noundef %90, ptr noundef %92, i32 noundef %93) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

95:                                               ; preds = %66
  %96 = tail call i32 @s2n_init() #12
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %122

98:                                               ; preds = %95
  %99 = tail call ptr @__errno_location() #13
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = tail call i32 @s2n_print_stacktrace(ptr noundef %101) #12
  %103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %104 = trunc nuw i8 %103 to i1
  br i1 %104, label %105, label %109

105:                                              ; preds = %98
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = tail call i32 @fileno(ptr noundef %106) #12
  %108 = tail call i32 @isatty(i32 noundef %107) #12
  %.not609 = icmp eq i32 %108, 0
  br i1 %.not609, label %109, label %110

109:                                              ; preds = %105, %98
  br label %110

110:                                              ; preds = %105, %109
  %.str.5.sink693 = phi ptr [ @.str.5, %109 ], [ @.str.2, %105 ]
  store i32 %100, ptr %99, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = tail call ptr @s2n_strerror(i32 noundef %114, ptr noundef nonnull @.str.4) #12
  %116 = load i32, ptr %113, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror_debug(i32 noundef %116, ptr noundef nonnull @.str.4) #12
  %118 = load i32, ptr %99, align 4, !tbaa !5
  %119 = tail call ptr @strerror(i32 noundef %118) #12
  %120 = load i32, ptr %99, align 4, !tbaa !5
  %121 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef nonnull %.str.5.sink693, i32 noundef %112, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %115, ptr noundef %117, ptr noundef %119, i32 noundef %120) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

122:                                              ; preds = %95
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, ptr @test_count, align 4, !tbaa !5
  %125 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %126 = icmp eq i32 %125, -1
  br i1 %126, label %127, label %151

127:                                              ; preds = %122
  %128 = tail call ptr @__errno_location() #13
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = tail call i32 @s2n_print_stacktrace(ptr noundef %130) #12
  %132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %133 = trunc nuw i8 %132 to i1
  br i1 %133, label %134, label %138

134:                                              ; preds = %127
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @fileno(ptr noundef %135) #12
  %137 = tail call i32 @isatty(i32 noundef %136) #12
  %.not608 = icmp eq i32 %137, 0
  br i1 %.not608, label %138, label %139

138:                                              ; preds = %134, %127
  br label %139

139:                                              ; preds = %134, %138
  %.str.5.sink704 = phi ptr [ @.str.5, %138 ], [ @.str.2, %134 ]
  store i32 %129, ptr %128, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror(i32 noundef %143, ptr noundef nonnull @.str.4) #12
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.4) #12
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = tail call ptr @strerror(i32 noundef %147) #12
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.5.sink704, i32 noundef %141, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

151:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %3, i8 0, i64 5, 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)
  %152 = call i32 @s2n_blob_init(ptr noundef nonnull %4, ptr noundef nonnull %3, i32 noundef 5) #12
  %153 = icmp sgt i32 %152, -1
  br i1 %153, label %154, label %.thread

.thread:                                          ; preds = %151
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %3) #12
  br label %.loopexit

154:                                              ; preds = %151
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 662, i8 noundef zeroext 12, ptr noundef nonnull %4) #12
  %158 = call zeroext i1 @s2n_result_is_ok(i32 %157)
  br i1 %158, label %183, label %159

159:                                              ; preds = %154
  %160 = tail call ptr @__errno_location() #13
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @s2n_print_stacktrace(ptr noundef %162) #12
  %164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %165 = trunc nuw i8 %164 to i1
  br i1 %165, label %166, label %170

166:                                              ; preds = %159
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = call i32 @fileno(ptr noundef %167) #12
  %169 = call i32 @isatty(i32 noundef %168) #12
  %.not = icmp eq i32 %169, 0
  br i1 %.not, label %170, label %171

170:                                              ; preds = %166, %159
  br label %171

171:                                              ; preds = %166, %170
  %.str.5.sink715 = phi ptr [ @.str.5, %170 ], [ @.str.2, %166 ]
  store i32 %161, ptr %160, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = load i32, ptr @test_count, align 4, !tbaa !5
  %174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call ptr @s2n_strerror(i32 noundef %175, ptr noundef nonnull @.str.4) #12
  %177 = load i32, ptr %174, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef nonnull @.str.4) #12
  %179 = load i32, ptr %160, align 4, !tbaa !5
  %180 = call ptr @strerror(i32 noundef %179) #12
  %181 = load i32, ptr %160, align 4, !tbaa !5
  %182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %172, ptr noundef nonnull %.str.5.sink715, i32 noundef %173, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %176, ptr noundef %178, ptr noundef %180, i32 noundef %181) #14
  call void @exit(i32 noundef 1) #15
  unreachable

183:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %184 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %5, ptr noundef nonnull @.str.11) #12
  %185 = call zeroext i1 @s2n_result_is_ok(i32 %184)
  br i1 %185, label %186, label %716

186:                                              ; preds = %183
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = add nsw i32 %187, 1
  store i32 %188, ptr @test_count, align 4, !tbaa !5
  %189 = getelementptr inbounds i8, ptr %5, i64 8
  %190 = load i32, ptr %189, align 8, !tbaa !15
  %191 = getelementptr inbounds i8, ptr %4, i64 8
  %192 = load i32, ptr %191, align 8, !tbaa !15
  %193 = icmp eq i32 %190, %192
  br i1 %193, label %218, label %194

194:                                              ; preds = %186
  %195 = tail call ptr @__errno_location() #13
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = call i32 @s2n_print_stacktrace(ptr noundef %197) #12
  %199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %205

201:                                              ; preds = %194
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = call i32 @fileno(ptr noundef %202) #12
  %204 = call i32 @isatty(i32 noundef %203) #12
  %.not482 = icmp eq i32 %204, 0
  br i1 %.not482, label %205, label %206

205:                                              ; preds = %201, %194
  br label %206

206:                                              ; preds = %201, %205
  %.str.5.sink726 = phi ptr [ @.str.5, %205 ], [ @.str.2, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.4) #12
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.4) #12
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = call ptr @strerror(i32 noundef %214) #12
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.5.sink726, i32 noundef %208, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

218:                                              ; preds = %186
  %.not483 = icmp eq i32 %190, 0
  br i1 %.not483, label %249, label %219

219:                                              ; preds = %218
  %220 = add nsw i32 %187, 2
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = load ptr, ptr %5, align 8, !tbaa !17
  %222 = load ptr, ptr %4, align 8, !tbaa !17
  %223 = zext i32 %190 to i64
  %bcmp = call i32 @bcmp(ptr %221, ptr %222, i64 %223)
  %224 = icmp eq i32 %bcmp, 0
  br i1 %224, label %249, label %225

225:                                              ; preds = %219
  %226 = tail call ptr @__errno_location() #13
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @s2n_print_stacktrace(ptr noundef %228) #12
  %230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %231 = trunc nuw i8 %230 to i1
  br i1 %231, label %232, label %236

232:                                              ; preds = %225
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @fileno(ptr noundef %233) #12
  %235 = call i32 @isatty(i32 noundef %234) #12
  %.not484 = icmp eq i32 %235, 0
  br i1 %.not484, label %236, label %237

236:                                              ; preds = %232, %225
  br label %237

237:                                              ; preds = %232, %236
  %.str.5.sink737 = phi ptr [ @.str.5, %236 ], [ @.str.2, %232 ]
  store i32 %227, ptr %226, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror(i32 noundef %241, ptr noundef nonnull @.str.4) #12
  %243 = load i32, ptr %240, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror_debug(i32 noundef %243, ptr noundef nonnull @.str.4) #12
  %245 = load i32, ptr %226, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #12
  %247 = load i32, ptr %226, align 4, !tbaa !5
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef nonnull %.str.5.sink737, i32 noundef %239, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %242, ptr noundef %244, ptr noundef %246, i32 noundef %247) #14
  call void @exit(i32 noundef 1) #15
  unreachable

249:                                              ; preds = %218, %219
  %250 = phi i32 [ %188, %218 ], [ %220, %219 ]
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr @test_count, align 4, !tbaa !5
  %252 = call i32 @s2n_blob_zero(ptr noundef nonnull %4) #12
  %253 = icmp eq i32 %252, -1
  br i1 %253, label %254, label %278

254:                                              ; preds = %249
  %255 = tail call ptr @__errno_location() #13
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = call i32 @s2n_print_stacktrace(ptr noundef %257) #12
  %259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %260 = trunc nuw i8 %259 to i1
  br i1 %260, label %261, label %265

261:                                              ; preds = %254
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = call i32 @fileno(ptr noundef %262) #12
  %264 = call i32 @isatty(i32 noundef %263) #12
  %.not607 = icmp eq i32 %264, 0
  br i1 %.not607, label %265, label %266

265:                                              ; preds = %261, %254
  br label %266

266:                                              ; preds = %261, %265
  %.str.5.sink748 = phi ptr [ @.str.5, %265 ], [ @.str.2, %261 ]
  store i32 %256, ptr %255, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror(i32 noundef %270, ptr noundef nonnull @.str.4) #12
  %272 = load i32, ptr %269, align 4, !tbaa !5
  %273 = call ptr @s2n_strerror_debug(i32 noundef %272, ptr noundef nonnull @.str.4) #12
  %274 = load i32, ptr %255, align 4, !tbaa !5
  %275 = call ptr @strerror(i32 noundef %274) #12
  %276 = load i32, ptr %255, align 4, !tbaa !5
  %277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef nonnull %.str.5.sink748, i32 noundef %268, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %271, ptr noundef %273, ptr noundef %275, i32 noundef %276) #14
  call void @exit(i32 noundef 1) #15
  unreachable

278:                                              ; preds = %249
  %279 = load i32, ptr @test_count, align 4, !tbaa !5
  %280 = add nsw i32 %279, 1
  store i32 %280, ptr @test_count, align 4, !tbaa !5
  %281 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16628, i8 noundef zeroext 12, ptr noundef nonnull %4) #12
  %282 = call zeroext i1 @s2n_result_is_ok(i32 %281)
  br i1 %282, label %307, label %283

283:                                              ; preds = %278
  %284 = tail call ptr @__errno_location() #13
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @s2n_print_stacktrace(ptr noundef %286) #12
  %288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %290, label %294

290:                                              ; preds = %283
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @fileno(ptr noundef %291) #12
  %293 = call i32 @isatty(i32 noundef %292) #12
  %.not485 = icmp eq i32 %293, 0
  br i1 %.not485, label %294, label %295

294:                                              ; preds = %290, %283
  br label %295

295:                                              ; preds = %290, %294
  %.str.5.sink759 = phi ptr [ @.str.5, %294 ], [ @.str.2, %290 ]
  store i32 %285, ptr %284, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror(i32 noundef %299, ptr noundef nonnull @.str.4) #12
  %301 = load i32, ptr %298, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror_debug(i32 noundef %301, ptr noundef nonnull @.str.4) #12
  %303 = load i32, ptr %284, align 4, !tbaa !5
  %304 = call ptr @strerror(i32 noundef %303) #12
  %305 = load i32, ptr %284, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef nonnull %.str.5.sink759, i32 noundef %297, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %300, ptr noundef %302, ptr noundef %304, i32 noundef %305) #14
  call void @exit(i32 noundef 1) #15
  unreachable

307:                                              ; preds = %278
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = call i32 @s2n_blob_zero(ptr noundef nonnull %4) #12
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %336

312:                                              ; preds = %307
  %313 = tail call ptr @__errno_location() #13
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @s2n_print_stacktrace(ptr noundef %315) #12
  %317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %318 = trunc nuw i8 %317 to i1
  br i1 %318, label %319, label %323

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @fileno(ptr noundef %320) #12
  %322 = call i32 @isatty(i32 noundef %321) #12
  %.not606 = icmp eq i32 %322, 0
  br i1 %.not606, label %323, label %324

323:                                              ; preds = %319, %312
  br label %324

324:                                              ; preds = %319, %323
  %.str.5.sink770 = phi ptr [ @.str.5, %323 ], [ @.str.2, %319 ]
  store i32 %314, ptr %313, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror(i32 noundef %328, ptr noundef nonnull @.str.4) #12
  %330 = load i32, ptr %327, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef nonnull @.str.4) #12
  %332 = load i32, ptr %313, align 4, !tbaa !5
  %333 = call ptr @strerror(i32 noundef %332) #12
  %334 = load i32, ptr %313, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef nonnull %.str.5.sink770, i32 noundef %326, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %329, ptr noundef %331, ptr noundef %333, i32 noundef %334) #14
  call void @exit(i32 noundef 1) #15
  unreachable

336:                                              ; preds = %307
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr @test_count, align 4, !tbaa !5
  %339 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16629, i8 noundef zeroext 12, ptr noundef nonnull %4) #12
  %340 = call zeroext i1 @s2n_result_is_error(i32 %339)
  br i1 %340, label %365, label %341

341:                                              ; preds = %336
  %342 = tail call ptr @__errno_location() #13
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @s2n_print_stacktrace(ptr noundef %344) #12
  %346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %347 = trunc nuw i8 %346 to i1
  br i1 %347, label %348, label %352

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

352:                                              ; preds = %348, %341
  br label %353

353:                                              ; preds = %348, %352
  %.str.5.sink781 = phi ptr [ @.str.5, %352 ], [ @.str.2, %348 ]
  store i32 %343, ptr %342, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror(i32 noundef %357, ptr noundef nonnull @.str.4) #12
  %359 = load i32, ptr %356, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror_debug(i32 noundef %359, ptr noundef nonnull @.str.4) #12
  %361 = load i32, ptr %342, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #12
  %363 = load i32, ptr %342, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull %.str.5.sink781, i32 noundef %355, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %358, ptr noundef %360, ptr noundef %362, i32 noundef %363) #14
  call void @exit(i32 noundef 1) #15
  unreachable

365:                                              ; preds = %336
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = add nsw i32 %366, 1
  store i32 %367, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = icmp eq i32 %369, 335544365
  br i1 %370, label %394, label %371

371:                                              ; preds = %365
  %372 = tail call ptr @__errno_location() #13
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 @s2n_print_stacktrace(ptr noundef %374) #12
  %376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %377 = trunc nuw i8 %376 to i1
  br i1 %377, label %378, label %382

378:                                              ; preds = %371
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @fileno(ptr noundef %379) #12
  %381 = call i32 @isatty(i32 noundef %380) #12
  %.not487 = icmp eq i32 %381, 0
  br i1 %.not487, label %382, label %383

382:                                              ; preds = %378, %371
  br label %383

383:                                              ; preds = %378, %382
  %.str.5.sink792 = phi ptr [ @.str.5, %382 ], [ @.str.2, %378 ]
  store i32 %373, ptr %372, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = load i32, ptr %368, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror(i32 noundef %386, ptr noundef nonnull @.str.4) #12
  %388 = load i32, ptr %368, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror_debug(i32 noundef %388, ptr noundef nonnull @.str.4) #12
  %390 = load i32, ptr %372, align 4, !tbaa !5
  %391 = call ptr @strerror(i32 noundef %390) #12
  %392 = load i32, ptr %372, align 4, !tbaa !5
  %393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull %.str.5.sink792, i32 noundef %385, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %387, ptr noundef %389, ptr noundef %391, i32 noundef %392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

394:                                              ; preds = %365
  %395 = add nsw i32 %366, 2
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror_debug(i32 noundef 335544365, ptr noundef nonnull @.str.4) #12
  %397 = icmp eq ptr %396, null
  br i1 %397, label %398, label %421

398:                                              ; preds = %394
  %399 = tail call ptr @__errno_location() #13
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = call i32 @s2n_print_stacktrace(ptr noundef %401) #12
  %403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %404 = trunc nuw i8 %403 to i1
  br i1 %404, label %405, label %409

405:                                              ; preds = %398
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @fileno(ptr noundef %406) #12
  %408 = call i32 @isatty(i32 noundef %407) #12
  %.not605 = icmp eq i32 %408, 0
  br i1 %.not605, label %409, label %410

409:                                              ; preds = %405, %398
  br label %410

410:                                              ; preds = %405, %409
  %.str.5.sink801 = phi ptr [ @.str.5, %409 ], [ @.str.2, %405 ]
  store i32 %400, ptr %399, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = load i32, ptr %368, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror(i32 noundef %413, ptr noundef nonnull @.str.4) #12
  %415 = load i32, ptr %368, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror_debug(i32 noundef %415, ptr noundef nonnull @.str.4) #12
  %417 = load i32, ptr %399, align 4, !tbaa !5
  %418 = call ptr @strerror(i32 noundef %417) #12
  %419 = load i32, ptr %399, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef nonnull %.str.5.sink801, i32 noundef %412, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %414, ptr noundef %416, ptr noundef %418, i32 noundef %419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

421:                                              ; preds = %394
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %422 = tail call ptr @__errno_location() #13
  store i32 0, ptr %422, align 4, !tbaa !5
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = call i32 @s2n_blob_zero(ptr noundef nonnull %4) #12
  %426 = icmp eq i32 %425, -1
  br i1 %426, label %427, label %449

427:                                              ; preds = %421
  %428 = load i32, ptr %422, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @s2n_print_stacktrace(ptr noundef %429) #12
  %431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %432 = trunc nuw i8 %431 to i1
  br i1 %432, label %433, label %437

433:                                              ; preds = %427
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @fileno(ptr noundef %434) #12
  %436 = call i32 @isatty(i32 noundef %435) #12
  %.not604 = icmp eq i32 %436, 0
  br i1 %.not604, label %437, label %438

437:                                              ; preds = %433, %427
  br label %438

438:                                              ; preds = %433, %437
  %.str.5.sink810 = phi ptr [ @.str.5, %437 ], [ @.str.2, %433 ]
  store i32 %428, ptr %422, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = load i32, ptr %368, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef nonnull @.str.4) #12
  %443 = load i32, ptr %368, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef nonnull @.str.4) #12
  %445 = load i32, ptr %422, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #12
  %447 = load i32, ptr %422, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull %.str.5.sink810, i32 noundef %440, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %442, ptr noundef %444, ptr noundef %446, i32 noundef %447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

449:                                              ; preds = %421
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16629, i8 noundef zeroext 12, ptr noundef null) #12
  %453 = call zeroext i1 @s2n_result_is_error(i32 %452)
  br i1 %453, label %476, label %454

454:                                              ; preds = %449
  %455 = load i32, ptr %422, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = call i32 @s2n_print_stacktrace(ptr noundef %456) #12
  %458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %459 = trunc nuw i8 %458 to i1
  br i1 %459, label %460, label %464

460:                                              ; preds = %454
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = call i32 @fileno(ptr noundef %461) #12
  %463 = call i32 @isatty(i32 noundef %462) #12
  %.not488 = icmp eq i32 %463, 0
  br i1 %.not488, label %464, label %465

464:                                              ; preds = %460, %454
  br label %465

465:                                              ; preds = %460, %464
  %.str.5.sink819 = phi ptr [ @.str.5, %464 ], [ @.str.2, %460 ]
  store i32 %455, ptr %422, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = load i32, ptr %368, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror(i32 noundef %468, ptr noundef nonnull @.str.4) #12
  %470 = load i32, ptr %368, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror_debug(i32 noundef %470, ptr noundef nonnull @.str.4) #12
  %472 = load i32, ptr %422, align 4, !tbaa !5
  %473 = call ptr @strerror(i32 noundef %472) #12
  %474 = load i32, ptr %422, align 4, !tbaa !5
  %475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %466, ptr noundef nonnull %.str.5.sink819, i32 noundef %467, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %469, ptr noundef %471, ptr noundef %473, i32 noundef %474) #14
  call void @exit(i32 noundef 1) #15
  unreachable

476:                                              ; preds = %449
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr @test_count, align 4, !tbaa !5
  %479 = load i32, ptr %368, align 4, !tbaa !5
  %480 = icmp eq i32 %479, 0
  br i1 %480, label %481, label %503

481:                                              ; preds = %476
  %482 = load i32, ptr %422, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = call i32 @s2n_print_stacktrace(ptr noundef %483) #12
  %485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %486 = trunc nuw i8 %485 to i1
  br i1 %486, label %487, label %491

487:                                              ; preds = %481
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @fileno(ptr noundef %488) #12
  %490 = call i32 @isatty(i32 noundef %489) #12
  %.not603 = icmp eq i32 %490, 0
  br i1 %.not603, label %491, label %492

491:                                              ; preds = %487, %481
  br label %492

492:                                              ; preds = %487, %491
  %.str.5.sink828 = phi ptr [ @.str.5, %491 ], [ @.str.2, %487 ]
  store i32 %482, ptr %422, align 4, !tbaa !5
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = load i32, ptr %368, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef nonnull @.str.4) #12
  %497 = load i32, ptr %368, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror_debug(i32 noundef %497, ptr noundef nonnull @.str.4) #12
  %499 = load i32, ptr %422, align 4, !tbaa !5
  %500 = call ptr @strerror(i32 noundef %499) #12
  %501 = load i32, ptr %422, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %493, ptr noundef nonnull %.str.5.sink828, i32 noundef %494, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %496, ptr noundef %498, ptr noundef %500, i32 noundef %501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

503:                                              ; preds = %476
  %504 = add nsw i32 %477, 2
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror_debug(i32 noundef %479, ptr noundef nonnull @.str.4) #12
  %506 = icmp eq ptr %505, null
  br i1 %506, label %507, label %529

507:                                              ; preds = %503
  %508 = load i32, ptr %422, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = call i32 @s2n_print_stacktrace(ptr noundef %509) #12
  %511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %512 = trunc nuw i8 %511 to i1
  br i1 %512, label %513, label %517

513:                                              ; preds = %507
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @fileno(ptr noundef %514) #12
  %516 = call i32 @isatty(i32 noundef %515) #12
  %.not602 = icmp eq i32 %516, 0
  br i1 %.not602, label %517, label %518

517:                                              ; preds = %513, %507
  br label %518

518:                                              ; preds = %513, %517
  %.str.5.sink837 = phi ptr [ @.str.5, %517 ], [ @.str.2, %513 ]
  store i32 %508, ptr %422, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = load i32, ptr %368, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef nonnull @.str.4) #12
  %523 = load i32, ptr %368, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef nonnull @.str.4) #12
  %525 = load i32, ptr %422, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #12
  %527 = load i32, ptr %422, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef nonnull %.str.5.sink837, i32 noundef %520, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %522, ptr noundef %524, ptr noundef %526, i32 noundef %527) #14
  call void @exit(i32 noundef 1) #15
  unreachable

529:                                              ; preds = %503
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  store i32 %531, ptr @test_count, align 4, !tbaa !5
  %532 = call i32 @s2n_blob_zero(ptr noundef nonnull %4) #12
  %533 = icmp eq i32 %532, -1
  br i1 %533, label %534, label %556

534:                                              ; preds = %529
  %535 = load i32, ptr %422, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @s2n_print_stacktrace(ptr noundef %536) #12
  %538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %539 = trunc nuw i8 %538 to i1
  br i1 %539, label %540, label %544

540:                                              ; preds = %534
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @fileno(ptr noundef %541) #12
  %543 = call i32 @isatty(i32 noundef %542) #12
  %.not601 = icmp eq i32 %543, 0
  br i1 %.not601, label %544, label %545

544:                                              ; preds = %540, %534
  br label %545

545:                                              ; preds = %540, %544
  %.str.5.sink846 = phi ptr [ @.str.5, %544 ], [ @.str.2, %540 ]
  store i32 %535, ptr %422, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = load i32, ptr %368, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror(i32 noundef %548, ptr noundef nonnull @.str.4) #12
  %550 = load i32, ptr %368, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef nonnull @.str.4) #12
  %552 = load i32, ptr %422, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #12
  %554 = load i32, ptr %422, align 4, !tbaa !5
  %555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef nonnull %.str.5.sink846, i32 noundef %547, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %549, ptr noundef %551, ptr noundef %553, i32 noundef %554) #14
  call void @exit(i32 noundef 1) #15
  unreachable

556:                                              ; preds = %529
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr @test_count, align 4, !tbaa !5
  %559 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext 16628, i8 noundef zeroext 0, ptr noundef nonnull %4) #12
  %560 = call zeroext i1 @s2n_result_is_error(i32 %559)
  br i1 %560, label %583, label %561

561:                                              ; preds = %556
  %562 = load i32, ptr %422, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = call i32 @s2n_print_stacktrace(ptr noundef %563) #12
  %565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %566 = trunc nuw i8 %565 to i1
  br i1 %566, label %567, label %571

567:                                              ; preds = %561
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @fileno(ptr noundef %568) #12
  %570 = call i32 @isatty(i32 noundef %569) #12
  %.not489 = icmp eq i32 %570, 0
  br i1 %.not489, label %571, label %572

571:                                              ; preds = %567, %561
  br label %572

572:                                              ; preds = %567, %571
  %.str.5.sink855 = phi ptr [ @.str.5, %571 ], [ @.str.2, %567 ]
  store i32 %562, ptr %422, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = load i32, ptr %368, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror(i32 noundef %575, ptr noundef nonnull @.str.4) #12
  %577 = load i32, ptr %368, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef nonnull @.str.4) #12
  %579 = load i32, ptr %422, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #12
  %581 = load i32, ptr %422, align 4, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %573, ptr noundef nonnull %.str.5.sink855, i32 noundef %574, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %576, ptr noundef %578, ptr noundef %580, i32 noundef %581) #14
  call void @exit(i32 noundef 1) #15
  unreachable

583:                                              ; preds = %556
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load i32, ptr %368, align 4, !tbaa !5
  %587 = icmp eq i32 %586, 0
  br i1 %587, label %588, label %610

588:                                              ; preds = %583
  %589 = load i32, ptr %422, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @s2n_print_stacktrace(ptr noundef %590) #12
  %592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %593 = trunc nuw i8 %592 to i1
  br i1 %593, label %594, label %598

594:                                              ; preds = %588
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @fileno(ptr noundef %595) #12
  %597 = call i32 @isatty(i32 noundef %596) #12
  %.not600 = icmp eq i32 %597, 0
  br i1 %.not600, label %598, label %599

598:                                              ; preds = %594, %588
  br label %599

599:                                              ; preds = %594, %598
  %.str.5.sink864 = phi ptr [ @.str.5, %598 ], [ @.str.2, %594 ]
  store i32 %589, ptr %422, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = load i32, ptr %368, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.4) #12
  %604 = load i32, ptr %368, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.4) #12
  %606 = load i32, ptr %422, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #12
  %608 = load i32, ptr %422, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef nonnull %.str.5.sink864, i32 noundef %601, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #14
  call void @exit(i32 noundef 1) #15
  unreachable

610:                                              ; preds = %583
  %611 = add nsw i32 %584, 2
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.4) #12
  %613 = icmp eq ptr %612, null
  br i1 %613, label %614, label %636

614:                                              ; preds = %610
  %615 = load i32, ptr %422, 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
  %.not599 = icmp eq i32 %623, 0
  br i1 %.not599, label %624, label %625

624:                                              ; preds = %620, %614
  br label %625

625:                                              ; preds = %620, %624
  %.str.5.sink873 = phi ptr [ @.str.5, %624 ], [ @.str.2, %620 ]
  store i32 %615, ptr %422, 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 %368, align 4, !tbaa !5
  %629 = call ptr @s2n_strerror(i32 noundef %628, ptr noundef nonnull @.str.4) #12
  %630 = load i32, ptr %368, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror_debug(i32 noundef %630, ptr noundef nonnull @.str.4) #12
  %632 = load i32, ptr %422, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #12
  %634 = load i32, ptr %422, align 4, !tbaa !5
  %635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef nonnull %.str.5.sink873, i32 noundef %627, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %629, ptr noundef %631, ptr noundef %633, i32 noundef %634) #14
  call void @exit(i32 noundef 1) #15
  unreachable

636:                                              ; preds = %610
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %637 = load i32, ptr @test_count, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr @test_count, align 4, !tbaa !5
  %639 = call i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext -1, i8 noundef zeroext 0, ptr noundef nonnull %4) #12
  %640 = call zeroext i1 @s2n_result_is_error(i32 %639)
  br i1 %640, label %663, label %641

641:                                              ; preds = %636
  %642 = load i32, ptr %422, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = call i32 @s2n_print_stacktrace(ptr noundef %643) #12
  %645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %646 = trunc nuw i8 %645 to i1
  br i1 %646, label %647, label %651

647:                                              ; preds = %641
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = call i32 @fileno(ptr noundef %648) #12
  %650 = call i32 @isatty(i32 noundef %649) #12
  %.not490 = icmp eq i32 %650, 0
  br i1 %.not490, label %651, label %652

651:                                              ; preds = %647, %641
  br label %652

652:                                              ; preds = %647, %651
  %.str.5.sink882 = phi ptr [ @.str.5, %651 ], [ @.str.2, %647 ]
  store i32 %642, ptr %422, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = load i32, ptr %368, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef nonnull @.str.4) #12
  %657 = load i32, ptr %368, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror_debug(i32 noundef %657, ptr noundef nonnull @.str.4) #12
  %659 = load i32, ptr %422, align 4, !tbaa !5
  %660 = call ptr @strerror(i32 noundef %659) #12
  %661 = load i32, ptr %422, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %653, ptr noundef nonnull %.str.5.sink882, i32 noundef %654, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %656, ptr noundef %658, ptr noundef %660, i32 noundef %661) #14
  call void @exit(i32 noundef 1) #15
  unreachable

663:                                              ; preds = %636
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = load i32, ptr %368, align 4, !tbaa !5
  %667 = icmp eq i32 %666, 0
  br i1 %667, label %668, label %690

668:                                              ; preds = %663
  %669 = load i32, ptr %422, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @s2n_print_stacktrace(ptr noundef %670) #12
  %672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %673 = trunc nuw i8 %672 to i1
  br i1 %673, label %674, label %678

674:                                              ; preds = %668
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @fileno(ptr noundef %675) #12
  %677 = call i32 @isatty(i32 noundef %676) #12
  %.not598 = icmp eq i32 %677, 0
  br i1 %.not598, label %678, label %679

678:                                              ; preds = %674, %668
  br label %679

679:                                              ; preds = %674, %678
  %.str.5.sink891 = phi ptr [ @.str.5, %678 ], [ @.str.2, %674 ]
  store i32 %669, ptr %422, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = load i32, ptr %368, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef nonnull @.str.4) #12
  %684 = load i32, ptr %368, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror_debug(i32 noundef %684, ptr noundef nonnull @.str.4) #12
  %686 = load i32, ptr %422, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #12
  %688 = load i32, ptr %422, align 4, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull %.str.5.sink891, i32 noundef %681, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %683, ptr noundef %685, ptr noundef %687, i32 noundef %688) #14
  call void @exit(i32 noundef 1) #15
  unreachable

690:                                              ; preds = %663
  %691 = add nsw i32 %664, 2
  store i32 %691, ptr @test_count, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %666, ptr noundef nonnull @.str.4) #12
  %693 = icmp eq ptr %692, null
  br i1 %693, label %694, label %718

694:                                              ; preds = %690
  %695 = load i32, ptr %422, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @s2n_print_stacktrace(ptr noundef %696) #12
  %698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %699 = trunc nuw i8 %698 to i1
  br i1 %699, label %700, label %704

700:                                              ; preds = %694
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @fileno(ptr noundef %701) #12
  %703 = call i32 @isatty(i32 noundef %702) #12
  %.not597 = icmp eq i32 %703, 0
  br i1 %.not597, label %704, label %705

704:                                              ; preds = %700, %694
  br label %705

705:                                              ; preds = %700, %704
  %.str.5.sink900 = phi ptr [ @.str.5, %704 ], [ @.str.2, %700 ]
  store i32 %695, ptr %422, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %368, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror(i32 noundef %708, ptr noundef nonnull @.str.4) #12
  %710 = load i32, ptr %368, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef nonnull @.str.4) #12
  %712 = load i32, ptr %422, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #12
  %714 = load i32, ptr %422, align 4, !tbaa !5
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef nonnull %.str.5.sink900, i32 noundef %707, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %709, ptr noundef %711, ptr noundef %713, i32 noundef %714) #14
  call void @exit(i32 noundef 1) #15
  unreachable

716:                                              ; preds = %183
  %717 = call i32 @s2n_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %3) #12
  br label %.loopexit

718:                                              ; preds = %690
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %719 = call i32 @s2n_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %3) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #12
  store i64 0, ptr %6, align 8
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = add nsw i32 %720, 1
  store i32 %721, ptr @test_count, align 4, !tbaa !5
  %722 = call i32 @s2n_session_key_alloc(ptr noundef nonnull %6) #12
  %723 = icmp eq i32 %722, -1
  br i1 %723, label %724, label %746

724:                                              ; preds = %718
  %725 = load i32, ptr %422, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @s2n_print_stacktrace(ptr noundef %726) #12
  %728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %729 = trunc nuw i8 %728 to i1
  br i1 %729, label %730, label %734

730:                                              ; preds = %724
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @fileno(ptr noundef %731) #12
  %733 = call i32 @isatty(i32 noundef %732) #12
  %.not596 = icmp eq i32 %733, 0
  br i1 %.not596, label %734, label %735

734:                                              ; preds = %730, %724
  br label %735

735:                                              ; preds = %730, %734
  %.str.5.sink909 = phi ptr [ @.str.5, %734 ], [ @.str.2, %730 ]
  store i32 %725, ptr %422, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = load i32, ptr %368, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror(i32 noundef %738, ptr noundef nonnull @.str.4) #12
  %740 = load i32, ptr %368, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef nonnull @.str.4) #12
  %742 = load i32, ptr %422, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #12
  %744 = load i32, ptr %422, align 4, !tbaa !5
  %745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef nonnull %.str.5.sink909, i32 noundef %737, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %739, ptr noundef %741, ptr noundef %743, i32 noundef %744) #14
  call void @exit(i32 noundef 1) #15
  unreachable

746:                                              ; preds = %718
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr @test_count, align 4, !tbaa !5
  %749 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %750 = icmp eq ptr %749, null
  br i1 %750, label %751, label %773

751:                                              ; preds = %746
  %752 = load i32, ptr %422, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @s2n_print_stacktrace(ptr noundef %753) #12
  %755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %757, label %761

757:                                              ; preds = %751
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @fileno(ptr noundef %758) #12
  %760 = call i32 @isatty(i32 noundef %759) #12
  %.not595 = icmp eq i32 %760, 0
  br i1 %.not595, label %761, label %762

761:                                              ; preds = %757, %751
  br label %762

762:                                              ; preds = %757, %761
  %.str.5.sink918 = phi ptr [ @.str.5, %761 ], [ @.str.2, %757 ]
  store i32 %752, ptr %422, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = load i32, ptr %368, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.4) #12
  %767 = load i32, ptr %368, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.4) #12
  %769 = load i32, ptr %422, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #12
  %771 = load i32, ptr %422, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef nonnull %.str.5.sink918, i32 noundef %764, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #14
  call void @exit(i32 noundef 1) #15
  unreachable

773:                                              ; preds = %746
  %774 = getelementptr inbounds i8, ptr %749, i64 220
  store i8 34, ptr %774, align 4, !tbaa !18
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %778 = load ptr, ptr %777, align 8, !tbaa !46
  %779 = getelementptr inbounds i8, ptr %778, i64 64
  %780 = load ptr, ptr %779, align 8, !tbaa !48
  %781 = call i32 %780(ptr noundef nonnull %6) #12
  %782 = call zeroext i1 @s2n_result_is_ok(i32 %781)
  br i1 %782, label %805, label %783

783:                                              ; preds = %773
  %784 = load i32, ptr %422, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @s2n_print_stacktrace(ptr noundef %785) #12
  %787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %788 = trunc nuw i8 %787 to i1
  br i1 %788, label %789, label %793

789:                                              ; preds = %783
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @fileno(ptr noundef %790) #12
  %792 = call i32 @isatty(i32 noundef %791) #12
  %.not491 = icmp eq i32 %792, 0
  br i1 %.not491, label %793, label %794

793:                                              ; preds = %789, %783
  br label %794

794:                                              ; preds = %789, %793
  %.str.5.sink927 = phi ptr [ @.str.5, %793 ], [ @.str.2, %789 ]
  store i32 %784, ptr %422, align 4, !tbaa !5
  %795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = load i32, ptr %368, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror(i32 noundef %797, ptr noundef nonnull @.str.4) #12
  %799 = load i32, ptr %368, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror_debug(i32 noundef %799, ptr noundef nonnull @.str.4) #12
  %801 = load i32, ptr %422, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #12
  %803 = load i32, ptr %422, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %795, ptr noundef nonnull %.str.5.sink927, i32 noundef %796, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %798, ptr noundef %800, ptr noundef %802, i32 noundef %803) #14
  call void @exit(i32 noundef 1) #15
  unreachable

805:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %806 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %7, ptr noundef nonnull @.str.26) #12
  %807 = call zeroext i1 @s2n_result_is_ok(i32 %806)
  br i1 %807, label %809, label %.thread627

.thread627:                                       ; preds = %805
  %808 = call i32 @s2n_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  br label %.loopexit

809:                                              ; preds = %805
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr @test_count, align 4, !tbaa !5
  %812 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %813 = load ptr, ptr %812, align 8, !tbaa !46
  %814 = getelementptr inbounds i8, ptr %813, i64 72
  %815 = load ptr, ptr %814, align 8, !tbaa !50
  %816 = call i32 %815(ptr noundef nonnull %6, ptr noundef nonnull %7) #12
  %817 = call zeroext i1 @s2n_result_is_ok(i32 %816)
  br i1 %817, label %840, label %818

818:                                              ; preds = %809
  %819 = load i32, ptr %422, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820) #12
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc nuw i8 %822 to i1
  br i1 %823, label %824, label %828

824:                                              ; preds = %818
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #12
  %827 = call i32 @isatty(i32 noundef %826) #12
  %.not492 = icmp eq i32 %827, 0
  br i1 %.not492, label %828, label %829

828:                                              ; preds = %824, %818
  br label %829

829:                                              ; preds = %824, %828
  %.str.5.sink936 = phi ptr [ @.str.5, %828 ], [ @.str.2, %824 ]
  store i32 %819, ptr %422, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = load i32, ptr %368, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.4) #12
  %834 = load i32, ptr %368, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.4) #12
  %836 = load i32, ptr %422, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #12
  %838 = load i32, ptr %422, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef nonnull %.str.5.sink936, i32 noundef %831, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #14
  call void @exit(i32 noundef 1) #15
  unreachable

840:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 24, i1 false)
  %841 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %8, ptr noundef nonnull @protected_record_hex) #12
  %842 = call zeroext i1 @s2n_result_is_ok(i32 %841)
  br i1 %842, label %843, label %1767

843:                                              ; preds = %840
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = getelementptr inbounds i8, ptr %749, i64 1856
  %847 = call i32 @s2n_stuffer_write(ptr noundef nonnull %846, ptr noundef nonnull %8) #12
  %848 = icmp eq i32 %847, -1
  br i1 %848, label %849, label %871

849:                                              ; preds = %843
  %850 = load i32, ptr %422, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @s2n_print_stacktrace(ptr noundef %851) #12
  %853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %854 = trunc nuw i8 %853 to i1
  br i1 %854, label %855, label %859

855:                                              ; preds = %849
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @fileno(ptr noundef %856) #12
  %858 = call i32 @isatty(i32 noundef %857) #12
  %.not594 = icmp eq i32 %858, 0
  br i1 %.not594, label %859, label %860

859:                                              ; preds = %855, %849
  br label %860

860:                                              ; preds = %855, %859
  %.str.5.sink945 = phi ptr [ @.str.5, %859 ], [ @.str.2, %855 ]
  store i32 %850, ptr %422, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = load i32, ptr %368, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror(i32 noundef %863, ptr noundef nonnull @.str.4) #12
  %865 = load i32, ptr %368, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror_debug(i32 noundef %865, ptr noundef nonnull @.str.4) #12
  %867 = load i32, ptr %422, align 4, !tbaa !5
  %868 = call ptr @strerror(i32 noundef %867) #12
  %869 = load i32, ptr %422, align 4, !tbaa !5
  %870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef nonnull %.str.5.sink945, i32 noundef %862, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %864, ptr noundef %866, ptr noundef %868, i32 noundef %869) #14
  call void @exit(i32 noundef 1) #15
  unreachable

871:                                              ; preds = %843
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  %872 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %9, ptr noundef nonnull @.str.29) #12
  %873 = call zeroext i1 @s2n_result_is_ok(i32 %872)
  br i1 %873, label %874, label %1765

874:                                              ; preds = %871
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr @test_count, align 4, !tbaa !5
  %877 = getelementptr inbounds i8, ptr %8, i64 8
  %878 = load i32, ptr %877, align 8, !tbaa !15
  %879 = trunc i32 %878 to i16
  %880 = load ptr, ptr %9, align 8, !tbaa !17
  %881 = getelementptr inbounds i8, ptr %749, i64 232
  %882 = load ptr, ptr %881, align 8, !tbaa !51
  %883 = getelementptr inbounds i8, ptr %882, i64 920
  %884 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %749, i8 noundef zeroext 0, i16 noundef zeroext %879, ptr noundef %880, ptr noundef null, ptr noundef nonnull %883, ptr noundef nonnull %6) #12
  %885 = icmp eq i32 %884, -1
  br i1 %885, label %886, label %908

886:                                              ; preds = %874
  %887 = load i32, ptr %422, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @s2n_print_stacktrace(ptr noundef %888) #12
  %890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %891 = trunc nuw i8 %890 to i1
  br i1 %891, label %892, label %896

892:                                              ; preds = %886
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @fileno(ptr noundef %893) #12
  %895 = call i32 @isatty(i32 noundef %894) #12
  %.not593 = icmp eq i32 %895, 0
  br i1 %.not593, label %896, label %897

896:                                              ; preds = %892, %886
  br label %897

897:                                              ; preds = %892, %896
  %.str.5.sink954 = phi ptr [ @.str.5, %896 ], [ @.str.2, %892 ]
  store i32 %887, ptr %422, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = load i32, ptr %368, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef nonnull @.str.4) #12
  %902 = load i32, ptr %368, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef nonnull @.str.4) #12
  %904 = load i32, ptr %422, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #12
  %906 = load i32, ptr %422, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef nonnull %.str.5.sink954, i32 noundef %899, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %901, ptr noundef %903, ptr noundef %905, i32 noundef %906) #14
  call void @exit(i32 noundef 1) #15
  unreachable

908:                                              ; preds = %874
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %909 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %10, ptr noundef nonnull @plaintext_record_hex) #12
  %910 = call zeroext i1 @s2n_result_is_ok(i32 %909)
  br i1 %910, label %911, label %1763

911:                                              ; preds = %908
  %912 = getelementptr inbounds i8, ptr %10, i64 8
  %913 = load i32, ptr %912, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1000, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(1000) %11, i8 0, i64 1000, i1 false)
  %914 = icmp ult i32 %913, 1001
  br i1 %914, label %922, label %915

915:                                              ; preds = %911
  %916 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.31, ptr %916, align 8, !tbaa !52
  %917 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.31, i64 21), i32 noundef 47) #16
  %.not493 = icmp eq ptr %917, null
  %918 = getelementptr inbounds i8, ptr %917, i64 1
  %919 = select i1 %.not493, ptr getelementptr inbounds (i8, ptr @.str.31, i64 21), ptr %918
  %920 = getelementptr inbounds i8, ptr %916, i64 8
  store ptr %919, ptr %920, align 8, !tbaa !54
  store i32 402653194, ptr %368, align 4, !tbaa !5
  %921 = call i32 @s2n_calculate_stacktrace() #12
  br label %1762

922:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false)
  %923 = call i32 @s2n_blob_init(ptr noundef nonnull %12, ptr noundef nonnull %11, i32 noundef %913) #12
  %924 = icmp sgt i32 %923, -1
  br i1 %924, label %925, label %1761

925:                                              ; preds = %922
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = add nsw i32 %926, 1
  store i32 %927, ptr @test_count, align 4, !tbaa !5
  %928 = call i32 @s2n_stuffer_init(ptr noundef nonnull %13, ptr noundef nonnull %12) #12
  %929 = icmp eq i32 %928, -1
  br i1 %929, label %930, label %952

930:                                              ; preds = %925
  %931 = load i32, ptr %422, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = call i32 @s2n_print_stacktrace(ptr noundef %932) #12
  %934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %935 = trunc nuw i8 %934 to i1
  br i1 %935, label %936, label %940

936:                                              ; preds = %930
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @fileno(ptr noundef %937) #12
  %939 = call i32 @isatty(i32 noundef %938) #12
  %.not592 = icmp eq i32 %939, 0
  br i1 %.not592, label %940, label %941

940:                                              ; preds = %936, %930
  br label %941

941:                                              ; preds = %936, %940
  %.str.5.sink963 = phi ptr [ @.str.5, %940 ], [ @.str.2, %936 ]
  store i32 %931, ptr %422, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = load i32, ptr %368, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef nonnull @.str.4) #12
  %946 = load i32, ptr %368, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef nonnull @.str.4) #12
  %948 = load i32, ptr %422, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #12
  %950 = load i32, ptr %422, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %942, ptr noundef nonnull %.str.5.sink963, i32 noundef %943, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %945, ptr noundef %947, ptr noundef %949, i32 noundef %950) #14
  call void @exit(i32 noundef 1) #15
  unreachable

952:                                              ; preds = %925
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = load ptr, ptr %846, align 8, !tbaa !55
  %956 = load i32, ptr %912, align 8, !tbaa !15
  %957 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %13, ptr noundef %955, i32 noundef %956) #12
  %958 = icmp eq i32 %957, -1
  br i1 %958, label %959, label %981

959:                                              ; preds = %952
  %960 = load i32, ptr %422, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @s2n_print_stacktrace(ptr noundef %961) #12
  %963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %965, label %969

965:                                              ; preds = %959
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = call i32 @fileno(ptr noundef %966) #12
  %968 = call i32 @isatty(i32 noundef %967) #12
  %.not591 = icmp eq i32 %968, 0
  br i1 %.not591, label %969, label %970

969:                                              ; preds = %965, %959
  br label %970

970:                                              ; preds = %965, %969
  %.str.5.sink972 = phi ptr [ @.str.5, %969 ], [ @.str.2, %965 ]
  store i32 %960, ptr %422, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = load i32, ptr %368, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror(i32 noundef %973, ptr noundef nonnull @.str.4) #12
  %975 = load i32, ptr %368, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror_debug(i32 noundef %975, ptr noundef nonnull @.str.4) #12
  %977 = load i32, ptr %422, align 4, !tbaa !5
  %978 = call ptr @strerror(i32 noundef %977) #12
  %979 = load i32, ptr %422, align 4, !tbaa !5
  %980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef nonnull %.str.5.sink972, i32 noundef %972, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %974, ptr noundef %976, ptr noundef %978, i32 noundef %979) #14
  call void @exit(i32 noundef 1) #15
  unreachable

981:                                              ; preds = %952
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr @test_count, align 4, !tbaa !5
  %984 = load i32, ptr %912, align 8, !tbaa !15
  %985 = getelementptr inbounds i8, ptr %13, i64 8
  %986 = load i32, ptr %985, align 8, !tbaa !56
  %987 = icmp eq i32 %984, %986
  br i1 %987, label %1010, label %988

988:                                              ; preds = %981
  %989 = load i32, ptr %422, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @s2n_print_stacktrace(ptr noundef %990) #12
  %992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %993 = trunc nuw i8 %992 to i1
  br i1 %993, label %994, label %998

994:                                              ; preds = %988
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #12
  %997 = call i32 @isatty(i32 noundef %996) #12
  %.not494 = icmp eq i32 %997, 0
  br i1 %.not494, label %998, label %999

998:                                              ; preds = %994, %988
  br label %999

999:                                              ; preds = %994, %998
  %.str.5.sink981 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %422, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = load i32, ptr %368, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.4) #12
  %1004 = load i32, ptr %368, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.4) #12
  %1006 = load i32, ptr %422, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #12
  %1008 = load i32, ptr %422, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink981, i32 noundef %1001, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1010:                                             ; preds = %981
  %.not495 = icmp eq i32 %984, 0
  br i1 %.not495, label %1039, label %1011

1011:                                             ; preds = %1010
  %1012 = add nsw i32 %982, 2
  store i32 %1012, ptr @test_count, align 4, !tbaa !5
  %1013 = load ptr, ptr %10, align 8, !tbaa !17
  %1014 = load ptr, ptr %13, align 8, !tbaa !57
  %1015 = zext i32 %984 to i64
  %bcmp496 = call i32 @bcmp(ptr %1013, ptr %1014, i64 %1015)
  %1016 = icmp eq i32 %bcmp496, 0
  br i1 %1016, label %1039, label %1017

1017:                                             ; preds = %1011
  %1018 = load i32, ptr %422, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @s2n_print_stacktrace(ptr noundef %1019) #12
  %1021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1022 = trunc nuw i8 %1021 to i1
  br i1 %1022, label %1023, label %1027

1023:                                             ; preds = %1017
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @fileno(ptr noundef %1024) #12
  %1026 = call i32 @isatty(i32 noundef %1025) #12
  %.not497 = icmp eq i32 %1026, 0
  br i1 %.not497, label %1027, label %1028

1027:                                             ; preds = %1023, %1017
  br label %1028

1028:                                             ; preds = %1023, %1027
  %.str.5.sink990 = phi ptr [ @.str.5, %1027 ], [ @.str.2, %1023 ]
  store i32 %1018, ptr %422, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = load i32, ptr %368, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror(i32 noundef %1031, ptr noundef nonnull @.str.4) #12
  %1033 = load i32, ptr %368, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef %1033, ptr noundef nonnull @.str.4) #12
  %1035 = load i32, ptr %422, align 4, !tbaa !5
  %1036 = call ptr @strerror(i32 noundef %1035) #12
  %1037 = load i32, ptr %422, align 4, !tbaa !5
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1029, ptr noundef nonnull %.str.5.sink990, i32 noundef %1030, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1032, ptr noundef %1034, ptr noundef %1036, i32 noundef %1037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1039:                                             ; preds = %1010, %1011
  %1040 = phi i32 [ %983, %1010 ], [ %1012, %1011 ]
  %1041 = add nsw i32 %1040, 1
  store i32 %1041, ptr @test_count, align 4, !tbaa !5
  %1042 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %846) #12
  %1043 = icmp eq i32 %1042, -1
  br i1 %1043, label %1044, label %1066

1044:                                             ; preds = %1039
  %1045 = load i32, ptr %422, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @s2n_print_stacktrace(ptr noundef %1046) #12
  %1048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1049 = trunc nuw i8 %1048 to i1
  br i1 %1049, label %1050, label %1054

1050:                                             ; preds = %1044
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = call i32 @fileno(ptr noundef %1051) #12
  %1053 = call i32 @isatty(i32 noundef %1052) #12
  %.not590 = icmp eq i32 %1053, 0
  br i1 %.not590, label %1054, label %1055

1054:                                             ; preds = %1050, %1044
  br label %1055

1055:                                             ; preds = %1050, %1054
  %.str.5.sink999 = phi ptr [ @.str.5, %1054 ], [ @.str.2, %1050 ]
  store i32 %1045, ptr %422, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = load i32, ptr %368, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror(i32 noundef %1058, ptr noundef nonnull @.str.4) #12
  %1060 = load i32, ptr %368, align 4, !tbaa !5
  %1061 = call ptr @s2n_strerror_debug(i32 noundef %1060, ptr noundef nonnull @.str.4) #12
  %1062 = load i32, ptr %422, align 4, !tbaa !5
  %1063 = call ptr @strerror(i32 noundef %1062) #12
  %1064 = load i32, ptr %422, align 4, !tbaa !5
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef nonnull %.str.5.sink999, i32 noundef %1057, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1059, ptr noundef %1061, ptr noundef %1063, i32 noundef %1064) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1066:                                             ; preds = %1039
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = call i32 @s2n_stuffer_write(ptr noundef nonnull %846, ptr noundef nonnull %8) #12
  %1070 = icmp eq i32 %1069, -1
  br i1 %1070, label %1071, label %1093

1071:                                             ; preds = %1066
  %1072 = load i32, ptr %422, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073) #12
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

1077:                                             ; preds = %1071
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @fileno(ptr noundef %1078) #12
  %1080 = call i32 @isatty(i32 noundef %1079) #12
  %.not589 = icmp eq i32 %1080, 0
  br i1 %.not589, label %1081, label %1082

1081:                                             ; preds = %1077, %1071
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.5.sink1008 = phi ptr [ @.str.5, %1081 ], [ @.str.2, %1077 ]
  store i32 %1072, ptr %422, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = load i32, ptr %368, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef nonnull @.str.4) #12
  %1087 = load i32, ptr %368, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef nonnull @.str.4) #12
  %1089 = load i32, ptr %422, align 4, !tbaa !5
  %1090 = call ptr @strerror(i32 noundef %1089) #12
  %1091 = load i32, ptr %422, align 4, !tbaa !5
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.5.sink1008, i32 noundef %1084, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1086, ptr noundef %1088, ptr noundef %1090, i32 noundef %1091) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1093:                                             ; preds = %1066
  %1094 = load ptr, ptr %881, align 8, !tbaa !51
  %1095 = getelementptr inbounds i8, ptr %1094, i64 927
  store i8 0, ptr %1095, align 1, !tbaa !58
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = load i32, ptr %877, align 8, !tbaa !15
  %1099 = trunc i32 %1098 to i16
  %1100 = load ptr, ptr %9, align 8, !tbaa !17
  %1101 = load ptr, ptr %881, align 8, !tbaa !51
  %1102 = getelementptr inbounds i8, ptr %1101, i64 920
  %1103 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %749, i8 noundef zeroext 0, i16 noundef zeroext %1099, ptr noundef %1100, ptr noundef null, ptr noundef nonnull %1102, ptr noundef nonnull %6) #12
  %1104 = icmp eq i32 %1103, -1
  br i1 %1104, label %1105, label %1127

1105:                                             ; preds = %1093
  %1106 = load i32, ptr %422, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @s2n_print_stacktrace(ptr noundef %1107) #12
  %1109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1110 = trunc nuw i8 %1109 to i1
  br i1 %1110, label %1111, label %1115

1111:                                             ; preds = %1105
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @fileno(ptr noundef %1112) #12
  %1114 = call i32 @isatty(i32 noundef %1113) #12
  %.not588 = icmp eq i32 %1114, 0
  br i1 %.not588, label %1115, label %1116

1115:                                             ; preds = %1111, %1105
  br label %1116

1116:                                             ; preds = %1111, %1115
  %.str.5.sink1017 = phi ptr [ @.str.5, %1115 ], [ @.str.2, %1111 ]
  store i32 %1106, ptr %422, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = load i32, ptr %368, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef nonnull @.str.4) #12
  %1121 = load i32, ptr %368, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror_debug(i32 noundef %1121, ptr noundef nonnull @.str.4) #12
  %1123 = load i32, ptr %422, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #12
  %1125 = load i32, ptr %422, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1117, ptr noundef nonnull %.str.5.sink1017, i32 noundef %1118, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1120, ptr noundef %1122, ptr noundef %1124, i32 noundef %1125) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1127:                                             ; preds = %1093
  %1128 = load i32, ptr @test_count, align 4, !tbaa !5
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr @test_count, align 4, !tbaa !5
  %1130 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %846) #12
  %1131 = icmp eq i32 %1130, -1
  br i1 %1131, label %1132, label %1154

1132:                                             ; preds = %1127
  %1133 = load i32, ptr %422, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 @s2n_print_stacktrace(ptr noundef %1134) #12
  %1136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1137 = trunc nuw i8 %1136 to i1
  br i1 %1137, label %1138, label %1142

1138:                                             ; preds = %1132
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = call i32 @fileno(ptr noundef %1139) #12
  %1141 = call i32 @isatty(i32 noundef %1140) #12
  %.not587 = icmp eq i32 %1141, 0
  br i1 %.not587, label %1142, label %1143

1142:                                             ; preds = %1138, %1132
  br label %1143

1143:                                             ; preds = %1138, %1142
  %.str.5.sink1026 = phi ptr [ @.str.5, %1142 ], [ @.str.2, %1138 ]
  store i32 %1133, ptr %422, align 4, !tbaa !5
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = load i32, ptr %368, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror(i32 noundef %1146, ptr noundef nonnull @.str.4) #12
  %1148 = load i32, ptr %368, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror_debug(i32 noundef %1148, ptr noundef nonnull @.str.4) #12
  %1150 = load i32, ptr %422, align 4, !tbaa !5
  %1151 = call ptr @strerror(i32 noundef %1150) #12
  %1152 = load i32, ptr %422, align 4, !tbaa !5
  %1153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1144, ptr noundef nonnull %.str.5.sink1026, i32 noundef %1145, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1147, ptr noundef %1149, ptr noundef %1151, i32 noundef %1152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1154:                                             ; preds = %1127
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = add nsw i32 %1155, 1
  store i32 %1156, ptr @test_count, align 4, !tbaa !5
  %1157 = call i32 @s2n_stuffer_write(ptr noundef nonnull %846, ptr noundef nonnull %8) #12
  %1158 = icmp eq i32 %1157, -1
  br i1 %1158, label %1159, label %1181

1159:                                             ; preds = %1154
  %1160 = load i32, ptr %422, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @s2n_print_stacktrace(ptr noundef %1161) #12
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc nuw i8 %1163 to i1
  br i1 %1164, label %1165, label %1169

1165:                                             ; preds = %1159
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @fileno(ptr noundef %1166) #12
  %1168 = call i32 @isatty(i32 noundef %1167) #12
  %.not586 = icmp eq i32 %1168, 0
  br i1 %.not586, label %1169, label %1170

1169:                                             ; preds = %1165, %1159
  br label %1170

1170:                                             ; preds = %1165, %1169
  %.str.5.sink1035 = phi ptr [ @.str.5, %1169 ], [ @.str.2, %1165 ]
  store i32 %1160, ptr %422, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = load i32, ptr %368, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef nonnull @.str.4) #12
  %1175 = load i32, ptr %368, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef nonnull @.str.4) #12
  %1177 = load i32, ptr %422, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #12
  %1179 = load i32, ptr %422, align 4, !tbaa !5
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull %.str.5.sink1035, i32 noundef %1172, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1174, ptr noundef %1176, ptr noundef %1178, i32 noundef %1179) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1181:                                             ; preds = %1154
  %1182 = load ptr, ptr %881, align 8, !tbaa !51
  %1183 = getelementptr inbounds i8, ptr %1182, i64 927
  store i8 0, ptr %1183, align 1, !tbaa !58
  %1184 = load ptr, ptr %846, align 8, !tbaa !55
  %1185 = load i32, ptr %877, align 8, !tbaa !15
  %1186 = add i32 %1185, -2
  %1187 = zext i32 %1186 to i64
  %1188 = getelementptr inbounds i8, ptr %1184, i64 %1187
  %1189 = load i8, ptr %1188, align 1, !tbaa !58
  %1190 = add i8 %1189, 1
  store i8 %1190, ptr %1188, align 1, !tbaa !58
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %877, align 8, !tbaa !15
  %1194 = trunc i32 %1193 to i16
  %1195 = load ptr, ptr %9, align 8, !tbaa !17
  %1196 = load ptr, ptr %881, align 8, !tbaa !51
  %1197 = getelementptr inbounds i8, ptr %1196, i64 920
  %1198 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %749, i8 noundef zeroext 0, i16 noundef zeroext %1194, ptr noundef %1195, ptr noundef null, ptr noundef nonnull %1197, ptr noundef nonnull %6) #12
  %1199 = icmp eq i32 %1198, -1
  br i1 %1199, label %1222, label %1200

1200:                                             ; preds = %1181
  %1201 = load i32, ptr %422, 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
  %.not498 = icmp eq i32 %1209, 0
  br i1 %.not498, label %1210, label %1211

1210:                                             ; preds = %1206, %1200
  br label %1211

1211:                                             ; preds = %1206, %1210
  %.str.5.sink1044 = phi ptr [ @.str.5, %1210 ], [ @.str.2, %1206 ]
  store i32 %1201, ptr %422, 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 %368, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.4) #12
  %1216 = load i32, ptr %368, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.4) #12
  %1218 = load i32, ptr %422, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #12
  %1220 = load i32, ptr %422, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1212, ptr noundef nonnull %.str.5.sink1044, i32 noundef %1213, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1222:                                             ; preds = %1181
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr @test_count, align 4, !tbaa !5
  %1225 = load i32, ptr %368, align 4, !tbaa !5
  %1226 = icmp eq i32 %1225, 0
  br i1 %1226, label %1227, label %1249

1227:                                             ; preds = %1222
  %1228 = load i32, ptr %422, align 4, !tbaa !5
  %1229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1230 = call i32 @s2n_print_stacktrace(ptr noundef %1229) #12
  %1231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1232 = trunc nuw i8 %1231 to i1
  br i1 %1232, label %1233, label %1237

1233:                                             ; preds = %1227
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = call i32 @fileno(ptr noundef %1234) #12
  %1236 = call i32 @isatty(i32 noundef %1235) #12
  %.not585 = icmp eq i32 %1236, 0
  br i1 %.not585, label %1237, label %1238

1237:                                             ; preds = %1233, %1227
  br label %1238

1238:                                             ; preds = %1233, %1237
  %.str.5.sink1053 = phi ptr [ @.str.5, %1237 ], [ @.str.2, %1233 ]
  store i32 %1228, ptr %422, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = load i32, ptr %368, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.4) #12
  %1243 = load i32, ptr %368, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.4) #12
  %1245 = load i32, ptr %422, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #12
  %1247 = load i32, ptr %422, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1239, ptr noundef nonnull %.str.5.sink1053, i32 noundef %1240, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1249:                                             ; preds = %1222
  %1250 = add nsw i32 %1223, 2
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1225, ptr noundef nonnull @.str.4) #12
  %1252 = icmp eq ptr %1251, null
  br i1 %1252, label %1253, label %1275

1253:                                             ; preds = %1249
  %1254 = load i32, ptr %422, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = call i32 @s2n_print_stacktrace(ptr noundef %1255) #12
  %1257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1258 = trunc nuw i8 %1257 to i1
  br i1 %1258, label %1259, label %1263

1259:                                             ; preds = %1253
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @fileno(ptr noundef %1260) #12
  %1262 = call i32 @isatty(i32 noundef %1261) #12
  %.not584 = icmp eq i32 %1262, 0
  br i1 %.not584, label %1263, label %1264

1263:                                             ; preds = %1259, %1253
  br label %1264

1264:                                             ; preds = %1259, %1263
  %.str.5.sink1062 = phi ptr [ @.str.5, %1263 ], [ @.str.2, %1259 ]
  store i32 %1254, ptr %422, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = load i32, ptr %368, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef nonnull @.str.4) #12
  %1269 = load i32, ptr %368, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror_debug(i32 noundef %1269, ptr noundef nonnull @.str.4) #12
  %1271 = load i32, ptr %422, align 4, !tbaa !5
  %1272 = call ptr @strerror(i32 noundef %1271) #12
  %1273 = load i32, ptr %422, align 4, !tbaa !5
  %1274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1265, ptr noundef nonnull %.str.5.sink1062, i32 noundef %1266, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1268, ptr noundef %1270, ptr noundef %1272, i32 noundef %1273) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1275:                                             ; preds = %1249
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = add nsw i32 %1276, 1
  store i32 %1277, ptr @test_count, align 4, !tbaa !5
  %1278 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %846) #12
  %1279 = icmp eq i32 %1278, -1
  br i1 %1279, label %1280, label %1302

1280:                                             ; preds = %1275
  %1281 = load i32, ptr %422, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @s2n_print_stacktrace(ptr noundef %1282) #12
  %1284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1285 = trunc nuw i8 %1284 to i1
  br i1 %1285, label %1286, label %1290

1286:                                             ; preds = %1280
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #12
  %1289 = call i32 @isatty(i32 noundef %1288) #12
  %.not583 = icmp eq i32 %1289, 0
  br i1 %.not583, label %1290, label %1291

1290:                                             ; preds = %1286, %1280
  br label %1291

1291:                                             ; preds = %1286, %1290
  %.str.5.sink1071 = phi ptr [ @.str.5, %1290 ], [ @.str.2, %1286 ]
  store i32 %1281, ptr %422, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = load i32, ptr %368, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror(i32 noundef %1294, ptr noundef nonnull @.str.4) #12
  %1296 = load i32, ptr %368, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef nonnull @.str.4) #12
  %1298 = load i32, ptr %422, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #12
  %1300 = load i32, ptr %422, align 4, !tbaa !5
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef nonnull %.str.5.sink1071, i32 noundef %1293, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1295, ptr noundef %1297, ptr noundef %1299, i32 noundef %1300) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1302:                                             ; preds = %1275
  %1303 = load i32, ptr @test_count, align 4, !tbaa !5
  %1304 = add nsw i32 %1303, 1
  store i32 %1304, ptr @test_count, align 4, !tbaa !5
  %1305 = call i32 @s2n_stuffer_write(ptr noundef nonnull %846, ptr noundef nonnull %8) #12
  %1306 = icmp eq i32 %1305, -1
  br i1 %1306, label %1307, label %1329

1307:                                             ; preds = %1302
  %1308 = load i32, ptr %422, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @s2n_print_stacktrace(ptr noundef %1309) #12
  %1311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1312 = trunc nuw i8 %1311 to i1
  br i1 %1312, label %1313, label %1317

1313:                                             ; preds = %1307
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @fileno(ptr noundef %1314) #12
  %1316 = call i32 @isatty(i32 noundef %1315) #12
  %.not582 = icmp eq i32 %1316, 0
  br i1 %.not582, label %1317, label %1318

1317:                                             ; preds = %1313, %1307
  br label %1318

1318:                                             ; preds = %1313, %1317
  %.str.5.sink1080 = phi ptr [ @.str.5, %1317 ], [ @.str.2, %1313 ]
  store i32 %1308, ptr %422, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = load i32, ptr %368, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef nonnull @.str.4) #12
  %1323 = load i32, ptr %368, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef nonnull @.str.4) #12
  %1325 = load i32, ptr %422, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #12
  %1327 = load i32, ptr %422, align 4, !tbaa !5
  %1328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef nonnull %.str.5.sink1080, i32 noundef %1320, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1322, ptr noundef %1324, ptr noundef %1326, i32 noundef %1327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1329:                                             ; preds = %1302
  %1330 = load ptr, ptr %881, align 8, !tbaa !51
  %1331 = getelementptr inbounds i8, ptr %1330, i64 927
  store i8 0, ptr %1331, align 1, !tbaa !58
  %1332 = load ptr, ptr %846, align 8, !tbaa !55
  %1333 = load i8, ptr %1332, align 1, !tbaa !58
  %1334 = add i8 %1333, 1
  store i8 %1334, ptr %1332, align 1, !tbaa !58
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = load i32, ptr %877, align 8, !tbaa !15
  %1338 = trunc i32 %1337 to i16
  %1339 = load ptr, ptr %9, align 8, !tbaa !17
  %1340 = load ptr, ptr %881, align 8, !tbaa !51
  %1341 = getelementptr inbounds i8, ptr %1340, i64 920
  %1342 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %749, i8 noundef zeroext 0, i16 noundef zeroext %1338, ptr noundef %1339, ptr noundef null, ptr noundef nonnull %1341, ptr noundef nonnull %6) #12
  %1343 = icmp eq i32 %1342, -1
  br i1 %1343, label %1366, label %1344

1344:                                             ; preds = %1329
  %1345 = load i32, ptr %422, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @s2n_print_stacktrace(ptr noundef %1346) #12
  %1348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1349 = trunc nuw i8 %1348 to i1
  br i1 %1349, label %1350, label %1354

1350:                                             ; preds = %1344
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #12
  %1353 = call i32 @isatty(i32 noundef %1352) #12
  %.not499 = icmp eq i32 %1353, 0
  br i1 %.not499, label %1354, label %1355

1354:                                             ; preds = %1350, %1344
  br label %1355

1355:                                             ; preds = %1350, %1354
  %.str.5.sink1089 = phi ptr [ @.str.5, %1354 ], [ @.str.2, %1350 ]
  store i32 %1345, ptr %422, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = load i32, ptr %368, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror(i32 noundef %1358, ptr noundef nonnull @.str.4) #12
  %1360 = load i32, ptr %368, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror_debug(i32 noundef %1360, ptr noundef nonnull @.str.4) #12
  %1362 = load i32, ptr %422, align 4, !tbaa !5
  %1363 = call ptr @strerror(i32 noundef %1362) #12
  %1364 = load i32, ptr %422, align 4, !tbaa !5
  %1365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef nonnull %.str.5.sink1089, i32 noundef %1357, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1359, ptr noundef %1361, ptr noundef %1363, i32 noundef %1364) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1366:                                             ; preds = %1329
  %1367 = load i32, ptr @test_count, align 4, !tbaa !5
  %1368 = add nsw i32 %1367, 1
  store i32 %1368, ptr @test_count, align 4, !tbaa !5
  %1369 = load i32, ptr %368, align 4, !tbaa !5
  %1370 = icmp eq i32 %1369, 0
  br i1 %1370, label %1371, label %1393

1371:                                             ; preds = %1366
  %1372 = load i32, ptr %422, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @s2n_print_stacktrace(ptr noundef %1373) #12
  %1375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1376 = trunc nuw i8 %1375 to i1
  br i1 %1376, label %1377, label %1381

1377:                                             ; preds = %1371
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @fileno(ptr noundef %1378) #12
  %1380 = call i32 @isatty(i32 noundef %1379) #12
  %.not581 = icmp eq i32 %1380, 0
  br i1 %.not581, label %1381, label %1382

1381:                                             ; preds = %1377, %1371
  br label %1382

1382:                                             ; preds = %1377, %1381
  %.str.5.sink1098 = phi ptr [ @.str.5, %1381 ], [ @.str.2, %1377 ]
  store i32 %1372, ptr %422, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = load i32, ptr %368, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror(i32 noundef %1385, ptr noundef nonnull @.str.4) #12
  %1387 = load i32, ptr %368, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror_debug(i32 noundef %1387, ptr noundef nonnull @.str.4) #12
  %1389 = load i32, ptr %422, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #12
  %1391 = load i32, ptr %422, align 4, !tbaa !5
  %1392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef nonnull %.str.5.sink1098, i32 noundef %1384, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1386, ptr noundef %1388, ptr noundef %1390, i32 noundef %1391) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1393:                                             ; preds = %1366
  %1394 = add nsw i32 %1367, 2
  store i32 %1394, ptr @test_count, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef nonnull @.str.4) #12
  %1396 = icmp eq ptr %1395, null
  br i1 %1396, label %1397, label %1419

1397:                                             ; preds = %1393
  %1398 = load i32, ptr %422, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @s2n_print_stacktrace(ptr noundef %1399) #12
  %1401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1402 = trunc nuw i8 %1401 to i1
  br i1 %1402, label %1403, label %1407

1403:                                             ; preds = %1397
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = call i32 @fileno(ptr noundef %1404) #12
  %1406 = call i32 @isatty(i32 noundef %1405) #12
  %.not580 = icmp eq i32 %1406, 0
  br i1 %.not580, label %1407, label %1408

1407:                                             ; preds = %1403, %1397
  br label %1408

1408:                                             ; preds = %1403, %1407
  %.str.5.sink1107 = phi ptr [ @.str.5, %1407 ], [ @.str.2, %1403 ]
  store i32 %1398, ptr %422, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = load i32, ptr %368, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef nonnull @.str.4) #12
  %1413 = load i32, ptr %368, align 4, !tbaa !5
  %1414 = call ptr @s2n_strerror_debug(i32 noundef %1413, ptr noundef nonnull @.str.4) #12
  %1415 = load i32, ptr %422, align 4, !tbaa !5
  %1416 = call ptr @strerror(i32 noundef %1415) #12
  %1417 = load i32, ptr %422, align 4, !tbaa !5
  %1418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1409, ptr noundef nonnull %.str.5.sink1107, i32 noundef %1410, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1412, ptr noundef %1414, ptr noundef %1416, i32 noundef %1417) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1419:                                             ; preds = %1393
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr @test_count, align 4, !tbaa !5
  %1422 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %846) #12
  %1423 = icmp eq i32 %1422, -1
  br i1 %1423, label %1424, label %1446

1424:                                             ; preds = %1419
  %1425 = load i32, ptr %422, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @s2n_print_stacktrace(ptr noundef %1426) #12
  %1428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc nuw i8 %1428 to i1
  br i1 %1429, label %1430, label %1434

1430:                                             ; preds = %1424
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #12
  %1433 = call i32 @isatty(i32 noundef %1432) #12
  %.not579 = icmp eq i32 %1433, 0
  br i1 %.not579, label %1434, label %1435

1434:                                             ; preds = %1430, %1424
  br label %1435

1435:                                             ; preds = %1430, %1434
  %.str.5.sink1116 = phi ptr [ @.str.5, %1434 ], [ @.str.2, %1430 ]
  store i32 %1425, ptr %422, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = load i32, ptr %368, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef nonnull @.str.4) #12
  %1440 = load i32, ptr %368, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror_debug(i32 noundef %1440, ptr noundef nonnull @.str.4) #12
  %1442 = load i32, ptr %422, align 4, !tbaa !5
  %1443 = call ptr @strerror(i32 noundef %1442) #12
  %1444 = load i32, ptr %422, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef nonnull %.str.5.sink1116, i32 noundef %1437, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1439, ptr noundef %1441, ptr noundef %1443, i32 noundef %1444) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1446:                                             ; preds = %1419
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr @test_count, align 4, !tbaa !5
  %1449 = call i32 @s2n_stuffer_write(ptr noundef nonnull %846, ptr noundef nonnull %8) #12
  %1450 = icmp eq i32 %1449, -1
  br i1 %1450, label %1451, label %1473

1451:                                             ; preds = %1446
  %1452 = load i32, ptr %422, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = call i32 @s2n_print_stacktrace(ptr noundef %1453) #12
  %1455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1456 = trunc nuw i8 %1455 to i1
  br i1 %1456, label %1457, label %1461

1457:                                             ; preds = %1451
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = call i32 @fileno(ptr noundef %1458) #12
  %1460 = call i32 @isatty(i32 noundef %1459) #12
  %.not578 = icmp eq i32 %1460, 0
  br i1 %.not578, label %1461, label %1462

1461:                                             ; preds = %1457, %1451
  br label %1462

1462:                                             ; preds = %1457, %1461
  %.str.5.sink1125 = phi ptr [ @.str.5, %1461 ], [ @.str.2, %1457 ]
  store i32 %1452, ptr %422, align 4, !tbaa !5
  %1463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = load i32, ptr %368, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef nonnull @.str.4) #12
  %1467 = load i32, ptr %368, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef nonnull @.str.4) #12
  %1469 = load i32, ptr %422, align 4, !tbaa !5
  %1470 = call ptr @strerror(i32 noundef %1469) #12
  %1471 = load i32, ptr %422, align 4, !tbaa !5
  %1472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1463, ptr noundef nonnull %.str.5.sink1125, i32 noundef %1464, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1466, ptr noundef %1468, ptr noundef %1470, i32 noundef %1471) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1473:                                             ; preds = %1446
  %1474 = load ptr, ptr %881, align 8, !tbaa !51
  %1475 = getelementptr inbounds i8, ptr %1474, i64 927
  store i8 0, ptr %1475, align 1, !tbaa !58
  %1476 = load ptr, ptr %881, align 8, !tbaa !51
  %1477 = getelementptr inbounds i8, ptr %1476, i64 927
  store i8 1, ptr %1477, align 1, !tbaa !58
  %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 = load i32, ptr %877, align 8, !tbaa !15
  %1481 = trunc i32 %1480 to i16
  %1482 = load ptr, ptr %9, align 8, !tbaa !17
  %1483 = load ptr, ptr %881, align 8, !tbaa !51
  %1484 = getelementptr inbounds i8, ptr %1483, i64 920
  %1485 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %749, i8 noundef zeroext 0, i16 noundef zeroext %1481, ptr noundef %1482, ptr noundef null, ptr noundef nonnull %1484, ptr noundef nonnull %6) #12
  %1486 = icmp eq i32 %1485, -1
  br i1 %1486, label %1509, label %1487

1487:                                             ; preds = %1473
  %1488 = load i32, ptr %422, align 4, !tbaa !5
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @s2n_print_stacktrace(ptr noundef %1489) #12
  %1491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1492 = trunc nuw i8 %1491 to i1
  br i1 %1492, label %1493, label %1497

1493:                                             ; preds = %1487
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = call i32 @fileno(ptr noundef %1494) #12
  %1496 = call i32 @isatty(i32 noundef %1495) #12
  %.not500 = icmp eq i32 %1496, 0
  br i1 %.not500, label %1497, label %1498

1497:                                             ; preds = %1493, %1487
  br label %1498

1498:                                             ; preds = %1493, %1497
  %.str.5.sink1134 = phi ptr [ @.str.5, %1497 ], [ @.str.2, %1493 ]
  store i32 %1488, ptr %422, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = load i32, ptr %368, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror(i32 noundef %1501, ptr noundef nonnull @.str.4) #12
  %1503 = load i32, ptr %368, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror_debug(i32 noundef %1503, ptr noundef nonnull @.str.4) #12
  %1505 = load i32, ptr %422, align 4, !tbaa !5
  %1506 = call ptr @strerror(i32 noundef %1505) #12
  %1507 = load i32, ptr %422, align 4, !tbaa !5
  %1508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1499, ptr noundef nonnull %.str.5.sink1134, i32 noundef %1500, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1502, ptr noundef %1504, ptr noundef %1506, i32 noundef %1507) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1509:                                             ; preds = %1473
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %1511 = add nsw i32 %1510, 1
  store i32 %1511, ptr @test_count, align 4, !tbaa !5
  %1512 = load i32, ptr %368, align 4, !tbaa !5
  %1513 = icmp eq i32 %1512, 0
  br i1 %1513, label %1514, label %1536

1514:                                             ; preds = %1509
  %1515 = load i32, ptr %422, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @s2n_print_stacktrace(ptr noundef %1516) #12
  %1518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1519 = trunc nuw i8 %1518 to i1
  br i1 %1519, label %1520, label %1524

1520:                                             ; preds = %1514
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = call i32 @fileno(ptr noundef %1521) #12
  %1523 = call i32 @isatty(i32 noundef %1522) #12
  %.not577 = icmp eq i32 %1523, 0
  br i1 %.not577, label %1524, label %1525

1524:                                             ; preds = %1520, %1514
  br label %1525

1525:                                             ; preds = %1520, %1524
  %.str.5.sink1143 = phi ptr [ @.str.5, %1524 ], [ @.str.2, %1520 ]
  store i32 %1515, ptr %422, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = load i32, ptr %368, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror(i32 noundef %1528, ptr noundef nonnull @.str.4) #12
  %1530 = load i32, ptr %368, align 4, !tbaa !5
  %1531 = call ptr @s2n_strerror_debug(i32 noundef %1530, ptr noundef nonnull @.str.4) #12
  %1532 = load i32, ptr %422, align 4, !tbaa !5
  %1533 = call ptr @strerror(i32 noundef %1532) #12
  %1534 = load i32, ptr %422, align 4, !tbaa !5
  %1535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1526, ptr noundef nonnull %.str.5.sink1143, i32 noundef %1527, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1529, ptr noundef %1531, ptr noundef %1533, i32 noundef %1534) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1536:                                             ; preds = %1509
  %1537 = add nsw i32 %1510, 2
  store i32 %1537, ptr @test_count, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror_debug(i32 noundef %1512, ptr noundef nonnull @.str.4) #12
  %1539 = icmp eq ptr %1538, null
  br i1 %1539, label %1540, label %1562

1540:                                             ; preds = %1536
  %1541 = load i32, ptr %422, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @s2n_print_stacktrace(ptr noundef %1542) #12
  %1544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1545 = trunc nuw i8 %1544 to i1
  br i1 %1545, label %1546, label %1550

1546:                                             ; preds = %1540
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @fileno(ptr noundef %1547) #12
  %1549 = call i32 @isatty(i32 noundef %1548) #12
  %.not576 = icmp eq i32 %1549, 0
  br i1 %.not576, label %1550, label %1551

1550:                                             ; preds = %1546, %1540
  br label %1551

1551:                                             ; preds = %1546, %1550
  %.str.5.sink1152 = phi ptr [ @.str.5, %1550 ], [ @.str.2, %1546 ]
  store i32 %1541, ptr %422, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = load i32, ptr %368, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror(i32 noundef %1554, ptr noundef nonnull @.str.4) #12
  %1556 = load i32, ptr %368, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror_debug(i32 noundef %1556, ptr noundef nonnull @.str.4) #12
  %1558 = load i32, ptr %422, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #12
  %1560 = load i32, ptr %422, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef nonnull %.str.5.sink1152, i32 noundef %1553, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1555, ptr noundef %1557, ptr noundef %1559, i32 noundef %1560) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1562:                                             ; preds = %1536
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = add nsw i32 %1563, 1
  store i32 %1564, ptr @test_count, align 4, !tbaa !5
  %1565 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %846) #12
  %1566 = icmp eq i32 %1565, -1
  br i1 %1566, label %1567, label %1589

1567:                                             ; preds = %1562
  %1568 = load i32, ptr %422, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @s2n_print_stacktrace(ptr noundef %1569) #12
  %1571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1572 = trunc nuw i8 %1571 to i1
  br i1 %1572, label %1573, label %1577

1573:                                             ; preds = %1567
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = call i32 @fileno(ptr noundef %1574) #12
  %1576 = call i32 @isatty(i32 noundef %1575) #12
  %.not575 = icmp eq i32 %1576, 0
  br i1 %.not575, label %1577, label %1578

1577:                                             ; preds = %1573, %1567
  br label %1578

1578:                                             ; preds = %1573, %1577
  %.str.5.sink1161 = phi ptr [ @.str.5, %1577 ], [ @.str.2, %1573 ]
  store i32 %1568, ptr %422, align 4, !tbaa !5
  %1579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1580 = load i32, ptr @test_count, align 4, !tbaa !5
  %1581 = load i32, ptr %368, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror(i32 noundef %1581, ptr noundef nonnull @.str.4) #12
  %1583 = load i32, ptr %368, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror_debug(i32 noundef %1583, ptr noundef nonnull @.str.4) #12
  %1585 = load i32, ptr %422, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #12
  %1587 = load i32, ptr %422, align 4, !tbaa !5
  %1588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1579, ptr noundef nonnull %.str.5.sink1161, i32 noundef %1580, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1582, ptr noundef %1584, ptr noundef %1586, i32 noundef %1587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1589:                                             ; preds = %1562
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = add nsw i32 %1590, 1
  store i32 %1591, ptr @test_count, align 4, !tbaa !5
  %1592 = call i32 @s2n_stuffer_write(ptr noundef nonnull %846, ptr noundef nonnull %8) #12
  %1593 = icmp eq i32 %1592, -1
  br i1 %1593, label %1594, label %1616

1594:                                             ; preds = %1589
  %1595 = load i32, ptr %422, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = call i32 @s2n_print_stacktrace(ptr noundef %1596) #12
  %1598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1599 = trunc nuw i8 %1598 to i1
  br i1 %1599, label %1600, label %1604

1600:                                             ; preds = %1594
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @fileno(ptr noundef %1601) #12
  %1603 = call i32 @isatty(i32 noundef %1602) #12
  %.not574 = icmp eq i32 %1603, 0
  br i1 %.not574, label %1604, label %1605

1604:                                             ; preds = %1600, %1594
  br label %1605

1605:                                             ; preds = %1600, %1604
  %.str.5.sink1170 = phi ptr [ @.str.5, %1604 ], [ @.str.2, %1600 ]
  store i32 %1595, ptr %422, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %1608 = load i32, ptr %368, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror(i32 noundef %1608, ptr noundef nonnull @.str.4) #12
  %1610 = load i32, ptr %368, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror_debug(i32 noundef %1610, ptr noundef nonnull @.str.4) #12
  %1612 = load i32, ptr %422, align 4, !tbaa !5
  %1613 = call ptr @strerror(i32 noundef %1612) #12
  %1614 = load i32, ptr %422, align 4, !tbaa !5
  %1615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1606, ptr noundef nonnull %.str.5.sink1170, i32 noundef %1607, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1609, ptr noundef %1611, ptr noundef %1613, i32 noundef %1614) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1616:                                             ; preds = %1589
  %1617 = load ptr, ptr %881, align 8, !tbaa !51
  %1618 = getelementptr inbounds i8, ptr %1617, i64 927
  store i8 0, ptr %1618, align 1, !tbaa !58
  %1619 = load ptr, ptr %9, align 8, !tbaa !17
  %1620 = load i8, ptr %1619, align 1, !tbaa !58
  %1621 = add i8 %1620, 1
  store i8 %1621, ptr %1619, align 1, !tbaa !58
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = add nsw i32 %1622, 1
  store i32 %1623, ptr @test_count, align 4, !tbaa !5
  %1624 = load i32, ptr %877, align 8, !tbaa !15
  %1625 = trunc i32 %1624 to i16
  %1626 = load ptr, ptr %9, align 8, !tbaa !17
  %1627 = load ptr, ptr %881, align 8, !tbaa !51
  %1628 = getelementptr inbounds i8, ptr %1627, i64 920
  %1629 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %749, i8 noundef zeroext 0, i16 noundef zeroext %1625, ptr noundef %1626, ptr noundef null, ptr noundef nonnull %1628, ptr noundef nonnull %6) #12
  %1630 = icmp eq i32 %1629, -1
  br i1 %1630, label %1653, label %1631

1631:                                             ; preds = %1616
  %1632 = load i32, ptr %422, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633) #12
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc nuw i8 %1635 to i1
  br i1 %1636, label %1637, label %1641

1637:                                             ; preds = %1631
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #12
  %1640 = call i32 @isatty(i32 noundef %1639) #12
  %.not501 = icmp eq i32 %1640, 0
  br i1 %.not501, label %1641, label %1642

1641:                                             ; preds = %1637, %1631
  br label %1642

1642:                                             ; preds = %1637, %1641
  %.str.5.sink1179 = phi ptr [ @.str.5, %1641 ], [ @.str.2, %1637 ]
  store i32 %1632, ptr %422, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = load i32, ptr %368, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror(i32 noundef %1645, ptr noundef nonnull @.str.4) #12
  %1647 = load i32, ptr %368, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror_debug(i32 noundef %1647, ptr noundef nonnull @.str.4) #12
  %1649 = load i32, ptr %422, align 4, !tbaa !5
  %1650 = call ptr @strerror(i32 noundef %1649) #12
  %1651 = load i32, ptr %422, align 4, !tbaa !5
  %1652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1643, ptr noundef nonnull %.str.5.sink1179, i32 noundef %1644, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1646, ptr noundef %1648, ptr noundef %1650, i32 noundef %1651) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1653:                                             ; preds = %1616
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = add nsw i32 %1654, 1
  store i32 %1655, ptr @test_count, align 4, !tbaa !5
  %1656 = load i32, ptr %368, align 4, !tbaa !5
  %1657 = icmp eq i32 %1656, 0
  br i1 %1657, label %1658, label %1680

1658:                                             ; preds = %1653
  %1659 = load i32, ptr %422, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = call i32 @s2n_print_stacktrace(ptr noundef %1660) #12
  %1662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1663 = trunc nuw i8 %1662 to i1
  br i1 %1663, label %1664, label %1668

1664:                                             ; preds = %1658
  %1665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1666 = call i32 @fileno(ptr noundef %1665) #12
  %1667 = call i32 @isatty(i32 noundef %1666) #12
  %.not573 = icmp eq i32 %1667, 0
  br i1 %.not573, label %1668, label %1669

1668:                                             ; preds = %1664, %1658
  br label %1669

1669:                                             ; preds = %1664, %1668
  %.str.5.sink1188 = phi ptr [ @.str.5, %1668 ], [ @.str.2, %1664 ]
  store i32 %1659, ptr %422, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = load i32, ptr %368, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror(i32 noundef %1672, ptr noundef nonnull @.str.4) #12
  %1674 = load i32, ptr %368, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror_debug(i32 noundef %1674, ptr noundef nonnull @.str.4) #12
  %1676 = load i32, ptr %422, align 4, !tbaa !5
  %1677 = call ptr @strerror(i32 noundef %1676) #12
  %1678 = load i32, ptr %422, align 4, !tbaa !5
  %1679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1670, ptr noundef nonnull %.str.5.sink1188, i32 noundef %1671, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1673, ptr noundef %1675, ptr noundef %1677, i32 noundef %1678) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1680:                                             ; preds = %1653
  %1681 = add nsw i32 %1654, 2
  store i32 %1681, ptr @test_count, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef nonnull @.str.4) #12
  %1683 = icmp eq ptr %1682, null
  br i1 %1683, label %1684, label %1706

1684:                                             ; preds = %1680
  %1685 = load i32, ptr %422, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @s2n_print_stacktrace(ptr noundef %1686) #12
  %1688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1689 = trunc nuw i8 %1688 to i1
  br i1 %1689, label %1690, label %1694

1690:                                             ; preds = %1684
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @fileno(ptr noundef %1691) #12
  %1693 = call i32 @isatty(i32 noundef %1692) #12
  %.not572 = icmp eq i32 %1693, 0
  br i1 %.not572, label %1694, label %1695

1694:                                             ; preds = %1690, %1684
  br label %1695

1695:                                             ; preds = %1690, %1694
  %.str.5.sink1197 = phi ptr [ @.str.5, %1694 ], [ @.str.2, %1690 ]
  store i32 %1685, ptr %422, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = load i32, ptr @test_count, align 4, !tbaa !5
  %1698 = load i32, ptr %368, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror(i32 noundef %1698, ptr noundef nonnull @.str.4) #12
  %1700 = load i32, ptr %368, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror_debug(i32 noundef %1700, ptr noundef nonnull @.str.4) #12
  %1702 = load i32, ptr %422, align 4, !tbaa !5
  %1703 = call ptr @strerror(i32 noundef %1702) #12
  %1704 = load i32, ptr %422, align 4, !tbaa !5
  %1705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1696, ptr noundef nonnull %.str.5.sink1197, i32 noundef %1697, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1699, ptr noundef %1701, ptr noundef %1703, i32 noundef %1704) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1706:                                             ; preds = %1680
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = add nsw i32 %1707, 1
  store i32 %1708, ptr @test_count, align 4, !tbaa !5
  %1709 = call i32 @s2n_connection_free(ptr noundef nonnull %749) #12
  %1710 = icmp eq i32 %1709, -1
  br i1 %1710, label %1711, label %1733

1711:                                             ; preds = %1706
  %1712 = load i32, ptr %422, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @s2n_print_stacktrace(ptr noundef %1713) #12
  %1715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1716 = trunc nuw i8 %1715 to i1
  br i1 %1716, label %1717, label %1721

1717:                                             ; preds = %1711
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = call i32 @fileno(ptr noundef %1718) #12
  %1720 = call i32 @isatty(i32 noundef %1719) #12
  %.not571 = icmp eq i32 %1720, 0
  br i1 %.not571, label %1721, label %1722

1721:                                             ; preds = %1717, %1711
  br label %1722

1722:                                             ; preds = %1717, %1721
  %.str.5.sink1206 = phi ptr [ @.str.5, %1721 ], [ @.str.2, %1717 ]
  store i32 %1712, ptr %422, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = load i32, ptr %368, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror(i32 noundef %1725, ptr noundef nonnull @.str.4) #12
  %1727 = load i32, ptr %368, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror_debug(i32 noundef %1727, ptr noundef nonnull @.str.4) #12
  %1729 = load i32, ptr %422, align 4, !tbaa !5
  %1730 = call ptr @strerror(i32 noundef %1729) #12
  %1731 = load i32, ptr %422, align 4, !tbaa !5
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1723, ptr noundef nonnull %.str.5.sink1206, i32 noundef %1724, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1726, ptr noundef %1728, ptr noundef %1730, i32 noundef %1731) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1733:                                             ; preds = %1706
  %1734 = load i32, ptr @test_count, align 4, !tbaa !5
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr @test_count, align 4, !tbaa !5
  %1736 = call i32 @s2n_session_key_free(ptr noundef nonnull %6) #12
  %1737 = icmp eq i32 %1736, -1
  br i1 %1737, label %1738, label %1760

1738:                                             ; preds = %1733
  %1739 = load i32, ptr %422, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @s2n_print_stacktrace(ptr noundef %1740) #12
  %1742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1743 = trunc nuw i8 %1742 to i1
  br i1 %1743, label %1744, label %1748

1744:                                             ; preds = %1738
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @fileno(ptr noundef %1745) #12
  %1747 = call i32 @isatty(i32 noundef %1746) #12
  %.not570 = icmp eq i32 %1747, 0
  br i1 %.not570, label %1748, label %1749

1748:                                             ; preds = %1744, %1738
  br label %1749

1749:                                             ; preds = %1744, %1748
  %.str.5.sink1215 = phi ptr [ @.str.5, %1748 ], [ @.str.2, %1744 ]
  store i32 %1739, ptr %422, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = load i32, ptr @test_count, align 4, !tbaa !5
  %1752 = load i32, ptr %368, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef nonnull @.str.4) #12
  %1754 = load i32, ptr %368, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror_debug(i32 noundef %1754, ptr noundef nonnull @.str.4) #12
  %1756 = load i32, ptr %422, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #12
  %1758 = load i32, ptr %422, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1750, ptr noundef nonnull %.str.5.sink1215, i32 noundef %1751, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1753, ptr noundef %1755, ptr noundef %1757, i32 noundef %1758) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1760:                                             ; preds = %1733
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #12
  br label %1761

1761:                                             ; preds = %922, %1760
  %.3450 = phi i32 [ 0, %1760 ], [ 1, %922 ]
  %.3 = phi i32 [ 0, %1760 ], [ -1, %922 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  br label %1762

1762:                                             ; preds = %1761, %915
  %.4451 = phi i32 [ %.3450, %1761 ], [ 1, %915 ]
  %.4 = phi i32 [ %.3, %1761 ], [ -1, %915 ]
  call void @llvm.lifetime.end.p0(i64 1000, ptr nonnull %11) #12
  br label %1763

1763:                                             ; preds = %908, %1762
  %.5452 = phi i32 [ %.4451, %1762 ], [ 1, %908 ]
  %.5 = phi i32 [ %.4, %1762 ], [ -1, %908 ]
  %1764 = call i32 @s2n_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  br label %1765

1765:                                             ; preds = %871, %1763
  %.6453 = phi i32 [ %.5452, %1763 ], [ 1, %871 ]
  %.6 = phi i32 [ %.5, %1763 ], [ -1, %871 ]
  %1766 = call i32 @s2n_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  br label %1767

1767:                                             ; preds = %1765, %840
  %.7454 = phi i32 [ %.6453, %1765 ], [ 1, %840 ]
  %.7 = phi i32 [ %.6, %1765 ], [ -1, %840 ]
  %1768 = call i32 @s2n_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  %1769 = call i32 @s2n_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  %switch = icmp eq i32 %.7454, 0
  br i1 %switch, label %1770, label %.loopexit

1770:                                             ; preds = %1767
  %1771 = load i32, ptr @test_count, align 4, !tbaa !5
  %1772 = add nsw i32 %1771, 1
  store i32 %1772, ptr @test_count, align 4, !tbaa !5
  %1773 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1774 = icmp eq ptr %1773, null
  br i1 %1774, label %1775, label %1797

1775:                                             ; preds = %1770
  %1776 = load i32, ptr %422, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777) #12
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc nuw i8 %1779 to i1
  br i1 %1780, label %1781, label %1785

1781:                                             ; preds = %1775
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #12
  %1784 = call i32 @isatty(i32 noundef %1783) #12
  %.not569 = icmp eq i32 %1784, 0
  br i1 %.not569, label %1785, label %1786

1785:                                             ; preds = %1781, %1775
  br label %1786

1786:                                             ; preds = %1781, %1785
  %.str.5.sink1224 = phi ptr [ @.str.5, %1785 ], [ @.str.2, %1781 ]
  store i32 %1776, ptr %422, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = load i32, ptr %368, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef nonnull @.str.4) #12
  %1791 = load i32, ptr %368, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror_debug(i32 noundef %1791, ptr noundef nonnull @.str.4) #12
  %1793 = load i32, ptr %422, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #12
  %1795 = load i32, ptr %422, align 4, !tbaa !5
  %1796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef nonnull %.str.5.sink1224, i32 noundef %1788, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1790, ptr noundef %1792, ptr noundef %1794, i32 noundef %1795) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1797:                                             ; preds = %1770
  %1798 = getelementptr inbounds i8, ptr %1773, i64 220
  store i8 34, ptr %1798, align 4, !tbaa !18
  %1799 = getelementptr inbounds i8, ptr %1773, i64 640
  %1800 = load ptr, ptr %1799, align 8, !tbaa !59
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %1800, align 8, !tbaa !60
  %1801 = getelementptr inbounds i8, ptr %1800, i64 16
  %1802 = getelementptr inbounds i8, ptr %1800, i64 904
  %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 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %1806 = load ptr, ptr %1805, align 8, !tbaa !46
  %1807 = getelementptr inbounds i8, ptr %1806, i64 64
  %1808 = load ptr, ptr %1807, align 8, !tbaa !48
  %1809 = call i32 %1808(ptr noundef nonnull %1801) #12
  %1810 = call zeroext i1 @s2n_result_is_ok(i32 %1809)
  br i1 %1810, label %1833, label %1811

1811:                                             ; preds = %1797
  %1812 = load i32, ptr %422, align 4, !tbaa !5
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = call i32 @s2n_print_stacktrace(ptr noundef %1813) #12
  %1815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1816 = trunc nuw i8 %1815 to i1
  br i1 %1816, label %1817, label %1821

1817:                                             ; preds = %1811
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @fileno(ptr noundef %1818) #12
  %1820 = call i32 @isatty(i32 noundef %1819) #12
  %.not502 = icmp eq i32 %1820, 0
  br i1 %.not502, label %1821, label %1822

1821:                                             ; preds = %1817, %1811
  br label %1822

1822:                                             ; preds = %1817, %1821
  %.str.5.sink1233 = phi ptr [ @.str.5, %1821 ], [ @.str.2, %1817 ]
  store i32 %1812, ptr %422, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = load i32, ptr %368, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror(i32 noundef %1825, ptr noundef nonnull @.str.4) #12
  %1827 = load i32, ptr %368, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror_debug(i32 noundef %1827, ptr noundef nonnull @.str.4) #12
  %1829 = load i32, ptr %422, align 4, !tbaa !5
  %1830 = call ptr @strerror(i32 noundef %1829) #12
  %1831 = load i32, ptr %422, align 4, !tbaa !5
  %1832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1823, ptr noundef nonnull %.str.5.sink1233, i32 noundef %1824, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1826, ptr noundef %1828, ptr noundef %1830, i32 noundef %1831) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1833:                                             ; preds = %1797
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %1834 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %14, ptr noundef nonnull @.str.26) #12
  %1835 = call zeroext i1 @s2n_result_is_ok(i32 %1834)
  br i1 %1835, label %1837, label %.thread631

.thread631:                                       ; preds = %1833
  %1836 = call i32 @s2n_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  br label %.loopexit

1837:                                             ; preds = %1833
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = add nsw i32 %1838, 1
  store i32 %1839, ptr @test_count, align 4, !tbaa !5
  %1840 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %1841 = load ptr, ptr %1840, align 8, !tbaa !46
  %1842 = getelementptr inbounds i8, ptr %1841, i64 80
  %1843 = load ptr, ptr %1842, align 8, !tbaa !65
  %1844 = call i32 %1843(ptr noundef nonnull %1801, ptr noundef nonnull %14) #12
  %1845 = call zeroext i1 @s2n_result_is_ok(i32 %1844)
  br i1 %1845, label %1868, label %1846

1846:                                             ; preds = %1837
  %1847 = load i32, ptr %422, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = call i32 @s2n_print_stacktrace(ptr noundef %1848) #12
  %1850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1851 = trunc nuw i8 %1850 to i1
  br i1 %1851, label %1852, label %1856

1852:                                             ; preds = %1846
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @fileno(ptr noundef %1853) #12
  %1855 = call i32 @isatty(i32 noundef %1854) #12
  %.not503 = icmp eq i32 %1855, 0
  br i1 %.not503, label %1856, label %1857

1856:                                             ; preds = %1852, %1846
  br label %1857

1857:                                             ; preds = %1852, %1856
  %.str.5.sink1242 = phi ptr [ @.str.5, %1856 ], [ @.str.2, %1852 ]
  store i32 %1847, ptr %422, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = load i32, ptr %368, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror(i32 noundef %1860, ptr noundef nonnull @.str.4) #12
  %1862 = load i32, ptr %368, align 4, !tbaa !5
  %1863 = call ptr @s2n_strerror_debug(i32 noundef %1862, ptr noundef nonnull @.str.4) #12
  %1864 = load i32, ptr %422, align 4, !tbaa !5
  %1865 = call ptr @strerror(i32 noundef %1864) #12
  %1866 = load i32, ptr %422, align 4, !tbaa !5
  %1867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef nonnull %.str.5.sink1242, i32 noundef %1859, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1861, ptr noundef %1863, ptr noundef %1865, i32 noundef %1866) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1868:                                             ; preds = %1837
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %1869 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %15, ptr noundef nonnull @protected_record_hex) #12
  %1870 = call zeroext i1 @s2n_result_is_ok(i32 %1869)
  br i1 %1870, label %1871, label %2102

1871:                                             ; preds = %1868
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, i8 0, i64 24, i1 false)
  %1872 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %16, ptr noundef nonnull @.str.29) #12
  %1873 = call zeroext i1 @s2n_result_is_ok(i32 %1872)
  br i1 %1873, label %.preheader651, label %2100

.preheader651:                                    ; preds = %1871
  %1874 = getelementptr inbounds i8, ptr %16, i64 8
  %1875 = load i32, ptr %1874, align 8, !tbaa !15
  %.not664 = icmp eq i32 %1875, 0
  br i1 %.not664, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %.preheader651
  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)
  %1876 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %17, ptr noundef nonnull @plaintext_record_hex) #12
  %1877 = call zeroext i1 @s2n_result_is_ok(i32 %1876)
  br i1 %1877, label %1886, label %2098

.lr.ph:                                           ; preds = %.preheader651, %.lr.ph
  %.0467655 = phi i64 [ %1882, %.lr.ph ], [ 0, %.preheader651 ]
  %1878 = load ptr, ptr %16, align 8, !tbaa !17
  %1879 = getelementptr inbounds i8, ptr %1878, i64 %.0467655
  %1880 = load i8, ptr %1879, align 1, !tbaa !58
  %1881 = getelementptr inbounds i8, ptr %1802, i64 %.0467655
  store i8 %1880, ptr %1881, align 1, !tbaa !58
  %1882 = add nuw nsw i64 %.0467655, 1
  %1883 = load i32, ptr %1874, align 8, !tbaa !15
  %1884 = zext i32 %1883 to i64
  %1885 = icmp ult i64 %1882, %1884
  br i1 %1885, label %.lr.ph, label %._crit_edge, !llvm.loop !66

1886:                                             ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #12
  %1887 = load ptr, ptr %17, align 8, !tbaa !17
  store ptr %1887, ptr %18, align 8, !tbaa !17
  %1888 = getelementptr inbounds i8, ptr %18, i64 8
  %1889 = getelementptr inbounds i8, ptr %17, i64 8
  %1890 = load i32, ptr %1889, align 8, !tbaa !15
  %1891 = add i32 %1890, -1
  store i32 %1891, ptr %1888, align 8, !tbaa !15
  %1892 = getelementptr inbounds i8, ptr %18, i64 12
  store i32 0, ptr %1892, align 4, !tbaa !68
  %1893 = getelementptr inbounds i8, ptr %18, i64 16
  %1894 = load i8, ptr %1893, align 8
  %1895 = and i8 %1894, -2
  store i8 %1895, ptr %1893, align 8
  %1896 = load i32, ptr @test_count, align 4, !tbaa !5
  %1897 = add nsw i32 %1896, 1
  store i32 %1897, ptr @test_count, align 4, !tbaa !5
  %1898 = call i32 @s2n_record_write(ptr noundef nonnull %1773, i8 noundef zeroext 22, ptr noundef nonnull %18) #12
  %1899 = call zeroext i1 @s2n_result_is_ok(i32 %1898)
  br i1 %1899, label %1922, label %1900

1900:                                             ; preds = %1886
  %1901 = load i32, ptr %422, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = call i32 @s2n_print_stacktrace(ptr noundef %1902) #12
  %1904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1905 = trunc nuw i8 %1904 to i1
  br i1 %1905, label %1906, label %1910

1906:                                             ; preds = %1900
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = call i32 @fileno(ptr noundef %1907) #12
  %1909 = call i32 @isatty(i32 noundef %1908) #12
  %.not504 = icmp eq i32 %1909, 0
  br i1 %.not504, label %1910, label %1911

1910:                                             ; preds = %1906, %1900
  br label %1911

1911:                                             ; preds = %1906, %1910
  %.str.5.sink1251 = phi ptr [ @.str.5, %1910 ], [ @.str.2, %1906 ]
  store i32 %1901, ptr %422, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = load i32, ptr @test_count, align 4, !tbaa !5
  %1914 = load i32, ptr %368, align 4, !tbaa !5
  %1915 = call ptr @s2n_strerror(i32 noundef %1914, ptr noundef nonnull @.str.4) #12
  %1916 = load i32, ptr %368, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror_debug(i32 noundef %1916, ptr noundef nonnull @.str.4) #12
  %1918 = load i32, ptr %422, align 4, !tbaa !5
  %1919 = call ptr @strerror(i32 noundef %1918) #12
  %1920 = load i32, ptr %422, align 4, !tbaa !5
  %1921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1912, ptr noundef nonnull %.str.5.sink1251, i32 noundef %1913, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1915, ptr noundef %1917, ptr noundef %1919, i32 noundef %1920) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1922:                                             ; preds = %1886
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr @test_count, align 4, !tbaa !5
  %1925 = getelementptr inbounds i8, ptr %1773, i64 1896
  %1926 = load ptr, ptr %1925, align 8, !tbaa !69
  %1927 = load i8, ptr %1926, align 1, !tbaa !58
  %1928 = icmp eq i8 %1927, 23
  br i1 %1928, label %1951, label %1929

1929:                                             ; preds = %1922
  %1930 = load i32, ptr %422, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @s2n_print_stacktrace(ptr noundef %1931) #12
  %1933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1934 = trunc nuw i8 %1933 to i1
  br i1 %1934, label %1935, label %1939

1935:                                             ; preds = %1929
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @fileno(ptr noundef %1936) #12
  %1938 = call i32 @isatty(i32 noundef %1937) #12
  %.not505 = icmp eq i32 %1938, 0
  br i1 %.not505, label %1939, label %1940

1939:                                             ; preds = %1935, %1929
  br label %1940

1940:                                             ; preds = %1935, %1939
  %.str.5.sink1260 = phi ptr [ @.str.5, %1939 ], [ @.str.2, %1935 ]
  store i32 %1930, ptr %422, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = load i32, ptr %368, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror(i32 noundef %1943, ptr noundef nonnull @.str.4) #12
  %1945 = load i32, ptr %368, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef nonnull @.str.4) #12
  %1947 = load i32, ptr %422, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #12
  %1949 = load i32, ptr %422, align 4, !tbaa !5
  %1950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1941, ptr noundef nonnull %.str.5.sink1260, i32 noundef %1942, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1944, ptr noundef %1946, ptr noundef %1948, i32 noundef %1949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1951:                                             ; preds = %1922
  %1952 = add nsw i32 %1923, 2
  store i32 %1952, ptr @test_count, align 4, !tbaa !5
  %1953 = getelementptr inbounds i8, ptr %1926, i64 1
  %1954 = load i8, ptr %1953, align 1, !tbaa !58
  %1955 = icmp eq i8 %1954, 3
  br i1 %1955, label %1978, label %1956

1956:                                             ; preds = %1951
  %1957 = load i32, ptr %422, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @s2n_print_stacktrace(ptr noundef %1958) #12
  %1960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1961 = trunc nuw i8 %1960 to i1
  br i1 %1961, label %1962, label %1966

1962:                                             ; preds = %1956
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = call i32 @fileno(ptr noundef %1963) #12
  %1965 = call i32 @isatty(i32 noundef %1964) #12
  %.not506 = icmp eq i32 %1965, 0
  br i1 %.not506, label %1966, label %1967

1966:                                             ; preds = %1962, %1956
  br label %1967

1967:                                             ; preds = %1962, %1966
  %.str.5.sink1269 = phi ptr [ @.str.5, %1966 ], [ @.str.2, %1962 ]
  store i32 %1957, ptr %422, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = load i32, ptr %368, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror(i32 noundef %1970, ptr noundef nonnull @.str.4) #12
  %1972 = load i32, ptr %368, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror_debug(i32 noundef %1972, ptr noundef nonnull @.str.4) #12
  %1974 = load i32, ptr %422, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #12
  %1976 = load i32, ptr %422, align 4, !tbaa !5
  %1977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1968, ptr noundef nonnull %.str.5.sink1269, i32 noundef %1969, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %1971, ptr noundef %1973, ptr noundef %1975, i32 noundef %1976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1978:                                             ; preds = %1951
  %1979 = add nsw i32 %1923, 3
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = getelementptr inbounds i8, ptr %1926, i64 2
  %1981 = load i8, ptr %1980, align 1, !tbaa !58
  %1982 = icmp eq i8 %1981, 3
  br i1 %1982, label %2005, label %1983

1983:                                             ; preds = %1978
  %1984 = load i32, ptr %422, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @s2n_print_stacktrace(ptr noundef %1985) #12
  %1987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1988 = trunc nuw i8 %1987 to i1
  br i1 %1988, label %1989, label %1993

1989:                                             ; preds = %1983
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @fileno(ptr noundef %1990) #12
  %1992 = call i32 @isatty(i32 noundef %1991) #12
  %.not507 = icmp eq i32 %1992, 0
  br i1 %.not507, label %1993, label %1994

1993:                                             ; preds = %1989, %1983
  br label %1994

1994:                                             ; preds = %1989, %1993
  %.str.5.sink1278 = phi ptr [ @.str.5, %1993 ], [ @.str.2, %1989 ]
  store i32 %1984, ptr %422, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = load i32, ptr @test_count, align 4, !tbaa !5
  %1997 = load i32, ptr %368, align 4, !tbaa !5
  %1998 = call ptr @s2n_strerror(i32 noundef %1997, ptr noundef nonnull @.str.4) #12
  %1999 = load i32, ptr %368, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror_debug(i32 noundef %1999, ptr noundef nonnull @.str.4) #12
  %2001 = load i32, ptr %422, align 4, !tbaa !5
  %2002 = call ptr @strerror(i32 noundef %2001) #12
  %2003 = load i32, ptr %422, align 4, !tbaa !5
  %2004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1995, ptr noundef nonnull %.str.5.sink1278, i32 noundef %1996, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1998, ptr noundef %2000, ptr noundef %2002, i32 noundef %2003) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2005:                                             ; preds = %1978
  %2006 = add nsw i32 %1923, 4
  store i32 %2006, ptr @test_count, align 4, !tbaa !5
  %2007 = getelementptr inbounds i8, ptr %1926, i64 3
  %2008 = load i8, ptr %2007, align 1, !tbaa !58
  %2009 = zext i8 %2008 to i32
  %2010 = shl nuw nsw i32 %2009, 8
  %2011 = getelementptr inbounds i8, ptr %1926, i64 4
  %2012 = load i8, ptr %2011, align 1, !tbaa !58
  %2013 = zext i8 %2012 to i32
  %2014 = or disjoint i32 %2010, %2013
  %2015 = getelementptr inbounds i8, ptr %15, i64 8
  %2016 = load i32, ptr %2015, align 8, !tbaa !15
  %2017 = icmp eq i32 %2014, %2016
  br i1 %2017, label %2040, label %2018

2018:                                             ; preds = %2005
  %2019 = load i32, ptr %422, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @s2n_print_stacktrace(ptr noundef %2020) #12
  %2022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2023 = trunc nuw i8 %2022 to i1
  br i1 %2023, label %2024, label %2028

2024:                                             ; preds = %2018
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @fileno(ptr noundef %2025) #12
  %2027 = call i32 @isatty(i32 noundef %2026) #12
  %.not508 = icmp eq i32 %2027, 0
  br i1 %.not508, label %2028, label %2029

2028:                                             ; preds = %2024, %2018
  br label %2029

2029:                                             ; preds = %2024, %2028
  %.str.5.sink1287 = phi ptr [ @.str.5, %2028 ], [ @.str.2, %2024 ]
  store i32 %2019, ptr %422, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = load i32, ptr %368, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef nonnull @.str.4) #12
  %2034 = load i32, ptr %368, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef nonnull @.str.4) #12
  %2036 = load i32, ptr %422, align 4, !tbaa !5
  %2037 = call ptr @strerror(i32 noundef %2036) #12
  %2038 = load i32, ptr %422, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef nonnull %.str.5.sink1287, i32 noundef %2031, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2033, ptr noundef %2035, ptr noundef %2037, i32 noundef %2038) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2040:                                             ; preds = %2005
  %2041 = add nsw i32 %1923, 5
  store i32 %2041, ptr @test_count, align 4, !tbaa !5
  %.not510 = icmp eq i32 %2014, 0
  br i1 %.not510, label %2070, label %2042

2042:                                             ; preds = %2040
  %2043 = getelementptr inbounds i8, ptr %1926, i64 5
  %2044 = add nsw i32 %1923, 6
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = load ptr, ptr %15, align 8, !tbaa !17
  %2046 = zext nneg i32 %2014 to i64
  %bcmp511 = call i32 @bcmp(ptr nonnull %2043, ptr %2045, i64 %2046)
  %2047 = icmp eq i32 %bcmp511, 0
  br i1 %2047, label %2070, label %2048

2048:                                             ; preds = %2042
  %2049 = load i32, ptr %422, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050) #12
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc nuw i8 %2052 to i1
  br i1 %2053, label %2054, label %2058

2054:                                             ; preds = %2048
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #12
  %2057 = call i32 @isatty(i32 noundef %2056) #12
  %.not512 = icmp eq i32 %2057, 0
  br i1 %.not512, label %2058, label %2059

2058:                                             ; preds = %2054, %2048
  br label %2059

2059:                                             ; preds = %2054, %2058
  %.str.5.sink1296 = phi ptr [ @.str.5, %2058 ], [ @.str.2, %2054 ]
  store i32 %2049, ptr %422, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = load i32, ptr %368, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef nonnull @.str.4) #12
  %2064 = load i32, ptr %368, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef nonnull @.str.4) #12
  %2066 = load i32, ptr %422, align 4, !tbaa !5
  %2067 = call ptr @strerror(i32 noundef %2066) #12
  %2068 = load i32, ptr %422, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef nonnull %.str.5.sink1296, i32 noundef %2061, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %2063, ptr noundef %2065, ptr noundef %2067, i32 noundef %2068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2070:                                             ; preds = %2040, %2042
  %2071 = phi i32 [ %2041, %2040 ], [ %2044, %2042 ]
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = call i32 @s2n_connection_free(ptr noundef nonnull %1773) #12
  %2074 = icmp eq i32 %2073, -1
  br i1 %2074, label %2075, label %2097

2075:                                             ; preds = %2070
  %2076 = load i32, ptr %422, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077) #12
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc nuw i8 %2079 to i1
  br i1 %2080, label %2081, label %2085

2081:                                             ; preds = %2075
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #12
  %2084 = call i32 @isatty(i32 noundef %2083) #12
  %.not568 = icmp eq i32 %2084, 0
  br i1 %.not568, label %2085, label %2086

2085:                                             ; preds = %2081, %2075
  br label %2086

2086:                                             ; preds = %2081, %2085
  %.str.5.sink1305 = phi ptr [ @.str.5, %2085 ], [ @.str.2, %2081 ]
  store i32 %2076, ptr %422, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = load i32, ptr %368, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror(i32 noundef %2089, ptr noundef nonnull @.str.4) #12
  %2091 = load i32, ptr %368, align 4, !tbaa !5
  %2092 = call ptr @s2n_strerror_debug(i32 noundef %2091, ptr noundef nonnull @.str.4) #12
  %2093 = load i32, ptr %422, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #12
  %2095 = load i32, ptr %422, align 4, !tbaa !5
  %2096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef nonnull %.str.5.sink1305, i32 noundef %2088, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2090, ptr noundef %2092, ptr noundef %2094, i32 noundef %2095) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2097:                                             ; preds = %2070
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #12
  br label %2098

2098:                                             ; preds = %._crit_edge, %2097
  %.9456 = phi i32 [ 0, %2097 ], [ 1, %._crit_edge ]
  %.9 = phi i32 [ %.7, %2097 ], [ -1, %._crit_edge ]
  %2099 = call i32 @s2n_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #12
  br label %2100

2100:                                             ; preds = %1871, %2098
  %.10457 = phi i32 [ %.9456, %2098 ], [ 1, %1871 ]
  %.10 = phi i32 [ %.9, %2098 ], [ -1, %1871 ]
  %2101 = call i32 @s2n_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  br label %2102

2102:                                             ; preds = %2100, %1868
  %.11458 = phi i32 [ %.10457, %2100 ], [ 1, %1868 ]
  %.11 = phi i32 [ %.10, %2100 ], [ -1, %1868 ]
  %2103 = call i32 @s2n_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #12
  %2104 = call i32 @s2n_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  %switch612 = icmp eq i32 %.11458, 0
  br i1 %switch612, label %2105, label %.loopexit

2105:                                             ; preds = %2102
  %2106 = load i32, ptr @test_count, align 4, !tbaa !5
  %2107 = add nsw i32 %2106, 1
  store i32 %2107, ptr @test_count, align 4, !tbaa !5
  %2108 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2109 = icmp eq ptr %2108, null
  br i1 %2109, label %2110, label %2132

2110:                                             ; preds = %2105
  %2111 = load i32, ptr %422, align 4, !tbaa !5
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @s2n_print_stacktrace(ptr noundef %2112) #12
  %2114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2115 = trunc nuw i8 %2114 to i1
  br i1 %2115, label %2116, label %2120

2116:                                             ; preds = %2110
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = call i32 @fileno(ptr noundef %2117) #12
  %2119 = call i32 @isatty(i32 noundef %2118) #12
  %.not567 = icmp eq i32 %2119, 0
  br i1 %.not567, label %2120, label %2121

2120:                                             ; preds = %2116, %2110
  br label %2121

2121:                                             ; preds = %2116, %2120
  %.str.5.sink1314 = phi ptr [ @.str.5, %2120 ], [ @.str.2, %2116 ]
  store i32 %2111, ptr %422, align 4, !tbaa !5
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = load i32, ptr @test_count, align 4, !tbaa !5
  %2124 = load i32, ptr %368, align 4, !tbaa !5
  %2125 = call ptr @s2n_strerror(i32 noundef %2124, ptr noundef nonnull @.str.4) #12
  %2126 = load i32, ptr %368, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror_debug(i32 noundef %2126, ptr noundef nonnull @.str.4) #12
  %2128 = load i32, ptr %422, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #12
  %2130 = load i32, ptr %422, align 4, !tbaa !5
  %2131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2122, ptr noundef nonnull %.str.5.sink1314, i32 noundef %2123, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2125, ptr noundef %2127, ptr noundef %2129, i32 noundef %2130) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2132:                                             ; preds = %2105
  %2133 = getelementptr inbounds i8, ptr %2108, i64 220
  store i8 34, ptr %2133, align 4, !tbaa !18
  %2134 = getelementptr inbounds i8, ptr %2108, i64 640
  %2135 = load ptr, ptr %2134, align 8, !tbaa !59
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2135, align 8, !tbaa !60
  %2136 = getelementptr inbounds i8, ptr %2135, i64 16
  %2137 = getelementptr inbounds i8, ptr %2135, i64 904
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = add nsw i32 %2138, 1
  store i32 %2139, ptr @test_count, align 4, !tbaa !5
  %2140 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2141 = load ptr, ptr %2140, align 8, !tbaa !46
  %2142 = getelementptr inbounds i8, ptr %2141, i64 64
  %2143 = load ptr, ptr %2142, align 8, !tbaa !48
  %2144 = call i32 %2143(ptr noundef nonnull %2136) #12
  %2145 = call zeroext i1 @s2n_result_is_ok(i32 %2144)
  br i1 %2145, label %2168, label %2146

2146:                                             ; preds = %2132
  %2147 = load i32, ptr %422, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @s2n_print_stacktrace(ptr noundef %2148) #12
  %2150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2151 = trunc nuw i8 %2150 to i1
  br i1 %2151, label %2152, label %2156

2152:                                             ; preds = %2146
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = call i32 @fileno(ptr noundef %2153) #12
  %2155 = call i32 @isatty(i32 noundef %2154) #12
  %.not513 = icmp eq i32 %2155, 0
  br i1 %.not513, label %2156, label %2157

2156:                                             ; preds = %2152, %2146
  br label %2157

2157:                                             ; preds = %2152, %2156
  %.str.5.sink1323 = phi ptr [ @.str.5, %2156 ], [ @.str.2, %2152 ]
  store i32 %2147, ptr %422, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = load i32, ptr %368, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror(i32 noundef %2160, ptr noundef nonnull @.str.4) #12
  %2162 = load i32, ptr %368, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror_debug(i32 noundef %2162, ptr noundef nonnull @.str.4) #12
  %2164 = load i32, ptr %422, align 4, !tbaa !5
  %2165 = call ptr @strerror(i32 noundef %2164) #12
  %2166 = load i32, ptr %422, align 4, !tbaa !5
  %2167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2158, ptr noundef nonnull %.str.5.sink1323, i32 noundef %2159, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2161, ptr noundef %2163, ptr noundef %2165, i32 noundef %2166) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2168:                                             ; preds = %2132
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, i8 0, i64 24, i1 false)
  %2169 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %19, ptr noundef nonnull @.str.26) #12
  %2170 = call zeroext i1 @s2n_result_is_ok(i32 %2169)
  br i1 %2170, label %2172, label %.thread635

.thread635:                                       ; preds = %2168
  %2171 = call i32 @s2n_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  br label %.loopexit

2172:                                             ; preds = %2168
  %2173 = load i32, ptr @test_count, align 4, !tbaa !5
  %2174 = add nsw i32 %2173, 1
  store i32 %2174, ptr @test_count, align 4, !tbaa !5
  %2175 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2176 = load ptr, ptr %2175, align 8, !tbaa !46
  %2177 = getelementptr inbounds i8, ptr %2176, i64 80
  %2178 = load ptr, ptr %2177, align 8, !tbaa !65
  %2179 = call i32 %2178(ptr noundef nonnull %2136, ptr noundef nonnull %19) #12
  %2180 = call zeroext i1 @s2n_result_is_ok(i32 %2179)
  br i1 %2180, label %2203, label %2181

2181:                                             ; preds = %2172
  %2182 = load i32, ptr %422, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = call i32 @s2n_print_stacktrace(ptr noundef %2183) #12
  %2185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2186 = trunc nuw i8 %2185 to i1
  br i1 %2186, label %2187, label %2191

2187:                                             ; preds = %2181
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @fileno(ptr noundef %2188) #12
  %2190 = call i32 @isatty(i32 noundef %2189) #12
  %.not514 = icmp eq i32 %2190, 0
  br i1 %.not514, label %2191, label %2192

2191:                                             ; preds = %2187, %2181
  br label %2192

2192:                                             ; preds = %2187, %2191
  %.str.5.sink1332 = phi ptr [ @.str.5, %2191 ], [ @.str.2, %2187 ]
  store i32 %2182, ptr %422, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = load i32, ptr %368, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror(i32 noundef %2195, ptr noundef nonnull @.str.4) #12
  %2197 = load i32, ptr %368, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror_debug(i32 noundef %2197, ptr noundef nonnull @.str.4) #12
  %2199 = load i32, ptr %422, align 4, !tbaa !5
  %2200 = call ptr @strerror(i32 noundef %2199) #12
  %2201 = load i32, ptr %422, align 4, !tbaa !5
  %2202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2193, ptr noundef nonnull %.str.5.sink1332, i32 noundef %2194, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2196, ptr noundef %2198, ptr noundef %2200, i32 noundef %2201) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2203:                                             ; preds = %2172
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = add nsw i32 %2204, 1
  store i32 %2205, ptr @test_count, align 4, !tbaa !5
  %2206 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2207 = load ptr, ptr %2206, align 8, !tbaa !46
  %2208 = getelementptr inbounds i8, ptr %2207, i64 72
  %2209 = load ptr, ptr %2208, align 8, !tbaa !50
  %2210 = call i32 %2209(ptr noundef nonnull %2136, ptr noundef nonnull %19) #12
  %2211 = call zeroext i1 @s2n_result_is_ok(i32 %2210)
  br i1 %2211, label %2234, label %2212

2212:                                             ; preds = %2203
  %2213 = load i32, ptr %422, align 4, !tbaa !5
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @s2n_print_stacktrace(ptr noundef %2214) #12
  %2216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2217 = trunc nuw i8 %2216 to i1
  br i1 %2217, label %2218, label %2222

2218:                                             ; preds = %2212
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = call i32 @fileno(ptr noundef %2219) #12
  %2221 = call i32 @isatty(i32 noundef %2220) #12
  %.not515 = icmp eq i32 %2221, 0
  br i1 %.not515, label %2222, label %2223

2222:                                             ; preds = %2218, %2212
  br label %2223

2223:                                             ; preds = %2218, %2222
  %.str.5.sink1341 = phi ptr [ @.str.5, %2222 ], [ @.str.2, %2218 ]
  store i32 %2213, ptr %422, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = load i32, ptr @test_count, align 4, !tbaa !5
  %2226 = load i32, ptr %368, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror(i32 noundef %2226, ptr noundef nonnull @.str.4) #12
  %2228 = load i32, ptr %368, align 4, !tbaa !5
  %2229 = call ptr @s2n_strerror_debug(i32 noundef %2228, ptr noundef nonnull @.str.4) #12
  %2230 = load i32, ptr %422, align 4, !tbaa !5
  %2231 = call ptr @strerror(i32 noundef %2230) #12
  %2232 = load i32, ptr %422, align 4, !tbaa !5
  %2233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2224, ptr noundef nonnull %.str.5.sink1341, i32 noundef %2225, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2227, ptr noundef %2229, ptr noundef %2231, i32 noundef %2232) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2234:                                             ; preds = %2203
  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)
  %2235 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %20, ptr noundef nonnull @.str.29) #12
  %2236 = call zeroext i1 @s2n_result_is_ok(i32 %2235)
  br i1 %2236, label %.preheader650, label %2424

.preheader650:                                    ; preds = %2234
  %2237 = getelementptr inbounds i8, ptr %20, i64 8
  %2238 = load i32, ptr %2237, align 8, !tbaa !15
  %.not665 = icmp eq i32 %2238, 0
  br i1 %.not665, label %._crit_edge658, label %.lr.ph657

._crit_edge658:                                   ; preds = %.lr.ph657, %.preheader650
  %.sroa.0162.0.copyload = load ptr, ptr @__const.main.expect_plaintext, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = add nsw i32 %2239, 1
  store i32 %2240, ptr @test_count, align 4, !tbaa !5
  %2241 = call i32 @s2n_blob_init(ptr noundef nonnull %21, ptr noundef nonnull @main.hello_data, i32 noundef 11) #12
  %2242 = icmp eq i32 %2241, -1
  br i1 %2242, label %2251, label %2273

.lr.ph657:                                        ; preds = %.preheader650, %.lr.ph657
  %.0468656 = phi i64 [ %2247, %.lr.ph657 ], [ 0, %.preheader650 ]
  %2243 = load ptr, ptr %20, align 8, !tbaa !17
  %2244 = getelementptr inbounds i8, ptr %2243, i64 %.0468656
  %2245 = load i8, ptr %2244, align 1, !tbaa !58
  %2246 = getelementptr inbounds i8, ptr %2137, i64 %.0468656
  store i8 %2245, ptr %2246, align 1, !tbaa !58
  %2247 = add nuw nsw i64 %.0468656, 1
  %2248 = load i32, ptr %2237, align 8, !tbaa !15
  %2249 = zext i32 %2248 to i64
  %2250 = icmp ult i64 %2247, %2249
  br i1 %2250, label %.lr.ph657, label %._crit_edge658, !llvm.loop !70

2251:                                             ; preds = %._crit_edge658
  %2252 = load i32, ptr %422, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #12
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2251
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #12
  %2260 = call i32 @isatty(i32 noundef %2259) #12
  %.not566 = icmp eq i32 %2260, 0
  br i1 %.not566, label %2261, label %2262

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.5.sink1350 = phi ptr [ @.str.5, %2261 ], [ @.str.2, %2257 ]
  store i32 %2252, ptr %422, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %368, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.4) #12
  %2267 = load i32, ptr %368, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.4) #12
  %2269 = load i32, ptr %422, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #12
  %2271 = load i32, ptr %422, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.5.sink1350, i32 noundef %2264, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2273:                                             ; preds = %._crit_edge658
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = add nsw i32 %2274, 1
  store i32 %2275, ptr @test_count, align 4, !tbaa !5
  %2276 = call i32 @s2n_record_write(ptr noundef nonnull %2108, i8 noundef zeroext 22, ptr noundef nonnull %21) #12
  %2277 = call zeroext i1 @s2n_result_is_ok(i32 %2276)
  br i1 %2277, label %2300, label %2278

2278:                                             ; preds = %2273
  %2279 = load i32, ptr %422, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #12
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2278
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #12
  %2287 = call i32 @isatty(i32 noundef %2286) #12
  %.not516 = icmp eq i32 %2287, 0
  br i1 %.not516, label %2288, label %2289

2288:                                             ; preds = %2284, %2278
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.5.sink1359 = phi ptr [ @.str.5, %2288 ], [ @.str.2, %2284 ]
  store i32 %2279, ptr %422, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = load i32, ptr %368, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef nonnull @.str.4) #12
  %2294 = load i32, ptr %368, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef nonnull @.str.4) #12
  %2296 = load i32, ptr %422, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #12
  %2298 = load i32, ptr %422, align 4, !tbaa !5
  %2299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.5.sink1359, i32 noundef %2291, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2293, ptr noundef %2295, ptr noundef %2297, i32 noundef %2298) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2300:                                             ; preds = %2273
  %2301 = getelementptr inbounds i8, ptr %2108, i64 232
  %2302 = load ptr, ptr %2301, align 8, !tbaa !51
  %2303 = getelementptr inbounds i8, ptr %2302, i64 927
  store i8 0, ptr %2303, align 1, !tbaa !58
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = add nsw i32 %2304, 1
  store i32 %2305, ptr @test_count, align 4, !tbaa !5
  %2306 = getelementptr inbounds i8, ptr %2108, i64 1856
  %2307 = getelementptr inbounds i8, ptr %2108, i64 1896
  %2308 = load ptr, ptr %2307, align 8, !tbaa !69
  %2309 = getelementptr inbounds i8, ptr %2308, i64 5
  %2310 = getelementptr inbounds i8, ptr %21, i64 8
  %2311 = load i32, ptr %2310, align 8, !tbaa !15
  %2312 = add i32 %2311, 17
  %2313 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %2306, ptr noundef nonnull %2309, i32 noundef %2312) #12
  %2314 = icmp eq i32 %2313, -1
  br i1 %2314, label %2315, label %2337

2315:                                             ; preds = %2300
  %2316 = load i32, ptr %422, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @s2n_print_stacktrace(ptr noundef %2317) #12
  %2319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc nuw i8 %2319 to i1
  br i1 %2320, label %2321, label %2325

2321:                                             ; preds = %2315
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @fileno(ptr noundef %2322) #12
  %2324 = call i32 @isatty(i32 noundef %2323) #12
  %.not565 = icmp eq i32 %2324, 0
  br i1 %.not565, label %2325, label %2326

2325:                                             ; preds = %2321, %2315
  br label %2326

2326:                                             ; preds = %2321, %2325
  %.str.5.sink1368 = phi ptr [ @.str.5, %2325 ], [ @.str.2, %2321 ]
  store i32 %2316, ptr %422, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = load i32, ptr %368, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror(i32 noundef %2329, ptr noundef nonnull @.str.4) #12
  %2331 = load i32, ptr %368, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror_debug(i32 noundef %2331, ptr noundef nonnull @.str.4) #12
  %2333 = load i32, ptr %422, align 4, !tbaa !5
  %2334 = call ptr @strerror(i32 noundef %2333) #12
  %2335 = load i32, ptr %422, align 4, !tbaa !5
  %2336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2327, ptr noundef nonnull %.str.5.sink1368, i32 noundef %2328, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2330, ptr noundef %2332, ptr noundef %2334, i32 noundef %2335) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2337:                                             ; preds = %2300
  %2338 = load i32, ptr %2310, align 8, !tbaa !15
  %2339 = load i32, ptr @test_count, align 4, !tbaa !5
  %2340 = add nsw i32 %2339, 1
  store i32 %2340, ptr @test_count, align 4, !tbaa !5
  %2341 = trunc i32 %2338 to i16
  %2342 = add i16 %2341, 17
  %2343 = load ptr, ptr %20, align 8, !tbaa !17
  %2344 = load ptr, ptr %2301, align 8, !tbaa !51
  %2345 = getelementptr inbounds i8, ptr %2344, i64 920
  %2346 = call i32 @s2n_record_parse_aead(ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256, ptr noundef nonnull %2108, i8 noundef zeroext 0, i16 noundef zeroext %2342, ptr noundef %2343, ptr noundef null, ptr noundef nonnull %2345, ptr noundef nonnull %2136) #12
  %2347 = icmp eq i32 %2346, -1
  br i1 %2347, label %2348, label %2370

2348:                                             ; preds = %2337
  %2349 = load i32, ptr %422, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @s2n_print_stacktrace(ptr noundef %2350) #12
  %2352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2353 = trunc nuw i8 %2352 to i1
  br i1 %2353, label %2354, label %2358

2354:                                             ; preds = %2348
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @fileno(ptr noundef %2355) #12
  %2357 = call i32 @isatty(i32 noundef %2356) #12
  %.not564 = icmp eq i32 %2357, 0
  br i1 %.not564, label %2358, label %2359

2358:                                             ; preds = %2354, %2348
  br label %2359

2359:                                             ; preds = %2354, %2358
  %.str.5.sink1377 = phi ptr [ @.str.5, %2358 ], [ @.str.2, %2354 ]
  store i32 %2349, ptr %422, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = load i32, ptr %368, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror(i32 noundef %2362, ptr noundef nonnull @.str.4) #12
  %2364 = load i32, ptr %368, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror_debug(i32 noundef %2364, ptr noundef nonnull @.str.4) #12
  %2366 = load i32, ptr %422, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #12
  %2368 = load i32, ptr %422, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2360, ptr noundef nonnull %.str.5.sink1377, i32 noundef %2361, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %2363, ptr noundef %2365, ptr noundef %2367, i32 noundef %2368) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2370:                                             ; preds = %2337
  %2371 = load ptr, ptr %2306, align 8, !tbaa !55
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = add nsw i32 %2372, 2
  store i32 %2373, ptr @test_count, align 4, !tbaa !5
  %bcmp517 = call i32 @bcmp(ptr noundef nonnull dereferenceable(11) %2371, ptr noundef nonnull dereferenceable(11) %.sroa.0162.0.copyload, i64 11)
  %2374 = icmp eq i32 %bcmp517, 0
  br i1 %2374, label %2397, label %2375

2375:                                             ; preds = %2370
  %2376 = load i32, ptr %422, align 4, !tbaa !5
  %2377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2378 = call i32 @s2n_print_stacktrace(ptr noundef %2377) #12
  %2379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2380 = trunc nuw i8 %2379 to i1
  br i1 %2380, label %2381, label %2385

2381:                                             ; preds = %2375
  %2382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2383 = call i32 @fileno(ptr noundef %2382) #12
  %2384 = call i32 @isatty(i32 noundef %2383) #12
  %.not518 = icmp eq i32 %2384, 0
  br i1 %.not518, label %2385, label %2386

2385:                                             ; preds = %2381, %2375
  br label %2386

2386:                                             ; preds = %2381, %2385
  %.str.5.sink1386 = phi ptr [ @.str.5, %2385 ], [ @.str.2, %2381 ]
  store i32 %2376, ptr %422, align 4, !tbaa !5
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = load i32, ptr @test_count, align 4, !tbaa !5
  %2389 = load i32, ptr %368, align 4, !tbaa !5
  %2390 = call ptr @s2n_strerror(i32 noundef %2389, ptr noundef nonnull @.str.4) #12
  %2391 = load i32, ptr %368, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror_debug(i32 noundef %2391, ptr noundef nonnull @.str.4) #12
  %2393 = load i32, ptr %422, align 4, !tbaa !5
  %2394 = call ptr @strerror(i32 noundef %2393) #12
  %2395 = load i32, ptr %422, align 4, !tbaa !5
  %2396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2387, ptr noundef nonnull %.str.5.sink1386, i32 noundef %2388, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2390, ptr noundef %2392, ptr noundef %2394, i32 noundef %2395) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2397:                                             ; preds = %2370
  %2398 = add nsw i32 %2372, 3
  store i32 %2398, ptr @test_count, align 4, !tbaa !5
  %2399 = call i32 @s2n_connection_free(ptr noundef nonnull %2108) #12
  %2400 = icmp eq i32 %2399, -1
  br i1 %2400, label %2401, label %2423

2401:                                             ; preds = %2397
  %2402 = load i32, ptr %422, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = call i32 @s2n_print_stacktrace(ptr noundef %2403) #12
  %2405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2406 = trunc nuw i8 %2405 to i1
  br i1 %2406, label %2407, label %2411

2407:                                             ; preds = %2401
  %2408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2409 = call i32 @fileno(ptr noundef %2408) #12
  %2410 = call i32 @isatty(i32 noundef %2409) #12
  %.not563 = icmp eq i32 %2410, 0
  br i1 %.not563, label %2411, label %2412

2411:                                             ; preds = %2407, %2401
  br label %2412

2412:                                             ; preds = %2407, %2411
  %.str.5.sink1395 = phi ptr [ @.str.5, %2411 ], [ @.str.2, %2407 ]
  store i32 %2402, ptr %422, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = load i32, ptr %368, align 4, !tbaa !5
  %2416 = call ptr @s2n_strerror(i32 noundef %2415, ptr noundef nonnull @.str.4) #12
  %2417 = load i32, ptr %368, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror_debug(i32 noundef %2417, ptr noundef nonnull @.str.4) #12
  %2419 = load i32, ptr %422, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #12
  %2421 = load i32, ptr %422, align 4, !tbaa !5
  %2422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2413, ptr noundef nonnull %.str.5.sink1395, i32 noundef %2414, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2416, ptr noundef %2418, ptr noundef %2420, i32 noundef %2421) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2423:                                             ; preds = %2397
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #12
  br label %2424

2424:                                             ; preds = %2423, %2234
  %.13 = phi i32 [ %.11, %2423 ], [ -1, %2234 ]
  %2425 = call i32 @s2n_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #12
  %2426 = call i32 @s2n_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  br i1 %2236, label %.preheader649, label %.loopexit

.preheader649:                                    ; preds = %2424
  %2427 = getelementptr inbounds i8, ptr %24, i64 8
  %2428 = load i8, ptr @__const.main.change_cipher_spec, align 1
  %2429 = getelementptr inbounds i8, ptr %27, i64 8
  %2430 = getelementptr inbounds i8, ptr %27, i64 12
  %2431 = getelementptr inbounds i8, ptr %27, i64 16
  br label %2433

2432:                                             ; preds = %3547
  br i1 %.not667, label %2433, label %.thread643, !llvm.loop !71

2433:                                             ; preds = %.preheader649, %2432
  %.15663 = phi i32 [ %.13, %.preheader649 ], [ %.18, %2432 ]
  %.not667 = phi i1 [ true, %.preheader649 ], [ false, %2432 ]
  %.0469662 = phi i64 [ 0, %.preheader649 ], [ 1, %2432 ]
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = add nsw i32 %2434, 1
  store i32 %2435, ptr @test_count, align 4, !tbaa !5
  %2436 = getelementptr inbounds [2 x i32], ptr @__const.main.modes, i64 0, i64 %.0469662
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @s2n_connection_new(i32 noundef %2437) #12
  %2439 = icmp eq ptr %2438, null
  br i1 %2439, label %2440, label %2462

2440:                                             ; preds = %2433
  %2441 = load i32, ptr %422, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442) #12
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc nuw i8 %2444 to i1
  br i1 %2445, label %2446, label %2450

2446:                                             ; preds = %2440
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @fileno(ptr noundef %2447) #12
  %2449 = call i32 @isatty(i32 noundef %2448) #12
  %.not562 = icmp eq i32 %2449, 0
  br i1 %.not562, label %2450, label %2451

2450:                                             ; preds = %2446, %2440
  br label %2451

2451:                                             ; preds = %2446, %2450
  %.str.5.sink1404 = phi ptr [ @.str.5, %2450 ], [ @.str.2, %2446 ]
  store i32 %2441, ptr %422, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = load i32, ptr %368, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef nonnull @.str.4) #12
  %2456 = load i32, ptr %368, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef nonnull @.str.4) #12
  %2458 = load i32, ptr %422, align 4, !tbaa !5
  %2459 = call ptr @strerror(i32 noundef %2458) #12
  %2460 = load i32, ptr %422, align 4, !tbaa !5
  %2461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef nonnull %.str.5.sink1404, i32 noundef %2453, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %2455, ptr noundef %2457, ptr noundef %2459, i32 noundef %2460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2462:                                             ; preds = %2433
  %2463 = getelementptr inbounds i8, ptr %2438, i64 220
  store i8 34, ptr %2463, align 4, !tbaa !18
  %2464 = getelementptr inbounds i8, ptr %2438, i64 219
  store i8 34, ptr %2464, align 1, !tbaa !72
  %2465 = getelementptr inbounds i8, ptr %2438, i64 232
  %2466 = load ptr, ptr %2465, align 8, !tbaa !51
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2466, align 8, !tbaa !60
  %2467 = getelementptr inbounds i8, ptr %2438, i64 640
  store ptr %2466, ptr %2467, align 8, !tbaa !59
  %2468 = getelementptr inbounds i8, ptr %2438, i64 632
  store ptr %2466, ptr %2468, align 8, !tbaa !73
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = add nsw i32 %2469, 1
  store i32 %2470, ptr @test_count, align 4, !tbaa !5
  %2471 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2472 = load ptr, ptr %2471, align 8, !tbaa !46
  %2473 = getelementptr inbounds i8, ptr %2472, i64 64
  %2474 = load ptr, ptr %2473, align 8, !tbaa !48
  %2475 = getelementptr inbounds i8, ptr %2466, i64 16
  %2476 = call i32 %2474(ptr noundef nonnull %2475) #12
  %2477 = call zeroext i1 @s2n_result_is_ok(i32 %2476)
  br i1 %2477, label %2500, label %2478

2478:                                             ; preds = %2462
  %2479 = load i32, ptr %422, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @s2n_print_stacktrace(ptr noundef %2480) #12
  %2482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2483 = trunc nuw i8 %2482 to i1
  br i1 %2483, label %2484, label %2488

2484:                                             ; preds = %2478
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = call i32 @fileno(ptr noundef %2485) #12
  %2487 = call i32 @isatty(i32 noundef %2486) #12
  %.not519 = icmp eq i32 %2487, 0
  br i1 %.not519, label %2488, label %2489

2488:                                             ; preds = %2484, %2478
  br label %2489

2489:                                             ; preds = %2484, %2488
  %.str.5.sink1413 = phi ptr [ @.str.5, %2488 ], [ @.str.2, %2484 ]
  store i32 %2479, ptr %422, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = load i32, ptr %368, align 4, !tbaa !5
  %2493 = call ptr @s2n_strerror(i32 noundef %2492, ptr noundef nonnull @.str.4) #12
  %2494 = load i32, ptr %368, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror_debug(i32 noundef %2494, ptr noundef nonnull @.str.4) #12
  %2496 = load i32, ptr %422, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #12
  %2498 = load i32, ptr %422, align 4, !tbaa !5
  %2499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef nonnull %.str.5.sink1413, i32 noundef %2491, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %2493, ptr noundef %2495, ptr noundef %2497, i32 noundef %2498) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2500:                                             ; preds = %2462
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2504 = load ptr, ptr %2503, align 8, !tbaa !46
  %2505 = getelementptr inbounds i8, ptr %2504, i64 64
  %2506 = load ptr, ptr %2505, align 8, !tbaa !48
  %2507 = load ptr, ptr %2465, align 8, !tbaa !51
  %2508 = getelementptr inbounds i8, ptr %2507, i64 8
  %2509 = call i32 %2506(ptr noundef nonnull %2508) #12
  %2510 = call zeroext i1 @s2n_result_is_ok(i32 %2509)
  br i1 %2510, label %2533, label %2511

2511:                                             ; preds = %2500
  %2512 = load i32, ptr %422, 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
  %.not520 = icmp eq i32 %2520, 0
  br i1 %.not520, label %2521, label %2522

2521:                                             ; preds = %2517, %2511
  br label %2522

2522:                                             ; preds = %2517, %2521
  %.str.5.sink1422 = phi ptr [ @.str.5, %2521 ], [ @.str.2, %2517 ]
  store i32 %2512, ptr %422, 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 %368, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror(i32 noundef %2525, ptr noundef nonnull @.str.4) #12
  %2527 = load i32, ptr %368, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror_debug(i32 noundef %2527, ptr noundef nonnull @.str.4) #12
  %2529 = load i32, ptr %422, align 4, !tbaa !5
  %2530 = call ptr @strerror(i32 noundef %2529) #12
  %2531 = load i32, ptr %422, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2523, ptr noundef nonnull %.str.5.sink1422, i32 noundef %2524, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %2526, ptr noundef %2528, ptr noundef %2530, i32 noundef %2531) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2533:                                             ; preds = %2500
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false)
  %2534 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %22, ptr noundef nonnull @.str.26) #12
  %2535 = call zeroext i1 @s2n_result_is_ok(i32 %2534)
  br i1 %2535, label %2537, label %.thread646

.thread646:                                       ; preds = %2533
  %2536 = call i32 @s2n_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #12
  br label %.loopexit

2537:                                             ; preds = %2533
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = add nsw i32 %2538, 1
  store i32 %2539, ptr @test_count, align 4, !tbaa !5
  %2540 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2541 = load ptr, ptr %2540, align 8, !tbaa !46
  %2542 = getelementptr inbounds i8, ptr %2541, i64 80
  %2543 = load ptr, ptr %2542, align 8, !tbaa !65
  %2544 = load ptr, ptr %2465, align 8, !tbaa !51
  %2545 = getelementptr inbounds i8, ptr %2544, i64 16
  %2546 = call i32 %2543(ptr noundef nonnull %2545, ptr noundef nonnull %22) #12
  %2547 = call zeroext i1 @s2n_result_is_ok(i32 %2546)
  br i1 %2547, label %2570, label %2548

2548:                                             ; preds = %2537
  %2549 = load i32, ptr %422, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @s2n_print_stacktrace(ptr noundef %2550) #12
  %2552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2553 = trunc nuw i8 %2552 to i1
  br i1 %2553, label %2554, label %2558

2554:                                             ; preds = %2548
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @fileno(ptr noundef %2555) #12
  %2557 = call i32 @isatty(i32 noundef %2556) #12
  %.not521 = icmp eq i32 %2557, 0
  br i1 %.not521, label %2558, label %2559

2558:                                             ; preds = %2554, %2548
  br label %2559

2559:                                             ; preds = %2554, %2558
  %.str.5.sink1431 = phi ptr [ @.str.5, %2558 ], [ @.str.2, %2554 ]
  store i32 %2549, ptr %422, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = load i32, ptr %368, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror(i32 noundef %2562, ptr noundef nonnull @.str.4) #12
  %2564 = load i32, ptr %368, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef nonnull @.str.4) #12
  %2566 = load i32, ptr %422, align 4, !tbaa !5
  %2567 = call ptr @strerror(i32 noundef %2566) #12
  %2568 = load i32, ptr %422, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef nonnull %.str.5.sink1431, i32 noundef %2561, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %2563, ptr noundef %2565, ptr noundef %2567, i32 noundef %2568) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2570:                                             ; preds = %2537
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !44
  %2574 = load ptr, ptr %2573, align 8, !tbaa !46
  %2575 = getelementptr inbounds i8, ptr %2574, i64 72
  %2576 = load ptr, ptr %2575, align 8, !tbaa !50
  %2577 = load ptr, ptr %2465, align 8, !tbaa !51
  %2578 = getelementptr inbounds i8, ptr %2577, i64 8
  %2579 = call i32 %2576(ptr noundef nonnull %2578, ptr noundef nonnull %22) #12
  %2580 = call zeroext i1 @s2n_result_is_ok(i32 %2579)
  br i1 %2580, label %2603, label %2581

2581:                                             ; preds = %2570
  %2582 = load i32, ptr %422, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583) #12
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc nuw i8 %2585 to i1
  br i1 %2586, label %2587, label %2591

2587:                                             ; preds = %2581
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #12
  %2590 = call i32 @isatty(i32 noundef %2589) #12
  %.not522 = icmp eq i32 %2590, 0
  br i1 %.not522, label %2591, label %2592

2591:                                             ; preds = %2587, %2581
  br label %2592

2592:                                             ; preds = %2587, %2591
  %.str.5.sink1440 = phi ptr [ @.str.5, %2591 ], [ @.str.2, %2587 ]
  store i32 %2582, ptr %422, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = load i32, ptr %368, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror(i32 noundef %2595, ptr noundef nonnull @.str.4) #12
  %2597 = load i32, ptr %368, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef nonnull @.str.4) #12
  %2599 = load i32, ptr %422, align 4, !tbaa !5
  %2600 = call ptr @strerror(i32 noundef %2599) #12
  %2601 = load i32, ptr %422, align 4, !tbaa !5
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef nonnull %.str.5.sink1440, i32 noundef %2594, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %2596, ptr noundef %2598, ptr noundef %2600, i32 noundef %2601) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2603:                                             ; preds = %2570
  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)
  %2604 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %23, ptr noundef nonnull @protected_record_hex) #12
  %2605 = call zeroext i1 @s2n_result_is_ok(i32 %2604)
  br i1 %2605, label %2606, label %3547

2606:                                             ; preds = %2603
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, i8 0, i64 24, i1 false)
  %2607 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %24, ptr noundef nonnull @.str.29) #12
  %2608 = call zeroext i1 @s2n_result_is_ok(i32 %2607)
  br i1 %2608, label %.preheader, label %3545

.preheader:                                       ; preds = %2606
  %2609 = load i32, ptr %2427, align 8, !tbaa !15
  %.not666 = icmp eq i32 %2609, 0
  br i1 %.not666, label %._crit_edge661, label %.lr.ph660

._crit_edge661:                                   ; preds = %.lr.ph660, %.preheader
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, i8 0, i64 24, i1 false)
  %2610 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %25, ptr noundef nonnull @plaintext_record_hex) #12
  %2611 = call zeroext i1 @s2n_result_is_ok(i32 %2610)
  br i1 %2611, label %2628, label %3543

.lr.ph660:                                        ; preds = %.preheader, %.lr.ph660
  %.0470659 = phi i64 [ %2624, %.lr.ph660 ], [ 0, %.preheader ]
  %2612 = load ptr, ptr %24, align 8, !tbaa !17
  %2613 = getelementptr inbounds i8, ptr %2612, i64 %.0470659
  %2614 = load i8, ptr %2613, align 1, !tbaa !58
  %2615 = load ptr, ptr %2465, align 8, !tbaa !51
  %2616 = getelementptr inbounds i8, ptr %2615, i64 904
  %2617 = getelementptr inbounds [16 x i8], ptr %2616, i64 0, i64 %.0470659
  store i8 %2614, ptr %2617, align 1, !tbaa !58
  %2618 = load ptr, ptr %24, align 8, !tbaa !17
  %2619 = getelementptr inbounds i8, ptr %2618, i64 %.0470659
  %2620 = load i8, ptr %2619, align 1, !tbaa !58
  %2621 = load ptr, ptr %2465, align 8, !tbaa !51
  %2622 = getelementptr inbounds i8, ptr %2621, i64 888
  %2623 = getelementptr inbounds [16 x i8], ptr %2622, i64 0, i64 %.0470659
  store i8 %2620, ptr %2623, align 1, !tbaa !58
  %2624 = add nuw nsw i64 %.0470659, 1
  %2625 = load i32, ptr %2427, align 8, !tbaa !15
  %2626 = zext i32 %2625 to i64
  %2627 = icmp ult i64 %2624, %2626
  br i1 %2627, label %.lr.ph660, label %._crit_edge661, !llvm.loop !74

2628:                                             ; preds = %._crit_edge661
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #12
  store i8 %2428, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #12
  store ptr %26, ptr %27, align 8, !tbaa !17
  store i32 1, ptr %2429, align 8, !tbaa !15
  store i32 0, ptr %2430, align 4, !tbaa !68
  %2629 = load i8, ptr %2431, align 8
  %2630 = and i8 %2629, -2
  store i8 %2630, ptr %2431, align 8
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = add nsw i32 %2631, 1
  store i32 %2632, ptr @test_count, align 4, !tbaa !5
  %2633 = call i32 @s2n_record_write(ptr noundef nonnull %2438, i8 noundef zeroext 20, ptr noundef nonnull %27) #12
  %2634 = call zeroext i1 @s2n_result_is_ok(i32 %2633)
  br i1 %2634, label %2657, label %2635

2635:                                             ; preds = %2628
  %2636 = load i32, ptr %422, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @s2n_print_stacktrace(ptr noundef %2637) #12
  %2639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2640 = trunc nuw i8 %2639 to i1
  br i1 %2640, label %2641, label %2645

2641:                                             ; preds = %2635
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @fileno(ptr noundef %2642) #12
  %2644 = call i32 @isatty(i32 noundef %2643) #12
  %.not523 = icmp eq i32 %2644, 0
  br i1 %.not523, label %2645, label %2646

2645:                                             ; preds = %2641, %2635
  br label %2646

2646:                                             ; preds = %2641, %2645
  %.str.5.sink1449 = phi ptr [ @.str.5, %2645 ], [ @.str.2, %2641 ]
  store i32 %2636, ptr %422, align 4, !tbaa !5
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = load i32, ptr @test_count, align 4, !tbaa !5
  %2649 = load i32, ptr %368, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror(i32 noundef %2649, ptr noundef nonnull @.str.4) #12
  %2651 = load i32, ptr %368, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror_debug(i32 noundef %2651, ptr noundef nonnull @.str.4) #12
  %2653 = load i32, ptr %422, align 4, !tbaa !5
  %2654 = call ptr @strerror(i32 noundef %2653) #12
  %2655 = load i32, ptr %422, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2647, ptr noundef nonnull %.str.5.sink1449, i32 noundef %2648, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %2650, ptr noundef %2652, ptr noundef %2654, i32 noundef %2655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2657:                                             ; preds = %2628
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #12
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = add nsw i32 %2658, 1
  store i32 %2659, ptr @test_count, align 4, !tbaa !5
  %2660 = getelementptr inbounds i8, ptr %2438, i64 1896
  %2661 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %2660, ptr noundef nonnull %28) #12
  %2662 = icmp eq i32 %2661, -1
  br i1 %2662, label %2663, label %2685

2663:                                             ; preds = %2657
  %2664 = load i32, ptr %422, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @s2n_print_stacktrace(ptr noundef %2665) #12
  %2667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2668 = trunc nuw i8 %2667 to i1
  br i1 %2668, label %2669, label %2673

2669:                                             ; preds = %2663
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @fileno(ptr noundef %2670) #12
  %2672 = call i32 @isatty(i32 noundef %2671) #12
  %.not561 = icmp eq i32 %2672, 0
  br i1 %.not561, label %2673, label %2674

2673:                                             ; preds = %2669, %2663
  br label %2674

2674:                                             ; preds = %2669, %2673
  %.str.5.sink1458 = phi ptr [ @.str.5, %2673 ], [ @.str.2, %2669 ]
  store i32 %2664, ptr %422, align 4, !tbaa !5
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = load i32, ptr %368, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror(i32 noundef %2677, ptr noundef nonnull @.str.4) #12
  %2679 = load i32, ptr %368, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror_debug(i32 noundef %2679, ptr noundef nonnull @.str.4) #12
  %2681 = load i32, ptr %422, align 4, !tbaa !5
  %2682 = call ptr @strerror(i32 noundef %2681) #12
  %2683 = load i32, ptr %422, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2675, ptr noundef nonnull %.str.5.sink1458, i32 noundef %2676, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %2678, ptr noundef %2680, ptr noundef %2682, i32 noundef %2683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2685:                                             ; preds = %2657
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = add nsw i32 %2686, 1
  store i32 %2687, ptr @test_count, align 4, !tbaa !5
  %2688 = load i8, ptr %28, align 1, !tbaa !58
  %2689 = icmp eq i8 %2688, 20
  br i1 %2689, label %2712, label %2690

2690:                                             ; preds = %2685
  %2691 = load i32, ptr %422, align 4, !tbaa !5
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = call i32 @s2n_print_stacktrace(ptr noundef %2692) #12
  %2694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2695 = trunc nuw i8 %2694 to i1
  br i1 %2695, label %2696, label %2700

2696:                                             ; preds = %2690
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = call i32 @fileno(ptr noundef %2697) #12
  %2699 = call i32 @isatty(i32 noundef %2698) #12
  %.not524 = icmp eq i32 %2699, 0
  br i1 %.not524, label %2700, label %2701

2700:                                             ; preds = %2696, %2690
  br label %2701

2701:                                             ; preds = %2696, %2700
  %.str.5.sink1467 = phi ptr [ @.str.5, %2700 ], [ @.str.2, %2696 ]
  store i32 %2691, ptr %422, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = load i32, ptr %368, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror(i32 noundef %2704, ptr noundef nonnull @.str.4) #12
  %2706 = load i32, ptr %368, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror_debug(i32 noundef %2706, ptr noundef nonnull @.str.4) #12
  %2708 = load i32, ptr %422, align 4, !tbaa !5
  %2709 = call ptr @strerror(i32 noundef %2708) #12
  %2710 = load i32, ptr %422, align 4, !tbaa !5
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2702, ptr noundef nonnull %.str.5.sink1467, i32 noundef %2703, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %2705, ptr noundef %2707, ptr noundef %2709, i32 noundef %2710) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2712:                                             ; preds = %2685
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %29) #12
  %2713 = add nsw i32 %2686, 2
  store i32 %2713, ptr @test_count, align 4, !tbaa !5
  %2714 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %2660, ptr noundef nonnull %29) #12
  %2715 = icmp eq i32 %2714, -1
  br i1 %2715, label %2716, label %2738

2716:                                             ; preds = %2712
  %2717 = load i32, ptr %422, align 4, !tbaa !5
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = call i32 @s2n_print_stacktrace(ptr noundef %2718) #12
  %2720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2721 = trunc nuw i8 %2720 to i1
  br i1 %2721, label %2722, label %2726

2722:                                             ; preds = %2716
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @fileno(ptr noundef %2723) #12
  %2725 = call i32 @isatty(i32 noundef %2724) #12
  %.not560 = icmp eq i32 %2725, 0
  br i1 %.not560, label %2726, label %2727

2726:                                             ; preds = %2722, %2716
  br label %2727

2727:                                             ; preds = %2722, %2726
  %.str.5.sink1476 = phi ptr [ @.str.5, %2726 ], [ @.str.2, %2722 ]
  store i32 %2717, ptr %422, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = load i32, ptr %368, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror(i32 noundef %2730, ptr noundef nonnull @.str.4) #12
  %2732 = load i32, ptr %368, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror_debug(i32 noundef %2732, ptr noundef nonnull @.str.4) #12
  %2734 = load i32, ptr %422, align 4, !tbaa !5
  %2735 = call ptr @strerror(i32 noundef %2734) #12
  %2736 = load i32, ptr %422, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef nonnull %.str.5.sink1476, i32 noundef %2729, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %2731, ptr noundef %2733, ptr noundef %2735, i32 noundef %2736) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2738:                                             ; preds = %2712
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = add nsw i32 %2739, 1
  store i32 %2740, ptr @test_count, align 4, !tbaa !5
  %2741 = load i16, ptr %29, align 2, !tbaa !75
  %2742 = icmp eq i16 %2741, 771
  br i1 %2742, label %2765, label %2743

2743:                                             ; preds = %2738
  %2744 = load i32, ptr %422, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @s2n_print_stacktrace(ptr noundef %2745) #12
  %2747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2748 = trunc nuw i8 %2747 to i1
  br i1 %2748, label %2749, label %2753

2749:                                             ; preds = %2743
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @fileno(ptr noundef %2750) #12
  %2752 = call i32 @isatty(i32 noundef %2751) #12
  %.not525 = icmp eq i32 %2752, 0
  br i1 %.not525, label %2753, label %2754

2753:                                             ; preds = %2749, %2743
  br label %2754

2754:                                             ; preds = %2749, %2753
  %.str.5.sink1485 = phi ptr [ @.str.5, %2753 ], [ @.str.2, %2749 ]
  store i32 %2744, ptr %422, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = load i32, ptr @test_count, align 4, !tbaa !5
  %2757 = load i32, ptr %368, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror(i32 noundef %2757, ptr noundef nonnull @.str.4) #12
  %2759 = load i32, ptr %368, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror_debug(i32 noundef %2759, ptr noundef nonnull @.str.4) #12
  %2761 = load i32, ptr %422, align 4, !tbaa !5
  %2762 = call ptr @strerror(i32 noundef %2761) #12
  %2763 = load i32, ptr %422, align 4, !tbaa !5
  %2764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2755, ptr noundef nonnull %.str.5.sink1485, i32 noundef %2756, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %2758, ptr noundef %2760, ptr noundef %2762, i32 noundef %2763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2765:                                             ; preds = %2738
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %29) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %30) #12
  %2766 = add nsw i32 %2739, 2
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %2660, ptr noundef nonnull %30) #12
  %2768 = icmp eq i32 %2767, -1
  br i1 %2768, label %2769, label %2791

2769:                                             ; preds = %2765
  %2770 = load i32, ptr %422, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = call i32 @s2n_print_stacktrace(ptr noundef %2771) #12
  %2773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2774 = trunc nuw i8 %2773 to i1
  br i1 %2774, label %2775, label %2779

2775:                                             ; preds = %2769
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @fileno(ptr noundef %2776) #12
  %2778 = call i32 @isatty(i32 noundef %2777) #12
  %.not559 = icmp eq i32 %2778, 0
  br i1 %.not559, label %2779, label %2780

2779:                                             ; preds = %2775, %2769
  br label %2780

2780:                                             ; preds = %2775, %2779
  %.str.5.sink1494 = phi ptr [ @.str.5, %2779 ], [ @.str.2, %2775 ]
  store i32 %2770, ptr %422, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = load i32, ptr %368, align 4, !tbaa !5
  %2784 = call ptr @s2n_strerror(i32 noundef %2783, ptr noundef nonnull @.str.4) #12
  %2785 = load i32, ptr %368, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror_debug(i32 noundef %2785, ptr noundef nonnull @.str.4) #12
  %2787 = load i32, ptr %422, align 4, !tbaa !5
  %2788 = call ptr @strerror(i32 noundef %2787) #12
  %2789 = load i32, ptr %422, align 4, !tbaa !5
  %2790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef nonnull %.str.5.sink1494, i32 noundef %2782, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %2784, ptr noundef %2786, ptr noundef %2788, i32 noundef %2789) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2791:                                             ; preds = %2765
  %2792 = load i32, ptr @test_count, align 4, !tbaa !5
  %2793 = add nsw i32 %2792, 1
  store i32 %2793, ptr @test_count, align 4, !tbaa !5
  %2794 = load i16, ptr %30, align 2, !tbaa !75
  %2795 = icmp eq i16 %2794, 1
  br i1 %2795, label %2818, label %2796

2796:                                             ; preds = %2791
  %2797 = load i32, ptr %422, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = call i32 @s2n_print_stacktrace(ptr noundef %2798) #12
  %2800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2801 = trunc nuw i8 %2800 to i1
  br i1 %2801, label %2802, label %2806

2802:                                             ; preds = %2796
  %2803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2804 = call i32 @fileno(ptr noundef %2803) #12
  %2805 = call i32 @isatty(i32 noundef %2804) #12
  %.not526 = icmp eq i32 %2805, 0
  br i1 %.not526, label %2806, label %2807

2806:                                             ; preds = %2802, %2796
  br label %2807

2807:                                             ; preds = %2802, %2806
  %.str.5.sink1503 = phi ptr [ @.str.5, %2806 ], [ @.str.2, %2802 ]
  store i32 %2797, ptr %422, align 4, !tbaa !5
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = load i32, ptr @test_count, align 4, !tbaa !5
  %2810 = load i32, ptr %368, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror(i32 noundef %2810, ptr noundef nonnull @.str.4) #12
  %2812 = load i32, ptr %368, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror_debug(i32 noundef %2812, ptr noundef nonnull @.str.4) #12
  %2814 = load i32, ptr %422, align 4, !tbaa !5
  %2815 = call ptr @strerror(i32 noundef %2814) #12
  %2816 = load i32, ptr %422, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2808, ptr noundef nonnull %.str.5.sink1503, i32 noundef %2809, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %2811, ptr noundef %2813, ptr noundef %2815, i32 noundef %2816) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2818:                                             ; preds = %2791
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %30) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #12
  %2819 = add nsw i32 %2792, 2
  store i32 %2819, ptr @test_count, align 4, !tbaa !5
  %2820 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %2660, ptr noundef nonnull %31) #12
  %2821 = icmp eq i32 %2820, -1
  br i1 %2821, label %2822, label %2844

2822:                                             ; preds = %2818
  %2823 = load i32, ptr %422, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = call i32 @s2n_print_stacktrace(ptr noundef %2824) #12
  %2826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2827 = trunc nuw i8 %2826 to i1
  br i1 %2827, label %2828, label %2832

2828:                                             ; preds = %2822
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = call i32 @fileno(ptr noundef %2829) #12
  %2831 = call i32 @isatty(i32 noundef %2830) #12
  %.not558 = icmp eq i32 %2831, 0
  br i1 %.not558, label %2832, label %2833

2832:                                             ; preds = %2828, %2822
  br label %2833

2833:                                             ; preds = %2828, %2832
  %.str.5.sink1512 = phi ptr [ @.str.5, %2832 ], [ @.str.2, %2828 ]
  store i32 %2823, ptr %422, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = load i32, ptr %368, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror(i32 noundef %2836, ptr noundef nonnull @.str.4) #12
  %2838 = load i32, ptr %368, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror_debug(i32 noundef %2838, ptr noundef nonnull @.str.4) #12
  %2840 = load i32, ptr %422, align 4, !tbaa !5
  %2841 = call ptr @strerror(i32 noundef %2840) #12
  %2842 = load i32, ptr %422, align 4, !tbaa !5
  %2843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2834, ptr noundef nonnull %.str.5.sink1512, i32 noundef %2835, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %2837, ptr noundef %2839, ptr noundef %2841, i32 noundef %2842) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2844:                                             ; preds = %2818
  %2845 = load i32, ptr @test_count, align 4, !tbaa !5
  %2846 = add nsw i32 %2845, 1
  store i32 %2846, ptr @test_count, align 4, !tbaa !5
  %2847 = load i8, ptr %31, align 1, !tbaa !58
  %2848 = icmp eq i8 %2847, 1
  br i1 %2848, label %2871, label %2849

2849:                                             ; preds = %2844
  %2850 = load i32, ptr %422, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @s2n_print_stacktrace(ptr noundef %2851) #12
  %2853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2854 = trunc nuw i8 %2853 to i1
  br i1 %2854, label %2855, label %2859

2855:                                             ; preds = %2849
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = call i32 @fileno(ptr noundef %2856) #12
  %2858 = call i32 @isatty(i32 noundef %2857) #12
  %.not527 = icmp eq i32 %2858, 0
  br i1 %.not527, label %2859, label %2860

2859:                                             ; preds = %2855, %2849
  br label %2860

2860:                                             ; preds = %2855, %2859
  %.str.5.sink1521 = phi ptr [ @.str.5, %2859 ], [ @.str.2, %2855 ]
  store i32 %2850, ptr %422, align 4, !tbaa !5
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = load i32, ptr %368, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror(i32 noundef %2863, ptr noundef nonnull @.str.4) #12
  %2865 = load i32, ptr %368, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror_debug(i32 noundef %2865, ptr noundef nonnull @.str.4) #12
  %2867 = load i32, ptr %422, align 4, !tbaa !5
  %2868 = call ptr @strerror(i32 noundef %2867) #12
  %2869 = load i32, ptr %422, align 4, !tbaa !5
  %2870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2861, ptr noundef nonnull %.str.5.sink1521, i32 noundef %2862, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %2864, ptr noundef %2866, ptr noundef %2868, i32 noundef %2869) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2871:                                             ; preds = %2844
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #12
  %2872 = add nsw i32 %2845, 2
  store i32 %2872, ptr @test_count, align 4, !tbaa !5
  %2873 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %2660) #12
  %2874 = icmp eq i32 %2873, -1
  br i1 %2874, label %2875, label %2897

2875:                                             ; preds = %2871
  %2876 = load i32, ptr %422, align 4, !tbaa !5
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = call i32 @s2n_print_stacktrace(ptr noundef %2877) #12
  %2879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2880 = trunc nuw i8 %2879 to i1
  br i1 %2880, label %2881, label %2885

2881:                                             ; preds = %2875
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = call i32 @fileno(ptr noundef %2882) #12
  %2884 = call i32 @isatty(i32 noundef %2883) #12
  %.not557 = icmp eq i32 %2884, 0
  br i1 %.not557, label %2885, label %2886

2885:                                             ; preds = %2881, %2875
  br label %2886

2886:                                             ; preds = %2881, %2885
  %.str.5.sink1530 = phi ptr [ @.str.5, %2885 ], [ @.str.2, %2881 ]
  store i32 %2876, ptr %422, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = load i32, ptr %368, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror(i32 noundef %2889, ptr noundef nonnull @.str.4) #12
  %2891 = load i32, ptr %368, align 4, !tbaa !5
  %2892 = call ptr @s2n_strerror_debug(i32 noundef %2891, ptr noundef nonnull @.str.4) #12
  %2893 = load i32, ptr %422, align 4, !tbaa !5
  %2894 = call ptr @strerror(i32 noundef %2893) #12
  %2895 = load i32, ptr %422, align 4, !tbaa !5
  %2896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2887, ptr noundef nonnull %.str.5.sink1530, i32 noundef %2888, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %2890, ptr noundef %2892, ptr noundef %2894, i32 noundef %2895) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2897:                                             ; preds = %2871
  %2898 = load i32, ptr @test_count, align 4, !tbaa !5
  %2899 = add nsw i32 %2898, 1
  store i32 %2899, ptr @test_count, align 4, !tbaa !5
  %2900 = call i32 @s2n_record_write(ptr noundef nonnull %2438, i8 noundef zeroext 22, ptr noundef nonnull %27) #12
  %2901 = call zeroext i1 @s2n_result_is_ok(i32 %2900)
  br i1 %2901, label %2924, label %2902

2902:                                             ; preds = %2897
  %2903 = load i32, ptr %422, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = call i32 @s2n_print_stacktrace(ptr noundef %2904) #12
  %2906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2907 = trunc nuw i8 %2906 to i1
  br i1 %2907, label %2908, label %2912

2908:                                             ; preds = %2902
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @fileno(ptr noundef %2909) #12
  %2911 = call i32 @isatty(i32 noundef %2910) #12
  %.not528 = icmp eq i32 %2911, 0
  br i1 %.not528, label %2912, label %2913

2912:                                             ; preds = %2908, %2902
  br label %2913

2913:                                             ; preds = %2908, %2912
  %.str.5.sink1539 = phi ptr [ @.str.5, %2912 ], [ @.str.2, %2908 ]
  store i32 %2903, ptr %422, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = load i32, ptr %368, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror(i32 noundef %2916, ptr noundef nonnull @.str.4) #12
  %2918 = load i32, ptr %368, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror_debug(i32 noundef %2918, ptr noundef nonnull @.str.4) #12
  %2920 = load i32, ptr %422, align 4, !tbaa !5
  %2921 = call ptr @strerror(i32 noundef %2920) #12
  %2922 = load i32, ptr %422, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2914, ptr noundef nonnull %.str.5.sink1539, i32 noundef %2915, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %2917, ptr noundef %2919, ptr noundef %2921, i32 noundef %2922) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2924:                                             ; preds = %2897
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #12
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr @test_count, align 4, !tbaa !5
  %2927 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %2660, ptr noundef nonnull %32) #12
  %2928 = icmp eq i32 %2927, -1
  br i1 %2928, label %2929, label %2951

2929:                                             ; preds = %2924
  %2930 = load i32, ptr %422, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = call i32 @s2n_print_stacktrace(ptr noundef %2931) #12
  %2933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2934 = trunc nuw i8 %2933 to i1
  br i1 %2934, label %2935, label %2939

2935:                                             ; preds = %2929
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = call i32 @fileno(ptr noundef %2936) #12
  %2938 = call i32 @isatty(i32 noundef %2937) #12
  %.not556 = icmp eq i32 %2938, 0
  br i1 %.not556, label %2939, label %2940

2939:                                             ; preds = %2935, %2929
  br label %2940

2940:                                             ; preds = %2935, %2939
  %.str.5.sink1548 = phi ptr [ @.str.5, %2939 ], [ @.str.2, %2935 ]
  store i32 %2930, ptr %422, align 4, !tbaa !5
  %2941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2942 = load i32, ptr @test_count, align 4, !tbaa !5
  %2943 = load i32, ptr %368, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror(i32 noundef %2943, ptr noundef nonnull @.str.4) #12
  %2945 = load i32, ptr %368, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror_debug(i32 noundef %2945, ptr noundef nonnull @.str.4) #12
  %2947 = load i32, ptr %422, align 4, !tbaa !5
  %2948 = call ptr @strerror(i32 noundef %2947) #12
  %2949 = load i32, ptr %422, align 4, !tbaa !5
  %2950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2941, ptr noundef nonnull %.str.5.sink1548, i32 noundef %2942, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %2944, ptr noundef %2946, ptr noundef %2948, i32 noundef %2949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2951:                                             ; preds = %2924
  %2952 = load i32, ptr @test_count, align 4, !tbaa !5
  %2953 = add nsw i32 %2952, 1
  store i32 %2953, ptr @test_count, align 4, !tbaa !5
  %2954 = load i8, ptr %32, align 1, !tbaa !58
  %2955 = icmp eq i8 %2954, 23
  br i1 %2955, label %2978, label %2956

2956:                                             ; preds = %2951
  %2957 = load i32, ptr %422, align 4, !tbaa !5
  %2958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2959 = call i32 @s2n_print_stacktrace(ptr noundef %2958) #12
  %2960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2961 = trunc nuw i8 %2960 to i1
  br i1 %2961, label %2962, label %2966

2962:                                             ; preds = %2956
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @fileno(ptr noundef %2963) #12
  %2965 = call i32 @isatty(i32 noundef %2964) #12
  %.not529 = icmp eq i32 %2965, 0
  br i1 %.not529, label %2966, label %2967

2966:                                             ; preds = %2962, %2956
  br label %2967

2967:                                             ; preds = %2962, %2966
  %.str.5.sink1557 = phi ptr [ @.str.5, %2966 ], [ @.str.2, %2962 ]
  store i32 %2957, ptr %422, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = load i32, ptr %368, align 4, !tbaa !5
  %2971 = call ptr @s2n_strerror(i32 noundef %2970, ptr noundef nonnull @.str.4) #12
  %2972 = load i32, ptr %368, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror_debug(i32 noundef %2972, ptr noundef nonnull @.str.4) #12
  %2974 = load i32, ptr %422, align 4, !tbaa !5
  %2975 = call ptr @strerror(i32 noundef %2974) #12
  %2976 = load i32, ptr %422, align 4, !tbaa !5
  %2977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef nonnull %.str.5.sink1557, i32 noundef %2969, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %2971, ptr noundef %2973, ptr noundef %2975, i32 noundef %2976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2978:                                             ; preds = %2951
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %33) #12
  %2979 = add nsw i32 %2952, 2
  store i32 %2979, ptr @test_count, align 4, !tbaa !5
  %2980 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %2660, ptr noundef nonnull %33) #12
  %2981 = icmp eq i32 %2980, -1
  br i1 %2981, label %2982, label %3004

2982:                                             ; preds = %2978
  %2983 = load i32, ptr %422, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = call i32 @s2n_print_stacktrace(ptr noundef %2984) #12
  %2986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2987 = trunc nuw i8 %2986 to i1
  br i1 %2987, label %2988, label %2992

2988:                                             ; preds = %2982
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = call i32 @fileno(ptr noundef %2989) #12
  %2991 = call i32 @isatty(i32 noundef %2990) #12
  %.not555 = icmp eq i32 %2991, 0
  br i1 %.not555, label %2992, label %2993

2992:                                             ; preds = %2988, %2982
  br label %2993

2993:                                             ; preds = %2988, %2992
  %.str.5.sink1566 = phi ptr [ @.str.5, %2992 ], [ @.str.2, %2988 ]
  store i32 %2983, ptr %422, align 4, !tbaa !5
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = load i32, ptr @test_count, align 4, !tbaa !5
  %2996 = load i32, ptr %368, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror(i32 noundef %2996, ptr noundef nonnull @.str.4) #12
  %2998 = load i32, ptr %368, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror_debug(i32 noundef %2998, ptr noundef nonnull @.str.4) #12
  %3000 = load i32, ptr %422, align 4, !tbaa !5
  %3001 = call ptr @strerror(i32 noundef %3000) #12
  %3002 = load i32, ptr %422, align 4, !tbaa !5
  %3003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2994, ptr noundef nonnull %.str.5.sink1566, i32 noundef %2995, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %2997, ptr noundef %2999, ptr noundef %3001, i32 noundef %3002) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3004:                                             ; preds = %2978
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = add nsw i32 %3005, 1
  store i32 %3006, ptr @test_count, align 4, !tbaa !5
  %3007 = load i16, ptr %33, align 2, !tbaa !75
  %3008 = icmp eq i16 %3007, 771
  br i1 %3008, label %3031, label %3009

3009:                                             ; preds = %3004
  %3010 = load i32, ptr %422, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = call i32 @s2n_print_stacktrace(ptr noundef %3011) #12
  %3013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3014 = trunc nuw i8 %3013 to i1
  br i1 %3014, label %3015, label %3019

3015:                                             ; preds = %3009
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @fileno(ptr noundef %3016) #12
  %3018 = call i32 @isatty(i32 noundef %3017) #12
  %.not530 = icmp eq i32 %3018, 0
  br i1 %.not530, label %3019, label %3020

3019:                                             ; preds = %3015, %3009
  br label %3020

3020:                                             ; preds = %3015, %3019
  %.str.5.sink1575 = phi ptr [ @.str.5, %3019 ], [ @.str.2, %3015 ]
  store i32 %3010, ptr %422, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = load i32, ptr %368, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror(i32 noundef %3023, ptr noundef nonnull @.str.4) #12
  %3025 = load i32, ptr %368, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror_debug(i32 noundef %3025, ptr noundef nonnull @.str.4) #12
  %3027 = load i32, ptr %422, align 4, !tbaa !5
  %3028 = call ptr @strerror(i32 noundef %3027) #12
  %3029 = load i32, ptr %422, align 4, !tbaa !5
  %3030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3021, ptr noundef nonnull %.str.5.sink1575, i32 noundef %3022, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %3024, ptr noundef %3026, ptr noundef %3028, i32 noundef %3029) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3031:                                             ; preds = %3004
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %33) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %34) #12
  %3032 = add nsw i32 %3005, 2
  store i32 %3032, ptr @test_count, align 4, !tbaa !5
  %3033 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %2660, ptr noundef nonnull %34) #12
  %3034 = icmp eq i32 %3033, -1
  br i1 %3034, label %3035, label %3057

3035:                                             ; preds = %3031
  %3036 = load i32, ptr %422, align 4, !tbaa !5
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = call i32 @s2n_print_stacktrace(ptr noundef %3037) #12
  %3039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3040 = trunc nuw i8 %3039 to i1
  br i1 %3040, label %3041, label %3045

3041:                                             ; preds = %3035
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @fileno(ptr noundef %3042) #12
  %3044 = call i32 @isatty(i32 noundef %3043) #12
  %.not554 = icmp eq i32 %3044, 0
  br i1 %.not554, label %3045, label %3046

3045:                                             ; preds = %3041, %3035
  br label %3046

3046:                                             ; preds = %3041, %3045
  %.str.5.sink1584 = phi ptr [ @.str.5, %3045 ], [ @.str.2, %3041 ]
  store i32 %3036, ptr %422, align 4, !tbaa !5
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = load i32, ptr %368, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror(i32 noundef %3049, ptr noundef nonnull @.str.4) #12
  %3051 = load i32, ptr %368, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror_debug(i32 noundef %3051, ptr noundef nonnull @.str.4) #12
  %3053 = load i32, ptr %422, align 4, !tbaa !5
  %3054 = call ptr @strerror(i32 noundef %3053) #12
  %3055 = load i32, ptr %422, align 4, !tbaa !5
  %3056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3047, ptr noundef nonnull %.str.5.sink1584, i32 noundef %3048, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3050, ptr noundef %3052, ptr noundef %3054, i32 noundef %3055) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3057:                                             ; preds = %3031
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = add nsw i32 %3058, 1
  store i32 %3059, ptr @test_count, align 4, !tbaa !5
  %3060 = load i16, ptr %34, align 2, !tbaa !75
  %3061 = icmp eq i16 %3060, 18
  br i1 %3061, label %3084, label %3062

3062:                                             ; preds = %3057
  %3063 = load i32, ptr %422, align 4, !tbaa !5
  %3064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3065 = call i32 @s2n_print_stacktrace(ptr noundef %3064) #12
  %3066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3067 = trunc nuw i8 %3066 to i1
  br i1 %3067, label %3068, label %3072

3068:                                             ; preds = %3062
  %3069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3070 = call i32 @fileno(ptr noundef %3069) #12
  %3071 = call i32 @isatty(i32 noundef %3070) #12
  %.not531 = icmp eq i32 %3071, 0
  br i1 %.not531, label %3072, label %3073

3072:                                             ; preds = %3068, %3062
  br label %3073

3073:                                             ; preds = %3068, %3072
  %.str.5.sink1593 = phi ptr [ @.str.5, %3072 ], [ @.str.2, %3068 ]
  store i32 %3063, ptr %422, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = load i32, ptr %368, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror(i32 noundef %3076, ptr noundef nonnull @.str.4) #12
  %3078 = load i32, ptr %368, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror_debug(i32 noundef %3078, ptr noundef nonnull @.str.4) #12
  %3080 = load i32, ptr %422, align 4, !tbaa !5
  %3081 = call ptr @strerror(i32 noundef %3080) #12
  %3082 = load i32, ptr %422, align 4, !tbaa !5
  %3083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3074, ptr noundef nonnull %.str.5.sink1593, i32 noundef %3075, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3077, ptr noundef %3079, ptr noundef %3081, i32 noundef %3082) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3084:                                             ; preds = %3057
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %34) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #12
  %3085 = add nsw i32 %3058, 2
  store i32 %3085, ptr @test_count, align 4, !tbaa !5
  %3086 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %2660, ptr noundef nonnull %35) #12
  %3087 = icmp eq i32 %3086, -1
  br i1 %3087, label %3088, label %3110

3088:                                             ; preds = %3084
  %3089 = load i32, ptr %422, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = call i32 @s2n_print_stacktrace(ptr noundef %3090) #12
  %3092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3093 = trunc nuw i8 %3092 to i1
  br i1 %3093, label %3094, label %3098

3094:                                             ; preds = %3088
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @fileno(ptr noundef %3095) #12
  %3097 = call i32 @isatty(i32 noundef %3096) #12
  %.not553 = icmp eq i32 %3097, 0
  br i1 %.not553, label %3098, label %3099

3098:                                             ; preds = %3094, %3088
  br label %3099

3099:                                             ; preds = %3094, %3098
  %.str.5.sink1602 = phi ptr [ @.str.5, %3098 ], [ @.str.2, %3094 ]
  store i32 %3089, ptr %422, align 4, !tbaa !5
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = load i32, ptr %368, align 4, !tbaa !5
  %3103 = call ptr @s2n_strerror(i32 noundef %3102, ptr noundef nonnull @.str.4) #12
  %3104 = load i32, ptr %368, align 4, !tbaa !5
  %3105 = call ptr @s2n_strerror_debug(i32 noundef %3104, ptr noundef nonnull @.str.4) #12
  %3106 = load i32, ptr %422, align 4, !tbaa !5
  %3107 = call ptr @strerror(i32 noundef %3106) #12
  %3108 = load i32, ptr %422, align 4, !tbaa !5
  %3109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3100, ptr noundef nonnull %.str.5.sink1602, i32 noundef %3101, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %3103, ptr noundef %3105, ptr noundef %3107, i32 noundef %3108) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3110:                                             ; preds = %3084
  %3111 = load i32, ptr @test_count, align 4, !tbaa !5
  %3112 = add nsw i32 %3111, 1
  store i32 %3112, ptr @test_count, align 4, !tbaa !5
  %3113 = load i8, ptr %35, align 1, !tbaa !58
  %3114 = icmp eq i8 %3113, -40
  br i1 %3114, label %3137, label %3115

3115:                                             ; preds = %3110
  %3116 = load i32, ptr %422, align 4, !tbaa !5
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = call i32 @s2n_print_stacktrace(ptr noundef %3117) #12
  %3119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3120 = trunc nuw i8 %3119 to i1
  br i1 %3120, label %3121, label %3125

3121:                                             ; preds = %3115
  %3122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3123 = call i32 @fileno(ptr noundef %3122) #12
  %3124 = call i32 @isatty(i32 noundef %3123) #12
  %.not532 = icmp eq i32 %3124, 0
  br i1 %.not532, label %3125, label %3126

3125:                                             ; preds = %3121, %3115
  br label %3126

3126:                                             ; preds = %3121, %3125
  %.str.5.sink1611 = phi ptr [ @.str.5, %3125 ], [ @.str.2, %3121 ]
  store i32 %3116, ptr %422, align 4, !tbaa !5
  %3127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3128 = load i32, ptr @test_count, align 4, !tbaa !5
  %3129 = load i32, ptr %368, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror(i32 noundef %3129, ptr noundef nonnull @.str.4) #12
  %3131 = load i32, ptr %368, align 4, !tbaa !5
  %3132 = call ptr @s2n_strerror_debug(i32 noundef %3131, ptr noundef nonnull @.str.4) #12
  %3133 = load i32, ptr %422, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #12
  %3135 = load i32, ptr %422, align 4, !tbaa !5
  %3136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3127, ptr noundef nonnull %.str.5.sink1611, i32 noundef %3128, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %3130, ptr noundef %3132, ptr noundef %3134, i32 noundef %3135) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3137:                                             ; preds = %3110
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #12
  %3138 = add nsw i32 %3111, 2
  store i32 %3138, ptr @test_count, align 4, !tbaa !5
  %3139 = getelementptr inbounds i8, ptr %2438, i64 1776
  %3140 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %3139, i8 noundef zeroext 20) #12
  %3141 = icmp eq i32 %3140, -1
  br i1 %3141, label %3142, label %3164

3142:                                             ; preds = %3137
  %3143 = load i32, ptr %422, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @s2n_print_stacktrace(ptr noundef %3144) #12
  %3146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3147 = trunc nuw i8 %3146 to i1
  br i1 %3147, label %3148, label %3152

3148:                                             ; preds = %3142
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @fileno(ptr noundef %3149) #12
  %3151 = call i32 @isatty(i32 noundef %3150) #12
  %.not552 = icmp eq i32 %3151, 0
  br i1 %.not552, label %3152, label %3153

3152:                                             ; preds = %3148, %3142
  br label %3153

3153:                                             ; preds = %3148, %3152
  %.str.5.sink1620 = phi ptr [ @.str.5, %3152 ], [ @.str.2, %3148 ]
  store i32 %3143, ptr %422, align 4, !tbaa !5
  %3154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = load i32, ptr %368, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror(i32 noundef %3156, ptr noundef nonnull @.str.4) #12
  %3158 = load i32, ptr %368, align 4, !tbaa !5
  %3159 = call ptr @s2n_strerror_debug(i32 noundef %3158, ptr noundef nonnull @.str.4) #12
  %3160 = load i32, ptr %422, align 4, !tbaa !5
  %3161 = call ptr @strerror(i32 noundef %3160) #12
  %3162 = load i32, ptr %422, align 4, !tbaa !5
  %3163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3154, ptr noundef nonnull %.str.5.sink1620, i32 noundef %3155, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3157, ptr noundef %3159, ptr noundef %3161, i32 noundef %3162) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3164:                                             ; preds = %3137
  %3165 = load i32, ptr @test_count, align 4, !tbaa !5
  %3166 = add nsw i32 %3165, 1
  store i32 %3166, ptr @test_count, align 4, !tbaa !5
  %3167 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %3139, i16 noundef zeroext 771) #12
  %3168 = icmp eq i32 %3167, -1
  br i1 %3168, label %3169, label %3191

3169:                                             ; preds = %3164
  %3170 = load i32, ptr %422, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @s2n_print_stacktrace(ptr noundef %3171) #12
  %3173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3174 = trunc nuw i8 %3173 to i1
  br i1 %3174, label %3175, label %3179

3175:                                             ; preds = %3169
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @fileno(ptr noundef %3176) #12
  %3178 = call i32 @isatty(i32 noundef %3177) #12
  %.not551 = icmp eq i32 %3178, 0
  br i1 %.not551, label %3179, label %3180

3179:                                             ; preds = %3175, %3169
  br label %3180

3180:                                             ; preds = %3175, %3179
  %.str.5.sink1629 = phi ptr [ @.str.5, %3179 ], [ @.str.2, %3175 ]
  store i32 %3170, ptr %422, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = load i32, ptr %368, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror(i32 noundef %3183, ptr noundef nonnull @.str.4) #12
  %3185 = load i32, ptr %368, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror_debug(i32 noundef %3185, ptr noundef nonnull @.str.4) #12
  %3187 = load i32, ptr %422, align 4, !tbaa !5
  %3188 = call ptr @strerror(i32 noundef %3187) #12
  %3189 = load i32, ptr %422, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef nonnull %.str.5.sink1629, i32 noundef %3182, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3184, ptr noundef %3186, ptr noundef %3188, i32 noundef %3189) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3191:                                             ; preds = %3164
  %3192 = load i32, ptr @test_count, align 4, !tbaa !5
  %3193 = add nsw i32 %3192, 1
  store i32 %3193, ptr @test_count, align 4, !tbaa !5
  %3194 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %3139, i16 noundef zeroext 1) #12
  %3195 = icmp eq i32 %3194, -1
  br i1 %3195, label %3196, label %3218

3196:                                             ; preds = %3191
  %3197 = load i32, ptr %422, align 4, !tbaa !5
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = call i32 @s2n_print_stacktrace(ptr noundef %3198) #12
  %3200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3201 = trunc nuw i8 %3200 to i1
  br i1 %3201, label %3202, label %3206

3202:                                             ; preds = %3196
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = call i32 @fileno(ptr noundef %3203) #12
  %3205 = call i32 @isatty(i32 noundef %3204) #12
  %.not550 = icmp eq i32 %3205, 0
  br i1 %.not550, label %3206, label %3207

3206:                                             ; preds = %3202, %3196
  br label %3207

3207:                                             ; preds = %3202, %3206
  %.str.5.sink1638 = phi ptr [ @.str.5, %3206 ], [ @.str.2, %3202 ]
  store i32 %3197, ptr %422, align 4, !tbaa !5
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = load i32, ptr @test_count, align 4, !tbaa !5
  %3210 = load i32, ptr %368, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef nonnull @.str.4) #12
  %3212 = load i32, ptr %368, align 4, !tbaa !5
  %3213 = call ptr @s2n_strerror_debug(i32 noundef %3212, ptr noundef nonnull @.str.4) #12
  %3214 = load i32, ptr %422, align 4, !tbaa !5
  %3215 = call ptr @strerror(i32 noundef %3214) #12
  %3216 = load i32, ptr %422, align 4, !tbaa !5
  %3217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3208, ptr noundef nonnull %.str.5.sink1638, i32 noundef %3209, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3211, ptr noundef %3213, ptr noundef %3215, i32 noundef %3216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3218:                                             ; preds = %3191
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = add nsw i32 %3219, 1
  store i32 %3220, ptr @test_count, align 4, !tbaa !5
  %3221 = getelementptr inbounds i8, ptr %2438, i64 1856
  %3222 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %3221, i8 noundef zeroext 1) #12
  %3223 = icmp eq i32 %3222, -1
  br i1 %3223, label %3224, label %3246

3224:                                             ; preds = %3218
  %3225 = load i32, ptr %422, align 4, !tbaa !5
  %3226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3227 = call i32 @s2n_print_stacktrace(ptr noundef %3226) #12
  %3228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3229 = trunc nuw i8 %3228 to i1
  br i1 %3229, label %3230, label %3234

3230:                                             ; preds = %3224
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @fileno(ptr noundef %3231) #12
  %3233 = call i32 @isatty(i32 noundef %3232) #12
  %.not549 = icmp eq i32 %3233, 0
  br i1 %.not549, label %3234, label %3235

3234:                                             ; preds = %3230, %3224
  br label %3235

3235:                                             ; preds = %3230, %3234
  %.str.5.sink1647 = phi ptr [ @.str.5, %3234 ], [ @.str.2, %3230 ]
  store i32 %3225, ptr %422, align 4, !tbaa !5
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = load i32, ptr @test_count, align 4, !tbaa !5
  %3238 = load i32, ptr %368, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror(i32 noundef %3238, ptr noundef nonnull @.str.4) #12
  %3240 = load i32, ptr %368, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror_debug(i32 noundef %3240, ptr noundef nonnull @.str.4) #12
  %3242 = load i32, ptr %422, align 4, !tbaa !5
  %3243 = call ptr @strerror(i32 noundef %3242) #12
  %3244 = load i32, ptr %422, align 4, !tbaa !5
  %3245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3236, ptr noundef nonnull %.str.5.sink1647, i32 noundef %3237, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %3239, ptr noundef %3241, ptr noundef %3243, i32 noundef %3244) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3246:                                             ; preds = %3218
  %3247 = load i32, ptr @test_count, align 4, !tbaa !5
  %3248 = add nsw i32 %3247, 1
  store i32 %3248, ptr @test_count, align 4, !tbaa !5
  %3249 = call i32 @s2n_record_parse(ptr noundef nonnull %2438) #12
  %3250 = icmp eq i32 %3249, -1
  br i1 %3250, label %3251, label %3273

3251:                                             ; preds = %3246
  %3252 = load i32, ptr %422, align 4, !tbaa !5
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = call i32 @s2n_print_stacktrace(ptr noundef %3253) #12
  %3255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3256 = trunc nuw i8 %3255 to i1
  br i1 %3256, label %3257, label %3261

3257:                                             ; preds = %3251
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @fileno(ptr noundef %3258) #12
  %3260 = call i32 @isatty(i32 noundef %3259) #12
  %.not548 = icmp eq i32 %3260, 0
  br i1 %.not548, label %3261, label %3262

3261:                                             ; preds = %3257, %3251
  br label %3262

3262:                                             ; preds = %3257, %3261
  %.str.5.sink1656 = phi ptr [ @.str.5, %3261 ], [ @.str.2, %3257 ]
  store i32 %3252, ptr %422, align 4, !tbaa !5
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = load i32, ptr @test_count, align 4, !tbaa !5
  %3265 = load i32, ptr %368, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror(i32 noundef %3265, ptr noundef nonnull @.str.4) #12
  %3267 = load i32, ptr %368, align 4, !tbaa !5
  %3268 = call ptr @s2n_strerror_debug(i32 noundef %3267, ptr noundef nonnull @.str.4) #12
  %3269 = load i32, ptr %422, align 4, !tbaa !5
  %3270 = call ptr @strerror(i32 noundef %3269) #12
  %3271 = load i32, ptr %422, align 4, !tbaa !5
  %3272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3263, ptr noundef nonnull %.str.5.sink1656, i32 noundef %3264, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %3266, ptr noundef %3268, ptr noundef %3270, i32 noundef %3271) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3273:                                             ; preds = %3246
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = add nsw i32 %3274, 1
  store i32 %3275, ptr @test_count, align 4, !tbaa !5
  %3276 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %3139) #12
  %3277 = icmp eq i32 %3276, -1
  br i1 %3277, label %3278, label %3300

3278:                                             ; preds = %3273
  %3279 = load i32, ptr %422, align 4, !tbaa !5
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = call i32 @s2n_print_stacktrace(ptr noundef %3280) #12
  %3282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3283 = trunc nuw i8 %3282 to i1
  br i1 %3283, label %3284, label %3288

3284:                                             ; preds = %3278
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @fileno(ptr noundef %3285) #12
  %3287 = call i32 @isatty(i32 noundef %3286) #12
  %.not547 = icmp eq i32 %3287, 0
  br i1 %.not547, label %3288, label %3289

3288:                                             ; preds = %3284, %3278
  br label %3289

3289:                                             ; preds = %3284, %3288
  %.str.5.sink1665 = phi ptr [ @.str.5, %3288 ], [ @.str.2, %3284 ]
  store i32 %3279, ptr %422, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = load i32, ptr @test_count, align 4, !tbaa !5
  %3292 = load i32, ptr %368, align 4, !tbaa !5
  %3293 = call ptr @s2n_strerror(i32 noundef %3292, ptr noundef nonnull @.str.4) #12
  %3294 = load i32, ptr %368, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror_debug(i32 noundef %3294, ptr noundef nonnull @.str.4) #12
  %3296 = load i32, ptr %422, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #12
  %3298 = load i32, ptr %422, align 4, !tbaa !5
  %3299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3290, ptr noundef nonnull %.str.5.sink1665, i32 noundef %3291, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %3293, ptr noundef %3295, ptr noundef %3297, i32 noundef %3298) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3300:                                             ; preds = %3273
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = add nsw i32 %3301, 1
  store i32 %3302, ptr @test_count, align 4, !tbaa !5
  %3303 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %3221) #12
  %3304 = icmp eq i32 %3303, -1
  br i1 %3304, label %3305, label %3327

3305:                                             ; preds = %3300
  %3306 = load i32, ptr %422, align 4, !tbaa !5
  %3307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3308 = call i32 @s2n_print_stacktrace(ptr noundef %3307) #12
  %3309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3310 = trunc nuw i8 %3309 to i1
  br i1 %3310, label %3311, label %3315

3311:                                             ; preds = %3305
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = call i32 @fileno(ptr noundef %3312) #12
  %3314 = call i32 @isatty(i32 noundef %3313) #12
  %.not546 = icmp eq i32 %3314, 0
  br i1 %.not546, label %3315, label %3316

3315:                                             ; preds = %3311, %3305
  br label %3316

3316:                                             ; preds = %3311, %3315
  %.str.5.sink1674 = phi ptr [ @.str.5, %3315 ], [ @.str.2, %3311 ]
  store i32 %3306, ptr %422, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = load i32, ptr @test_count, align 4, !tbaa !5
  %3319 = load i32, ptr %368, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror(i32 noundef %3319, ptr noundef nonnull @.str.4) #12
  %3321 = load i32, ptr %368, align 4, !tbaa !5
  %3322 = call ptr @s2n_strerror_debug(i32 noundef %3321, ptr noundef nonnull @.str.4) #12
  %3323 = load i32, ptr %422, align 4, !tbaa !5
  %3324 = call ptr @strerror(i32 noundef %3323) #12
  %3325 = load i32, ptr %422, align 4, !tbaa !5
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef nonnull %.str.5.sink1674, i32 noundef %3318, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %3320, ptr noundef %3322, ptr noundef %3324, i32 noundef %3325) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3327:                                             ; preds = %3300
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = add nsw i32 %3328, 1
  store i32 %3329, ptr @test_count, align 4, !tbaa !5
  %3330 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %3139, i8 noundef zeroext 23) #12
  %3331 = icmp eq i32 %3330, -1
  br i1 %3331, label %3332, label %3354

3332:                                             ; preds = %3327
  %3333 = load i32, ptr %422, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = call i32 @s2n_print_stacktrace(ptr noundef %3334) #12
  %3336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3337 = trunc nuw i8 %3336 to i1
  br i1 %3337, label %3338, label %3342

3338:                                             ; preds = %3332
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @fileno(ptr noundef %3339) #12
  %3341 = call i32 @isatty(i32 noundef %3340) #12
  %.not545 = icmp eq i32 %3341, 0
  br i1 %.not545, label %3342, label %3343

3342:                                             ; preds = %3338, %3332
  br label %3343

3343:                                             ; preds = %3338, %3342
  %.str.5.sink1683 = phi ptr [ @.str.5, %3342 ], [ @.str.2, %3338 ]
  store i32 %3333, ptr %422, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = load i32, ptr %368, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror(i32 noundef %3346, ptr noundef nonnull @.str.4) #12
  %3348 = load i32, ptr %368, align 4, !tbaa !5
  %3349 = call ptr @s2n_strerror_debug(i32 noundef %3348, ptr noundef nonnull @.str.4) #12
  %3350 = load i32, ptr %422, align 4, !tbaa !5
  %3351 = call ptr @strerror(i32 noundef %3350) #12
  %3352 = load i32, ptr %422, align 4, !tbaa !5
  %3353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3344, ptr noundef nonnull %.str.5.sink1683, i32 noundef %3345, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3347, ptr noundef %3349, ptr noundef %3351, i32 noundef %3352) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3354:                                             ; preds = %3327
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = add nsw i32 %3355, 1
  store i32 %3356, ptr @test_count, align 4, !tbaa !5
  %3357 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %3139, i16 noundef zeroext 771) #12
  %3358 = icmp eq i32 %3357, -1
  br i1 %3358, label %3359, label %3381

3359:                                             ; preds = %3354
  %3360 = load i32, ptr %422, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @s2n_print_stacktrace(ptr noundef %3361) #12
  %3363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3364 = trunc nuw i8 %3363 to i1
  br i1 %3364, label %3365, label %3369

3365:                                             ; preds = %3359
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @fileno(ptr noundef %3366) #12
  %3368 = call i32 @isatty(i32 noundef %3367) #12
  %.not544 = icmp eq i32 %3368, 0
  br i1 %.not544, label %3369, label %3370

3369:                                             ; preds = %3365, %3359
  br label %3370

3370:                                             ; preds = %3365, %3369
  %.str.5.sink1692 = phi ptr [ @.str.5, %3369 ], [ @.str.2, %3365 ]
  store i32 %3360, ptr %422, align 4, !tbaa !5
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = load i32, ptr %368, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror(i32 noundef %3373, ptr noundef nonnull @.str.4) #12
  %3375 = load i32, ptr %368, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror_debug(i32 noundef %3375, ptr noundef nonnull @.str.4) #12
  %3377 = load i32, ptr %422, align 4, !tbaa !5
  %3378 = call ptr @strerror(i32 noundef %3377) #12
  %3379 = load i32, ptr %422, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3371, ptr noundef nonnull %.str.5.sink1692, i32 noundef %3372, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %3374, ptr noundef %3376, ptr noundef %3378, i32 noundef %3379) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3381:                                             ; preds = %3354
  %3382 = load i32, ptr @test_count, align 4, !tbaa !5
  %3383 = add nsw i32 %3382, 1
  store i32 %3383, ptr @test_count, align 4, !tbaa !5
  %3384 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %3139, i16 noundef zeroext 1) #12
  %3385 = icmp eq i32 %3384, -1
  br i1 %3385, label %3386, label %3408

3386:                                             ; preds = %3381
  %3387 = load i32, ptr %422, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @s2n_print_stacktrace(ptr noundef %3388) #12
  %3390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3391 = trunc nuw i8 %3390 to i1
  br i1 %3391, label %3392, label %3396

3392:                                             ; preds = %3386
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = call i32 @fileno(ptr noundef %3393) #12
  %3395 = call i32 @isatty(i32 noundef %3394) #12
  %.not543 = icmp eq i32 %3395, 0
  br i1 %.not543, label %3396, label %3397

3396:                                             ; preds = %3392, %3386
  br label %3397

3397:                                             ; preds = %3392, %3396
  %.str.5.sink1701 = phi ptr [ @.str.5, %3396 ], [ @.str.2, %3392 ]
  store i32 %3387, ptr %422, align 4, !tbaa !5
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = load i32, ptr @test_count, align 4, !tbaa !5
  %3400 = load i32, ptr %368, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef nonnull @.str.4) #12
  %3402 = load i32, ptr %368, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror_debug(i32 noundef %3402, ptr noundef nonnull @.str.4) #12
  %3404 = load i32, ptr %422, align 4, !tbaa !5
  %3405 = call ptr @strerror(i32 noundef %3404) #12
  %3406 = load i32, ptr %422, align 4, !tbaa !5
  %3407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3398, ptr noundef nonnull %.str.5.sink1701, i32 noundef %3399, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %3401, ptr noundef %3403, ptr noundef %3405, i32 noundef %3406) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3408:                                             ; preds = %3381
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = add nsw i32 %3409, 1
  store i32 %3410, ptr @test_count, align 4, !tbaa !5
  %3411 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %3221, i8 noundef zeroext 1) #12
  %3412 = icmp eq i32 %3411, -1
  br i1 %3412, label %3413, label %3435

3413:                                             ; preds = %3408
  %3414 = load i32, ptr %422, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = call i32 @s2n_print_stacktrace(ptr noundef %3415) #12
  %3417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3418 = trunc nuw i8 %3417 to i1
  br i1 %3418, label %3419, label %3423

3419:                                             ; preds = %3413
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3421 = call i32 @fileno(ptr noundef %3420) #12
  %3422 = call i32 @isatty(i32 noundef %3421) #12
  %.not542 = icmp eq i32 %3422, 0
  br i1 %.not542, label %3423, label %3424

3423:                                             ; preds = %3419, %3413
  br label %3424

3424:                                             ; preds = %3419, %3423
  %.str.5.sink1710 = phi ptr [ @.str.5, %3423 ], [ @.str.2, %3419 ]
  store i32 %3414, ptr %422, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = load i32, ptr %368, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef nonnull @.str.4) #12
  %3429 = load i32, ptr %368, align 4, !tbaa !5
  %3430 = call ptr @s2n_strerror_debug(i32 noundef %3429, ptr noundef nonnull @.str.4) #12
  %3431 = load i32, ptr %422, align 4, !tbaa !5
  %3432 = call ptr @strerror(i32 noundef %3431) #12
  %3433 = load i32, ptr %422, align 4, !tbaa !5
  %3434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3425, ptr noundef nonnull %.str.5.sink1710, i32 noundef %3426, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %3428, ptr noundef %3430, ptr noundef %3432, i32 noundef %3433) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3435:                                             ; preds = %3408
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = add nsw i32 %3436, 1
  store i32 %3437, ptr @test_count, align 4, !tbaa !5
  %3438 = call i32 @s2n_record_parse(ptr noundef nonnull %2438) #12
  %3439 = icmp eq i32 %3438, -1
  br i1 %3439, label %3462, label %3440

3440:                                             ; preds = %3435
  %3441 = load i32, ptr %422, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = call i32 @s2n_print_stacktrace(ptr noundef %3442) #12
  %3444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3445 = trunc nuw i8 %3444 to i1
  br i1 %3445, label %3446, label %3450

3446:                                             ; preds = %3440
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @fileno(ptr noundef %3447) #12
  %3449 = call i32 @isatty(i32 noundef %3448) #12
  %.not533 = icmp eq i32 %3449, 0
  br i1 %.not533, label %3450, label %3451

3450:                                             ; preds = %3446, %3440
  br label %3451

3451:                                             ; preds = %3446, %3450
  %.str.5.sink1719 = phi ptr [ @.str.5, %3450 ], [ @.str.2, %3446 ]
  store i32 %3441, ptr %422, align 4, !tbaa !5
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = load i32, ptr %368, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef nonnull @.str.4) #12
  %3456 = load i32, ptr %368, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror_debug(i32 noundef %3456, ptr noundef nonnull @.str.4) #12
  %3458 = load i32, ptr %422, align 4, !tbaa !5
  %3459 = call ptr @strerror(i32 noundef %3458) #12
  %3460 = load i32, ptr %422, align 4, !tbaa !5
  %3461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3452, ptr noundef nonnull %.str.5.sink1719, i32 noundef %3453, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3455, ptr noundef %3457, ptr noundef %3459, i32 noundef %3460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3462:                                             ; preds = %3435
  %3463 = load i32, ptr @test_count, align 4, !tbaa !5
  %3464 = add nsw i32 %3463, 1
  store i32 %3464, ptr @test_count, align 4, !tbaa !5
  %3465 = load i32, ptr %368, align 4, !tbaa !5
  %3466 = icmp eq i32 %3465, 0
  br i1 %3466, label %3467, label %3489

3467:                                             ; preds = %3462
  %3468 = load i32, ptr %422, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @s2n_print_stacktrace(ptr noundef %3469) #12
  %3471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3472 = trunc nuw i8 %3471 to i1
  br i1 %3472, label %3473, label %3477

3473:                                             ; preds = %3467
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @fileno(ptr noundef %3474) #12
  %3476 = call i32 @isatty(i32 noundef %3475) #12
  %.not541 = icmp eq i32 %3476, 0
  br i1 %.not541, label %3477, label %3478

3477:                                             ; preds = %3473, %3467
  br label %3478

3478:                                             ; preds = %3473, %3477
  %.str.5.sink1728 = phi ptr [ @.str.5, %3477 ], [ @.str.2, %3473 ]
  store i32 %3468, ptr %422, align 4, !tbaa !5
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = load i32, ptr %368, align 4, !tbaa !5
  %3482 = call ptr @s2n_strerror(i32 noundef %3481, ptr noundef nonnull @.str.4) #12
  %3483 = load i32, ptr %368, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror_debug(i32 noundef %3483, ptr noundef nonnull @.str.4) #12
  %3485 = load i32, ptr %422, align 4, !tbaa !5
  %3486 = call ptr @strerror(i32 noundef %3485) #12
  %3487 = load i32, ptr %422, align 4, !tbaa !5
  %3488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3479, ptr noundef nonnull %.str.5.sink1728, i32 noundef %3480, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3482, ptr noundef %3484, ptr noundef %3486, i32 noundef %3487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3489:                                             ; preds = %3462
  %3490 = add nsw i32 %3463, 2
  store i32 %3490, ptr @test_count, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror_debug(i32 noundef %3465, ptr noundef nonnull @.str.4) #12
  %3492 = icmp eq ptr %3491, null
  br i1 %3492, label %3493, label %3515

3493:                                             ; preds = %3489
  %3494 = load i32, ptr %422, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = call i32 @s2n_print_stacktrace(ptr noundef %3495) #12
  %3497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3498 = trunc nuw i8 %3497 to i1
  br i1 %3498, label %3499, label %3503

3499:                                             ; preds = %3493
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = call i32 @fileno(ptr noundef %3500) #12
  %3502 = call i32 @isatty(i32 noundef %3501) #12
  %.not540 = icmp eq i32 %3502, 0
  br i1 %.not540, label %3503, label %3504

3503:                                             ; preds = %3499, %3493
  br label %3504

3504:                                             ; preds = %3499, %3503
  %.str.5.sink1737 = phi ptr [ @.str.5, %3503 ], [ @.str.2, %3499 ]
  store i32 %3494, ptr %422, align 4, !tbaa !5
  %3505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3506 = load i32, ptr @test_count, align 4, !tbaa !5
  %3507 = load i32, ptr %368, align 4, !tbaa !5
  %3508 = call ptr @s2n_strerror(i32 noundef %3507, ptr noundef nonnull @.str.4) #12
  %3509 = load i32, ptr %368, align 4, !tbaa !5
  %3510 = call ptr @s2n_strerror_debug(i32 noundef %3509, ptr noundef nonnull @.str.4) #12
  %3511 = load i32, ptr %422, align 4, !tbaa !5
  %3512 = call ptr @strerror(i32 noundef %3511) #12
  %3513 = load i32, ptr %422, align 4, !tbaa !5
  %3514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3505, ptr noundef nonnull %.str.5.sink1737, i32 noundef %3506, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3508, ptr noundef %3510, ptr noundef %3512, i32 noundef %3513) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3515:                                             ; preds = %3489
  store i32 0, ptr %368, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %422, align 4, !tbaa !5
  %3516 = load i32, ptr @test_count, align 4, !tbaa !5
  %3517 = add nsw i32 %3516, 1
  store i32 %3517, ptr @test_count, align 4, !tbaa !5
  %3518 = call i32 @s2n_connection_free(ptr noundef nonnull %2438) #12
  %3519 = icmp eq i32 %3518, -1
  br i1 %3519, label %3520, label %3542

3520:                                             ; preds = %3515
  %3521 = load i32, ptr %422, align 4, !tbaa !5
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @s2n_print_stacktrace(ptr noundef %3522) #12
  %3524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3525 = trunc nuw i8 %3524 to i1
  br i1 %3525, label %3526, label %3530

3526:                                             ; preds = %3520
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = call i32 @fileno(ptr noundef %3527) #12
  %3529 = call i32 @isatty(i32 noundef %3528) #12
  %.not539 = icmp eq i32 %3529, 0
  br i1 %.not539, label %3530, label %3531

3530:                                             ; preds = %3526, %3520
  br label %3531

3531:                                             ; preds = %3526, %3530
  %.str.5.sink1746 = phi ptr [ @.str.5, %3530 ], [ @.str.2, %3526 ]
  store i32 %3521, ptr %422, align 4, !tbaa !5
  %3532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = load i32, ptr %368, align 4, !tbaa !5
  %3535 = call ptr @s2n_strerror(i32 noundef %3534, ptr noundef nonnull @.str.4) #12
  %3536 = load i32, ptr %368, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror_debug(i32 noundef %3536, ptr noundef nonnull @.str.4) #12
  %3538 = load i32, ptr %422, align 4, !tbaa !5
  %3539 = call ptr @strerror(i32 noundef %3538) #12
  %3540 = load i32, ptr %422, align 4, !tbaa !5
  %3541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3532, ptr noundef nonnull %.str.5.sink1746, i32 noundef %3533, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 408, ptr noundef %3535, ptr noundef %3537, ptr noundef %3539, i32 noundef %3540) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3542:                                             ; preds = %3515
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #12
  br label %3543

3543:                                             ; preds = %._crit_edge661, %3542
  %.15462 = phi i32 [ 0, %3542 ], [ 1, %._crit_edge661 ]
  %.16 = phi i32 [ %.15663, %3542 ], [ -1, %._crit_edge661 ]
  %3544 = call i32 @s2n_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  br label %3545

3545:                                             ; preds = %2606, %3543
  %.16463 = phi i32 [ %.15462, %3543 ], [ 1, %2606 ]
  %.17 = phi i32 [ %.16, %3543 ], [ -1, %2606 ]
  %3546 = call i32 @s2n_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #12
  br label %3547

3547:                                             ; preds = %3545, %2603
  %.17464 = phi i32 [ %.16463, %3545 ], [ 1, %2603 ]
  %.18 = phi i32 [ %.17, %3545 ], [ -1, %2603 ]
  %3548 = call i32 @s2n_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #12
  %3549 = call i32 @s2n_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #12
  %cond1 = icmp eq i32 %.17464, 0
  br i1 %cond1, label %2432, label %.loopexit

.thread643:                                       ; preds = %2432
  %3550 = call i32 @s2n_cleanup() #12
  %3551 = icmp eq i32 %3550, -1
  br i1 %3551, label %3552, label %3574

3552:                                             ; preds = %.thread643
  %3553 = load i32, ptr %422, align 4, !tbaa !5
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @s2n_print_stacktrace(ptr noundef %3554) #12
  %3556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3557 = trunc nuw i8 %3556 to i1
  br i1 %3557, label %3558, label %3562

3558:                                             ; preds = %3552
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = call i32 @fileno(ptr noundef %3559) #12
  %3561 = call i32 @isatty(i32 noundef %3560) #12
  %.not538 = icmp eq i32 %3561, 0
  br i1 %.not538, label %3562, label %3563

3562:                                             ; preds = %3558, %3552
  br label %3563

3563:                                             ; preds = %3558, %3562
  %.str.5.sink1755 = phi ptr [ @.str.5, %3562 ], [ @.str.2, %3558 ]
  store i32 %3553, ptr %422, align 4, !tbaa !5
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = load i32, ptr %368, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror(i32 noundef %3566, ptr noundef nonnull @.str.4) #12
  %3568 = load i32, ptr %368, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror_debug(i32 noundef %3568, ptr noundef nonnull @.str.4) #12
  %3570 = load i32, ptr %422, align 4, !tbaa !5
  %3571 = call ptr @strerror(i32 noundef %3570) #12
  %3572 = load i32, ptr %422, align 4, !tbaa !5
  %3573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3564, ptr noundef nonnull %.str.5.sink1755, i32 noundef %3565, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %3567, ptr noundef %3569, ptr noundef %3571, i32 noundef %3572) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3574:                                             ; preds = %.thread643
  %3575 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3576 = icmp eq i32 %3575, -1
  br i1 %3576, label %3577, label %3599

3577:                                             ; preds = %3574
  %3578 = load i32, ptr %422, align 4, !tbaa !5
  %3579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3580 = call i32 @s2n_print_stacktrace(ptr noundef %3579) #12
  %3581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3582 = trunc nuw i8 %3581 to i1
  br i1 %3582, label %3583, label %3587

3583:                                             ; preds = %3577
  %3584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3585 = call i32 @fileno(ptr noundef %3584) #12
  %3586 = call i32 @isatty(i32 noundef %3585) #12
  %.not537 = icmp eq i32 %3586, 0
  br i1 %.not537, label %3587, label %3588

3587:                                             ; preds = %3583, %3577
  br label %3588

3588:                                             ; preds = %3583, %3587
  %.str.5.sink1764 = phi ptr [ @.str.5, %3587 ], [ @.str.2, %3583 ]
  store i32 %3578, ptr %422, align 4, !tbaa !5
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = load i32, ptr @test_count, align 4, !tbaa !5
  %3591 = load i32, ptr %368, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror(i32 noundef %3591, ptr noundef nonnull @.str.4) #12
  %3593 = load i32, ptr %368, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror_debug(i32 noundef %3593, ptr noundef nonnull @.str.4) #12
  %3595 = load i32, ptr %422, align 4, !tbaa !5
  %3596 = call ptr @strerror(i32 noundef %3595) #12
  %3597 = load i32, ptr %422, align 4, !tbaa !5
  %3598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3589, ptr noundef nonnull %.str.5.sink1764, i32 noundef %3590, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %3592, ptr noundef %3594, ptr noundef %3596, i32 noundef %3597) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3599:                                             ; preds = %3574
  %3600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3601 = trunc nuw i8 %3600 to i1
  br i1 %3601, label %3602, label %3613

3602:                                             ; preds = %3599
  %3603 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3604 = call i32 @fileno(ptr noundef %3603) #12
  %3605 = call i32 @isatty(i32 noundef %3604) #12
  %.not534 = icmp eq i32 %3605, 0
  br i1 %.not534, label %3613, label %3606

3606:                                             ; preds = %3602
  %3607 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not536 = icmp eq i32 %3607, 0
  %3608 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not536, label %3611, label %3609

3609:                                             ; preds = %3606
  %3610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3608, ptr noundef nonnull @.str.82, i32 noundef %3607) #12
  br label %.loopexit

3611:                                             ; preds = %3606
  %3612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3608, ptr noundef nonnull @.str.83) #12
  br label %.loopexit

3613:                                             ; preds = %3602, %3599
  %3614 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not535 = icmp eq i32 %3614, 0
  %3615 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not535, label %3618, label %3616

3616:                                             ; preds = %3613
  %3617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3615, ptr noundef nonnull @.str.84, i32 noundef %3614) #12
  br label %.loopexit

3618:                                             ; preds = %3613
  %3619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3615, ptr noundef nonnull @.str.85) #12
  br label %.loopexit

.loopexit:                                        ; preds = %3547, %.thread646, %.thread635, %.thread631, %.thread627, %716, %.thread, %3611, %3609, %3618, %3616, %2424, %2102, %1767
  %.21 = phi i32 [ -1, %716 ], [ %.7, %1767 ], [ %.11, %2102 ], [ %.13, %2424 ], [ 0, %3616 ], [ 0, %3618 ], [ 0, %3609 ], [ 0, %3611 ], [ -1, %.thread ], [ -1, %.thread627 ], [ -1, %.thread631 ], [ -1, %.thread635 ], [ -1, %.thread646 ], [ %.18, %3547 ]
  ret i32 %.21
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #9

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #2

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

declare i32 @s2n_tls13_aead_aad_init(i16 noundef zeroext, i8 noundef zeroext, ptr 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_blob_zero(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #10

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_session_key_alloc(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_parse_aead(ptr noundef, ptr noundef, i8 noundef zeroext, i16 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_session_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_record_parse(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 nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 }
attributes #16 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 8}
!16 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!17 = !{!16, !10, i64 0}
!18 = !{!19, !7, i64 220}
!19 = !{!"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, !20, i64 160, !21, i64 168, !21, 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, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !28, i64 1144, !31, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !33, i64 2208, !6, i64 2212, !33, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !16, i64 2792, !6, i64 2816, !16, i64 2824, !16, i64 2848, !16, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !16, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !16, i64 4032, !16, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !16, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !16, i64 448, !16, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !16, i64 8, !16, i64 32, !16, i64 56, !12, i64 80}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !16, i64 96, !6, i64 120, !30, 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}
!29 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!30 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!31 = !{!"s2n_psk_parameters", !6, i64 0, !32, i64 8, !33, i64 40, !33, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !16, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !16, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, 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, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !16, i64 0, !39, i64 24, !16, i64 728, !16, i64 752, !16, 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}
!39 = !{!"", !7, i64 0, !16, i64 672, !33, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !33, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !16, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!45, !10, i64 48}
!45 = !{!"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}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !21, i64 16}
!48 = !{!49, !10, i64 64}
!49 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!50 = !{!49, !10, i64 72}
!51 = !{!19, !10, i64 232}
!52 = !{!53, !10, i64 0}
!53 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!54 = !{!53, !10, i64 8}
!55 = !{!19, !10, i64 1856}
!56 = !{!34, !6, i64 8}
!57 = !{!34, !10, i64 0}
!58 = !{!7, !7, i64 0}
!59 = !{!19, !10, i64 640}
!60 = !{!61, !10, i64 0}
!61 = !{!"s2n_crypto_parameters", !10, i64 0, !62, i64 8, !62, i64 16, !63, i64 24, !63, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!62 = !{!"s2n_session_key", !10, i64 0}
!63 = !{!"s2n_hmac_state", !6, i64 0, !33, i64 4, !6, i64 8, !33, i64 12, !7, i64 14, !64, i64 16, !64, i64 72, !64, i64 128, !64, i64 184, !7, i64 240, !7, i64 368}
!64 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !21, i64 16, !7, i64 24}
!65 = !{!49, !10, i64 80}
!66 = distinct !{!66, !67}
!67 = !{!"llvm.loop.mustprogress"}
!68 = !{!16, !6, i64 12}
!69 = !{!19, !10, i64 1896}
!70 = distinct !{!70, !67}
!71 = distinct !{!71, !67}
!72 = !{!19, !7, i64 219}
!73 = !{!19, !10, i64 632}
!74 = distinct !{!74, !67}
!75 = !{!33, !33, i64 0}


; Effective O3 passes: ADCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass