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

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

%struct.s2n_cipher = type { i32, %union.anon, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon.0, i32 }
%union.anon.0 = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.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 }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [71 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
@s2n_rc4 = external constant %struct.s2n_cipher, align 8
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [36 x i8], align 1
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@__const.main.rc4_key = external hidden unnamed_addr constant [16 x i8], align 16
@.str.10 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_rc4_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.15 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.53 = 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 i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca [15 x i8], align 1
  %13 = alloca [16 x i8], align 16
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca i32, align 4
  %16 = alloca [8088 x i8], align 16
  %17 = alloca %struct.s2n_blob, align 8
  %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 %struct.s2n_result, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_result, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_result, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i64, align 8
  %34 = alloca %struct.s2n_blob, align 8
  %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 i32, align 4
  %43 = alloca i16, align 2
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i8, align 1
  %56 = alloca i16, align 2
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_result, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.s2n_result, align 4
  %66 = alloca i32, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_result, align 4
  %72 = alloca 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
  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 %79

79:                                               ; preds = %2
  br label %80

80:                                               ; preds = %79
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %81 = load ptr, ptr @stdout, align 8, !tbaa !9
  %82 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef @.str, ptr noundef @.str.1) #11
  %83 = load ptr, ptr @stdout, align 8, !tbaa !9
  %84 = call i32 @fflush(ptr noundef %83)
  br label %85

85:                                               ; preds = %80
  %86 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %87 = icmp eq i32 %86, -1
  br i1 %87, label %88, label %139

88:                                               ; preds = %85
  br label %89

89:                                               ; preds = %88
  br label %90

90:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %91 = call ptr @__errno_location() #12
  %92 = load i32, ptr %91, align 4, !tbaa !5
  store i32 %92, ptr %6, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = call i32 @s2n_print_stacktrace(ptr noundef %93)
  %95 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %96 = trunc i8 %95 to i1
  br i1 %96, label %97, label %119

97:                                               ; preds = %90
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = call i32 @fileno(ptr noundef %98) #11
  %100 = call i32 @isatty(i32 noundef %99) #11
  %101 = icmp ne i32 %100, 0
  br i1 %101, label %102, label %119

102:                                              ; preds = %97
  %103 = load i32, ptr %6, align 4, !tbaa !5
  %104 = call ptr @__errno_location() #12
  store i32 %103, ptr %104, align 4, !tbaa !5
  %105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %106 = load i32, ptr @test_count, align 4, !tbaa !5
  %107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = call ptr @s2n_strerror(i32 noundef %108, ptr noundef @.str.4)
  %110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = call ptr @s2n_strerror_debug(i32 noundef %111, ptr noundef @.str.4)
  %113 = call ptr @__errno_location() #12
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = call ptr @strerror(i32 noundef %114) #11
  %116 = call ptr @__errno_location() #12
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %105, ptr noundef @.str.2, i32 noundef %106, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 35, ptr noundef %109, ptr noundef %112, ptr noundef %115, i32 noundef %117) #11
  br label %136

119:                                              ; preds = %97, %90
  %120 = load i32, ptr %6, align 4, !tbaa !5
  %121 = call ptr @__errno_location() #12
  store i32 %120, ptr %121, align 4, !tbaa !5
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call ptr @s2n_strerror(i32 noundef %125, ptr noundef @.str.4)
  %127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = call ptr @s2n_strerror_debug(i32 noundef %128, ptr noundef @.str.4)
  %130 = call ptr @__errno_location() #12
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = call ptr @strerror(i32 noundef %131) #11
  %133 = call ptr @__errno_location() #12
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef @.str.5, i32 noundef %123, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 35, ptr noundef %126, ptr noundef %129, ptr noundef %132, i32 noundef %134) #11
  br label %136

136:                                              ; preds = %119, %102
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %137

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

138:                                              ; No predecessors!
  br label %139

139:                                              ; preds = %138, %85
  br label %140

140:                                              ; preds = %139
  br label %141

141:                                              ; preds = %140
  %142 = load i32, ptr @test_count, align 4, !tbaa !5
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr @test_count, align 4, !tbaa !5
  %144 = call i32 @s2n_enable_atexit()
  %145 = icmp eq i32 %144, -1
  br i1 %145, label %146, label %197

146:                                              ; preds = %141
  br label %147

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %149 = call ptr @__errno_location() #12
  %150 = load i32, ptr %149, align 4, !tbaa !5
  store i32 %150, ptr %7, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = call i32 @s2n_print_stacktrace(ptr noundef %151)
  %153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %154 = trunc i8 %153 to i1
  br i1 %154, label %155, label %177

155:                                              ; preds = %148
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = call i32 @fileno(ptr noundef %156) #11
  %158 = call i32 @isatty(i32 noundef %157) #11
  %159 = icmp ne i32 %158, 0
  br i1 %159, label %160, label %177

160:                                              ; preds = %155
  %161 = load i32, ptr %7, align 4, !tbaa !5
  %162 = call ptr @__errno_location() #12
  store i32 %161, ptr %162, align 4, !tbaa !5
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call ptr @s2n_strerror(i32 noundef %166, ptr noundef @.str.4)
  %168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror_debug(i32 noundef %169, ptr noundef @.str.4)
  %171 = call ptr @__errno_location() #12
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @strerror(i32 noundef %172) #11
  %174 = call ptr @__errno_location() #12
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef @.str.2, i32 noundef %164, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 35, ptr noundef %167, ptr noundef %170, ptr noundef %173, i32 noundef %175) #11
  br label %194

177:                                              ; preds = %155, %148
  %178 = load i32, ptr %7, align 4, !tbaa !5
  %179 = call ptr @__errno_location() #12
  store i32 %178, ptr %179, align 4, !tbaa !5
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror(i32 noundef %183, ptr noundef @.str.4)
  %185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @s2n_strerror_debug(i32 noundef %186, ptr noundef @.str.4)
  %188 = call ptr @__errno_location() #12
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call ptr @strerror(i32 noundef %189) #11
  %191 = call ptr @__errno_location() #12
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %180, ptr noundef @.str.5, i32 noundef %181, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 35, ptr noundef %184, ptr noundef %187, ptr noundef %190, i32 noundef %192) #11
  br label %194

194:                                              ; preds = %177, %160
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %195

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

196:                                              ; No predecessors!
  br label %197

197:                                              ; preds = %196, %141
  br label %198

198:                                              ; preds = %197
  br label %199

199:                                              ; preds = %198
  br label %200

200:                                              ; preds = %199
  %201 = call i32 @s2n_init()
  %202 = icmp eq i32 %201, -1
  br i1 %202, label %203, label %254

203:                                              ; preds = %200
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %206 = call ptr @__errno_location() #12
  %207 = load i32, ptr %206, align 4, !tbaa !5
  store i32 %207, ptr %8, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = call i32 @s2n_print_stacktrace(ptr noundef %208)
  %210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %211 = trunc i8 %210 to i1
  br i1 %211, label %212, label %234

212:                                              ; preds = %205
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = call i32 @fileno(ptr noundef %213) #11
  %215 = call i32 @isatty(i32 noundef %214) #11
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %217, label %234

217:                                              ; preds = %212
  %218 = load i32, ptr %8, align 4, !tbaa !5
  %219 = call ptr @__errno_location() #12
  store i32 %218, ptr %219, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call ptr @s2n_strerror(i32 noundef %223, ptr noundef @.str.4)
  %225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror_debug(i32 noundef %226, ptr noundef @.str.4)
  %228 = call ptr @__errno_location() #12
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @strerror(i32 noundef %229) #11
  %231 = call ptr @__errno_location() #12
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef @.str.2, i32 noundef %221, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 35, ptr noundef %224, ptr noundef %227, ptr noundef %230, i32 noundef %232) #11
  br label %251

234:                                              ; preds = %212, %205
  %235 = load i32, ptr %8, align 4, !tbaa !5
  %236 = call ptr @__errno_location() #12
  store i32 %235, ptr %236, align 4, !tbaa !5
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror(i32 noundef %240, ptr noundef @.str.4)
  %242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror_debug(i32 noundef %243, ptr noundef @.str.4)
  %245 = call ptr @__errno_location() #12
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @strerror(i32 noundef %246) #11
  %248 = call ptr @__errno_location() #12
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %237, ptr noundef @.str.5, i32 noundef %238, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 35, ptr noundef %241, ptr noundef %244, ptr noundef %247, i32 noundef %249) #11
  br label %251

251:                                              ; preds = %234, %217
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %252

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

253:                                              ; No predecessors!
  br label %254

254:                                              ; preds = %253, %200
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  br label %257

257:                                              ; preds = %256
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr @test_count, align 4, !tbaa !5
  %260 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_rc4, i32 0, i32 3), align 8, !tbaa !15
  %261 = call zeroext i1 %260()
  br i1 %261, label %262, label %313

262:                                              ; preds = %257
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %265 = call ptr @__errno_location() #12
  %266 = load i32, ptr %265, align 4, !tbaa !5
  store i32 %266, ptr %9, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = call i32 @s2n_print_stacktrace(ptr noundef %267)
  %269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %270 = trunc i8 %269 to i1
  br i1 %270, label %271, label %293

271:                                              ; preds = %264
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = call i32 @fileno(ptr noundef %272) #11
  %274 = call i32 @isatty(i32 noundef %273) #11
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %293

276:                                              ; preds = %271
  %277 = load i32, ptr %9, align 4, !tbaa !5
  %278 = call ptr @__errno_location() #12
  store i32 %277, ptr %278, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror(i32 noundef %282, ptr noundef @.str.4)
  %284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef @.str.4)
  %287 = call ptr @__errno_location() #12
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call ptr @strerror(i32 noundef %288) #11
  %290 = call ptr @__errno_location() #12
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %279, ptr noundef @.str.2, i32 noundef %280, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %283, ptr noundef %286, ptr noundef %289, i32 noundef %291) #11
  br label %310

293:                                              ; preds = %271, %264
  %294 = load i32, ptr %9, align 4, !tbaa !5
  %295 = call ptr @__errno_location() #12
  store i32 %294, ptr %295, 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 @.str.4)
  %301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror_debug(i32 noundef %302, ptr noundef @.str.4)
  %304 = call ptr @__errno_location() #12
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @strerror(i32 noundef %305) #11
  %307 = call ptr @__errno_location() #12
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef @.str.5, i32 noundef %297, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %300, ptr noundef %303, ptr noundef %306, i32 noundef %308) #11
  br label %310

310:                                              ; preds = %293, %276
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %311

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

312:                                              ; No predecessors!
  br label %313

313:                                              ; preds = %312, %257
  br label %314

314:                                              ; preds = %313
  %315 = call zeroext i1 @s2n_libcrypto_is_awslc()
  br i1 %315, label %316, label %375

316:                                              ; preds = %314
  br label %317

317:                                              ; preds = %316
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = add nsw i32 %318, 1
  store i32 %319, ptr @test_count, align 4, !tbaa !5
  %320 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_rc4, i32 0, i32 3), align 8, !tbaa !15
  %321 = call zeroext i1 %320()
  br i1 %321, label %373, label %322

322:                                              ; preds = %317
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %325 = call ptr @__errno_location() #12
  %326 = load i32, ptr %325, align 4, !tbaa !5
  store i32 %326, ptr %10, align 4, !tbaa !5
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = call i32 @s2n_print_stacktrace(ptr noundef %327)
  %329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %330 = trunc i8 %329 to i1
  br i1 %330, label %331, label %353

331:                                              ; preds = %324
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @fileno(ptr noundef %332) #11
  %334 = call i32 @isatty(i32 noundef %333) #11
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %353

336:                                              ; preds = %331
  %337 = load i32, ptr %10, align 4, !tbaa !5
  %338 = call ptr @__errno_location() #12
  store i32 %337, ptr %338, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror(i32 noundef %342, ptr noundef @.str.4)
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef @.str.4)
  %347 = call ptr @__errno_location() #12
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #11
  %350 = call ptr @__errno_location() #12
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %339, ptr noundef @.str.2, i32 noundef %340, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 44, ptr noundef %343, ptr noundef %346, ptr noundef %349, i32 noundef %351) #11
  br label %370

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

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

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

372:                                              ; No predecessors!
  br label %373

373:                                              ; preds = %372, %317
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374, %314
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 15, ptr %12) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %12, ptr align 1 @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %13, ptr align 16 @__const.main.rc4_key, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #11
  call void @llvm.memset.p0.i64(ptr align 8 %14, i8 0, i64 24, i1 false)
  br label %376

376:                                              ; preds = %375
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr @test_count, align 4, !tbaa !5
  %379 = getelementptr inbounds [16 x i8], ptr %13, i64 0, i64 0
  %380 = call i32 @s2n_blob_init(ptr noundef %14, ptr noundef %379, i32 noundef 16)
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %435

382:                                              ; preds = %376
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %385 = call ptr @__errno_location() #12
  %386 = load i32, ptr %385, align 4, !tbaa !5
  store i32 %386, ptr %15, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @s2n_print_stacktrace(ptr noundef %387)
  %389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %390 = trunc i8 %389 to i1
  br i1 %390, label %391, label %413

391:                                              ; preds = %384
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @fileno(ptr noundef %392) #11
  %394 = call i32 @isatty(i32 noundef %393) #11
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %396, label %413

396:                                              ; preds = %391
  %397 = load i32, ptr %15, align 4, !tbaa !5
  %398 = call ptr @__errno_location() #12
  store i32 %397, ptr %398, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror(i32 noundef %402, ptr noundef @.str.4)
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef @.str.4)
  %407 = call ptr @__errno_location() #12
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #11
  %410 = call ptr @__errno_location() #12
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef @.str.2, i32 noundef %400, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 51, ptr noundef %403, ptr noundef %406, ptr noundef %409, i32 noundef %411) #11
  br label %430

413:                                              ; preds = %391, %384
  %414 = load i32, ptr %15, align 4, !tbaa !5
  %415 = call ptr @__errno_location() #12
  store i32 %414, ptr %415, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef @.str.4)
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef @.str.4)
  %424 = call ptr @__errno_location() #12
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #11
  %427 = call ptr @__errno_location() #12
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef @.str.5, i32 noundef %417, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 51, ptr noundef %420, ptr noundef %423, ptr noundef %426, i32 noundef %428) #11
  br label %430

430:                                              ; preds = %413, %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %431

431:                                              ; preds = %430
  br label %432

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

433:                                              ; No predecessors!
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434, %376
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8088, ptr %16) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #11
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 24, i1 false)
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = getelementptr inbounds [8088 x i8], ptr %16, i64 0, i64 0
  %442 = call i32 @s2n_blob_init(ptr noundef %17, ptr noundef %441, i32 noundef 8088)
  %443 = icmp eq i32 %442, -1
  br i1 %443, label %444, label %497

444:                                              ; preds = %438
  br label %445

445:                                              ; preds = %444
  br label %446

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

453:                                              ; preds = %446
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @fileno(ptr noundef %454) #11
  %456 = call i32 @isatty(i32 noundef %455) #11
  %457 = icmp ne i32 %456, 0
  br i1 %457, label %458, label %475

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

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

492:                                              ; preds = %475, %458
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %493

493:                                              ; preds = %492
  br label %494

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

495:                                              ; No predecessors!
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496, %438
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  br label %500

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

505:                                              ; preds = %500
  br label %506

506:                                              ; preds = %505
  br label %507

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

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

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

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

553:                                              ; preds = %536, %519
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %554

554:                                              ; preds = %553
  br label %555

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

556:                                              ; No predecessors!
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557, %500
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  br label %561

561:                                              ; preds = %560
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr @test_count, align 4, !tbaa !5
  %564 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %564, ptr %11, align 8, !tbaa !9
  %565 = icmp eq ptr %564, null
  br i1 %565, label %566, label %619

566:                                              ; preds = %561
  br label %567

567:                                              ; preds = %566
  br label %568

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

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

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

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

614:                                              ; preds = %597, %580
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %615

615:                                              ; preds = %614
  br label %616

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

617:                                              ; No predecessors!
  br label %618

618:                                              ; preds = %617
  br label %619

619:                                              ; preds = %618, %561
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620
  br label %622

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

630:                                              ; preds = %622
  br label %631

631:                                              ; preds = %630
  br label %632

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

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

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

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

678:                                              ; preds = %661, %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %679

679:                                              ; preds = %678
  br label %680

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

681:                                              ; No predecessors!
  br label %682

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682, %622
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684
  %686 = load ptr, ptr %11, align 8, !tbaa !9
  %687 = getelementptr inbounds %struct.s2n_connection, ptr %686, i32 0, i32 27
  %688 = load ptr, ptr %687, align 8, !tbaa !17
  %689 = load ptr, ptr %11, align 8, !tbaa !9
  %690 = getelementptr inbounds %struct.s2n_connection, ptr %689, i32 0, i32 30
  store ptr %688, ptr %690, align 8, !tbaa !44
  %691 = load ptr, ptr %11, align 8, !tbaa !9
  %692 = getelementptr inbounds %struct.s2n_connection, ptr %691, i32 0, i32 27
  %693 = load ptr, ptr %692, align 8, !tbaa !17
  %694 = load ptr, ptr %11, align 8, !tbaa !9
  %695 = getelementptr inbounds %struct.s2n_connection, ptr %694, i32 0, i32 29
  store ptr %693, ptr %695, align 8, !tbaa !45
  %696 = load ptr, ptr %11, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct.s2n_connection, ptr %696, i32 0, i32 27
  %698 = load ptr, ptr %697, align 8, !tbaa !17
  %699 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %698, i32 0, i32 0
  %700 = load ptr, ptr %699, align 8, !tbaa !46
  %701 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %700, i32 0, i32 6
  store ptr @s2n_record_alg_rc4_sha, ptr %701, align 8, !tbaa !51
  br label %702

702:                                              ; preds = %685
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = load ptr, ptr %11, align 8, !tbaa !9
  %706 = getelementptr inbounds %struct.s2n_connection, ptr %705, i32 0, i32 27
  %707 = load ptr, ptr %706, align 8, !tbaa !17
  %708 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %707, i32 0, i32 0
  %709 = load ptr, ptr %708, align 8, !tbaa !46
  %710 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %709, i32 0, i32 6
  %711 = load ptr, ptr %710, align 8, !tbaa !51
  %712 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %711, i32 0, i32 0
  %713 = load ptr, ptr %712, align 8, !tbaa !53
  %714 = getelementptr inbounds %struct.s2n_cipher, ptr %713, i32 0, i32 4
  %715 = load ptr, ptr %714, align 8, !tbaa !55
  %716 = load ptr, ptr %11, align 8, !tbaa !9
  %717 = getelementptr inbounds %struct.s2n_connection, ptr %716, i32 0, i32 27
  %718 = load ptr, ptr %717, align 8, !tbaa !17
  %719 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %718, i32 0, i32 2
  %720 = call i32 %715(ptr noundef %719)
  %721 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %720, ptr %721, align 4
  %722 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %723 = load i32, ptr %722, align 4
  %724 = call zeroext i1 @s2n_result_is_ok(i32 %723)
  br i1 %724, label %778, label %725

725:                                              ; preds = %702
  br label %726

726:                                              ; preds = %725
  br label %727

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

734:                                              ; preds = %727
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @fileno(ptr noundef %735) #11
  %737 = call i32 @isatty(i32 noundef %736) #11
  %738 = icmp ne i32 %737, 0
  br i1 %738, label %739, label %756

739:                                              ; preds = %734
  %740 = load i32, ptr %24, align 4, !tbaa !5
  %741 = call ptr @__errno_location() #12
  store i32 %740, ptr %741, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror(i32 noundef %745, ptr noundef @.str.4)
  %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_debug(i32 noundef %748, ptr noundef @.str.4)
  %750 = call ptr @__errno_location() #12
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #11
  %753 = call ptr @__errno_location() #12
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef @.str.2, i32 noundef %743, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 67, ptr noundef %746, ptr noundef %749, ptr noundef %752, i32 noundef %754) #11
  br label %773

756:                                              ; preds = %734, %727
  %757 = load i32, ptr %24, align 4, !tbaa !5
  %758 = call ptr @__errno_location() #12
  store i32 %757, ptr %758, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror(i32 noundef %762, ptr noundef @.str.4)
  %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_debug(i32 noundef %765, ptr noundef @.str.4)
  %767 = call ptr @__errno_location() #12
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #11
  %770 = call ptr @__errno_location() #12
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef @.str.5, i32 noundef %760, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 67, ptr noundef %763, ptr noundef %766, ptr noundef %769, i32 noundef %771) #11
  br label %773

773:                                              ; preds = %756, %739
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %774

774:                                              ; preds = %773
  br label %775

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

776:                                              ; No predecessors!
  br label %777

777:                                              ; preds = %776
  br label %778

778:                                              ; preds = %777, %702
  br label %779

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = load ptr, ptr %11, align 8, !tbaa !9
  %785 = getelementptr inbounds %struct.s2n_connection, ptr %784, i32 0, i32 27
  %786 = load ptr, ptr %785, align 8, !tbaa !17
  %787 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %786, i32 0, i32 0
  %788 = load ptr, ptr %787, align 8, !tbaa !46
  %789 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %788, i32 0, i32 6
  %790 = load ptr, ptr %789, align 8, !tbaa !51
  %791 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %790, i32 0, i32 0
  %792 = load ptr, ptr %791, align 8, !tbaa !53
  %793 = getelementptr inbounds %struct.s2n_cipher, ptr %792, i32 0, i32 4
  %794 = load ptr, ptr %793, align 8, !tbaa !55
  %795 = load ptr, ptr %11, align 8, !tbaa !9
  %796 = getelementptr inbounds %struct.s2n_connection, ptr %795, i32 0, i32 27
  %797 = load ptr, ptr %796, align 8, !tbaa !17
  %798 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %797, i32 0, i32 1
  %799 = call i32 %794(ptr noundef %798)
  %800 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %799, ptr %800, align 4
  %801 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %802 = load i32, ptr %801, align 4
  %803 = call zeroext i1 @s2n_result_is_ok(i32 %802)
  br i1 %803, label %857, label %804

804:                                              ; preds = %781
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %807 = call ptr @__errno_location() #12
  %808 = load i32, ptr %807, align 4, !tbaa !5
  store i32 %808, ptr %26, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @s2n_print_stacktrace(ptr noundef %809)
  %811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %812 = trunc i8 %811 to i1
  br i1 %812, label %813, label %835

813:                                              ; preds = %806
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @fileno(ptr noundef %814) #11
  %816 = call i32 @isatty(i32 noundef %815) #11
  %817 = icmp ne i32 %816, 0
  br i1 %817, label %818, label %835

818:                                              ; preds = %813
  %819 = load i32, ptr %26, align 4, !tbaa !5
  %820 = call ptr @__errno_location() #12
  store i32 %819, ptr %820, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef @.str.4)
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror_debug(i32 noundef %827, ptr noundef @.str.4)
  %829 = call ptr @__errno_location() #12
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #11
  %832 = call ptr @__errno_location() #12
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef @.str.2, i32 noundef %822, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 68, ptr noundef %825, ptr noundef %828, ptr noundef %831, i32 noundef %833) #11
  br label %852

835:                                              ; preds = %813, %806
  %836 = load i32, ptr %26, align 4, !tbaa !5
  %837 = call ptr @__errno_location() #12
  store i32 %836, ptr %837, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef @.str.4)
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror_debug(i32 noundef %844, ptr noundef @.str.4)
  %846 = call ptr @__errno_location() #12
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @strerror(i32 noundef %847) #11
  %849 = call ptr @__errno_location() #12
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef @.str.5, i32 noundef %839, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 68, ptr noundef %842, ptr noundef %845, ptr noundef %848, i32 noundef %850) #11
  br label %852

852:                                              ; preds = %835, %818
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %853

853:                                              ; preds = %852
  br label %854

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

855:                                              ; No predecessors!
  br label %856

856:                                              ; preds = %855
  br label %857

857:                                              ; preds = %856, %781
  br label %858

858:                                              ; preds = %857
  br label %859

859:                                              ; preds = %858
  %860 = load ptr, ptr %11, align 8, !tbaa !9
  %861 = getelementptr inbounds %struct.s2n_connection, ptr %860, i32 0, i32 27
  %862 = load ptr, ptr %861, align 8, !tbaa !17
  %863 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %862, i32 0, i32 0
  %864 = load ptr, ptr %863, align 8, !tbaa !46
  %865 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %864, i32 0, i32 6
  %866 = load ptr, ptr %865, align 8, !tbaa !51
  %867 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %866, i32 0, i32 0
  %868 = load ptr, ptr %867, align 8, !tbaa !53
  %869 = getelementptr inbounds %struct.s2n_cipher, ptr %868, i32 0, i32 3
  %870 = load ptr, ptr %869, align 8, !tbaa !15
  %871 = call zeroext i1 %870()
  br i1 %871, label %872, label %2865

872:                                              ; preds = %859
  br label %873

873:                                              ; preds = %872
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = add nsw i32 %874, 1
  store i32 %875, ptr @test_count, align 4, !tbaa !5
  %876 = load ptr, ptr %11, align 8, !tbaa !9
  %877 = getelementptr inbounds %struct.s2n_connection, ptr %876, i32 0, i32 27
  %878 = load ptr, ptr %877, align 8, !tbaa !17
  %879 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %878, i32 0, i32 0
  %880 = load ptr, ptr %879, align 8, !tbaa !46
  %881 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %880, i32 0, i32 6
  %882 = load ptr, ptr %881, align 8, !tbaa !51
  %883 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %882, i32 0, i32 0
  %884 = load ptr, ptr %883, align 8, !tbaa !53
  %885 = getelementptr inbounds %struct.s2n_cipher, ptr %884, i32 0, i32 5
  %886 = load ptr, ptr %885, align 8, !tbaa !56
  %887 = load ptr, ptr %11, align 8, !tbaa !9
  %888 = getelementptr inbounds %struct.s2n_connection, ptr %887, i32 0, i32 27
  %889 = load ptr, ptr %888, align 8, !tbaa !17
  %890 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %889, i32 0, i32 1
  %891 = call i32 %886(ptr noundef %890, ptr noundef %14)
  %892 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %891, ptr %892, align 4
  %893 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  %894 = load i32, ptr %893, align 4
  %895 = call zeroext i1 @s2n_result_is_ok(i32 %894)
  br i1 %895, label %949, label %896

896:                                              ; preds = %873
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %899 = call ptr @__errno_location() #12
  %900 = load i32, ptr %899, align 4, !tbaa !5
  store i32 %900, ptr %28, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901)
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc i8 %903 to i1
  br i1 %904, label %905, label %927

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #11
  %908 = call i32 @isatty(i32 noundef %907) #11
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %927

910:                                              ; preds = %905
  %911 = load i32, ptr %28, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #12
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.4)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #12
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #11
  %924 = call ptr @__errno_location() #12
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.2, i32 noundef %914, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 70, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #11
  br label %944

927:                                              ; preds = %905, %898
  %928 = load i32, ptr %28, align 4, !tbaa !5
  %929 = call ptr @__errno_location() #12
  store i32 %928, ptr %929, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef @.str.4)
  %935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef @.str.4)
  %938 = call ptr @__errno_location() #12
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #11
  %941 = call ptr @__errno_location() #12
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef @.str.5, i32 noundef %931, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 70, ptr noundef %934, ptr noundef %937, ptr noundef %940, i32 noundef %942) #11
  br label %944

944:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %945

945:                                              ; preds = %944
  br label %946

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

947:                                              ; No predecessors!
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948, %873
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  %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 %11, align 8, !tbaa !9
  %956 = getelementptr inbounds %struct.s2n_connection, ptr %955, i32 0, i32 27
  %957 = load ptr, ptr %956, align 8, !tbaa !17
  %958 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %957, i32 0, i32 0
  %959 = load ptr, ptr %958, align 8, !tbaa !46
  %960 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %959, i32 0, i32 6
  %961 = load ptr, ptr %960, align 8, !tbaa !51
  %962 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %961, i32 0, i32 0
  %963 = load ptr, ptr %962, align 8, !tbaa !53
  %964 = getelementptr inbounds %struct.s2n_cipher, ptr %963, i32 0, i32 6
  %965 = load ptr, ptr %964, align 8, !tbaa !57
  %966 = load ptr, ptr %11, align 8, !tbaa !9
  %967 = getelementptr inbounds %struct.s2n_connection, ptr %966, i32 0, i32 27
  %968 = load ptr, ptr %967, align 8, !tbaa !17
  %969 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %968, i32 0, i32 2
  %970 = call i32 %965(ptr noundef %969, ptr noundef %14)
  %971 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %970, ptr %971, align 4
  %972 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %973 = load i32, ptr %972, align 4
  %974 = call zeroext i1 @s2n_result_is_ok(i32 %973)
  br i1 %974, label %1028, label %975

975:                                              ; preds = %952
  br label %976

976:                                              ; preds = %975
  br label %977

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

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

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

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

1023:                                             ; preds = %1006, %989
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

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

1026:                                             ; No predecessors!
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027, %952
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

1031:                                             ; preds = %1030
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = add nsw i32 %1032, 1
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = load ptr, ptr %11, align 8, !tbaa !9
  %1035 = getelementptr inbounds %struct.s2n_connection, ptr %1034, i32 0, i32 27
  %1036 = load ptr, ptr %1035, align 8, !tbaa !17
  %1037 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1036, i32 0, i32 3
  %1038 = getelementptr inbounds [15 x i8], ptr %12, i64 0, i64 0
  %1039 = call i32 @s2n_hmac_init(ptr noundef %1037, i32 noundef 2, ptr noundef %1038, i32 noundef 15)
  %1040 = icmp eq i32 %1039, -1
  br i1 %1040, label %1041, label %1094

1041:                                             ; preds = %1031
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

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

1050:                                             ; preds = %1043
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = call i32 @fileno(ptr noundef %1051) #11
  %1053 = call i32 @isatty(i32 noundef %1052) #11
  %1054 = icmp ne i32 %1053, 0
  br i1 %1054, label %1055, label %1072

1055:                                             ; preds = %1050
  %1056 = load i32, ptr %31, align 4, !tbaa !5
  %1057 = call ptr @__errno_location() #12
  store i32 %1056, ptr %1057, align 4, !tbaa !5
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror(i32 noundef %1061, ptr noundef @.str.4)
  %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_debug(i32 noundef %1064, ptr noundef @.str.4)
  %1066 = call ptr @__errno_location() #12
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @strerror(i32 noundef %1067) #11
  %1069 = call ptr @__errno_location() #12
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1058, ptr noundef @.str.2, i32 noundef %1059, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1062, ptr noundef %1065, ptr noundef %1068, i32 noundef %1070) #11
  br label %1089

1072:                                             ; preds = %1050, %1043
  %1073 = load i32, ptr %31, align 4, !tbaa !5
  %1074 = call ptr @__errno_location() #12
  store i32 %1073, ptr %1074, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef @.str.4)
  %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_debug(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call ptr @__errno_location() #12
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #11
  %1086 = call ptr @__errno_location() #12
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef @.str.5, i32 noundef %1076, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1079, ptr noundef %1082, ptr noundef %1085, i32 noundef %1087) #11
  br label %1089

1089:                                             ; preds = %1072, %1055
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

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

1092:                                             ; No predecessors!
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093, %1031
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = add nsw i32 %1098, 1
  store i32 %1099, ptr @test_count, align 4, !tbaa !5
  %1100 = load ptr, ptr %11, align 8, !tbaa !9
  %1101 = getelementptr inbounds %struct.s2n_connection, ptr %1100, i32 0, i32 27
  %1102 = load ptr, ptr %1101, align 8, !tbaa !17
  %1103 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1102, i32 0, i32 4
  %1104 = getelementptr inbounds [15 x i8], ptr %12, i64 0, i64 0
  %1105 = call i32 @s2n_hmac_init(ptr noundef %1103, i32 noundef 2, ptr noundef %1104, i32 noundef 15)
  %1106 = icmp eq i32 %1105, -1
  br i1 %1106, label %1107, label %1160

1107:                                             ; preds = %1097
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1110 = call ptr @__errno_location() #12
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  store i32 %1111, ptr %32, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @s2n_print_stacktrace(ptr noundef %1112)
  %1114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1115 = trunc i8 %1114 to i1
  br i1 %1115, label %1116, label %1138

1116:                                             ; preds = %1109
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @fileno(ptr noundef %1117) #11
  %1119 = call i32 @isatty(i32 noundef %1118) #11
  %1120 = icmp ne i32 %1119, 0
  br i1 %1120, label %1121, label %1138

1121:                                             ; preds = %1116
  %1122 = load i32, ptr %32, align 4, !tbaa !5
  %1123 = call ptr @__errno_location() #12
  store i32 %1122, ptr %1123, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = load i32, ptr @test_count, align 4, !tbaa !5
  %1126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror(i32 noundef %1127, ptr noundef @.str.4)
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef @.str.4)
  %1132 = call ptr @__errno_location() #12
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #11
  %1135 = call ptr @__errno_location() #12
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1124, ptr noundef @.str.2, i32 noundef %1125, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1128, ptr noundef %1131, ptr noundef %1134, i32 noundef %1136) #11
  br label %1155

1138:                                             ; preds = %1116, %1109
  %1139 = load i32, ptr %32, align 4, !tbaa !5
  %1140 = call ptr @__errno_location() #12
  store i32 %1139, ptr %1140, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror_debug(i32 noundef %1147, ptr noundef @.str.4)
  %1149 = call ptr @__errno_location() #12
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @strerror(i32 noundef %1150) #11
  %1152 = call ptr @__errno_location() #12
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef @.str.5, i32 noundef %1142, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1145, ptr noundef %1148, ptr noundef %1151, i32 noundef %1153) #11
  br label %1155

1155:                                             ; preds = %1138, %1121
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

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

1158:                                             ; No predecessors!
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159, %1097
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161
  %1163 = load ptr, ptr %11, align 8, !tbaa !9
  %1164 = getelementptr inbounds %struct.s2n_connection, ptr %1163, i32 0, i32 23
  store i8 32, ptr %1164, align 4, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  store i64 0, ptr %33, align 8, !tbaa !59
  br label %1165

1165:                                             ; preds = %2703, %1162
  %1166 = load i64, ptr %33, align 8, !tbaa !59
  %1167 = icmp ule i64 %1166, 8088
  br i1 %1167, label %1169, label %1168

1168:                                             ; preds = %1165
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  br label %2706

1169:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #11
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 24, i1 false)
  br label %1170

1170:                                             ; preds = %1169
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr @test_count, align 4, !tbaa !5
  %1173 = getelementptr inbounds [8088 x i8], ptr %16, i64 0, i64 0
  %1174 = load i64, ptr %33, align 8, !tbaa !59
  %1175 = trunc i64 %1174 to i32
  %1176 = call i32 @s2n_blob_init(ptr noundef %34, ptr noundef %1173, i32 noundef %1175)
  %1177 = icmp eq i32 %1176, -1
  br i1 %1177, label %1178, label %1231

1178:                                             ; preds = %1170
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

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

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

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

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

1226:                                             ; preds = %1209, %1192
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

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

1229:                                             ; No predecessors!
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

1231:                                             ; preds = %1230, %1170
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

1233:                                             ; preds = %1232
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  store i32 0, ptr %36, align 4, !tbaa !5
  br label %1234

1234:                                             ; preds = %1233
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = load ptr, ptr %11, align 8, !tbaa !9
  %1238 = getelementptr inbounds %struct.s2n_connection, ptr %1237, i32 0, i32 41
  %1239 = call i32 @s2n_stuffer_wipe(ptr noundef %1238)
  %1240 = icmp eq i32 %1239, -1
  br i1 %1240, label %1241, label %1294

1241:                                             ; preds = %1234
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1244 = call ptr @__errno_location() #12
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  store i32 %1245, ptr %37, 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 %37, 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.22, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1262, ptr noundef %1265, ptr noundef %1268, i32 noundef %1270) #11
  br label %1289

1272:                                             ; preds = %1250, %1243
  %1273 = load i32, ptr %37, 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.22, ptr noundef @.str.1, i32 noundef 81, 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 %37) #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, %1234
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1297 = load ptr, ptr %11, align 8, !tbaa !9
  %1298 = call i32 @s2n_record_write(ptr noundef %1297, i8 noundef zeroext 23, ptr noundef %34)
  %1299 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  store i32 %1298, ptr %1299, align 4
  %1300 = load i64, ptr %33, align 8, !tbaa !59
  %1301 = icmp ule i64 %1300, 8087
  br i1 %1301, label %1302, label %1367

1302:                                             ; preds = %1296
  br label %1303

1303:                                             ; preds = %1302
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = add nsw i32 %1304, 1
  store i32 %1305, ptr @test_count, align 4, !tbaa !5
  %1306 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  %1307 = load i32, ptr %1306, align 4
  %1308 = call zeroext i1 @s2n_result_is_ok(i32 %1307)
  br i1 %1308, label %1362, label %1309

1309:                                             ; preds = %1303
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1312 = call ptr @__errno_location() #12
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  store i32 %1313, ptr %39, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @s2n_print_stacktrace(ptr noundef %1314)
  %1316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1317 = trunc i8 %1316 to i1
  br i1 %1317, label %1318, label %1340

1318:                                             ; preds = %1311
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @fileno(ptr noundef %1319) #11
  %1321 = call i32 @isatty(i32 noundef %1320) #11
  %1322 = icmp ne i32 %1321, 0
  br i1 %1322, label %1323, label %1340

1323:                                             ; preds = %1318
  %1324 = load i32, ptr %39, align 4, !tbaa !5
  %1325 = call ptr @__errno_location() #12
  store i32 %1324, ptr %1325, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef @.str.4)
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef %1332, ptr noundef @.str.4)
  %1334 = call ptr @__errno_location() #12
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #11
  %1337 = call ptr @__errno_location() #12
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef @.str.2, i32 noundef %1327, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1330, ptr noundef %1333, ptr noundef %1336, i32 noundef %1338) #11
  br label %1357

1340:                                             ; preds = %1318, %1311
  %1341 = load i32, ptr %39, align 4, !tbaa !5
  %1342 = call ptr @__errno_location() #12
  store i32 %1341, ptr %1342, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror(i32 noundef %1346, ptr noundef @.str.4)
  %1348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror_debug(i32 noundef %1349, ptr noundef @.str.4)
  %1351 = call ptr @__errno_location() #12
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call ptr @strerror(i32 noundef %1352) #11
  %1354 = call ptr @__errno_location() #12
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1343, ptr noundef @.str.5, i32 noundef %1344, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1347, ptr noundef %1350, ptr noundef %1353, i32 noundef %1355) #11
  br label %1357

1357:                                             ; preds = %1340, %1323
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

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

1360:                                             ; No predecessors!
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361, %1303
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

1364:                                             ; preds = %1363
  %1365 = load i64, ptr %33, align 8, !tbaa !59
  %1366 = trunc i64 %1365 to i32
  store i32 %1366, ptr %36, align 4, !tbaa !5
  br label %1566

1367:                                             ; preds = %1296
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369
  %1371 = load i32, ptr @test_count, align 4, !tbaa !5
  %1372 = add nsw i32 %1371, 1
  store i32 %1372, ptr @test_count, align 4, !tbaa !5
  %1373 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  %1374 = load i32, ptr %1373, align 4
  %1375 = call zeroext i1 @s2n_result_is_error(i32 %1374)
  br i1 %1375, label %1429, label %1376

1376:                                             ; preds = %1370
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

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

1385:                                             ; preds = %1378
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @fileno(ptr noundef %1386) #11
  %1388 = call i32 @isatty(i32 noundef %1387) #11
  %1389 = icmp ne i32 %1388, 0
  br i1 %1389, label %1390, label %1407

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

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

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

1425:                                             ; preds = %1424
  br label %1426

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

1427:                                             ; No predecessors!
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428, %1370
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

1432:                                             ; preds = %1431
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr @test_count, align 4, !tbaa !5
  %1435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = icmp eq i32 %1436, 335544390
  br i1 %1437, label %1491, label %1438

1438:                                             ; preds = %1432
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

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

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

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

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

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

1487:                                             ; preds = %1486
  br label %1488

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

1489:                                             ; No predecessors!
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490, %1432
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

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

1501:                                             ; preds = %1494
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

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

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

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

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

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

1550:                                             ; preds = %1549
  br label %1551

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

1552:                                             ; No predecessors!
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553, %1494
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1560, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1561 = call ptr @__errno_location() #12
  store i32 0, ptr %1561, align 4, !tbaa !5
  br label %1562

1562:                                             ; preds = %1559
  br label %1563

1563:                                             ; preds = %1562
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  store i32 8087, ptr %36, align 4, !tbaa !5
  br label %1566

1566:                                             ; preds = %1565, %1364
  call void @llvm.lifetime.start.p0(i64 2, ptr %43) #11
  %1567 = load i32, ptr %36, align 4, !tbaa !5
  %1568 = add nsw i32 %1567, 20
  %1569 = trunc i32 %1568 to i16
  store i16 %1569, ptr %43, align 2, !tbaa !60
  br label %1570

1570:                                             ; preds = %1566
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = add nsw i32 %1571, 1
  store i32 %1572, ptr @test_count, align 4, !tbaa !5
  %1573 = load ptr, ptr %11, align 8, !tbaa !9
  %1574 = getelementptr inbounds %struct.s2n_connection, ptr %1573, i32 0, i32 41
  %1575 = getelementptr inbounds %struct.s2n_stuffer, ptr %1574, i32 0, i32 0
  %1576 = getelementptr inbounds %struct.s2n_blob, ptr %1575, i32 0, i32 0
  %1577 = load ptr, ptr %1576, align 8, !tbaa !61
  %1578 = getelementptr inbounds i8, ptr %1577, i64 0
  %1579 = load i8, ptr %1578, align 1, !tbaa !62
  %1580 = zext i8 %1579 to i32
  %1581 = icmp eq i32 %1580, 23
  br i1 %1581, label %1635, label %1582

1582:                                             ; preds = %1570
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1585 = call ptr @__errno_location() #12
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  store i32 %1586, ptr %44, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @s2n_print_stacktrace(ptr noundef %1587)
  %1589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1590 = trunc i8 %1589 to i1
  br i1 %1590, label %1591, label %1613

1591:                                             ; preds = %1584
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @fileno(ptr noundef %1592) #11
  %1594 = call i32 @isatty(i32 noundef %1593) #11
  %1595 = icmp ne i32 %1594, 0
  br i1 %1595, label %1596, label %1613

1596:                                             ; preds = %1591
  %1597 = load i32, ptr %44, align 4, !tbaa !5
  %1598 = call ptr @__errno_location() #12
  store i32 %1597, ptr %1598, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1602, ptr noundef @.str.4)
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror_debug(i32 noundef %1605, ptr noundef @.str.4)
  %1607 = call ptr @__errno_location() #12
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @strerror(i32 noundef %1608) #11
  %1610 = call ptr @__errno_location() #12
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef @.str.2, i32 noundef %1600, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1603, ptr noundef %1606, ptr noundef %1609, i32 noundef %1611) #11
  br label %1630

1613:                                             ; preds = %1591, %1584
  %1614 = load i32, ptr %44, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #12
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror_debug(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call ptr @__errno_location() #12
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #11
  %1627 = call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.5, i32 noundef %1617, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #11
  br label %1630

1630:                                             ; preds = %1613, %1596
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

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

1633:                                             ; No predecessors!
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634, %1570
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr @test_count, align 4, !tbaa !5
  %1641 = load ptr, ptr %11, align 8, !tbaa !9
  %1642 = getelementptr inbounds %struct.s2n_connection, ptr %1641, i32 0, i32 41
  %1643 = getelementptr inbounds %struct.s2n_stuffer, ptr %1642, i32 0, i32 0
  %1644 = getelementptr inbounds %struct.s2n_blob, ptr %1643, i32 0, i32 0
  %1645 = load ptr, ptr %1644, align 8, !tbaa !61
  %1646 = getelementptr inbounds i8, ptr %1645, i64 1
  %1647 = load i8, ptr %1646, align 1, !tbaa !62
  %1648 = zext i8 %1647 to i32
  %1649 = icmp eq i32 %1648, 3
  br i1 %1649, label %1703, label %1650

1650:                                             ; preds = %1638
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

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

1659:                                             ; preds = %1652
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = call i32 @fileno(ptr noundef %1660) #11
  %1662 = call i32 @isatty(i32 noundef %1661) #11
  %1663 = icmp ne i32 %1662, 0
  br i1 %1663, label %1664, label %1681

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

1681:                                             ; preds = %1659, %1652
  %1682 = load i32, ptr %45, align 4, !tbaa !5
  %1683 = call ptr @__errno_location() #12
  store i32 %1682, ptr %1683, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef @.str.4)
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @s2n_strerror_debug(i32 noundef %1690, ptr noundef @.str.4)
  %1692 = call ptr @__errno_location() #12
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @strerror(i32 noundef %1693) #11
  %1695 = call ptr @__errno_location() #12
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef @.str.5, i32 noundef %1685, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1688, ptr noundef %1691, ptr noundef %1694, i32 noundef %1696) #11
  br label %1698

1698:                                             ; preds = %1681, %1664
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

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

1701:                                             ; No predecessors!
  br label %1702

1702:                                             ; preds = %1701
  br label %1703

1703:                                             ; preds = %1702, %1638
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

1706:                                             ; preds = %1705
  %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 = load ptr, ptr %11, align 8, !tbaa !9
  %1710 = getelementptr inbounds %struct.s2n_connection, ptr %1709, i32 0, i32 41
  %1711 = getelementptr inbounds %struct.s2n_stuffer, ptr %1710, i32 0, i32 0
  %1712 = getelementptr inbounds %struct.s2n_blob, ptr %1711, i32 0, i32 0
  %1713 = load ptr, ptr %1712, align 8, !tbaa !61
  %1714 = getelementptr inbounds i8, ptr %1713, i64 2
  %1715 = load i8, ptr %1714, align 1, !tbaa !62
  %1716 = zext i8 %1715 to i32
  %1717 = icmp eq i32 %1716, 2
  br i1 %1717, label %1771, label %1718

1718:                                             ; preds = %1706
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

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

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

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

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

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

1767:                                             ; preds = %1766
  br label %1768

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

1769:                                             ; No predecessors!
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770, %1706
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = add nsw i32 %1775, 1
  store i32 %1776, ptr @test_count, align 4, !tbaa !5
  %1777 = load ptr, ptr %11, align 8, !tbaa !9
  %1778 = getelementptr inbounds %struct.s2n_connection, ptr %1777, i32 0, i32 41
  %1779 = getelementptr inbounds %struct.s2n_stuffer, ptr %1778, i32 0, i32 0
  %1780 = getelementptr inbounds %struct.s2n_blob, ptr %1779, i32 0, i32 0
  %1781 = load ptr, ptr %1780, align 8, !tbaa !61
  %1782 = getelementptr inbounds i8, ptr %1781, i64 3
  %1783 = load i8, ptr %1782, align 1, !tbaa !62
  %1784 = zext i8 %1783 to i32
  %1785 = load i16, ptr %43, align 2, !tbaa !60
  %1786 = zext i16 %1785 to i32
  %1787 = ashr i32 %1786, 8
  %1788 = and i32 %1787, 255
  %1789 = icmp eq i32 %1784, %1788
  br i1 %1789, label %1843, label %1790

1790:                                             ; preds = %1774
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

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

1799:                                             ; preds = %1792
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = call i32 @fileno(ptr noundef %1800) #11
  %1802 = call i32 @isatty(i32 noundef %1801) #11
  %1803 = icmp ne i32 %1802, 0
  br i1 %1803, label %1804, label %1821

1804:                                             ; preds = %1799
  %1805 = load i32, ptr %47, align 4, !tbaa !5
  %1806 = call ptr @__errno_location() #12
  store i32 %1805, ptr %1806, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror(i32 noundef %1810, ptr noundef @.str.4)
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef @.str.4)
  %1815 = call ptr @__errno_location() #12
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @strerror(i32 noundef %1816) #11
  %1818 = call ptr @__errno_location() #12
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1807, ptr noundef @.str.2, i32 noundef %1808, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1811, ptr noundef %1814, ptr noundef %1817, i32 noundef %1819) #11
  br label %1838

1821:                                             ; preds = %1799, %1792
  %1822 = load i32, ptr %47, align 4, !tbaa !5
  %1823 = call ptr @__errno_location() #12
  store i32 %1822, ptr %1823, align 4, !tbaa !5
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = load i32, ptr @test_count, align 4, !tbaa !5
  %1826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror(i32 noundef %1827, ptr noundef @.str.4)
  %1829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @s2n_strerror_debug(i32 noundef %1830, ptr noundef @.str.4)
  %1832 = call ptr @__errno_location() #12
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @strerror(i32 noundef %1833) #11
  %1835 = call ptr @__errno_location() #12
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1824, ptr noundef @.str.5, i32 noundef %1825, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1828, ptr noundef %1831, ptr noundef %1834, i32 noundef %1836) #11
  br label %1838

1838:                                             ; preds = %1821, %1804
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

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

1841:                                             ; No predecessors!
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842, %1774
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = add nsw i32 %1847, 1
  store i32 %1848, ptr @test_count, align 4, !tbaa !5
  %1849 = load ptr, ptr %11, align 8, !tbaa !9
  %1850 = getelementptr inbounds %struct.s2n_connection, ptr %1849, i32 0, i32 41
  %1851 = getelementptr inbounds %struct.s2n_stuffer, ptr %1850, i32 0, i32 0
  %1852 = getelementptr inbounds %struct.s2n_blob, ptr %1851, i32 0, i32 0
  %1853 = load ptr, ptr %1852, align 8, !tbaa !61
  %1854 = getelementptr inbounds i8, ptr %1853, i64 4
  %1855 = load i8, ptr %1854, align 1, !tbaa !62
  %1856 = zext i8 %1855 to i32
  %1857 = load i16, ptr %43, align 2, !tbaa !60
  %1858 = zext i16 %1857 to i32
  %1859 = and i32 %1858, 255
  %1860 = icmp eq i32 %1856, %1859
  br i1 %1860, label %1914, label %1861

1861:                                             ; preds = %1846
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

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

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

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

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

1909:                                             ; preds = %1892, %1875
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

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

1912:                                             ; No predecessors!
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913, %1846
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  %1917 = load i32, ptr %36, align 4, !tbaa !5
  %1918 = icmp sgt i32 %1917, 10
  br i1 %1918, label %1919, label %1990

1919:                                             ; preds = %1916
  br label %1920

1920:                                             ; preds = %1919
  %1921 = load i32, ptr @test_count, align 4, !tbaa !5
  %1922 = add nsw i32 %1921, 1
  store i32 %1922, ptr @test_count, align 4, !tbaa !5
  %1923 = load ptr, ptr %11, align 8, !tbaa !9
  %1924 = getelementptr inbounds %struct.s2n_connection, ptr %1923, i32 0, i32 41
  %1925 = getelementptr inbounds %struct.s2n_stuffer, ptr %1924, i32 0, i32 0
  %1926 = getelementptr inbounds %struct.s2n_blob, ptr %1925, i32 0, i32 0
  %1927 = load ptr, ptr %1926, align 8, !tbaa !61
  %1928 = getelementptr inbounds i8, ptr %1927, i64 5
  %1929 = getelementptr inbounds [8088 x i8], ptr %16, i64 0, i64 0
  %1930 = load i32, ptr %36, align 4, !tbaa !5
  %1931 = sext i32 %1930 to i64
  %1932 = call i32 @memcmp(ptr noundef %1928, ptr noundef %1929, i64 noundef %1931) #14
  %1933 = icmp eq i32 %1932, 0
  br i1 %1933, label %1934, label %1987

1934:                                             ; preds = %1920
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1937 = call ptr @__errno_location() #12
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  store i32 %1938, ptr %49, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = call i32 @s2n_print_stacktrace(ptr noundef %1939)
  %1941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1942 = trunc i8 %1941 to i1
  br i1 %1942, label %1943, label %1965

1943:                                             ; preds = %1936
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @fileno(ptr noundef %1944) #11
  %1946 = call i32 @isatty(i32 noundef %1945) #11
  %1947 = icmp ne i32 %1946, 0
  br i1 %1947, label %1948, label %1965

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

1965:                                             ; preds = %1943, %1936
  %1966 = load i32, ptr %49, align 4, !tbaa !5
  %1967 = call ptr @__errno_location() #12
  store i32 %1966, ptr %1967, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef @.str.4)
  %1976 = call ptr @__errno_location() #12
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @strerror(i32 noundef %1977) #11
  %1979 = call ptr @__errno_location() #12
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1968, ptr noundef @.str.5, i32 noundef %1969, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1972, ptr noundef %1975, ptr noundef %1978, i32 noundef %1980) #11
  br label %1982

1982:                                             ; preds = %1965, %1948
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

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

1985:                                             ; No predecessors!
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986, %1920
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989, %1916
  br label %1991

1991:                                             ; preds = %1990
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = add nsw i32 %1992, 1
  store i32 %1993, ptr @test_count, align 4, !tbaa !5
  %1994 = load ptr, ptr %11, align 8, !tbaa !9
  %1995 = getelementptr inbounds %struct.s2n_connection, ptr %1994, i32 0, i32 40
  %1996 = call i32 @s2n_stuffer_wipe(ptr noundef %1995)
  %1997 = icmp eq i32 %1996, -1
  br i1 %1997, label %1998, label %2051

1998:                                             ; preds = %1991
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %2001 = call ptr @__errno_location() #12
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  store i32 %2002, ptr %50, align 4, !tbaa !5
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = call i32 @s2n_print_stacktrace(ptr noundef %2003)
  %2005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2006 = trunc i8 %2005 to i1
  br i1 %2006, label %2007, label %2029

2007:                                             ; preds = %2000
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = call i32 @fileno(ptr noundef %2008) #11
  %2010 = call i32 @isatty(i32 noundef %2009) #11
  %2011 = icmp ne i32 %2010, 0
  br i1 %2011, label %2012, label %2029

2012:                                             ; preds = %2007
  %2013 = load i32, ptr %50, align 4, !tbaa !5
  %2014 = call ptr @__errno_location() #12
  store i32 %2013, ptr %2014, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror(i32 noundef %2018, ptr noundef @.str.4)
  %2020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror_debug(i32 noundef %2021, ptr noundef @.str.4)
  %2023 = call ptr @__errno_location() #12
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call ptr @strerror(i32 noundef %2024) #11
  %2026 = call ptr @__errno_location() #12
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2015, ptr noundef @.str.2, i32 noundef %2016, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2019, ptr noundef %2022, ptr noundef %2025, i32 noundef %2027) #11
  br label %2046

2029:                                             ; preds = %2007, %2000
  %2030 = load i32, ptr %50, align 4, !tbaa !5
  %2031 = call ptr @__errno_location() #12
  store i32 %2030, ptr %2031, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror(i32 noundef %2035, ptr noundef @.str.4)
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror_debug(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call ptr @__errno_location() #12
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @strerror(i32 noundef %2041) #11
  %2043 = call ptr @__errno_location() #12
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2032, ptr noundef @.str.5, i32 noundef %2033, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2036, ptr noundef %2039, ptr noundef %2042, i32 noundef %2044) #11
  br label %2046

2046:                                             ; preds = %2029, %2012
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

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

2049:                                             ; No predecessors!
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050, %1991
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2053
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = add nsw i32 %2055, 1
  store i32 %2056, ptr @test_count, align 4, !tbaa !5
  %2057 = load ptr, ptr %11, align 8, !tbaa !9
  %2058 = getelementptr inbounds %struct.s2n_connection, ptr %2057, i32 0, i32 38
  %2059 = call i32 @s2n_stuffer_wipe(ptr noundef %2058)
  %2060 = icmp eq i32 %2059, -1
  br i1 %2060, label %2061, label %2114

2061:                                             ; preds = %2054
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

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

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

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

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

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

2110:                                             ; preds = %2109
  br label %2111

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

2112:                                             ; No predecessors!
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113, %2054
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = add nsw i32 %2118, 1
  store i32 %2119, ptr @test_count, align 4, !tbaa !5
  %2120 = load ptr, ptr %11, align 8, !tbaa !9
  %2121 = getelementptr inbounds %struct.s2n_connection, ptr %2120, i32 0, i32 41
  %2122 = load ptr, ptr %11, align 8, !tbaa !9
  %2123 = getelementptr inbounds %struct.s2n_connection, ptr %2122, i32 0, i32 38
  %2124 = call i32 @s2n_stuffer_copy(ptr noundef %2121, ptr noundef %2123, i32 noundef 5)
  %2125 = icmp eq i32 %2124, -1
  br i1 %2125, label %2126, label %2179

2126:                                             ; preds = %2117
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

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

2135:                                             ; preds = %2128
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = call i32 @fileno(ptr noundef %2136) #11
  %2138 = call i32 @isatty(i32 noundef %2137) #11
  %2139 = icmp ne i32 %2138, 0
  br i1 %2139, label %2140, label %2157

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

2157:                                             ; preds = %2135, %2128
  %2158 = load i32, ptr %52, align 4, !tbaa !5
  %2159 = call ptr @__errno_location() #12
  store i32 %2158, ptr %2159, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = load i32, ptr @test_count, align 4, !tbaa !5
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror(i32 noundef %2163, ptr noundef @.str.4)
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call ptr @__errno_location() #12
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @strerror(i32 noundef %2169) #11
  %2171 = call ptr @__errno_location() #12
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2160, ptr noundef @.str.5, i32 noundef %2161, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2164, ptr noundef %2167, ptr noundef %2170, i32 noundef %2172) #11
  br label %2174

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

2175:                                             ; preds = %2174
  br label %2176

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

2177:                                             ; No predecessors!
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178, %2117
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  br label %2182

2182:                                             ; preds = %2181
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = add nsw i32 %2183, 1
  store i32 %2184, ptr @test_count, align 4, !tbaa !5
  %2185 = load ptr, ptr %11, align 8, !tbaa !9
  %2186 = getelementptr inbounds %struct.s2n_connection, ptr %2185, i32 0, i32 41
  %2187 = load ptr, ptr %11, align 8, !tbaa !9
  %2188 = getelementptr inbounds %struct.s2n_connection, ptr %2187, i32 0, i32 40
  %2189 = load ptr, ptr %11, align 8, !tbaa !9
  %2190 = getelementptr inbounds %struct.s2n_connection, ptr %2189, i32 0, i32 41
  %2191 = getelementptr inbounds %struct.s2n_stuffer, ptr %2190, i32 0, i32 2
  %2192 = load i32, ptr %2191, align 4, !tbaa !63
  %2193 = load ptr, ptr %11, align 8, !tbaa !9
  %2194 = getelementptr inbounds %struct.s2n_connection, ptr %2193, i32 0, i32 41
  %2195 = getelementptr inbounds %struct.s2n_stuffer, ptr %2194, i32 0, i32 1
  %2196 = load i32, ptr %2195, align 8, !tbaa !64
  %2197 = sub i32 %2192, %2196
  %2198 = call i32 @s2n_stuffer_copy(ptr noundef %2186, ptr noundef %2188, i32 noundef %2197)
  %2199 = icmp eq i32 %2198, -1
  br i1 %2199, label %2200, label %2253

2200:                                             ; preds = %2182
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

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

2209:                                             ; preds = %2202
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @fileno(ptr noundef %2210) #11
  %2212 = call i32 @isatty(i32 noundef %2211) #11
  %2213 = icmp ne i32 %2212, 0
  br i1 %2213, label %2214, label %2231

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

2231:                                             ; preds = %2209, %2202
  %2232 = load i32, ptr %53, align 4, !tbaa !5
  %2233 = call ptr @__errno_location() #12
  store i32 %2232, ptr %2233, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror(i32 noundef %2237, ptr noundef @.str.4)
  %2239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror_debug(i32 noundef %2240, ptr noundef @.str.4)
  %2242 = call ptr @__errno_location() #12
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #11
  %2245 = call ptr @__errno_location() #12
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef @.str.5, i32 noundef %2235, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2238, ptr noundef %2241, ptr noundef %2244, i32 noundef %2246) #11
  br label %2248

2248:                                             ; preds = %2231, %2214
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

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

2251:                                             ; No predecessors!
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252, %2182
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = add nsw i32 %2257, 1
  store i32 %2258, ptr @test_count, align 4, !tbaa !5
  %2259 = load i32, ptr %36, align 4, !tbaa !5
  %2260 = add nsw i32 %2259, 20
  %2261 = load ptr, ptr %11, align 8, !tbaa !9
  %2262 = getelementptr inbounds %struct.s2n_connection, ptr %2261, i32 0, i32 40
  %2263 = getelementptr inbounds %struct.s2n_stuffer, ptr %2262, i32 0, i32 2
  %2264 = load i32, ptr %2263, align 4, !tbaa !65
  %2265 = load ptr, ptr %11, align 8, !tbaa !9
  %2266 = getelementptr inbounds %struct.s2n_connection, ptr %2265, i32 0, i32 40
  %2267 = getelementptr inbounds %struct.s2n_stuffer, ptr %2266, i32 0, i32 1
  %2268 = load i32, ptr %2267, align 8, !tbaa !66
  %2269 = sub i32 %2264, %2268
  %2270 = icmp eq i32 %2260, %2269
  br i1 %2270, label %2324, label %2271

2271:                                             ; preds = %2256
  br label %2272

2272:                                             ; preds = %2271
  br label %2273

2273:                                             ; preds = %2272
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2274 = call ptr @__errno_location() #12
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  store i32 %2275, ptr %54, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @s2n_print_stacktrace(ptr noundef %2276)
  %2278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2279 = trunc i8 %2278 to i1
  br i1 %2279, label %2280, label %2302

2280:                                             ; preds = %2273
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @fileno(ptr noundef %2281) #11
  %2283 = call i32 @isatty(i32 noundef %2282) #11
  %2284 = icmp ne i32 %2283, 0
  br i1 %2284, label %2285, label %2302

2285:                                             ; preds = %2280
  %2286 = load i32, ptr %54, align 4, !tbaa !5
  %2287 = call ptr @__errno_location() #12
  store i32 %2286, ptr %2287, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef @.str.4)
  %2296 = call ptr @__errno_location() #12
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #11
  %2299 = call ptr @__errno_location() #12
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef @.str.2, i32 noundef %2289, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2292, ptr noundef %2295, ptr noundef %2298, i32 noundef %2300) #11
  br label %2319

2302:                                             ; preds = %2280, %2273
  %2303 = load i32, ptr %54, align 4, !tbaa !5
  %2304 = call ptr @__errno_location() #12
  store i32 %2303, ptr %2304, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror(i32 noundef %2308, ptr noundef @.str.4)
  %2310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror_debug(i32 noundef %2311, ptr noundef @.str.4)
  %2313 = call ptr @__errno_location() #12
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @strerror(i32 noundef %2314) #11
  %2316 = call ptr @__errno_location() #12
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2305, ptr noundef @.str.5, i32 noundef %2306, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2309, ptr noundef %2312, ptr noundef %2315, i32 noundef %2317) #11
  br label %2319

2319:                                             ; preds = %2302, %2285
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

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

2322:                                             ; No predecessors!
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323, %2256
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

2326:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #11
  store i8 0, ptr %55, align 1, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %56) #11
  store i16 0, ptr %56, align 2, !tbaa !60
  br label %2327

2327:                                             ; preds = %2326
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = add nsw i32 %2328, 1
  store i32 %2329, ptr @test_count, align 4, !tbaa !5
  %2330 = load ptr, ptr %11, align 8, !tbaa !9
  %2331 = call i32 @s2n_record_header_parse(ptr noundef %2330, ptr noundef %55, ptr noundef %56)
  %2332 = icmp eq i32 %2331, -1
  br i1 %2332, label %2333, label %2386

2333:                                             ; preds = %2327
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2336 = call ptr @__errno_location() #12
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  store i32 %2337, ptr %57, align 4, !tbaa !5
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @s2n_print_stacktrace(ptr noundef %2338)
  %2340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2341 = trunc i8 %2340 to i1
  br i1 %2341, label %2342, label %2364

2342:                                             ; preds = %2335
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @fileno(ptr noundef %2343) #11
  %2345 = call i32 @isatty(i32 noundef %2344) #11
  %2346 = icmp ne i32 %2345, 0
  br i1 %2346, label %2347, label %2364

2347:                                             ; preds = %2342
  %2348 = load i32, ptr %57, align 4, !tbaa !5
  %2349 = call ptr @__errno_location() #12
  store i32 %2348, ptr %2349, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @s2n_strerror(i32 noundef %2353, ptr noundef @.str.4)
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror_debug(i32 noundef %2356, ptr noundef @.str.4)
  %2358 = call ptr @__errno_location() #12
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @strerror(i32 noundef %2359) #11
  %2361 = call ptr @__errno_location() #12
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2350, ptr noundef @.str.2, i32 noundef %2351, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2354, ptr noundef %2357, ptr noundef %2360, i32 noundef %2362) #11
  br label %2381

2364:                                             ; preds = %2342, %2335
  %2365 = load i32, ptr %57, align 4, !tbaa !5
  %2366 = call ptr @__errno_location() #12
  store i32 %2365, ptr %2366, align 4, !tbaa !5
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = load i32, ptr @test_count, align 4, !tbaa !5
  %2369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror(i32 noundef %2370, ptr noundef @.str.4)
  %2372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror_debug(i32 noundef %2373, ptr noundef @.str.4)
  %2375 = call ptr @__errno_location() #12
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #11
  %2378 = call ptr @__errno_location() #12
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2367, ptr noundef @.str.5, i32 noundef %2368, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2371, ptr noundef %2374, ptr noundef %2377, i32 noundef %2379) #11
  br label %2381

2381:                                             ; preds = %2364, %2347
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

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

2384:                                             ; No predecessors!
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385, %2327
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

2389:                                             ; preds = %2388
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = add nsw i32 %2390, 1
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = load ptr, ptr %11, align 8, !tbaa !9
  %2393 = call i32 @s2n_record_parse(ptr noundef %2392)
  %2394 = icmp eq i32 %2393, -1
  br i1 %2394, label %2395, label %2448

2395:                                             ; preds = %2389
  br label %2396

2396:                                             ; preds = %2395
  br label %2397

2397:                                             ; preds = %2396
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2398 = call ptr @__errno_location() #12
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  store i32 %2399, ptr %58, 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 %58, 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.39, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2416, ptr noundef %2419, ptr noundef %2422, i32 noundef %2424) #11
  br label %2443

2426:                                             ; preds = %2404, %2397
  %2427 = load i32, ptr %58, 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.39, ptr noundef @.str.1, i32 noundef 117, 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 %58) #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, %2389
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = add nsw i32 %2452, 1
  store i32 %2453, ptr @test_count, align 4, !tbaa !5
  %2454 = load i8, ptr %55, align 1, !tbaa !62
  %2455 = zext i8 %2454 to i32
  %2456 = icmp eq i32 %2455, 23
  br i1 %2456, label %2510, label %2457

2457:                                             ; preds = %2451
  br label %2458

2458:                                             ; preds = %2457
  br label %2459

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

2466:                                             ; preds = %2459
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @fileno(ptr noundef %2467) #11
  %2469 = call i32 @isatty(i32 noundef %2468) #11
  %2470 = icmp ne i32 %2469, 0
  br i1 %2470, label %2471, label %2488

2471:                                             ; preds = %2466
  %2472 = load i32, ptr %59, align 4, !tbaa !5
  %2473 = call ptr @__errno_location() #12
  store i32 %2472, ptr %2473, align 4, !tbaa !5
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror(i32 noundef %2477, ptr noundef @.str.4)
  %2479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror_debug(i32 noundef %2480, ptr noundef @.str.4)
  %2482 = call ptr @__errno_location() #12
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #11
  %2485 = call ptr @__errno_location() #12
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2474, ptr noundef @.str.2, i32 noundef %2475, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2478, ptr noundef %2481, ptr noundef %2484, i32 noundef %2486) #11
  br label %2505

2488:                                             ; preds = %2466, %2459
  %2489 = load i32, ptr %59, align 4, !tbaa !5
  %2490 = call ptr @__errno_location() #12
  store i32 %2489, ptr %2490, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef @.str.4)
  %2496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call ptr @s2n_strerror_debug(i32 noundef %2497, ptr noundef @.str.4)
  %2499 = call ptr @__errno_location() #12
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call ptr @strerror(i32 noundef %2500) #11
  %2502 = call ptr @__errno_location() #12
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef @.str.5, i32 noundef %2492, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2495, ptr noundef %2498, ptr noundef %2501, i32 noundef %2503) #11
  br label %2505

2505:                                             ; preds = %2488, %2471
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

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

2508:                                             ; No predecessors!
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

2510:                                             ; preds = %2509, %2451
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  br label %2513

2513:                                             ; preds = %2512
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = add nsw i32 %2514, 1
  store i32 %2515, ptr @test_count, align 4, !tbaa !5
  %2516 = load i16, ptr %56, align 2, !tbaa !60
  %2517 = zext i16 %2516 to i32
  %2518 = load i16, ptr %43, align 2, !tbaa !60
  %2519 = zext i16 %2518 to i32
  %2520 = icmp eq i32 %2517, %2519
  br i1 %2520, label %2574, label %2521

2521:                                             ; preds = %2513
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

2523:                                             ; preds = %2522
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2524 = call ptr @__errno_location() #12
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  store i32 %2525, ptr %60, align 4, !tbaa !5
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = call i32 @s2n_print_stacktrace(ptr noundef %2526)
  %2528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2529 = trunc i8 %2528 to i1
  br i1 %2529, label %2530, label %2552

2530:                                             ; preds = %2523
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = call i32 @fileno(ptr noundef %2531) #11
  %2533 = call i32 @isatty(i32 noundef %2532) #11
  %2534 = icmp ne i32 %2533, 0
  br i1 %2534, label %2535, label %2552

2535:                                             ; preds = %2530
  %2536 = load i32, ptr %60, align 4, !tbaa !5
  %2537 = call ptr @__errno_location() #12
  store i32 %2536, ptr %2537, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror(i32 noundef %2541, ptr noundef @.str.4)
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror_debug(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call ptr @__errno_location() #12
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #11
  %2549 = call ptr @__errno_location() #12
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2538, ptr noundef @.str.2, i32 noundef %2539, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2542, ptr noundef %2545, ptr noundef %2548, i32 noundef %2550) #11
  br label %2569

2552:                                             ; preds = %2530, %2523
  %2553 = load i32, ptr %60, align 4, !tbaa !5
  %2554 = call ptr @__errno_location() #12
  store i32 %2553, ptr %2554, align 4, !tbaa !5
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2558, ptr noundef @.str.4)
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror_debug(i32 noundef %2561, ptr noundef @.str.4)
  %2563 = call ptr @__errno_location() #12
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @strerror(i32 noundef %2564) #11
  %2566 = call ptr @__errno_location() #12
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2555, ptr noundef @.str.5, i32 noundef %2556, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2559, ptr noundef %2562, ptr noundef %2565, i32 noundef %2567) #11
  br label %2569

2569:                                             ; preds = %2552, %2535
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

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

2572:                                             ; No predecessors!
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

2574:                                             ; preds = %2573, %2513
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576
  %2578 = load i32, ptr @test_count, align 4, !tbaa !5
  %2579 = add nsw i32 %2578, 1
  store i32 %2579, ptr @test_count, align 4, !tbaa !5
  %2580 = load ptr, ptr %11, align 8, !tbaa !9
  %2581 = getelementptr inbounds %struct.s2n_connection, ptr %2580, i32 0, i32 38
  %2582 = call i32 @s2n_stuffer_wipe(ptr noundef %2581)
  %2583 = icmp eq i32 %2582, -1
  br i1 %2583, label %2584, label %2637

2584:                                             ; preds = %2577
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2587 = call ptr @__errno_location() #12
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  store i32 %2588, ptr %61, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589)
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc i8 %2591 to i1
  br i1 %2592, label %2593, label %2615

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #11
  %2596 = call i32 @isatty(i32 noundef %2595) #11
  %2597 = icmp ne i32 %2596, 0
  br i1 %2597, label %2598, label %2615

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

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

2632:                                             ; preds = %2615, %2598
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

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

2635:                                             ; No predecessors!
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636, %2577
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = load ptr, ptr %11, align 8, !tbaa !9
  %2644 = getelementptr inbounds %struct.s2n_connection, ptr %2643, i32 0, i32 40
  %2645 = call i32 @s2n_stuffer_wipe(ptr noundef %2644)
  %2646 = icmp eq i32 %2645, -1
  br i1 %2646, label %2647, label %2700

2647:                                             ; preds = %2640
  br label %2648

2648:                                             ; preds = %2647
  br label %2649

2649:                                             ; preds = %2648
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2650 = call ptr @__errno_location() #12
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  store i32 %2651, ptr %62, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = call i32 @s2n_print_stacktrace(ptr noundef %2652)
  %2654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2655 = trunc i8 %2654 to i1
  br i1 %2655, label %2656, label %2678

2656:                                             ; preds = %2649
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @fileno(ptr noundef %2657) #11
  %2659 = call i32 @isatty(i32 noundef %2658) #11
  %2660 = icmp ne i32 %2659, 0
  br i1 %2660, label %2661, label %2678

2661:                                             ; preds = %2656
  %2662 = load i32, ptr %62, align 4, !tbaa !5
  %2663 = call ptr @__errno_location() #12
  store i32 %2662, ptr %2663, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef @.str.4)
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call ptr @__errno_location() #12
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #11
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef @.str.2, i32 noundef %2665, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2668, ptr noundef %2671, ptr noundef %2674, i32 noundef %2676) #11
  br label %2695

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

2695:                                             ; preds = %2678, %2661
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

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

2698:                                             ; No predecessors!
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

2700:                                             ; preds = %2699, %2640
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  call void @llvm.lifetime.end.p0(i64 2, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #11
  br label %2703

2703:                                             ; preds = %2702
  %2704 = load i64, ptr %33, align 8, !tbaa !59
  %2705 = add i64 %2704, 1
  store i64 %2705, ptr %33, align 8, !tbaa !59
  br label %1165, !llvm.loop !67

2706:                                             ; preds = %1168
  br label %2707

2707:                                             ; preds = %2706
  %2708 = load i32, ptr @test_count, align 4, !tbaa !5
  %2709 = add nsw i32 %2708, 1
  store i32 %2709, ptr @test_count, align 4, !tbaa !5
  %2710 = load ptr, ptr %11, align 8, !tbaa !9
  %2711 = getelementptr inbounds %struct.s2n_connection, ptr %2710, i32 0, i32 27
  %2712 = load ptr, ptr %2711, align 8, !tbaa !17
  %2713 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2712, i32 0, i32 0
  %2714 = load ptr, ptr %2713, align 8, !tbaa !46
  %2715 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2714, i32 0, i32 6
  %2716 = load ptr, ptr %2715, align 8, !tbaa !51
  %2717 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2716, i32 0, i32 0
  %2718 = load ptr, ptr %2717, align 8, !tbaa !53
  %2719 = getelementptr inbounds %struct.s2n_cipher, ptr %2718, i32 0, i32 7
  %2720 = load ptr, ptr %2719, align 8, !tbaa !69
  %2721 = load ptr, ptr %11, align 8, !tbaa !9
  %2722 = getelementptr inbounds %struct.s2n_connection, ptr %2721, i32 0, i32 27
  %2723 = load ptr, ptr %2722, align 8, !tbaa !17
  %2724 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2723, i32 0, i32 2
  %2725 = call i32 %2720(ptr noundef %2724)
  %2726 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %2725, ptr %2726, align 4
  %2727 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %2728 = load i32, ptr %2727, align 4
  %2729 = call zeroext i1 @s2n_result_is_ok(i32 %2728)
  br i1 %2729, label %2783, label %2730

2730:                                             ; preds = %2707
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2733 = call ptr @__errno_location() #12
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  store i32 %2734, ptr %64, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = call i32 @s2n_print_stacktrace(ptr noundef %2735)
  %2737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2738 = trunc i8 %2737 to i1
  br i1 %2738, label %2739, label %2761

2739:                                             ; preds = %2732
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @fileno(ptr noundef %2740) #11
  %2742 = call i32 @isatty(i32 noundef %2741) #11
  %2743 = icmp ne i32 %2742, 0
  br i1 %2743, label %2744, label %2761

2744:                                             ; preds = %2739
  %2745 = load i32, ptr %64, align 4, !tbaa !5
  %2746 = call ptr @__errno_location() #12
  store i32 %2745, ptr %2746, align 4, !tbaa !5
  %2747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2748 = load i32, ptr @test_count, align 4, !tbaa !5
  %2749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @s2n_strerror(i32 noundef %2750, ptr noundef @.str.4)
  %2752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @s2n_strerror_debug(i32 noundef %2753, ptr noundef @.str.4)
  %2755 = call ptr @__errno_location() #12
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = call ptr @strerror(i32 noundef %2756) #11
  %2758 = call ptr @__errno_location() #12
  %2759 = load i32, ptr %2758, align 4, !tbaa !5
  %2760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2747, ptr noundef @.str.2, i32 noundef %2748, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2751, ptr noundef %2754, ptr noundef %2757, i32 noundef %2759) #11
  br label %2778

2761:                                             ; preds = %2739, %2732
  %2762 = load i32, ptr %64, align 4, !tbaa !5
  %2763 = call ptr @__errno_location() #12
  store i32 %2762, ptr %2763, align 4, !tbaa !5
  %2764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2767, ptr noundef @.str.4)
  %2769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror_debug(i32 noundef %2770, ptr noundef @.str.4)
  %2772 = call ptr @__errno_location() #12
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #11
  %2775 = call ptr @__errno_location() #12
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2764, ptr noundef @.str.5, i32 noundef %2765, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2768, ptr noundef %2771, ptr noundef %2774, i32 noundef %2776) #11
  br label %2778

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

2779:                                             ; preds = %2778
  br label %2780

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

2781:                                             ; No predecessors!
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782, %2707
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = add nsw i32 %2787, 1
  store i32 %2788, ptr @test_count, align 4, !tbaa !5
  %2789 = load ptr, ptr %11, align 8, !tbaa !9
  %2790 = getelementptr inbounds %struct.s2n_connection, ptr %2789, i32 0, i32 27
  %2791 = load ptr, ptr %2790, align 8, !tbaa !17
  %2792 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2791, i32 0, i32 0
  %2793 = load ptr, ptr %2792, align 8, !tbaa !46
  %2794 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2793, i32 0, i32 6
  %2795 = load ptr, ptr %2794, align 8, !tbaa !51
  %2796 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2795, i32 0, i32 0
  %2797 = load ptr, ptr %2796, align 8, !tbaa !53
  %2798 = getelementptr inbounds %struct.s2n_cipher, ptr %2797, i32 0, i32 7
  %2799 = load ptr, ptr %2798, align 8, !tbaa !69
  %2800 = load ptr, ptr %11, align 8, !tbaa !9
  %2801 = getelementptr inbounds %struct.s2n_connection, ptr %2800, i32 0, i32 27
  %2802 = load ptr, ptr %2801, align 8, !tbaa !17
  %2803 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2802, i32 0, i32 1
  %2804 = call i32 %2799(ptr noundef %2803)
  %2805 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  store i32 %2804, ptr %2805, align 4
  %2806 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  %2807 = load i32, ptr %2806, align 4
  %2808 = call zeroext i1 @s2n_result_is_ok(i32 %2807)
  br i1 %2808, label %2862, label %2809

2809:                                             ; preds = %2786
  br label %2810

2810:                                             ; preds = %2809
  br label %2811

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

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

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

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

2857:                                             ; preds = %2840, %2823
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

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

2860:                                             ; No predecessors!
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

2862:                                             ; preds = %2861, %2786
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863
  br label %3296

2865:                                             ; preds = %859
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = add nsw i32 %2869, 1
  store i32 %2870, ptr @test_count, align 4, !tbaa !5
  %2871 = load ptr, ptr %11, align 8, !tbaa !9
  %2872 = getelementptr inbounds %struct.s2n_connection, ptr %2871, i32 0, i32 27
  %2873 = load ptr, ptr %2872, align 8, !tbaa !17
  %2874 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2873, i32 0, i32 0
  %2875 = load ptr, ptr %2874, align 8, !tbaa !46
  %2876 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2875, i32 0, i32 6
  %2877 = load ptr, ptr %2876, align 8, !tbaa !51
  %2878 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2877, i32 0, i32 0
  %2879 = load ptr, ptr %2878, align 8, !tbaa !53
  %2880 = getelementptr inbounds %struct.s2n_cipher, ptr %2879, i32 0, i32 5
  %2881 = load ptr, ptr %2880, align 8, !tbaa !56
  %2882 = load ptr, ptr %11, align 8, !tbaa !9
  %2883 = getelementptr inbounds %struct.s2n_connection, ptr %2882, i32 0, i32 27
  %2884 = load ptr, ptr %2883, align 8, !tbaa !17
  %2885 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2884, i32 0, i32 1
  %2886 = call i32 %2881(ptr noundef %2885, ptr noundef %14)
  %2887 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %2886, ptr %2887, align 4
  %2888 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  %2889 = load i32, ptr %2888, align 4
  %2890 = call zeroext i1 @s2n_result_is_error(i32 %2889)
  br i1 %2890, label %2944, label %2891

2891:                                             ; preds = %2868
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2894 = call ptr @__errno_location() #12
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  store i32 %2895, ptr %68, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = call i32 @s2n_print_stacktrace(ptr noundef %2896)
  %2898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2899 = trunc i8 %2898 to i1
  br i1 %2899, label %2900, label %2922

2900:                                             ; preds = %2893
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @fileno(ptr noundef %2901) #11
  %2903 = call i32 @isatty(i32 noundef %2902) #11
  %2904 = icmp ne i32 %2903, 0
  br i1 %2904, label %2905, label %2922

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

2922:                                             ; preds = %2900, %2893
  %2923 = load i32, ptr %68, align 4, !tbaa !5
  %2924 = call ptr @__errno_location() #12
  store i32 %2923, ptr %2924, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror_debug(i32 noundef %2931, ptr noundef @.str.4)
  %2933 = call ptr @__errno_location() #12
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #11
  %2936 = call ptr @__errno_location() #12
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2925, ptr noundef @.str.5, i32 noundef %2926, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2929, ptr noundef %2932, ptr noundef %2935, i32 noundef %2937) #11
  br label %2939

2939:                                             ; preds = %2922, %2905
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

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

2942:                                             ; No predecessors!
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

2944:                                             ; preds = %2943, %2868
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

2947:                                             ; preds = %2946
  %2948 = load i32, ptr @test_count, align 4, !tbaa !5
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr @test_count, align 4, !tbaa !5
  %2950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = icmp eq i32 %2951, 335544326
  br i1 %2952, label %3006, label %2953

2953:                                             ; preds = %2947
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2956 = call ptr @__errno_location() #12
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  store i32 %2957, ptr %69, align 4, !tbaa !5
  %2958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2959 = call i32 @s2n_print_stacktrace(ptr noundef %2958)
  %2960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2961 = trunc i8 %2960 to i1
  br i1 %2961, label %2962, label %2984

2962:                                             ; preds = %2955
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @fileno(ptr noundef %2963) #11
  %2965 = call i32 @isatty(i32 noundef %2964) #11
  %2966 = icmp ne i32 %2965, 0
  br i1 %2966, label %2967, label %2984

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

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

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

3002:                                             ; preds = %3001
  br label %3003

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

3004:                                             ; No predecessors!
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005, %2947
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  %3012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror_debug(i32 noundef %3013, ptr noundef @.str.4)
  %3015 = icmp eq ptr %3014, null
  br i1 %3015, label %3016, label %3069

3016:                                             ; preds = %3009
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

3018:                                             ; preds = %3017
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3019 = call ptr @__errno_location() #12
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  store i32 %3020, ptr %70, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @s2n_print_stacktrace(ptr noundef %3021)
  %3023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3024 = trunc i8 %3023 to i1
  br i1 %3024, label %3025, label %3047

3025:                                             ; preds = %3018
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @fileno(ptr noundef %3026) #11
  %3028 = call i32 @isatty(i32 noundef %3027) #11
  %3029 = icmp ne i32 %3028, 0
  br i1 %3029, label %3030, label %3047

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

3047:                                             ; preds = %3025, %3018
  %3048 = load i32, ptr %70, align 4, !tbaa !5
  %3049 = call ptr @__errno_location() #12
  store i32 %3048, ptr %3049, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef @.str.4)
  %3055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef @.str.4)
  %3058 = call ptr @__errno_location() #12
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #11
  %3061 = call ptr @__errno_location() #12
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3050, ptr noundef @.str.5, i32 noundef %3051, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3054, ptr noundef %3057, ptr noundef %3060, i32 noundef %3062) #11
  br label %3064

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

3065:                                             ; preds = %3064
  br label %3066

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

3067:                                             ; No predecessors!
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068, %3009
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  br label %3073

3073:                                             ; preds = %3072
  br label %3074

3074:                                             ; preds = %3073
  %3075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3075, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3076 = call ptr @__errno_location() #12
  store i32 0, ptr %3076, align 4, !tbaa !5
  br label %3077

3077:                                             ; preds = %3074
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

3079:                                             ; preds = %3078
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  br label %3083

3083:                                             ; preds = %3082
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = add nsw i32 %3084, 1
  store i32 %3085, ptr @test_count, align 4, !tbaa !5
  %3086 = load ptr, ptr %11, align 8, !tbaa !9
  %3087 = getelementptr inbounds %struct.s2n_connection, ptr %3086, i32 0, i32 27
  %3088 = load ptr, ptr %3087, align 8, !tbaa !17
  %3089 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3088, i32 0, i32 0
  %3090 = load ptr, ptr %3089, align 8, !tbaa !46
  %3091 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3090, i32 0, i32 6
  %3092 = load ptr, ptr %3091, align 8, !tbaa !51
  %3093 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3092, i32 0, i32 0
  %3094 = load ptr, ptr %3093, align 8, !tbaa !53
  %3095 = getelementptr inbounds %struct.s2n_cipher, ptr %3094, i32 0, i32 6
  %3096 = load ptr, ptr %3095, align 8, !tbaa !57
  %3097 = load ptr, ptr %11, align 8, !tbaa !9
  %3098 = getelementptr inbounds %struct.s2n_connection, ptr %3097, i32 0, i32 27
  %3099 = load ptr, ptr %3098, align 8, !tbaa !17
  %3100 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3099, i32 0, i32 2
  %3101 = call i32 %3096(ptr noundef %3100, ptr noundef %14)
  %3102 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  store i32 %3101, ptr %3102, align 4
  %3103 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  %3104 = load i32, ptr %3103, align 4
  %3105 = call zeroext i1 @s2n_result_is_error(i32 %3104)
  br i1 %3105, label %3159, label %3106

3106:                                             ; preds = %3083
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

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

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

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

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

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

3155:                                             ; preds = %3154
  br label %3156

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

3157:                                             ; No predecessors!
  br label %3158

3158:                                             ; preds = %3157
  br label %3159

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

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  br label %3162

3162:                                             ; preds = %3161
  %3163 = load i32, ptr @test_count, align 4, !tbaa !5
  %3164 = add nsw i32 %3163, 1
  store i32 %3164, ptr @test_count, align 4, !tbaa !5
  %3165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  %3167 = icmp eq i32 %3166, 335544326
  br i1 %3167, label %3221, label %3168

3168:                                             ; preds = %3162
  br label %3169

3169:                                             ; preds = %3168
  br label %3170

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

3177:                                             ; preds = %3170
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @fileno(ptr noundef %3178) #11
  %3180 = call i32 @isatty(i32 noundef %3179) #11
  %3181 = icmp ne i32 %3180, 0
  br i1 %3181, label %3182, label %3199

3182:                                             ; preds = %3177
  %3183 = load i32, ptr %73, align 4, !tbaa !5
  %3184 = call ptr @__errno_location() #12
  store i32 %3183, ptr %3184, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef @.str.4)
  %3190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef @.str.4)
  %3193 = call ptr @__errno_location() #12
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @strerror(i32 noundef %3194) #11
  %3196 = call ptr @__errno_location() #12
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef @.str.2, i32 noundef %3186, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3189, ptr noundef %3192, ptr noundef %3195, i32 noundef %3197) #11
  br label %3216

3199:                                             ; preds = %3177, %3170
  %3200 = load i32, ptr %73, align 4, !tbaa !5
  %3201 = call ptr @__errno_location() #12
  store i32 %3200, ptr %3201, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror(i32 noundef %3205, ptr noundef @.str.4)
  %3207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror_debug(i32 noundef %3208, ptr noundef @.str.4)
  %3210 = call ptr @__errno_location() #12
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @strerror(i32 noundef %3211) #11
  %3213 = call ptr @__errno_location() #12
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef @.str.5, i32 noundef %3203, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3206, ptr noundef %3209, ptr noundef %3212, i32 noundef %3214) #11
  br label %3216

3216:                                             ; preds = %3199, %3182
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

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

3219:                                             ; No predecessors!
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220, %3162
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror_debug(i32 noundef %3228, ptr noundef @.str.4)
  %3230 = icmp eq ptr %3229, null
  br i1 %3230, label %3231, label %3284

3231:                                             ; preds = %3224
  br label %3232

3232:                                             ; preds = %3231
  br label %3233

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

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

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

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

3279:                                             ; preds = %3262, %3245
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

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

3282:                                             ; No predecessors!
  br label %3283

3283:                                             ; preds = %3282
  br label %3284

3284:                                             ; preds = %3283, %3224
  br label %3285

3285:                                             ; preds = %3284
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  br label %3289

3289:                                             ; preds = %3288
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3290, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3291 = call ptr @__errno_location() #12
  store i32 0, ptr %3291, align 4, !tbaa !5
  br label %3292

3292:                                             ; preds = %3289
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293
  br label %3295

3295:                                             ; preds = %3294
  br label %3296

3296:                                             ; preds = %3295, %2864
  br label %3297

3297:                                             ; preds = %3296
  %3298 = load i32, ptr @test_count, align 4, !tbaa !5
  %3299 = add nsw i32 %3298, 1
  store i32 %3299, ptr @test_count, align 4, !tbaa !5
  %3300 = load ptr, ptr %11, align 8, !tbaa !9
  %3301 = call i32 @s2n_connection_free(ptr noundef %3300)
  %3302 = icmp eq i32 %3301, -1
  br i1 %3302, label %3303, label %3356

3303:                                             ; preds = %3297
  br label %3304

3304:                                             ; preds = %3303
  br label %3305

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

3312:                                             ; preds = %3305
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = call i32 @fileno(ptr noundef %3313) #11
  %3315 = call i32 @isatty(i32 noundef %3314) #11
  %3316 = icmp ne i32 %3315, 0
  br i1 %3316, label %3317, label %3334

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

3334:                                             ; preds = %3312, %3305
  %3335 = load i32, ptr %75, align 4, !tbaa !5
  %3336 = call ptr @__errno_location() #12
  store i32 %3335, ptr %3336, align 4, !tbaa !5
  %3337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3338 = load i32, ptr @test_count, align 4, !tbaa !5
  %3339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call ptr @s2n_strerror(i32 noundef %3340, ptr noundef @.str.4)
  %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_debug(i32 noundef %3343, ptr noundef @.str.4)
  %3345 = call ptr @__errno_location() #12
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @strerror(i32 noundef %3346) #11
  %3348 = call ptr @__errno_location() #12
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3337, ptr noundef @.str.5, i32 noundef %3338, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 131, ptr noundef %3341, ptr noundef %3344, ptr noundef %3347, i32 noundef %3349) #11
  br label %3351

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

3352:                                             ; preds = %3351
  br label %3353

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

3354:                                             ; No predecessors!
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

3356:                                             ; preds = %3355, %3297
  br label %3357

3357:                                             ; preds = %3356
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358
  br label %3360

3360:                                             ; preds = %3359
  %3361 = call i32 @s2n_cleanup()
  %3362 = icmp eq i32 %3361, -1
  br i1 %3362, label %3363, label %3416

3363:                                             ; preds = %3360
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

3365:                                             ; preds = %3364
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %3366 = call ptr @__errno_location() #12
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  store i32 %3367, ptr %76, align 4, !tbaa !5
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = call i32 @s2n_print_stacktrace(ptr noundef %3368)
  %3370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3371 = trunc i8 %3370 to i1
  br i1 %3371, label %3372, label %3394

3372:                                             ; preds = %3365
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = call i32 @fileno(ptr noundef %3373) #11
  %3375 = call i32 @isatty(i32 noundef %3374) #11
  %3376 = icmp ne i32 %3375, 0
  br i1 %3376, label %3377, label %3394

3377:                                             ; preds = %3372
  %3378 = load i32, ptr %76, align 4, !tbaa !5
  %3379 = call ptr @__errno_location() #12
  store i32 %3378, ptr %3379, align 4, !tbaa !5
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = load i32, ptr @test_count, align 4, !tbaa !5
  %3382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @s2n_strerror(i32 noundef %3383, ptr noundef @.str.4)
  %3385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call ptr @s2n_strerror_debug(i32 noundef %3386, ptr noundef @.str.4)
  %3388 = call ptr @__errno_location() #12
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @strerror(i32 noundef %3389) #11
  %3391 = call ptr @__errno_location() #12
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3380, ptr noundef @.str.2, i32 noundef %3381, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3384, ptr noundef %3387, ptr noundef %3390, i32 noundef %3392) #11
  br label %3411

3394:                                             ; preds = %3372, %3365
  %3395 = load i32, ptr %76, align 4, !tbaa !5
  %3396 = call ptr @__errno_location() #12
  store i32 %3395, ptr %3396, align 4, !tbaa !5
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = load i32, ptr @test_count, align 4, !tbaa !5
  %3399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef @.str.4)
  %3402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call ptr @s2n_strerror_debug(i32 noundef %3403, ptr noundef @.str.4)
  %3405 = call ptr @__errno_location() #12
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call ptr @strerror(i32 noundef %3406) #11
  %3408 = call ptr @__errno_location() #12
  %3409 = load i32, ptr %3408, align 4, !tbaa !5
  %3410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3397, ptr noundef @.str.5, i32 noundef %3398, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3401, ptr noundef %3404, ptr noundef %3407, i32 noundef %3409) #11
  br label %3411

3411:                                             ; preds = %3394, %3377
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

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

3414:                                             ; No predecessors!
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415, %3360
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

3418:                                             ; preds = %3417
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

3420:                                             ; preds = %3419
  %3421 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3422 = icmp eq i32 %3421, -1
  br i1 %3422, label %3423, label %3476

3423:                                             ; preds = %3420
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

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

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

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

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

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

3472:                                             ; preds = %3471
  br label %3473

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

3474:                                             ; No predecessors!
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475, %3420
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  %3479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3480 = trunc i8 %3479 to i1
  br i1 %3480, label %3481, label %3497

3481:                                             ; preds = %3478
  %3482 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3483 = call i32 @fileno(ptr noundef %3482) #11
  %3484 = call i32 @isatty(i32 noundef %3483) #11
  %3485 = icmp ne i32 %3484, 0
  br i1 %3485, label %3486, label %3497

3486:                                             ; preds = %3481
  %3487 = load i32, ptr @test_count, align 4, !tbaa !5
  %3488 = icmp ne i32 %3487, 0
  br i1 %3488, label %3489, label %3493

3489:                                             ; preds = %3486
  %3490 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3490, ptr noundef @.str.50, i32 noundef %3491) #11
  br label %3496

3493:                                             ; preds = %3486
  %3494 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3494, ptr noundef @.str.51) #11
  br label %3496

3496:                                             ; preds = %3493, %3489
  br label %3508

3497:                                             ; preds = %3481, %3478
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = icmp ne i32 %3498, 0
  br i1 %3499, label %3500, label %3504

3500:                                             ; preds = %3497
  %3501 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3502 = load i32, ptr @test_count, align 4, !tbaa !5
  %3503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3501, ptr noundef @.str.52, i32 noundef %3502) #11
  br label %3507

3504:                                             ; preds = %3497
  %3505 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3505, ptr noundef @.str.53) #11
  br label %3507

3507:                                             ; preds = %3504, %3500
  br label %3508

3508:                                             ; preds = %3507, %3496
  store i32 0, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %3513

3509:                                             ; No predecessors!
  br label %3510

3510:                                             ; preds = %3509
  br label %3511

3511:                                             ; preds = %3510
  br label %3512

3512:                                             ; preds = %3511
  store i32 0, ptr %78, align 4
  br label %3513

3513:                                             ; preds = %3512, %3508
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 8088, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 15, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  %3514 = load i32, ptr %78, align 4
  switch i32 %3514, label %3517 [
    i32 0, label %3515
    i32 1, label %3515
  ]

3515:                                             ; preds = %3513, %3513
  %3516 = load i32, ptr %3, align 4
  ret i32 %3516

3517:                                             ; preds = %3513
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_libcrypto_is_awslc() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_connection_new(i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

declare i32 @s2n_get_public_random_data(ptr noundef) #2

declare i32 @s2n_hmac_init(ptr noundef, i32 noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #9

declare void @s2n_debug_info_reset() #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_record_header_parse(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_record_parse(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 56}
!16 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!17 = !{!18, !10, i64 232}
!18 = !{!"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, !19, i64 160, !20, i64 168, !20, 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, !21, i64 240, !10, i64 632, !10, i64 640, !22, 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, !20, 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, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !27, i64 2792, !6, i64 2816, !27, i64 2824, !27, i64 2848, !27, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!22 = !{!"s2n_kex_parameters", !23, i64 0, !24, i64 8, !7, i64 24, !24, i64 56, !25, i64 72, !25, i64 184, !7, i64 296, !26, i64 360, !27, i64 448, !27, i64 472}
!23 = !{!"s2n_dh_params", !10, i64 0}
!24 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!25 = !{!"s2n_kem_group_params", !10, i64 0, !26, i64 8, !24, i64 96}
!26 = !{!"s2n_kem_params", !10, i64 0, !27, i64 8, !27, i64 32, !27, i64 56, !12, i64 80}
!27 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !27, 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", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !27, 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", !27, i64 0, !39, i64 24, !27, i64 728, !27, i64 752, !27, 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, !27, 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", !27, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!18, !10, i64 640}
!45 = !{!18, !10, i64 632}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_crypto_parameters", !10, i64 0, !48, i64 8, !48, i64 16, !49, i64 24, !49, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!48 = !{!"s2n_session_key", !10, i64 0}
!49 = !{!"s2n_hmac_state", !6, i64 0, !33, i64 4, !6, i64 8, !33, i64 12, !7, i64 14, !50, i64 16, !50, i64 72, !50, i64 128, !50, i64 184, !7, i64 240, !7, i64 368}
!50 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !20, i64 16, !7, i64 24}
!51 = !{!52, !10, i64 48}
!52 = !{!"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}
!53 = !{!54, !10, i64 0}
!54 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !20, i64 16}
!55 = !{!16, !10, i64 64}
!56 = !{!16, !10, i64 72}
!57 = !{!16, !10, i64 80}
!58 = !{!18, !7, i64 220}
!59 = !{!20, !20, i64 0}
!60 = !{!33, !33, i64 0}
!61 = !{!18, !10, i64 1896}
!62 = !{!7, !7, i64 0}
!63 = !{!18, !6, i64 1924}
!64 = !{!18, !6, i64 1920}
!65 = !{!18, !6, i64 1884}
!66 = !{!18, !6, i64 1880}
!67 = distinct !{!67, !68}
!68 = !{!"llvm.loop.mustprogress"}
!69 = !{!16, !10, i64 88}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_cipher = type { i32, %union.anon, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [71 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
@s2n_rc4 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [36 x i8], align 1
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@__const.main.rc4_key = external hidden unnamed_addr constant [16 x i8], align 16
@.str.10 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_rc4_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.15 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [15 x i8], align 1
  %4 = alloca [16 x i8], align 16
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca [8088 x i8], align 16
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca %struct.s2n_blob, align 8
  %9 = alloca i8, align 1
  %10 = alloca i16, align 2
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %11 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %13 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14 = tail call i32 @fflush(ptr noundef %13)
  %15 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %16 = icmp eq i32 %15, -1
  br i1 %16, label %17, label %41

17:                                               ; preds = %2
  %18 = tail call ptr @__errno_location() #13
  %19 = load i32, ptr %18, align 4, !tbaa !5
  %20 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21 = tail call i32 @s2n_print_stacktrace(ptr noundef %20) #12
  %22 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23 = trunc nuw i8 %22 to i1
  br i1 %23, label %24, label %28

24:                                               ; preds = %17
  %25 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26 = tail call i32 @fileno(ptr noundef %25) #12
  %27 = tail call i32 @isatty(i32 noundef %26) #12
  %.not226 = icmp eq i32 %27, 0
  br i1 %.not226, label %28, label %29

28:                                               ; preds = %24, %17
  br label %29

29:                                               ; preds = %24, %28
  %.str.5.sink = phi ptr [ @.str.5, %28 ], [ @.str.2, %24 ]
  store i32 %19, ptr %18, align 4, !tbaa !5
  %30 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31 = load i32, ptr @test_count, align 4, !tbaa !5
  %32 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33 = load i32, ptr %32, align 4, !tbaa !5
  %34 = tail call ptr @s2n_strerror(i32 noundef %33, ptr noundef nonnull @.str.4) #12
  %35 = load i32, ptr %32, align 4, !tbaa !5
  %36 = tail call ptr @s2n_strerror_debug(i32 noundef %35, ptr noundef nonnull @.str.4) #12
  %37 = load i32, ptr %18, align 4, !tbaa !5
  %38 = tail call ptr @strerror(i32 noundef %37) #12
  %39 = load i32, ptr %18, align 4, !tbaa !5
  %40 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef nonnull %.str.5.sink, i32 noundef %31, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %34, ptr noundef %36, ptr noundef %38, i32 noundef %39) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

41:                                               ; preds = %2
  %42 = load i32, ptr @test_count, align 4, !tbaa !5
  %43 = add nsw i32 %42, 1
  store i32 %43, ptr @test_count, align 4, !tbaa !5
  %44 = tail call i32 @s2n_enable_atexit() #12
  %45 = icmp eq i32 %44, -1
  br i1 %45, label %46, label %70

46:                                               ; preds = %41
  %47 = tail call ptr @__errno_location() #13
  %48 = load i32, ptr %47, align 4, !tbaa !5
  %49 = load ptr, ptr @stderr, align 8, !tbaa !9
  %50 = tail call i32 @s2n_print_stacktrace(ptr noundef %49) #12
  %51 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %52 = trunc nuw i8 %51 to i1
  br i1 %52, label %53, label %57

53:                                               ; preds = %46
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = tail call i32 @fileno(ptr noundef %54) #12
  %56 = tail call i32 @isatty(i32 noundef %55) #12
  %.not225 = icmp eq i32 %56, 0
  br i1 %.not225, label %57, label %58

57:                                               ; preds = %53, %46
  br label %58

58:                                               ; preds = %53, %57
  %.str.5.sink239 = phi ptr [ @.str.5, %57 ], [ @.str.2, %53 ]
  store i32 %48, ptr %47, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = load i32, ptr @test_count, align 4, !tbaa !5
  %61 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %62 = load i32, ptr %61, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror(i32 noundef %62, ptr noundef nonnull @.str.4) #12
  %64 = load i32, ptr %61, align 4, !tbaa !5
  %65 = tail call ptr @s2n_strerror_debug(i32 noundef %64, ptr noundef nonnull @.str.4) #12
  %66 = load i32, ptr %47, align 4, !tbaa !5
  %67 = tail call ptr @strerror(i32 noundef %66) #12
  %68 = load i32, ptr %47, align 4, !tbaa !5
  %69 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull %.str.5.sink239, i32 noundef %60, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %63, ptr noundef %65, ptr noundef %67, i32 noundef %68) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

70:                                               ; preds = %41
  %71 = tail call i32 @s2n_init() #12
  %72 = icmp eq i32 %71, -1
  br i1 %72, label %73, label %97

73:                                               ; preds = %70
  %74 = tail call ptr @__errno_location() #13
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @s2n_print_stacktrace(ptr noundef %76) #12
  %78 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %79 = trunc nuw i8 %78 to i1
  br i1 %79, label %80, label %84

80:                                               ; preds = %73
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = tail call i32 @fileno(ptr noundef %81) #12
  %83 = tail call i32 @isatty(i32 noundef %82) #12
  %.not224 = icmp eq i32 %83, 0
  br i1 %.not224, label %84, label %85

84:                                               ; preds = %80, %73
  br label %85

85:                                               ; preds = %80, %84
  %.str.5.sink250 = phi ptr [ @.str.5, %84 ], [ @.str.2, %80 ]
  store i32 %75, ptr %74, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = load i32, ptr @test_count, align 4, !tbaa !5
  %88 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror(i32 noundef %89, ptr noundef nonnull @.str.4) #12
  %91 = load i32, ptr %88, align 4, !tbaa !5
  %92 = tail call ptr @s2n_strerror_debug(i32 noundef %91, ptr noundef nonnull @.str.4) #12
  %93 = load i32, ptr %74, align 4, !tbaa !5
  %94 = tail call ptr @strerror(i32 noundef %93) #12
  %95 = load i32, ptr %74, align 4, !tbaa !5
  %96 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef nonnull %.str.5.sink250, i32 noundef %87, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %90, ptr noundef %92, ptr noundef %94, i32 noundef %95) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

97:                                               ; preds = %70
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr @test_count, align 4, !tbaa !5
  %100 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_rc4, i64 56), align 8, !tbaa !15
  %101 = tail call zeroext i1 %100() #12
  br i1 %101, label %102, label %126

102:                                              ; preds = %97
  %103 = tail call ptr @__errno_location() #13
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %106 = tail call i32 @s2n_print_stacktrace(ptr noundef %105) #12
  %107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %108 = trunc nuw i8 %107 to i1
  br i1 %108, label %109, label %113

109:                                              ; preds = %102
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = tail call i32 @fileno(ptr noundef %110) #12
  %112 = tail call i32 @isatty(i32 noundef %111) #12
  %.not223 = icmp eq i32 %112, 0
  br i1 %.not223, label %113, label %114

113:                                              ; preds = %109, %102
  br label %114

114:                                              ; preds = %109, %113
  %.str.5.sink261 = phi ptr [ @.str.5, %113 ], [ @.str.2, %109 ]
  store i32 %104, ptr %103, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror(i32 noundef %118, ptr noundef nonnull @.str.4) #12
  %120 = load i32, ptr %117, align 4, !tbaa !5
  %121 = tail call ptr @s2n_strerror_debug(i32 noundef %120, ptr noundef nonnull @.str.4) #12
  %122 = load i32, ptr %103, align 4, !tbaa !5
  %123 = tail call ptr @strerror(i32 noundef %122) #12
  %124 = load i32, ptr %103, align 4, !tbaa !5
  %125 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %115, ptr noundef nonnull %.str.5.sink261, i32 noundef %116, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %119, ptr noundef %121, ptr noundef %123, i32 noundef %124) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

126:                                              ; preds = %97
  %127 = tail call zeroext i1 @s2n_libcrypto_is_awslc() #12
  br i1 %127, label %128, label %156

128:                                              ; preds = %126
  %129 = load i32, ptr @test_count, align 4, !tbaa !5
  %130 = add nsw i32 %129, 1
  store i32 %130, ptr @test_count, align 4, !tbaa !5
  %131 = tail call zeroext i1 %100() #12
  br i1 %131, label %156, label %132

132:                                              ; preds = %128
  %133 = tail call ptr @__errno_location() #13
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @s2n_print_stacktrace(ptr noundef %135) #12
  %137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %138 = trunc nuw i8 %137 to i1
  br i1 %138, label %139, label %143

139:                                              ; preds = %132
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = tail call i32 @fileno(ptr noundef %140) #12
  %142 = tail call i32 @isatty(i32 noundef %141) #12
  %.not = icmp eq i32 %142, 0
  br i1 %.not, label %143, label %144

143:                                              ; preds = %139, %132
  br label %144

144:                                              ; preds = %139, %143
  %.str.5.sink272 = phi ptr [ @.str.5, %143 ], [ @.str.2, %139 ]
  store i32 %134, ptr %133, align 4, !tbaa !5
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = load i32, ptr @test_count, align 4, !tbaa !5
  %147 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = tail call ptr @s2n_strerror(i32 noundef %148, ptr noundef nonnull @.str.4) #12
  %150 = load i32, ptr %147, align 4, !tbaa !5
  %151 = tail call ptr @s2n_strerror_debug(i32 noundef %150, ptr noundef nonnull @.str.4) #12
  %152 = load i32, ptr %133, align 4, !tbaa !5
  %153 = tail call ptr @strerror(i32 noundef %152) #12
  %154 = load i32, ptr %133, align 4, !tbaa !5
  %155 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %145, ptr noundef nonnull %.str.5.sink272, i32 noundef %146, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %149, ptr noundef %151, ptr noundef %153, i32 noundef %154) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

156:                                              ; preds = %128, %126
  call void @llvm.lifetime.start.p0(i64 15, ptr nonnull %3) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %3, ptr noundef nonnull align 1 dereferenceable(15) @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.rc4_key, i64 16, i1 false)
  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)
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %158 = add nsw i32 %157, 1
  store i32 %158, ptr @test_count, align 4, !tbaa !5
  %159 = call i32 @s2n_blob_init(ptr noundef nonnull %5, ptr noundef nonnull %4, i32 noundef 16) #12
  %160 = icmp eq i32 %159, -1
  br i1 %160, label %161, label %185

161:                                              ; preds = %156
  %162 = tail call ptr @__errno_location() #13
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = call i32 @s2n_print_stacktrace(ptr noundef %164) #12
  %166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %167 = trunc nuw i8 %166 to i1
  br i1 %167, label %168, label %172

168:                                              ; preds = %161
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = call i32 @fileno(ptr noundef %169) #12
  %171 = call i32 @isatty(i32 noundef %170) #12
  %.not222 = icmp eq i32 %171, 0
  br i1 %.not222, label %172, label %173

172:                                              ; preds = %168, %161
  br label %173

173:                                              ; preds = %168, %172
  %.str.5.sink283 = phi ptr [ @.str.5, %172 ], [ @.str.2, %168 ]
  store i32 %163, ptr %162, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror(i32 noundef %177, ptr noundef nonnull @.str.4) #12
  %179 = load i32, ptr %176, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef nonnull @.str.4) #12
  %181 = load i32, ptr %162, align 4, !tbaa !5
  %182 = call ptr @strerror(i32 noundef %181) #12
  %183 = load i32, ptr %162, align 4, !tbaa !5
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef nonnull %.str.5.sink283, i32 noundef %175, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %178, ptr noundef %180, ptr noundef %182, i32 noundef %183) #14
  call void @exit(i32 noundef 1) #15
  unreachable

185:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 8088, ptr nonnull %6) #12
  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)
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr @test_count, align 4, !tbaa !5
  %188 = call i32 @s2n_blob_init(ptr noundef nonnull %7, ptr noundef nonnull %6, i32 noundef 8088) #12
  %189 = icmp eq i32 %188, -1
  br i1 %189, label %190, label %214

190:                                              ; preds = %185
  %191 = tail call ptr @__errno_location() #13
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = call i32 @s2n_print_stacktrace(ptr noundef %193) #12
  %195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %196 = trunc nuw i8 %195 to i1
  br i1 %196, label %197, label %201

197:                                              ; preds = %190
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = call i32 @fileno(ptr noundef %198) #12
  %200 = call i32 @isatty(i32 noundef %199) #12
  %.not221 = icmp eq i32 %200, 0
  br i1 %.not221, label %201, label %202

201:                                              ; preds = %197, %190
  br label %202

202:                                              ; preds = %197, %201
  %.str.5.sink294 = phi ptr [ @.str.5, %201 ], [ @.str.2, %197 ]
  store i32 %192, ptr %191, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call ptr @s2n_strerror(i32 noundef %206, ptr noundef nonnull @.str.4) #12
  %208 = load i32, ptr %205, align 4, !tbaa !5
  %209 = call ptr @s2n_strerror_debug(i32 noundef %208, ptr noundef nonnull @.str.4) #12
  %210 = load i32, ptr %191, align 4, !tbaa !5
  %211 = call ptr @strerror(i32 noundef %210) #12
  %212 = load i32, ptr %191, align 4, !tbaa !5
  %213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %203, ptr noundef nonnull %.str.5.sink294, i32 noundef %204, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %207, ptr noundef %209, ptr noundef %211, i32 noundef %212) #14
  call void @exit(i32 noundef 1) #15
  unreachable

214:                                              ; preds = %185
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %218 = icmp eq i32 %217, -1
  br i1 %218, label %219, label %243

219:                                              ; preds = %214
  %220 = tail call ptr @__errno_location() #13
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = call i32 @s2n_print_stacktrace(ptr noundef %222) #12
  %224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %225 = trunc nuw i8 %224 to i1
  br i1 %225, label %226, label %230

226:                                              ; preds = %219
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = call i32 @fileno(ptr noundef %227) #12
  %229 = call i32 @isatty(i32 noundef %228) #12
  %.not220 = icmp eq i32 %229, 0
  br i1 %.not220, label %230, label %231

230:                                              ; preds = %226, %219
  br label %231

231:                                              ; preds = %226, %230
  %.str.5.sink305 = phi ptr [ @.str.5, %230 ], [ @.str.2, %226 ]
  store i32 %221, ptr %220, align 4, !tbaa !5
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = load i32, ptr @test_count, align 4, !tbaa !5
  %234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror(i32 noundef %235, ptr noundef nonnull @.str.4) #12
  %237 = load i32, ptr %234, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef nonnull @.str.4) #12
  %239 = load i32, ptr %220, align 4, !tbaa !5
  %240 = call ptr @strerror(i32 noundef %239) #12
  %241 = load i32, ptr %220, align 4, !tbaa !5
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef nonnull %.str.5.sink305, i32 noundef %233, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %236, ptr noundef %238, ptr noundef %240, i32 noundef %241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

243:                                              ; preds = %214
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr @test_count, align 4, !tbaa !5
  %246 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %247 = icmp eq ptr %246, null
  br i1 %247, label %248, label %272

248:                                              ; preds = %243
  %249 = tail call ptr @__errno_location() #13
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @s2n_print_stacktrace(ptr noundef %251) #12
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc nuw i8 %253 to i1
  br i1 %254, label %255, label %259

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @fileno(ptr noundef %256) #12
  %258 = call i32 @isatty(i32 noundef %257) #12
  %.not219 = icmp eq i32 %258, 0
  br i1 %.not219, label %259, label %260

259:                                              ; preds = %255, %248
  br label %260

260:                                              ; preds = %255, %259
  %.str.5.sink316 = phi ptr [ @.str.5, %259 ], [ @.str.2, %255 ]
  store i32 %250, ptr %249, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call ptr @s2n_strerror(i32 noundef %264, ptr noundef nonnull @.str.4) #12
  %266 = load i32, ptr %263, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror_debug(i32 noundef %266, ptr noundef nonnull @.str.4) #12
  %268 = load i32, ptr %249, align 4, !tbaa !5
  %269 = call ptr @strerror(i32 noundef %268) #12
  %270 = load i32, ptr %249, align 4, !tbaa !5
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %261, ptr noundef nonnull %.str.5.sink316, i32 noundef %262, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %265, ptr noundef %267, ptr noundef %269, i32 noundef %270) #14
  call void @exit(i32 noundef 1) #15
  unreachable

272:                                              ; preds = %243
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr @test_count, align 4, !tbaa !5
  %275 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %7) #12
  %276 = call zeroext i1 @s2n_result_is_ok(i32 %275)
  br i1 %276, label %301, label %277

277:                                              ; preds = %272
  %278 = tail call ptr @__errno_location() #13
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @s2n_print_stacktrace(ptr noundef %280) #12
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %288

284:                                              ; preds = %277
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @fileno(ptr noundef %285) #12
  %287 = call i32 @isatty(i32 noundef %286) #12
  %.not174 = icmp eq i32 %287, 0
  br i1 %.not174, label %288, label %289

288:                                              ; preds = %284, %277
  br label %289

289:                                              ; preds = %284, %288
  %.str.5.sink327 = phi ptr [ @.str.5, %288 ], [ @.str.2, %284 ]
  store i32 %279, ptr %278, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror(i32 noundef %293, ptr noundef nonnull @.str.4) #12
  %295 = load i32, ptr %292, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror_debug(i32 noundef %295, ptr noundef nonnull @.str.4) #12
  %297 = load i32, ptr %278, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #12
  %299 = load i32, ptr %278, align 4, !tbaa !5
  %300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef nonnull %.str.5.sink327, i32 noundef %291, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %294, ptr noundef %296, ptr noundef %298, i32 noundef %299) #14
  call void @exit(i32 noundef 1) #15
  unreachable

301:                                              ; preds = %272
  %302 = getelementptr inbounds i8, ptr %246, i64 232
  %303 = load ptr, ptr %302, align 8, !tbaa !17
  %304 = getelementptr inbounds i8, ptr %246, i64 640
  store ptr %303, ptr %304, align 8, !tbaa !44
  %305 = getelementptr inbounds i8, ptr %246, i64 632
  store ptr %303, ptr %305, align 8, !tbaa !45
  %306 = load ptr, ptr %303, align 8, !tbaa !46
  %307 = getelementptr inbounds i8, ptr %306, i64 48
  store ptr @s2n_record_alg_rc4_sha, ptr %307, align 8, !tbaa !51
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = load ptr, ptr @s2n_record_alg_rc4_sha, align 8, !tbaa !53
  %311 = getelementptr inbounds i8, ptr %310, i64 64
  %312 = load ptr, ptr %311, align 8, !tbaa !55
  %313 = getelementptr inbounds i8, ptr %303, i64 16
  %314 = call i32 %312(ptr noundef nonnull %313) #12
  %315 = call zeroext i1 @s2n_result_is_ok(i32 %314)
  br i1 %315, label %340, label %316

316:                                              ; preds = %301
  %317 = tail call ptr @__errno_location() #13
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @s2n_print_stacktrace(ptr noundef %319) #12
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %323, label %327

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @fileno(ptr noundef %324) #12
  %326 = call i32 @isatty(i32 noundef %325) #12
  %.not175 = icmp eq i32 %326, 0
  br i1 %.not175, label %327, label %328

327:                                              ; preds = %323, %316
  br label %328

328:                                              ; preds = %323, %327
  %.str.5.sink338 = phi ptr [ @.str.5, %327 ], [ @.str.2, %323 ]
  store i32 %318, ptr %317, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef nonnull @.str.4) #12
  %334 = load i32, ptr %331, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef nonnull @.str.4) #12
  %336 = load i32, ptr %317, align 4, !tbaa !5
  %337 = call ptr @strerror(i32 noundef %336) #12
  %338 = load i32, ptr %317, align 4, !tbaa !5
  %339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull %.str.5.sink338, i32 noundef %330, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %333, ptr noundef %335, ptr noundef %337, i32 noundef %338) #14
  call void @exit(i32 noundef 1) #15
  unreachable

340:                                              ; preds = %301
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = load ptr, ptr %302, align 8, !tbaa !17
  %344 = load ptr, ptr %343, align 8, !tbaa !46
  %345 = getelementptr inbounds i8, ptr %344, i64 48
  %346 = load ptr, ptr %345, align 8, !tbaa !51
  %347 = load ptr, ptr %346, align 8, !tbaa !53
  %348 = getelementptr inbounds i8, ptr %347, i64 64
  %349 = load ptr, ptr %348, align 8, !tbaa !55
  %350 = getelementptr inbounds i8, ptr %343, i64 8
  %351 = call i32 %349(ptr noundef nonnull %350) #12
  %352 = call zeroext i1 @s2n_result_is_ok(i32 %351)
  br i1 %352, label %377, label %353

353:                                              ; preds = %340
  %354 = tail call ptr @__errno_location() #13
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call i32 @s2n_print_stacktrace(ptr noundef %356) #12
  %358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %359 = trunc nuw i8 %358 to i1
  br i1 %359, label %360, label %364

360:                                              ; preds = %353
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @fileno(ptr noundef %361) #12
  %363 = call i32 @isatty(i32 noundef %362) #12
  %.not176 = icmp eq i32 %363, 0
  br i1 %.not176, label %364, label %365

364:                                              ; preds = %360, %353
  br label %365

365:                                              ; preds = %360, %364
  %.str.5.sink349 = phi ptr [ @.str.5, %364 ], [ @.str.2, %360 ]
  store i32 %355, ptr %354, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror(i32 noundef %369, ptr noundef nonnull @.str.4) #12
  %371 = load i32, ptr %368, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef nonnull @.str.4) #12
  %373 = load i32, ptr %354, align 4, !tbaa !5
  %374 = call ptr @strerror(i32 noundef %373) #12
  %375 = load i32, ptr %354, align 4, !tbaa !5
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.5.sink349, i32 noundef %367, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %370, ptr noundef %372, ptr noundef %374, i32 noundef %375) #14
  call void @exit(i32 noundef 1) #15
  unreachable

377:                                              ; preds = %340
  %378 = load ptr, ptr %302, align 8, !tbaa !17
  %379 = load ptr, ptr %378, align 8, !tbaa !46
  %380 = getelementptr inbounds i8, ptr %379, i64 48
  %381 = load ptr, ptr %380, align 8, !tbaa !51
  %382 = load ptr, ptr %381, align 8, !tbaa !53
  %383 = getelementptr inbounds i8, ptr %382, i64 56
  %384 = load ptr, ptr %383, align 8, !tbaa !15
  %385 = call zeroext i1 %384() #12
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = load ptr, ptr %302, align 8, !tbaa !17
  %389 = load ptr, ptr %388, align 8, !tbaa !46
  %390 = getelementptr inbounds i8, ptr %389, i64 48
  %391 = load ptr, ptr %390, align 8, !tbaa !51
  %392 = load ptr, ptr %391, align 8, !tbaa !53
  %393 = getelementptr inbounds i8, ptr %392, i64 72
  %394 = load ptr, ptr %393, align 8, !tbaa !56
  %395 = getelementptr inbounds i8, ptr %388, i64 8
  %396 = call i32 %394(ptr noundef nonnull %395, ptr noundef nonnull %5) #12
  br i1 %385, label %397, label %1260

397:                                              ; preds = %377
  %398 = call zeroext i1 @s2n_result_is_ok(i32 %396)
  br i1 %398, label %423, label %399

399:                                              ; preds = %397
  %400 = tail call ptr @__errno_location() #13
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @s2n_print_stacktrace(ptr noundef %402) #12
  %404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %405 = trunc nuw i8 %404 to i1
  br i1 %405, label %406, label %410

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

410:                                              ; preds = %406, %399
  br label %411

411:                                              ; preds = %406, %410
  %.str.5.sink360 = phi ptr [ @.str.5, %410 ], [ @.str.2, %406 ]
  store i32 %401, ptr %400, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror(i32 noundef %415, ptr noundef nonnull @.str.4) #12
  %417 = load i32, ptr %414, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror_debug(i32 noundef %417, ptr noundef nonnull @.str.4) #12
  %419 = load i32, ptr %400, align 4, !tbaa !5
  %420 = call ptr @strerror(i32 noundef %419) #12
  %421 = load i32, ptr %400, align 4, !tbaa !5
  %422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull %.str.5.sink360, i32 noundef %413, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %416, ptr noundef %418, ptr noundef %420, i32 noundef %421) #14
  call void @exit(i32 noundef 1) #15
  unreachable

423:                                              ; preds = %397
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr @test_count, align 4, !tbaa !5
  %426 = load ptr, ptr %302, align 8, !tbaa !17
  %427 = load ptr, ptr %426, align 8, !tbaa !46
  %428 = getelementptr inbounds i8, ptr %427, i64 48
  %429 = load ptr, ptr %428, align 8, !tbaa !51
  %430 = load ptr, ptr %429, align 8, !tbaa !53
  %431 = getelementptr inbounds i8, ptr %430, i64 80
  %432 = load ptr, ptr %431, align 8, !tbaa !57
  %433 = getelementptr inbounds i8, ptr %426, i64 16
  %434 = call i32 %432(ptr noundef nonnull %433, ptr noundef nonnull %5) #12
  %435 = call zeroext i1 @s2n_result_is_ok(i32 %434)
  br i1 %435, label %460, label %436

436:                                              ; preds = %423
  %437 = tail call ptr @__errno_location() #13
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @s2n_print_stacktrace(ptr noundef %439) #12
  %441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %442 = trunc nuw i8 %441 to i1
  br i1 %442, label %443, label %447

443:                                              ; preds = %436
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = call i32 @fileno(ptr noundef %444) #12
  %446 = call i32 @isatty(i32 noundef %445) #12
  %.not184 = icmp eq i32 %446, 0
  br i1 %.not184, label %447, label %448

447:                                              ; preds = %443, %436
  br label %448

448:                                              ; preds = %443, %447
  %.str.5.sink371 = phi ptr [ @.str.5, %447 ], [ @.str.2, %443 ]
  store i32 %438, ptr %437, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @s2n_strerror(i32 noundef %452, ptr noundef nonnull @.str.4) #12
  %454 = load i32, ptr %451, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror_debug(i32 noundef %454, ptr noundef nonnull @.str.4) #12
  %456 = load i32, ptr %437, align 4, !tbaa !5
  %457 = call ptr @strerror(i32 noundef %456) #12
  %458 = load i32, ptr %437, align 4, !tbaa !5
  %459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef nonnull %.str.5.sink371, i32 noundef %450, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %453, ptr noundef %455, ptr noundef %457, i32 noundef %458) #14
  call void @exit(i32 noundef 1) #15
  unreachable

460:                                              ; preds = %423
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = add nsw i32 %461, 1
  store i32 %462, ptr @test_count, align 4, !tbaa !5
  %463 = load ptr, ptr %302, align 8, !tbaa !17
  %464 = getelementptr inbounds i8, ptr %463, i64 24
  %465 = call i32 @s2n_hmac_init(ptr noundef nonnull %464, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %467, label %491

467:                                              ; preds = %460
  %468 = tail call ptr @__errno_location() #13
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = call i32 @s2n_print_stacktrace(ptr noundef %470) #12
  %472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %473 = trunc nuw i8 %472 to i1
  br i1 %473, label %474, label %478

474:                                              ; preds = %467
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = call i32 @fileno(ptr noundef %475) #12
  %477 = call i32 @isatty(i32 noundef %476) #12
  %.not218 = icmp eq i32 %477, 0
  br i1 %.not218, label %478, label %479

478:                                              ; preds = %474, %467
  br label %479

479:                                              ; preds = %474, %478
  %.str.5.sink382 = phi ptr [ @.str.5, %478 ], [ @.str.2, %474 ]
  store i32 %469, ptr %468, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror(i32 noundef %483, ptr noundef nonnull @.str.4) #12
  %485 = load i32, ptr %482, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef nonnull @.str.4) #12
  %487 = load i32, ptr %468, align 4, !tbaa !5
  %488 = call ptr @strerror(i32 noundef %487) #12
  %489 = load i32, ptr %468, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef nonnull %.str.5.sink382, i32 noundef %481, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %484, ptr noundef %486, ptr noundef %488, i32 noundef %489) #14
  call void @exit(i32 noundef 1) #15
  unreachable

491:                                              ; preds = %460
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = load ptr, ptr %302, align 8, !tbaa !17
  %495 = getelementptr inbounds i8, ptr %494, i64 456
  %496 = call i32 @s2n_hmac_init(ptr noundef nonnull %495, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %497 = icmp eq i32 %496, -1
  br i1 %497, label %498, label %522

498:                                              ; preds = %491
  %499 = tail call ptr @__errno_location() #13
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501) #12
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc nuw i8 %503 to i1
  br i1 %504, label %505, label %509

505:                                              ; preds = %498
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @fileno(ptr noundef %506) #12
  %508 = call i32 @isatty(i32 noundef %507) #12
  %.not217 = icmp eq i32 %508, 0
  br i1 %.not217, label %509, label %510

509:                                              ; preds = %505, %498
  br label %510

510:                                              ; preds = %505, %509
  %.str.5.sink393 = phi ptr [ @.str.5, %509 ], [ @.str.2, %505 ]
  store i32 %500, ptr %499, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror(i32 noundef %514, ptr noundef nonnull @.str.4) #12
  %516 = load i32, ptr %513, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror_debug(i32 noundef %516, ptr noundef nonnull @.str.4) #12
  %518 = load i32, ptr %499, align 4, !tbaa !5
  %519 = call ptr @strerror(i32 noundef %518) #12
  %520 = load i32, ptr %499, align 4, !tbaa !5
  %521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef nonnull %.str.5.sink393, i32 noundef %512, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %515, ptr noundef %517, ptr noundef %519, i32 noundef %520) #14
  call void @exit(i32 noundef 1) #15
  unreachable

522:                                              ; preds = %491
  %523 = getelementptr inbounds i8, ptr %246, i64 220
  store i8 32, ptr %523, align 4, !tbaa !58
  %524 = getelementptr inbounds i8, ptr %246, i64 1896
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = getelementptr inbounds i8, ptr %246, i64 1856
  %527 = getelementptr inbounds i8, ptr %246, i64 1776
  %528 = getelementptr inbounds i8, ptr %246, i64 1924
  %529 = getelementptr inbounds i8, ptr %246, i64 1920
  %530 = getelementptr inbounds i8, ptr %246, i64 1884
  %531 = getelementptr inbounds i8, ptr %246, i64 1880
  br label %545

532:                                              ; preds = %1199
  %533 = load i32, ptr @test_count, align 4, !tbaa !5
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr @test_count, align 4, !tbaa !5
  %535 = load ptr, ptr %302, align 8, !tbaa !17
  %536 = load ptr, ptr %535, align 8, !tbaa !46
  %537 = getelementptr inbounds i8, ptr %536, i64 48
  %538 = load ptr, ptr %537, align 8, !tbaa !51
  %539 = load ptr, ptr %538, align 8, !tbaa !53
  %540 = getelementptr inbounds i8, ptr %539, i64 88
  %541 = load ptr, ptr %540, align 8, !tbaa !59
  %542 = getelementptr inbounds i8, ptr %535, i64 16
  %543 = call i32 %541(ptr noundef nonnull %542) #12
  %544 = call zeroext i1 @s2n_result_is_ok(i32 %543)
  br i1 %544, label %1224, label %1201

545:                                              ; preds = %522, %1199
  %.0228 = phi i64 [ 0, %522 ], [ %1200, %1199 ]
  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)
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = add nsw i32 %546, 1
  store i32 %547, ptr @test_count, align 4, !tbaa !5
  %548 = trunc nuw nsw i64 %.0228 to i32
  %549 = call i32 @s2n_blob_init(ptr noundef nonnull %8, ptr noundef nonnull %6, i32 noundef %548) #12
  %550 = icmp eq i32 %549, -1
  br i1 %550, label %551, label %574

551:                                              ; preds = %545
  %552 = tail call ptr @__errno_location() #13
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @s2n_print_stacktrace(ptr noundef %554) #12
  %556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %557 = trunc nuw i8 %556 to i1
  br i1 %557, label %558, label %562

558:                                              ; preds = %551
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @fileno(ptr noundef %559) #12
  %561 = call i32 @isatty(i32 noundef %560) #12
  %.not216 = icmp eq i32 %561, 0
  br i1 %.not216, label %562, label %563

562:                                              ; preds = %558, %551
  br label %563

563:                                              ; preds = %558, %562
  %.str.5.sink404 = phi ptr [ @.str.5, %562 ], [ @.str.2, %558 ]
  store i32 %553, ptr %552, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = load i32, ptr %525, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror(i32 noundef %566, ptr noundef nonnull @.str.4) #12
  %568 = load i32, ptr %525, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror_debug(i32 noundef %568, ptr noundef nonnull @.str.4) #12
  %570 = load i32, ptr %552, align 4, !tbaa !5
  %571 = call ptr @strerror(i32 noundef %570) #12
  %572 = load i32, ptr %552, align 4, !tbaa !5
  %573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef nonnull %.str.5.sink404, i32 noundef %565, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %567, ptr noundef %569, ptr noundef %571, i32 noundef %572) #14
  call void @exit(i32 noundef 1) #15
  unreachable

574:                                              ; preds = %545
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr @test_count, align 4, !tbaa !5
  %577 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %524) #12
  %578 = icmp eq i32 %577, -1
  br i1 %578, label %579, label %602

579:                                              ; preds = %574
  %580 = tail call ptr @__errno_location() #13
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = call i32 @s2n_print_stacktrace(ptr noundef %582) #12
  %584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %585 = trunc nuw i8 %584 to i1
  br i1 %585, label %586, label %590

586:                                              ; preds = %579
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = call i32 @fileno(ptr noundef %587) #12
  %589 = call i32 @isatty(i32 noundef %588) #12
  %.not215 = icmp eq i32 %589, 0
  br i1 %.not215, label %590, label %591

590:                                              ; preds = %586, %579
  br label %591

591:                                              ; preds = %586, %590
  %.str.5.sink413 = phi ptr [ @.str.5, %590 ], [ @.str.2, %586 ]
  store i32 %581, ptr %580, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = load i32, ptr %525, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror(i32 noundef %594, ptr noundef nonnull @.str.4) #12
  %596 = load i32, ptr %525, align 4, !tbaa !5
  %597 = call ptr @s2n_strerror_debug(i32 noundef %596, ptr noundef nonnull @.str.4) #12
  %598 = load i32, ptr %580, align 4, !tbaa !5
  %599 = call ptr @strerror(i32 noundef %598) #12
  %600 = load i32, ptr %580, align 4, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %592, ptr noundef nonnull %.str.5.sink413, i32 noundef %593, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %595, ptr noundef %597, ptr noundef %599, i32 noundef %600) #14
  call void @exit(i32 noundef 1) #15
  unreachable

602:                                              ; preds = %574
  %603 = call i32 @s2n_record_write(ptr noundef nonnull %246, i8 noundef zeroext 23, ptr noundef nonnull %8) #12
  %.not193 = icmp eq i64 %.0228, 8088
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = add nsw i32 %604, 1
  store i32 %605, ptr @test_count, align 4, !tbaa !5
  br i1 %.not193, label %631, label %606

606:                                              ; preds = %602
  %607 = call zeroext i1 @s2n_result_is_ok(i32 %603)
  br i1 %607, label %713, label %608

608:                                              ; preds = %606
  %609 = tail call ptr @__errno_location() #13
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = call i32 @s2n_print_stacktrace(ptr noundef %611) #12
  %613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %614 = trunc nuw i8 %613 to i1
  br i1 %614, label %615, label %619

615:                                              ; preds = %608
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @fileno(ptr noundef %616) #12
  %618 = call i32 @isatty(i32 noundef %617) #12
  %.not197 = icmp eq i32 %618, 0
  br i1 %.not197, label %619, label %620

619:                                              ; preds = %615, %608
  br label %620

620:                                              ; preds = %615, %619
  %.str.5.sink422 = phi ptr [ @.str.5, %619 ], [ @.str.2, %615 ]
  store i32 %610, ptr %609, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = load i32, ptr %525, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror(i32 noundef %623, ptr noundef nonnull @.str.4) #12
  %625 = load i32, ptr %525, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror_debug(i32 noundef %625, ptr noundef nonnull @.str.4) #12
  %627 = load i32, ptr %609, align 4, !tbaa !5
  %628 = call ptr @strerror(i32 noundef %627) #12
  %629 = load i32, ptr %609, align 4, !tbaa !5
  %630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef nonnull %.str.5.sink422, i32 noundef %622, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %624, ptr noundef %626, ptr noundef %628, i32 noundef %629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

631:                                              ; preds = %602
  %632 = call zeroext i1 @s2n_result_is_error(i32 %603)
  br i1 %632, label %656, label %633

633:                                              ; preds = %631
  %634 = tail call ptr @__errno_location() #13
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @s2n_print_stacktrace(ptr noundef %636) #12
  %638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %639 = trunc nuw i8 %638 to i1
  br i1 %639, label %640, label %644

640:                                              ; preds = %633
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = call i32 @fileno(ptr noundef %641) #12
  %643 = call i32 @isatty(i32 noundef %642) #12
  %.not194 = icmp eq i32 %643, 0
  br i1 %.not194, label %644, label %645

644:                                              ; preds = %640, %633
  br label %645

645:                                              ; preds = %640, %644
  %.str.5.sink431 = phi ptr [ @.str.5, %644 ], [ @.str.2, %640 ]
  store i32 %635, ptr %634, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = load i32, ptr %525, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef nonnull @.str.4) #12
  %650 = load i32, ptr %525, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror_debug(i32 noundef %650, ptr noundef nonnull @.str.4) #12
  %652 = load i32, ptr %634, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #12
  %654 = load i32, ptr %634, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef nonnull %.str.5.sink431, i32 noundef %647, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %649, ptr noundef %651, ptr noundef %653, i32 noundef %654) #14
  call void @exit(i32 noundef 1) #15
  unreachable

656:                                              ; preds = %631
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = add nsw i32 %657, 1
  store i32 %658, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %525, align 4, !tbaa !5
  %660 = icmp eq i32 %659, 335544390
  br i1 %660, label %684, label %661

661:                                              ; preds = %656
  %662 = tail call ptr @__errno_location() #13
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @s2n_print_stacktrace(ptr noundef %664) #12
  %666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %667 = trunc nuw i8 %666 to i1
  br i1 %667, label %668, label %672

668:                                              ; preds = %661
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = call i32 @fileno(ptr noundef %669) #12
  %671 = call i32 @isatty(i32 noundef %670) #12
  %.not195 = icmp eq i32 %671, 0
  br i1 %.not195, label %672, label %673

672:                                              ; preds = %668, %661
  br label %673

673:                                              ; preds = %668, %672
  %.str.5.sink440 = phi ptr [ @.str.5, %672 ], [ @.str.2, %668 ]
  store i32 %663, ptr %662, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = load i32, ptr %525, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror(i32 noundef %676, ptr noundef nonnull @.str.4) #12
  %678 = load i32, ptr %525, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef nonnull @.str.4) #12
  %680 = load i32, ptr %662, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #12
  %682 = load i32, ptr %662, align 4, !tbaa !5
  %683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef nonnull %.str.5.sink440, i32 noundef %675, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %677, ptr noundef %679, ptr noundef %681, i32 noundef %682) #14
  call void @exit(i32 noundef 1) #15
  unreachable

684:                                              ; preds = %656
  %685 = add nsw i32 %657, 2
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.4) #12
  %687 = icmp eq ptr %686, null
  br i1 %687, label %688, label %711

688:                                              ; preds = %684
  %689 = tail call ptr @__errno_location() #13
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = call i32 @s2n_print_stacktrace(ptr noundef %691) #12
  %693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %694 = trunc nuw i8 %693 to i1
  br i1 %694, label %695, label %699

695:                                              ; preds = %688
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @fileno(ptr noundef %696) #12
  %698 = call i32 @isatty(i32 noundef %697) #12
  %.not196 = icmp eq i32 %698, 0
  br i1 %.not196, label %699, label %700

699:                                              ; preds = %695, %688
  br label %700

700:                                              ; preds = %695, %699
  %.str.5.sink449 = phi ptr [ @.str.5, %699 ], [ @.str.2, %695 ]
  store i32 %690, ptr %689, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = load i32, ptr %525, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef nonnull @.str.4) #12
  %705 = load i32, ptr %525, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef nonnull @.str.4) #12
  %707 = load i32, ptr %689, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #12
  %709 = load i32, ptr %689, align 4, !tbaa !5
  %710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef nonnull %.str.5.sink449, i32 noundef %702, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %704, ptr noundef %706, ptr noundef %708, i32 noundef %709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

711:                                              ; preds = %684
  store i32 0, ptr %525, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %712 = tail call ptr @__errno_location() #13
  store i32 0, ptr %712, align 4, !tbaa !5
  br label %713

713:                                              ; preds = %606, %711
  %.0170 = phi i32 [ 8087, %711 ], [ %548, %606 ]
  %714 = add nuw nsw i32 %.0170, 20
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = load ptr, ptr %524, align 8, !tbaa !60
  %718 = load i8, ptr %717, align 1, !tbaa !61
  %719 = icmp eq i8 %718, 23
  br i1 %719, label %743, label %720

720:                                              ; preds = %713
  %721 = tail call ptr @__errno_location() #13
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #12
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #12
  %730 = call i32 @isatty(i32 noundef %729) #12
  %.not198 = icmp eq i32 %730, 0
  br i1 %.not198, label %731, label %732

731:                                              ; preds = %727, %720
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink458 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %721, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = load i32, ptr %525, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror(i32 noundef %735, ptr noundef nonnull @.str.4) #12
  %737 = load i32, ptr %525, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror_debug(i32 noundef %737, ptr noundef nonnull @.str.4) #12
  %739 = load i32, ptr %721, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #12
  %741 = load i32, ptr %721, align 4, !tbaa !5
  %742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink458, i32 noundef %734, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %736, ptr noundef %738, ptr noundef %740, i32 noundef %741) #14
  call void @exit(i32 noundef 1) #15
  unreachable

743:                                              ; preds = %713
  %744 = add nsw i32 %715, 2
  store i32 %744, ptr @test_count, align 4, !tbaa !5
  %745 = getelementptr inbounds i8, ptr %717, i64 1
  %746 = load i8, ptr %745, align 1, !tbaa !61
  %747 = icmp eq i8 %746, 3
  br i1 %747, label %771, label %748

748:                                              ; preds = %743
  %749 = tail call ptr @__errno_location() #13
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @s2n_print_stacktrace(ptr noundef %751) #12
  %753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %754 = trunc nuw i8 %753 to i1
  br i1 %754, label %755, label %759

755:                                              ; preds = %748
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #12
  %758 = call i32 @isatty(i32 noundef %757) #12
  %.not199 = icmp eq i32 %758, 0
  br i1 %.not199, label %759, label %760

759:                                              ; preds = %755, %748
  br label %760

760:                                              ; preds = %755, %759
  %.str.5.sink467 = phi ptr [ @.str.5, %759 ], [ @.str.2, %755 ]
  store i32 %750, ptr %749, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = load i32, ptr %525, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror(i32 noundef %763, ptr noundef nonnull @.str.4) #12
  %765 = load i32, ptr %525, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror_debug(i32 noundef %765, ptr noundef nonnull @.str.4) #12
  %767 = load i32, ptr %749, align 4, !tbaa !5
  %768 = call ptr @strerror(i32 noundef %767) #12
  %769 = load i32, ptr %749, align 4, !tbaa !5
  %770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef nonnull %.str.5.sink467, i32 noundef %762, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %764, ptr noundef %766, ptr noundef %768, i32 noundef %769) #14
  call void @exit(i32 noundef 1) #15
  unreachable

771:                                              ; preds = %743
  %772 = add nsw i32 %715, 3
  store i32 %772, ptr @test_count, align 4, !tbaa !5
  %773 = getelementptr inbounds i8, ptr %717, i64 2
  %774 = load i8, ptr %773, align 1, !tbaa !61
  %775 = icmp eq i8 %774, 2
  br i1 %775, label %799, label %776

776:                                              ; preds = %771
  %777 = tail call ptr @__errno_location() #13
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #12
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %776
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #12
  %786 = call i32 @isatty(i32 noundef %785) #12
  %.not200 = icmp eq i32 %786, 0
  br i1 %.not200, label %787, label %788

787:                                              ; preds = %783, %776
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink476 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %777, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %525, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.4) #12
  %793 = load i32, ptr %525, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.4) #12
  %795 = load i32, ptr %777, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #12
  %797 = load i32, ptr %777, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink476, i32 noundef %790, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

799:                                              ; preds = %771
  %800 = add nsw i32 %715, 4
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = getelementptr inbounds i8, ptr %717, i64 3
  %802 = load i8, ptr %801, align 1, !tbaa !61
  %803 = lshr i32 %714, 8
  %804 = trunc i32 %803 to i8
  %805 = icmp eq i8 %802, %804
  br i1 %805, label %829, label %806

806:                                              ; preds = %799
  %807 = tail call ptr @__errno_location() #13
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @s2n_print_stacktrace(ptr noundef %809) #12
  %811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %812 = trunc nuw i8 %811 to i1
  br i1 %812, label %813, label %817

813:                                              ; preds = %806
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @fileno(ptr noundef %814) #12
  %816 = call i32 @isatty(i32 noundef %815) #12
  %.not201 = icmp eq i32 %816, 0
  br i1 %.not201, label %817, label %818

817:                                              ; preds = %813, %806
  br label %818

818:                                              ; preds = %813, %817
  %.str.5.sink485 = phi ptr [ @.str.5, %817 ], [ @.str.2, %813 ]
  store i32 %808, ptr %807, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = load i32, ptr %525, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror(i32 noundef %821, ptr noundef nonnull @.str.4) #12
  %823 = load i32, ptr %525, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef nonnull @.str.4) #12
  %825 = load i32, ptr %807, align 4, !tbaa !5
  %826 = call ptr @strerror(i32 noundef %825) #12
  %827 = load i32, ptr %807, align 4, !tbaa !5
  %828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %819, ptr noundef nonnull %.str.5.sink485, i32 noundef %820, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %822, ptr noundef %824, ptr noundef %826, i32 noundef %827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

829:                                              ; preds = %799
  %830 = add nsw i32 %715, 5
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = getelementptr inbounds i8, ptr %717, i64 4
  %832 = load i8, ptr %831, align 1, !tbaa !61
  %833 = trunc i32 %714 to i8
  %834 = icmp eq i8 %832, %833
  br i1 %834, label %858, label %835

835:                                              ; preds = %829
  %836 = tail call ptr @__errno_location() #13
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = call i32 @s2n_print_stacktrace(ptr noundef %838) #12
  %840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %841 = trunc nuw i8 %840 to i1
  br i1 %841, label %842, label %846

842:                                              ; preds = %835
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @fileno(ptr noundef %843) #12
  %845 = call i32 @isatty(i32 noundef %844) #12
  %.not202 = icmp eq i32 %845, 0
  br i1 %.not202, label %846, label %847

846:                                              ; preds = %842, %835
  br label %847

847:                                              ; preds = %842, %846
  %.str.5.sink494 = phi ptr [ @.str.5, %846 ], [ @.str.2, %842 ]
  store i32 %837, ptr %836, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = load i32, ptr %525, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror(i32 noundef %850, ptr noundef nonnull @.str.4) #12
  %852 = load i32, ptr %525, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef nonnull @.str.4) #12
  %854 = load i32, ptr %836, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #12
  %856 = load i32, ptr %836, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %848, ptr noundef nonnull %.str.5.sink494, i32 noundef %849, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %851, ptr noundef %853, ptr noundef %855, i32 noundef %856) #14
  call void @exit(i32 noundef 1) #15
  unreachable

858:                                              ; preds = %829
  %859 = icmp ugt i32 %.0170, 10
  br i1 %859, label %860, label %888

860:                                              ; preds = %858
  %861 = add nsw i32 %715, 6
  store i32 %861, ptr @test_count, align 4, !tbaa !5
  %862 = getelementptr inbounds i8, ptr %717, i64 5
  %863 = zext nneg i32 %.0170 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %862, ptr nonnull %6, i64 %863)
  %864 = icmp eq i32 %bcmp, 0
  br i1 %864, label %865, label %888

865:                                              ; preds = %860
  %866 = tail call ptr @__errno_location() #13
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868) #12
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc nuw i8 %870 to i1
  br i1 %871, label %872, label %876

872:                                              ; preds = %865
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #12
  %875 = call i32 @isatty(i32 noundef %874) #12
  %.not214 = icmp eq i32 %875, 0
  br i1 %.not214, label %876, label %877

876:                                              ; preds = %872, %865
  br label %877

877:                                              ; preds = %872, %876
  %.str.5.sink503 = phi ptr [ @.str.5, %876 ], [ @.str.2, %872 ]
  store i32 %867, ptr %866, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = load i32, ptr %525, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef nonnull @.str.4) #12
  %882 = load i32, ptr %525, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror_debug(i32 noundef %882, ptr noundef nonnull @.str.4) #12
  %884 = load i32, ptr %866, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #12
  %886 = load i32, ptr %866, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.5.sink503, i32 noundef %879, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %881, ptr noundef %883, ptr noundef %885, i32 noundef %886) #14
  call void @exit(i32 noundef 1) #15
  unreachable

888:                                              ; preds = %858, %860
  %889 = phi i32 [ %830, %858 ], [ %861, %860 ]
  %890 = add nsw i32 %889, 1
  store i32 %890, ptr @test_count, align 4, !tbaa !5
  %891 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %526) #12
  %892 = icmp eq i32 %891, -1
  br i1 %892, label %893, label %916

893:                                              ; preds = %888
  %894 = tail call ptr @__errno_location() #13
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @s2n_print_stacktrace(ptr noundef %896) #12
  %898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %899 = trunc nuw i8 %898 to i1
  br i1 %899, label %900, label %904

900:                                              ; preds = %893
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @fileno(ptr noundef %901) #12
  %903 = call i32 @isatty(i32 noundef %902) #12
  %.not213 = icmp eq i32 %903, 0
  br i1 %.not213, label %904, label %905

904:                                              ; preds = %900, %893
  br label %905

905:                                              ; preds = %900, %904
  %.str.5.sink512 = phi ptr [ @.str.5, %904 ], [ @.str.2, %900 ]
  store i32 %895, ptr %894, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = load i32, ptr %525, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef nonnull @.str.4) #12
  %910 = load i32, ptr %525, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror_debug(i32 noundef %910, ptr noundef nonnull @.str.4) #12
  %912 = load i32, ptr %894, align 4, !tbaa !5
  %913 = call ptr @strerror(i32 noundef %912) #12
  %914 = load i32, ptr %894, align 4, !tbaa !5
  %915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef nonnull %.str.5.sink512, i32 noundef %907, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %909, ptr noundef %911, ptr noundef %913, i32 noundef %914) #14
  call void @exit(i32 noundef 1) #15
  unreachable

916:                                              ; preds = %888
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr @test_count, align 4, !tbaa !5
  %919 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %527) #12
  %920 = icmp eq i32 %919, -1
  br i1 %920, label %921, label %944

921:                                              ; preds = %916
  %922 = tail call ptr @__errno_location() #13
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @s2n_print_stacktrace(ptr noundef %924) #12
  %926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %927 = trunc nuw i8 %926 to i1
  br i1 %927, label %928, label %932

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

932:                                              ; preds = %928, %921
  br label %933

933:                                              ; preds = %928, %932
  %.str.5.sink521 = phi ptr [ @.str.5, %932 ], [ @.str.2, %928 ]
  store i32 %923, ptr %922, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = load i32, ptr %525, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror(i32 noundef %936, ptr noundef nonnull @.str.4) #12
  %938 = load i32, ptr %525, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror_debug(i32 noundef %938, ptr noundef nonnull @.str.4) #12
  %940 = load i32, ptr %922, align 4, !tbaa !5
  %941 = call ptr @strerror(i32 noundef %940) #12
  %942 = load i32, ptr %922, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %934, ptr noundef nonnull %.str.5.sink521, i32 noundef %935, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %937, ptr noundef %939, ptr noundef %941, i32 noundef %942) #14
  call void @exit(i32 noundef 1) #15
  unreachable

944:                                              ; preds = %916
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = add nsw i32 %945, 1
  store i32 %946, ptr @test_count, align 4, !tbaa !5
  %947 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %524, ptr noundef nonnull %527, i32 noundef 5) #12
  %948 = icmp eq i32 %947, -1
  br i1 %948, label %949, label %972

949:                                              ; preds = %944
  %950 = tail call ptr @__errno_location() #13
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = call i32 @s2n_print_stacktrace(ptr noundef %952) #12
  %954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %955 = trunc nuw i8 %954 to i1
  br i1 %955, label %956, label %960

956:                                              ; preds = %949
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @fileno(ptr noundef %957) #12
  %959 = call i32 @isatty(i32 noundef %958) #12
  %.not211 = icmp eq i32 %959, 0
  br i1 %.not211, label %960, label %961

960:                                              ; preds = %956, %949
  br label %961

961:                                              ; preds = %956, %960
  %.str.5.sink530 = phi ptr [ @.str.5, %960 ], [ @.str.2, %956 ]
  store i32 %951, ptr %950, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = load i32, ptr %525, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef nonnull @.str.4) #12
  %966 = load i32, ptr %525, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef nonnull @.str.4) #12
  %968 = load i32, ptr %950, align 4, !tbaa !5
  %969 = call ptr @strerror(i32 noundef %968) #12
  %970 = load i32, ptr %950, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %962, ptr noundef nonnull %.str.5.sink530, i32 noundef %963, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %965, ptr noundef %967, ptr noundef %969, i32 noundef %970) #14
  call void @exit(i32 noundef 1) #15
  unreachable

972:                                              ; preds = %944
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr @test_count, align 4, !tbaa !5
  %975 = load i32, ptr %528, align 4, !tbaa !62
  %976 = load i32, ptr %529, align 8, !tbaa !63
  %977 = sub i32 %975, %976
  %978 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %524, ptr noundef nonnull %526, i32 noundef %977) #12
  %979 = icmp eq i32 %978, -1
  br i1 %979, label %980, label %1003

980:                                              ; preds = %972
  %981 = tail call ptr @__errno_location() #13
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @s2n_print_stacktrace(ptr noundef %983) #12
  %985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %986 = trunc nuw i8 %985 to i1
  br i1 %986, label %987, label %991

987:                                              ; preds = %980
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @fileno(ptr noundef %988) #12
  %990 = call i32 @isatty(i32 noundef %989) #12
  %.not210 = icmp eq i32 %990, 0
  br i1 %.not210, label %991, label %992

991:                                              ; preds = %987, %980
  br label %992

992:                                              ; preds = %987, %991
  %.str.5.sink539 = phi ptr [ @.str.5, %991 ], [ @.str.2, %987 ]
  store i32 %982, ptr %981, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = load i32, ptr %525, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef nonnull @.str.4) #12
  %997 = load i32, ptr %525, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef nonnull @.str.4) #12
  %999 = load i32, ptr %981, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #12
  %1001 = load i32, ptr %981, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef nonnull %.str.5.sink539, i32 noundef %994, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %996, ptr noundef %998, ptr noundef %1000, i32 noundef %1001) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1003:                                             ; preds = %972
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr @test_count, align 4, !tbaa !5
  %1006 = load i32, ptr %530, align 4, !tbaa !64
  %1007 = load i32, ptr %531, align 8, !tbaa !65
  %1008 = sub i32 %1006, %1007
  %1009 = icmp eq i32 %714, %1008
  br i1 %1009, label %1033, label %1010

1010:                                             ; preds = %1003
  %1011 = tail call ptr @__errno_location() #13
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013) #12
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #12
  %1020 = call i32 @isatty(i32 noundef %1019) #12
  %.not203 = icmp eq i32 %1020, 0
  br i1 %.not203, label %1021, label %1022

1021:                                             ; preds = %1017, %1010
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.5.sink548 = phi ptr [ @.str.5, %1021 ], [ @.str.2, %1017 ]
  store i32 %1012, ptr %1011, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = load i32, ptr %525, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror(i32 noundef %1025, ptr noundef nonnull @.str.4) #12
  %1027 = load i32, ptr %525, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef nonnull @.str.4) #12
  %1029 = load i32, ptr %1011, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #12
  %1031 = load i32, ptr %1011, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.5.sink548, i32 noundef %1024, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1026, ptr noundef %1028, ptr noundef %1030, i32 noundef %1031) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1033:                                             ; preds = %1003
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #12
  store i8 0, ptr %9, align 1, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %10) #12
  store i16 0, ptr %10, align 2, !tbaa !66
  %1034 = add nsw i32 %1004, 2
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = call i32 @s2n_record_header_parse(ptr noundef nonnull %246, ptr noundef nonnull %9, ptr noundef nonnull %10) #12
  %1036 = icmp eq i32 %1035, -1
  br i1 %1036, label %1037, label %1060

1037:                                             ; preds = %1033
  %1038 = tail call ptr @__errno_location() #13
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040) #12
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %1044, label %1048

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #12
  %1047 = call i32 @isatty(i32 noundef %1046) #12
  %.not209 = icmp eq i32 %1047, 0
  br i1 %.not209, label %1048, label %1049

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.5.sink557 = phi ptr [ @.str.5, %1048 ], [ @.str.2, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = load i32, ptr %525, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef nonnull @.str.4) #12
  %1054 = load i32, ptr %525, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef nonnull @.str.4) #12
  %1056 = load i32, ptr %1038, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #12
  %1058 = load i32, ptr %1038, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.5.sink557, i32 noundef %1051, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1053, ptr noundef %1055, ptr noundef %1057, i32 noundef %1058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1060:                                             ; preds = %1033
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = add nsw i32 %1061, 1
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = call i32 @s2n_record_parse(ptr noundef nonnull %246) #12
  %1064 = icmp eq i32 %1063, -1
  br i1 %1064, label %1065, label %1088

1065:                                             ; preds = %1060
  %1066 = tail call ptr @__errno_location() #13
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @s2n_print_stacktrace(ptr noundef %1068) #12
  %1070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1071 = trunc nuw i8 %1070 to i1
  br i1 %1071, label %1072, label %1076

1072:                                             ; preds = %1065
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @fileno(ptr noundef %1073) #12
  %1075 = call i32 @isatty(i32 noundef %1074) #12
  %.not208 = icmp eq i32 %1075, 0
  br i1 %.not208, label %1076, label %1077

1076:                                             ; preds = %1072, %1065
  br label %1077

1077:                                             ; preds = %1072, %1076
  %.str.5.sink566 = phi ptr [ @.str.5, %1076 ], [ @.str.2, %1072 ]
  store i32 %1067, ptr %1066, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = load i32, ptr %525, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.4) #12
  %1082 = load i32, ptr %525, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.4) #12
  %1084 = load i32, ptr %1066, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #12
  %1086 = load i32, ptr %1066, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull %.str.5.sink566, i32 noundef %1079, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1088:                                             ; preds = %1060
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = load i8, ptr %9, align 1, !tbaa !61
  %1092 = icmp eq i8 %1091, 23
  br i1 %1092, label %1116, label %1093

1093:                                             ; preds = %1088
  %1094 = tail call ptr @__errno_location() #13
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #12
  %1098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1099 = trunc nuw i8 %1098 to i1
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #12
  %1103 = call i32 @isatty(i32 noundef %1102) #12
  %.not204 = icmp eq i32 %1103, 0
  br i1 %.not204, label %1104, label %1105

1104:                                             ; preds = %1100, %1093
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.5.sink575 = phi ptr [ @.str.5, %1104 ], [ @.str.2, %1100 ]
  store i32 %1095, ptr %1094, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = load i32, ptr %525, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef nonnull @.str.4) #12
  %1110 = load i32, ptr %525, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror_debug(i32 noundef %1110, ptr noundef nonnull @.str.4) #12
  %1112 = load i32, ptr %1094, align 4, !tbaa !5
  %1113 = call ptr @strerror(i32 noundef %1112) #12
  %1114 = load i32, ptr %1094, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.5.sink575, i32 noundef %1107, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1109, ptr noundef %1111, ptr noundef %1113, i32 noundef %1114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1116:                                             ; preds = %1088
  %1117 = add nsw i32 %1089, 2
  store i32 %1117, ptr @test_count, align 4, !tbaa !5
  %1118 = load i16, ptr %10, align 2, !tbaa !66
  %1119 = trunc i32 %714 to i16
  %1120 = icmp eq i16 %1118, %1119
  br i1 %1120, label %1144, label %1121

1121:                                             ; preds = %1116
  %1122 = tail call ptr @__errno_location() #13
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124) #12
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc nuw i8 %1126 to i1
  br i1 %1127, label %1128, label %1132

1128:                                             ; preds = %1121
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #12
  %1131 = call i32 @isatty(i32 noundef %1130) #12
  %.not205 = icmp eq i32 %1131, 0
  br i1 %.not205, label %1132, label %1133

1132:                                             ; preds = %1128, %1121
  br label %1133

1133:                                             ; preds = %1128, %1132
  %.str.5.sink584 = phi ptr [ @.str.5, %1132 ], [ @.str.2, %1128 ]
  store i32 %1123, ptr %1122, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = load i32, ptr %525, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef nonnull @.str.4) #12
  %1138 = load i32, ptr %525, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef nonnull @.str.4) #12
  %1140 = load i32, ptr %1122, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #12
  %1142 = load i32, ptr %1122, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef nonnull %.str.5.sink584, i32 noundef %1135, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1137, ptr noundef %1139, ptr noundef %1141, i32 noundef %1142) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1144:                                             ; preds = %1116
  %1145 = add nsw i32 %1089, 3
  store i32 %1145, ptr @test_count, align 4, !tbaa !5
  %1146 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %527) #12
  %1147 = icmp eq i32 %1146, -1
  br i1 %1147, label %1148, label %1171

1148:                                             ; preds = %1144
  %1149 = tail call ptr @__errno_location() #13
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = call i32 @s2n_print_stacktrace(ptr noundef %1151) #12
  %1153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1154 = trunc nuw i8 %1153 to i1
  br i1 %1154, label %1155, label %1159

1155:                                             ; preds = %1148
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = call i32 @fileno(ptr noundef %1156) #12
  %1158 = call i32 @isatty(i32 noundef %1157) #12
  %.not207 = icmp eq i32 %1158, 0
  br i1 %.not207, label %1159, label %1160

1159:                                             ; preds = %1155, %1148
  br label %1160

1160:                                             ; preds = %1155, %1159
  %.str.5.sink593 = phi ptr [ @.str.5, %1159 ], [ @.str.2, %1155 ]
  store i32 %1150, ptr %1149, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = load i32, ptr %525, align 4, !tbaa !5
  %1164 = call ptr @s2n_strerror(i32 noundef %1163, ptr noundef nonnull @.str.4) #12
  %1165 = load i32, ptr %525, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror_debug(i32 noundef %1165, ptr noundef nonnull @.str.4) #12
  %1167 = load i32, ptr %1149, align 4, !tbaa !5
  %1168 = call ptr @strerror(i32 noundef %1167) #12
  %1169 = load i32, ptr %1149, align 4, !tbaa !5
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1161, ptr noundef nonnull %.str.5.sink593, i32 noundef %1162, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1164, ptr noundef %1166, ptr noundef %1168, i32 noundef %1169) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1171:                                             ; preds = %1144
  %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_stuffer_wipe(ptr noundef nonnull %526) #12
  %1175 = icmp eq i32 %1174, -1
  br i1 %1175, label %1176, label %1199

1176:                                             ; preds = %1171
  %1177 = tail call ptr @__errno_location() #13
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @s2n_print_stacktrace(ptr noundef %1179) #12
  %1181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1182 = trunc nuw i8 %1181 to i1
  br i1 %1182, label %1183, label %1187

1183:                                             ; preds = %1176
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @fileno(ptr noundef %1184) #12
  %1186 = call i32 @isatty(i32 noundef %1185) #12
  %.not206 = icmp eq i32 %1186, 0
  br i1 %.not206, label %1187, label %1188

1187:                                             ; preds = %1183, %1176
  br label %1188

1188:                                             ; preds = %1183, %1187
  %.str.5.sink602 = phi ptr [ @.str.5, %1187 ], [ @.str.2, %1183 ]
  store i32 %1178, ptr %1177, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = load i32, ptr %525, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef nonnull @.str.4) #12
  %1193 = load i32, ptr %525, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef nonnull @.str.4) #12
  %1195 = load i32, ptr %1177, align 4, !tbaa !5
  %1196 = call ptr @strerror(i32 noundef %1195) #12
  %1197 = load i32, ptr %1177, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1189, ptr noundef nonnull %.str.5.sink602, i32 noundef %1190, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1192, ptr noundef %1194, ptr noundef %1196, i32 noundef %1197) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1199:                                             ; preds = %1171
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  %1200 = add nuw nsw i64 %.0228, 1
  %exitcond.not = icmp eq i64 %1200, 8089
  br i1 %exitcond.not, label %532, label %545, !llvm.loop !67

1201:                                             ; preds = %532
  %1202 = tail call ptr @__errno_location() #13
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @s2n_print_stacktrace(ptr noundef %1204) #12
  %1206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1207 = trunc nuw i8 %1206 to i1
  br i1 %1207, label %1208, label %1212

1208:                                             ; preds = %1201
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @fileno(ptr noundef %1209) #12
  %1211 = call i32 @isatty(i32 noundef %1210) #12
  %.not185 = icmp eq i32 %1211, 0
  br i1 %.not185, label %1212, label %1213

1212:                                             ; preds = %1208, %1201
  br label %1213

1213:                                             ; preds = %1208, %1212
  %.str.5.sink611 = phi ptr [ @.str.5, %1212 ], [ @.str.2, %1208 ]
  store i32 %1203, ptr %1202, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = load i32, ptr %525, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef nonnull @.str.4) #12
  %1218 = load i32, ptr %525, align 4, !tbaa !5
  %1219 = call ptr @s2n_strerror_debug(i32 noundef %1218, ptr noundef nonnull @.str.4) #12
  %1220 = load i32, ptr %1202, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #12
  %1222 = load i32, ptr %1202, align 4, !tbaa !5
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef nonnull %.str.5.sink611, i32 noundef %1215, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1217, ptr noundef %1219, ptr noundef %1221, i32 noundef %1222) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1224:                                             ; preds = %532
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr @test_count, align 4, !tbaa !5
  %1227 = load ptr, ptr %302, align 8, !tbaa !17
  %1228 = load ptr, ptr %1227, align 8, !tbaa !46
  %1229 = getelementptr inbounds i8, ptr %1228, i64 48
  %1230 = load ptr, ptr %1229, align 8, !tbaa !51
  %1231 = load ptr, ptr %1230, align 8, !tbaa !53
  %1232 = getelementptr inbounds i8, ptr %1231, i64 88
  %1233 = load ptr, ptr %1232, align 8, !tbaa !59
  %1234 = getelementptr inbounds i8, ptr %1227, i64 8
  %1235 = call i32 %1233(ptr noundef nonnull %1234) #12
  %1236 = call zeroext i1 @s2n_result_is_ok(i32 %1235)
  br i1 %1236, label %1432, label %1237

1237:                                             ; preds = %1224
  %1238 = tail call ptr @__errno_location() #13
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @s2n_print_stacktrace(ptr noundef %1240) #12
  %1242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1243 = trunc nuw i8 %1242 to i1
  br i1 %1243, label %1244, label %1248

1244:                                             ; preds = %1237
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @fileno(ptr noundef %1245) #12
  %1247 = call i32 @isatty(i32 noundef %1246) #12
  %.not186 = icmp eq i32 %1247, 0
  br i1 %.not186, label %1248, label %1249

1248:                                             ; preds = %1244, %1237
  br label %1249

1249:                                             ; preds = %1244, %1248
  %.str.5.sink620 = phi ptr [ @.str.5, %1248 ], [ @.str.2, %1244 ]
  store i32 %1239, ptr %1238, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = load i32, ptr %525, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef nonnull @.str.4) #12
  %1254 = load i32, ptr %525, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef nonnull @.str.4) #12
  %1256 = load i32, ptr %1238, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #12
  %1258 = load i32, ptr %1238, align 4, !tbaa !5
  %1259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef nonnull %.str.5.sink620, i32 noundef %1251, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1253, ptr noundef %1255, ptr noundef %1257, i32 noundef %1258) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1260:                                             ; preds = %377
  %1261 = call zeroext i1 @s2n_result_is_error(i32 %396)
  br i1 %1261, label %1286, label %1262

1262:                                             ; preds = %1260
  %1263 = tail call ptr @__errno_location() #13
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @s2n_print_stacktrace(ptr noundef %1265) #12
  %1267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1268 = trunc nuw i8 %1267 to i1
  br i1 %1268, label %1269, label %1273

1269:                                             ; preds = %1262
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @fileno(ptr noundef %1270) #12
  %1272 = call i32 @isatty(i32 noundef %1271) #12
  %.not177 = icmp eq i32 %1272, 0
  br i1 %.not177, label %1273, label %1274

1273:                                             ; preds = %1269, %1262
  br label %1274

1274:                                             ; preds = %1269, %1273
  %.str.5.sink629 = phi ptr [ @.str.5, %1273 ], [ @.str.2, %1269 ]
  store i32 %1264, ptr %1263, 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 nonnull @.str.4) #12
  %1280 = load i32, ptr %1277, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror_debug(i32 noundef %1280, ptr noundef nonnull @.str.4) #12
  %1282 = load i32, ptr %1263, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #12
  %1284 = load i32, ptr %1263, align 4, !tbaa !5
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef nonnull %.str.5.sink629, i32 noundef %1276, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1279, ptr noundef %1281, ptr noundef %1283, i32 noundef %1284) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1286:                                             ; preds = %1260
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = add nsw i32 %1287, 1
  store i32 %1288, ptr @test_count, align 4, !tbaa !5
  %1289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = icmp eq i32 %1290, 335544326
  br i1 %1291, label %1315, label %1292

1292:                                             ; preds = %1286
  %1293 = tail call ptr @__errno_location() #13
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = call i32 @s2n_print_stacktrace(ptr noundef %1295) #12
  %1297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1298 = trunc nuw i8 %1297 to i1
  br i1 %1298, label %1299, label %1303

1299:                                             ; preds = %1292
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @fileno(ptr noundef %1300) #12
  %1302 = call i32 @isatty(i32 noundef %1301) #12
  %.not178 = icmp eq i32 %1302, 0
  br i1 %.not178, label %1303, label %1304

1303:                                             ; preds = %1299, %1292
  br label %1304

1304:                                             ; preds = %1299, %1303
  %.str.5.sink640 = phi ptr [ @.str.5, %1303 ], [ @.str.2, %1299 ]
  store i32 %1294, ptr %1293, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = load i32, ptr %1289, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef nonnull @.str.4) #12
  %1309 = load i32, ptr %1289, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef nonnull @.str.4) #12
  %1311 = load i32, ptr %1293, align 4, !tbaa !5
  %1312 = call ptr @strerror(i32 noundef %1311) #12
  %1313 = load i32, ptr %1293, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1305, ptr noundef nonnull %.str.5.sink640, i32 noundef %1306, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1308, ptr noundef %1310, ptr noundef %1312, i32 noundef %1313) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1315:                                             ; preds = %1286
  %1316 = add nsw i32 %1287, 2
  store i32 %1316, ptr @test_count, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef 335544326, ptr noundef nonnull @.str.4) #12
  %1318 = icmp eq ptr %1317, null
  br i1 %1318, label %1319, label %1342

1319:                                             ; preds = %1315
  %1320 = tail call ptr @__errno_location() #13
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @s2n_print_stacktrace(ptr noundef %1322) #12
  %1324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1325 = trunc nuw i8 %1324 to i1
  br i1 %1325, label %1326, label %1330

1326:                                             ; preds = %1319
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @fileno(ptr noundef %1327) #12
  %1329 = call i32 @isatty(i32 noundef %1328) #12
  %.not182 = icmp eq i32 %1329, 0
  br i1 %.not182, label %1330, label %1331

1330:                                             ; preds = %1326, %1319
  br label %1331

1331:                                             ; preds = %1326, %1330
  %.str.5.sink649 = phi ptr [ @.str.5, %1330 ], [ @.str.2, %1326 ]
  store i32 %1321, ptr %1320, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = load i32, ptr %1289, align 4, !tbaa !5
  %1335 = call ptr @s2n_strerror(i32 noundef %1334, ptr noundef nonnull @.str.4) #12
  %1336 = load i32, ptr %1289, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror_debug(i32 noundef %1336, ptr noundef nonnull @.str.4) #12
  %1338 = load i32, ptr %1320, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #12
  %1340 = load i32, ptr %1320, align 4, !tbaa !5
  %1341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef nonnull %.str.5.sink649, i32 noundef %1333, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1335, ptr noundef %1337, ptr noundef %1339, i32 noundef %1340) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1342:                                             ; preds = %1315
  store i32 0, ptr %1289, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1343 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1343, align 4, !tbaa !5
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = add nsw i32 %1344, 1
  store i32 %1345, ptr @test_count, align 4, !tbaa !5
  %1346 = load ptr, ptr %302, align 8, !tbaa !17
  %1347 = load ptr, ptr %1346, align 8, !tbaa !46
  %1348 = getelementptr inbounds i8, ptr %1347, i64 48
  %1349 = load ptr, ptr %1348, align 8, !tbaa !51
  %1350 = load ptr, ptr %1349, align 8, !tbaa !53
  %1351 = getelementptr inbounds i8, ptr %1350, i64 80
  %1352 = load ptr, ptr %1351, align 8, !tbaa !57
  %1353 = getelementptr inbounds i8, ptr %1346, i64 16
  %1354 = call i32 %1352(ptr noundef nonnull %1353, ptr noundef nonnull %5) #12
  %1355 = call zeroext i1 @s2n_result_is_error(i32 %1354)
  br i1 %1355, label %1378, label %1356

1356:                                             ; preds = %1342
  %1357 = load i32, ptr %1343, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @s2n_print_stacktrace(ptr noundef %1358) #12
  %1360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1361 = trunc nuw i8 %1360 to i1
  br i1 %1361, label %1362, label %1366

1362:                                             ; preds = %1356
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @fileno(ptr noundef %1363) #12
  %1365 = call i32 @isatty(i32 noundef %1364) #12
  %.not179 = icmp eq i32 %1365, 0
  br i1 %.not179, label %1366, label %1367

1366:                                             ; preds = %1362, %1356
  br label %1367

1367:                                             ; preds = %1362, %1366
  %.str.5.sink658 = phi ptr [ @.str.5, %1366 ], [ @.str.2, %1362 ]
  store i32 %1357, ptr %1343, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = load i32, ptr %1289, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef nonnull @.str.4) #12
  %1372 = load i32, ptr %1289, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef nonnull @.str.4) #12
  %1374 = load i32, ptr %1343, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #12
  %1376 = load i32, ptr %1343, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1368, ptr noundef nonnull %.str.5.sink658, i32 noundef %1369, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1371, ptr noundef %1373, ptr noundef %1375, i32 noundef %1376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1378:                                             ; preds = %1342
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load i32, ptr %1289, align 4, !tbaa !5
  %1382 = icmp eq i32 %1381, 335544326
  br i1 %1382, label %1405, label %1383

1383:                                             ; preds = %1378
  %1384 = load i32, ptr %1343, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = call i32 @s2n_print_stacktrace(ptr noundef %1385) #12
  %1387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1388 = trunc nuw i8 %1387 to i1
  br i1 %1388, label %1389, label %1393

1389:                                             ; preds = %1383
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @fileno(ptr noundef %1390) #12
  %1392 = call i32 @isatty(i32 noundef %1391) #12
  %.not180 = icmp eq i32 %1392, 0
  br i1 %.not180, label %1393, label %1394

1393:                                             ; preds = %1389, %1383
  br label %1394

1394:                                             ; preds = %1389, %1393
  %.str.5.sink667 = phi ptr [ @.str.5, %1393 ], [ @.str.2, %1389 ]
  store i32 %1384, ptr %1343, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = load i32, ptr %1289, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror(i32 noundef %1397, ptr noundef nonnull @.str.4) #12
  %1399 = load i32, ptr %1289, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef nonnull @.str.4) #12
  %1401 = load i32, ptr %1343, align 4, !tbaa !5
  %1402 = call ptr @strerror(i32 noundef %1401) #12
  %1403 = load i32, ptr %1343, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef nonnull %.str.5.sink667, i32 noundef %1396, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1398, ptr noundef %1400, ptr noundef %1402, i32 noundef %1403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1405:                                             ; preds = %1378
  %1406 = add nsw i32 %1379, 2
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror_debug(i32 noundef 335544326, ptr noundef nonnull @.str.4) #12
  %1408 = icmp eq ptr %1407, null
  br i1 %1408, label %1409, label %1431

1409:                                             ; preds = %1405
  %1410 = load i32, ptr %1343, align 4, !tbaa !5
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @s2n_print_stacktrace(ptr noundef %1411) #12
  %1413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1414 = trunc nuw i8 %1413 to i1
  br i1 %1414, label %1415, label %1419

1415:                                             ; preds = %1409
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @fileno(ptr noundef %1416) #12
  %1418 = call i32 @isatty(i32 noundef %1417) #12
  %.not181 = icmp eq i32 %1418, 0
  br i1 %.not181, label %1419, label %1420

1419:                                             ; preds = %1415, %1409
  br label %1420

1420:                                             ; preds = %1415, %1419
  %.str.5.sink676 = phi ptr [ @.str.5, %1419 ], [ @.str.2, %1415 ]
  store i32 %1410, ptr %1343, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = load i32, ptr %1289, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror(i32 noundef %1423, ptr noundef nonnull @.str.4) #12
  %1425 = load i32, ptr %1289, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror_debug(i32 noundef %1425, ptr noundef nonnull @.str.4) #12
  %1427 = load i32, ptr %1343, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #12
  %1429 = load i32, ptr %1343, align 4, !tbaa !5
  %1430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef nonnull %.str.5.sink676, i32 noundef %1422, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1424, ptr noundef %1426, ptr noundef %1428, i32 noundef %1429) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1431:                                             ; preds = %1405
  store i32 0, ptr %1289, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1343, align 4, !tbaa !5
  br label %1432

1432:                                             ; preds = %1431, %1224
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr @test_count, align 4, !tbaa !5
  %1435 = call i32 @s2n_connection_free(ptr noundef nonnull %246) #12
  %1436 = icmp eq i32 %1435, -1
  br i1 %1436, label %1437, label %1461

1437:                                             ; preds = %1432
  %1438 = tail call ptr @__errno_location() #13
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @s2n_print_stacktrace(ptr noundef %1440) #12
  %1442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1443 = trunc nuw i8 %1442 to i1
  br i1 %1443, label %1444, label %1448

1444:                                             ; preds = %1437
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @fileno(ptr noundef %1445) #12
  %1447 = call i32 @isatty(i32 noundef %1446) #12
  %.not192 = icmp eq i32 %1447, 0
  br i1 %.not192, label %1448, label %1449

1448:                                             ; preds = %1444, %1437
  br label %1449

1449:                                             ; preds = %1444, %1448
  %.str.5.sink685 = phi ptr [ @.str.5, %1448 ], [ @.str.2, %1444 ]
  store i32 %1439, ptr %1438, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror(i32 noundef %1453, ptr noundef nonnull @.str.4) #12
  %1455 = load i32, ptr %1452, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror_debug(i32 noundef %1455, ptr noundef nonnull @.str.4) #12
  %1457 = load i32, ptr %1438, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #12
  %1459 = load i32, ptr %1438, align 4, !tbaa !5
  %1460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef nonnull %.str.5.sink685, i32 noundef %1451, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1454, ptr noundef %1456, ptr noundef %1458, i32 noundef %1459) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1461:                                             ; preds = %1432
  %1462 = call i32 @s2n_cleanup() #12
  %1463 = icmp eq i32 %1462, -1
  br i1 %1463, label %1464, label %1488

1464:                                             ; preds = %1461
  %1465 = tail call ptr @__errno_location() #13
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = call i32 @s2n_print_stacktrace(ptr noundef %1467) #12
  %1469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1470 = trunc nuw i8 %1469 to i1
  br i1 %1470, label %1471, label %1475

1471:                                             ; preds = %1464
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = call i32 @fileno(ptr noundef %1472) #12
  %1474 = call i32 @isatty(i32 noundef %1473) #12
  %.not191 = icmp eq i32 %1474, 0
  br i1 %.not191, label %1475, label %1476

1475:                                             ; preds = %1471, %1464
  br label %1476

1476:                                             ; preds = %1471, %1475
  %.str.5.sink696 = phi ptr [ @.str.5, %1475 ], [ @.str.2, %1471 ]
  store i32 %1466, ptr %1465, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = load i32, ptr @test_count, align 4, !tbaa !5
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror(i32 noundef %1480, ptr noundef nonnull @.str.4) #12
  %1482 = load i32, ptr %1479, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror_debug(i32 noundef %1482, ptr noundef nonnull @.str.4) #12
  %1484 = load i32, ptr %1465, align 4, !tbaa !5
  %1485 = call ptr @strerror(i32 noundef %1484) #12
  %1486 = load i32, ptr %1465, align 4, !tbaa !5
  %1487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1477, ptr noundef nonnull %.str.5.sink696, i32 noundef %1478, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1481, ptr noundef %1483, ptr noundef %1485, i32 noundef %1486) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1488:                                             ; preds = %1461
  %1489 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1490 = icmp eq i32 %1489, -1
  br i1 %1490, label %1491, label %1515

1491:                                             ; preds = %1488
  %1492 = tail call ptr @__errno_location() #13
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = call i32 @s2n_print_stacktrace(ptr noundef %1494) #12
  %1496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1497 = trunc nuw i8 %1496 to i1
  br i1 %1497, label %1498, label %1502

1498:                                             ; preds = %1491
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = call i32 @fileno(ptr noundef %1499) #12
  %1501 = call i32 @isatty(i32 noundef %1500) #12
  %.not190 = icmp eq i32 %1501, 0
  br i1 %.not190, label %1502, label %1503

1502:                                             ; preds = %1498, %1491
  br label %1503

1503:                                             ; preds = %1498, %1502
  %.str.5.sink707 = phi ptr [ @.str.5, %1502 ], [ @.str.2, %1498 ]
  store i32 %1493, ptr %1492, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror(i32 noundef %1507, ptr noundef nonnull @.str.4) #12
  %1509 = load i32, ptr %1506, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror_debug(i32 noundef %1509, ptr noundef nonnull @.str.4) #12
  %1511 = load i32, ptr %1492, align 4, !tbaa !5
  %1512 = call ptr @strerror(i32 noundef %1511) #12
  %1513 = load i32, ptr %1492, align 4, !tbaa !5
  %1514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef nonnull %.str.5.sink707, i32 noundef %1505, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1508, ptr noundef %1510, ptr noundef %1512, i32 noundef %1513) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1515:                                             ; preds = %1488
  %1516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1517 = trunc nuw i8 %1516 to i1
  br i1 %1517, label %1518, label %1529

1518:                                             ; preds = %1515
  %1519 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1520 = call i32 @fileno(ptr noundef %1519) #12
  %1521 = call i32 @isatty(i32 noundef %1520) #12
  %.not187 = icmp eq i32 %1521, 0
  br i1 %.not187, label %1529, label %1522

1522:                                             ; preds = %1518
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not189 = icmp eq i32 %1523, 0
  %1524 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not189, label %1527, label %1525

1525:                                             ; preds = %1522
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1524, ptr noundef nonnull @.str.50, i32 noundef %1523) #12
  br label %1536

1527:                                             ; preds = %1522
  %1528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1524, ptr noundef nonnull @.str.51) #12
  br label %1536

1529:                                             ; preds = %1518, %1515
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not188 = icmp eq i32 %1530, 0
  %1531 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not188, label %1534, label %1532

1532:                                             ; preds = %1529
  %1533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1531, ptr noundef nonnull @.str.52, i32 noundef %1530) #12
  br label %1536

1534:                                             ; preds = %1529
  %1535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1531, ptr noundef nonnull @.str.53) #12
  br label %1536

1536:                                             ; preds = %1532, %1534, %1525, %1527
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8088, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %3) #12
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_is_awslc() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

declare i32 @s2n_get_public_random_data(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hmac_init(ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

; 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_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_record_header_parse(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_parse(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(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: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 56}
!16 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!17 = !{!18, !10, i64 232}
!18 = !{!"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, !19, i64 160, !20, i64 168, !20, 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, !21, i64 240, !10, i64 632, !10, i64 640, !22, 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, !20, 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, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !27, i64 2792, !6, i64 2816, !27, i64 2824, !27, i64 2848, !27, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!22 = !{!"s2n_kex_parameters", !23, i64 0, !24, i64 8, !7, i64 24, !24, i64 56, !25, i64 72, !25, i64 184, !7, i64 296, !26, i64 360, !27, i64 448, !27, i64 472}
!23 = !{!"s2n_dh_params", !10, i64 0}
!24 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!25 = !{!"s2n_kem_group_params", !10, i64 0, !26, i64 8, !24, i64 96}
!26 = !{!"s2n_kem_params", !10, i64 0, !27, i64 8, !27, i64 32, !27, i64 56, !12, i64 80}
!27 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !27, 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", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !27, 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", !27, i64 0, !39, i64 24, !27, i64 728, !27, i64 752, !27, 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, !27, 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", !27, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!18, !10, i64 640}
!45 = !{!18, !10, i64 632}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_crypto_parameters", !10, i64 0, !48, i64 8, !48, i64 16, !49, i64 24, !49, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!48 = !{!"s2n_session_key", !10, i64 0}
!49 = !{!"s2n_hmac_state", !6, i64 0, !33, i64 4, !6, i64 8, !33, i64 12, !7, i64 14, !50, i64 16, !50, i64 72, !50, i64 128, !50, i64 184, !7, i64 240, !7, i64 368}
!50 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !20, i64 16, !7, i64 24}
!51 = !{!52, !10, i64 48}
!52 = !{!"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}
!53 = !{!54, !10, i64 0}
!54 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !20, i64 16}
!55 = !{!16, !10, i64 64}
!56 = !{!16, !10, i64 72}
!57 = !{!16, !10, i64 80}
!58 = !{!18, !7, i64 220}
!59 = !{!16, !10, i64 88}
!60 = !{!18, !10, i64 1896}
!61 = !{!7, !7, i64 0}
!62 = !{!18, !6, i64 1924}
!63 = !{!18, !6, i64 1920}
!64 = !{!18, !6, i64 1884}
!65 = !{!18, !6, i64 1880}
!66 = !{!33, !33, i64 0}
!67 = distinct !{!67, !68}
!68 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LICMPass,LoopRotatePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass