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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@__const.main.des3_key = external hidden unnamed_addr constant [24 x i8], align 16
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [80 x i8], align 1
@stdout = external global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_3des_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.13 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.47 = 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 ptr, align 8
  %7 = alloca [15 x i8], align 1
  %8 = alloca [24 x i8], align 16
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca i32, align 4
  %11 = alloca [8088 x i8], align 16
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_result, 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 i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.s2n_blob, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_result, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i16, align 2
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i8, align 1
  %53 = alloca i16, align 2
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca i32, align 4
  %62 = alloca %struct.s2n_result, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = 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
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #11
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 15, ptr %7) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %7, ptr align 1 @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const.main.des3_key, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 24, i1 false)
  br label %68

68:                                               ; preds = %2
  %69 = load i32, ptr @test_count, align 4, !tbaa !5
  %70 = add nsw i32 %69, 1
  store i32 %70, ptr @test_count, align 4, !tbaa !5
  %71 = getelementptr inbounds [24 x i8], ptr %8, i64 0, i64 0
  %72 = call i32 @s2n_blob_init(ptr noundef %9, ptr noundef %71, i32 noundef 24)
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %127

74:                                               ; preds = %68
  br label %75

75:                                               ; preds = %74
  br label %76

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %77 = call ptr @__errno_location() #12
  %78 = load i32, ptr %77, align 4, !tbaa !5
  store i32 %78, ptr %10, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = call i32 @s2n_print_stacktrace(ptr noundef %79)
  %81 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %82 = trunc i8 %81 to i1
  br i1 %82, label %83, label %105

83:                                               ; preds = %76
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = call i32 @fileno(ptr noundef %84) #11
  %86 = call i32 @isatty(i32 noundef %85) #11
  %87 = icmp ne i32 %86, 0
  br i1 %87, label %88, label %105

88:                                               ; preds = %83
  %89 = load i32, ptr %10, align 4, !tbaa !5
  %90 = call ptr @__errno_location() #12
  store i32 %89, ptr %90, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = call ptr @s2n_strerror(i32 noundef %94, ptr noundef @.str.3)
  %96 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = call ptr @s2n_strerror_debug(i32 noundef %97, ptr noundef @.str.3)
  %99 = call ptr @__errno_location() #12
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = call ptr @strerror(i32 noundef %100) #11
  %102 = call ptr @__errno_location() #12
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef @.str, i32 noundef %92, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 36, ptr noundef %95, ptr noundef %98, ptr noundef %101, i32 noundef %103) #11
  br label %122

105:                                              ; preds = %83, %76
  %106 = load i32, ptr %10, align 4, !tbaa !5
  %107 = call ptr @__errno_location() #12
  store i32 %106, ptr %107, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %111, ptr noundef @.str.3)
  %113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = call ptr @s2n_strerror_debug(i32 noundef %114, ptr noundef @.str.3)
  %116 = call ptr @__errno_location() #12
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = call ptr @strerror(i32 noundef %117) #11
  %119 = call ptr @__errno_location() #12
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef @.str.4, i32 noundef %109, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 36, ptr noundef %112, ptr noundef %115, ptr noundef %118, i32 noundef %120) #11
  br label %122

122:                                              ; preds = %105, %88
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %123

123:                                              ; preds = %122
  br label %124

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

125:                                              ; No predecessors!
  br label %126

126:                                              ; preds = %125
  br label %127

127:                                              ; preds = %126, %68
  br label %128

128:                                              ; preds = %127
  br label %129

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

130:                                              ; preds = %129
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = getelementptr inbounds [8088 x i8], ptr %11, i64 0, i64 0
  %134 = call i32 @s2n_blob_init(ptr noundef %12, ptr noundef %133, i32 noundef 8088)
  %135 = icmp eq i32 %134, -1
  br i1 %135, label %136, label %189

136:                                              ; preds = %130
  br label %137

137:                                              ; preds = %136
  br label %138

138:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %139 = call ptr @__errno_location() #12
  %140 = load i32, ptr %139, align 4, !tbaa !5
  store i32 %140, ptr %13, align 4, !tbaa !5
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = call i32 @s2n_print_stacktrace(ptr noundef %141)
  %143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %144 = trunc i8 %143 to i1
  br i1 %144, label %145, label %167

145:                                              ; preds = %138
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = call i32 @fileno(ptr noundef %146) #11
  %148 = call i32 @isatty(i32 noundef %147) #11
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %150, label %167

150:                                              ; preds = %145
  %151 = load i32, ptr %13, align 4, !tbaa !5
  %152 = call ptr @__errno_location() #12
  store i32 %151, ptr %152, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = call ptr @s2n_strerror(i32 noundef %156, ptr noundef @.str.3)
  %158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call ptr @s2n_strerror_debug(i32 noundef %159, ptr noundef @.str.3)
  %161 = call ptr @__errno_location() #12
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = call ptr @strerror(i32 noundef %162) #11
  %164 = call ptr @__errno_location() #12
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef @.str, i32 noundef %154, ptr noundef @.str.5, ptr noundef @.str.2, i32 noundef 39, ptr noundef %157, ptr noundef %160, ptr noundef %163, i32 noundef %165) #11
  br label %184

167:                                              ; preds = %145, %138
  %168 = load i32, ptr %13, align 4, !tbaa !5
  %169 = call ptr @__errno_location() #12
  store i32 %168, ptr %169, align 4, !tbaa !5
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = load i32, ptr @test_count, align 4, !tbaa !5
  %172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call ptr @s2n_strerror(i32 noundef %173, ptr noundef @.str.3)
  %175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror_debug(i32 noundef %176, ptr noundef @.str.3)
  %178 = call ptr @__errno_location() #12
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @strerror(i32 noundef %179) #11
  %181 = call ptr @__errno_location() #12
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef @.str.4, i32 noundef %171, ptr noundef @.str.5, ptr noundef @.str.2, i32 noundef 39, ptr noundef %174, ptr noundef %177, ptr noundef %180, i32 noundef %182) #11
  br label %184

184:                                              ; preds = %167, %150
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %185

185:                                              ; preds = %184
  br label %186

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

187:                                              ; No predecessors!
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188, %130
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  br label %193

193:                                              ; preds = %192
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %194 = load ptr, ptr @stdout, align 8, !tbaa !9
  %195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef @.str.6, ptr noundef @.str.2) #11
  %196 = load ptr, ptr @stdout, align 8, !tbaa !9
  %197 = call i32 @fflush(ptr noundef %196)
  br label %198

198:                                              ; preds = %193
  %199 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %200 = icmp eq i32 %199, -1
  br i1 %200, label %201, label %254

201:                                              ; preds = %198
  br label %202

202:                                              ; preds = %201
  br label %203

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

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

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

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

249:                                              ; preds = %232, %215
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %250

250:                                              ; preds = %249
  br label %251

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

252:                                              ; No predecessors!
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253, %198
  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 = call i32 @s2n_enable_atexit()
  %261 = icmp eq i32 %260, -1
  br i1 %261, label %262, label %315

262:                                              ; preds = %257
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %265 = call ptr @__errno_location() #12
  %266 = load i32, ptr %265, align 4, !tbaa !5
  store i32 %266, ptr %15, 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 %15, 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.3)
  %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.3)
  %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, i32 noundef %280, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 41, ptr noundef %283, ptr noundef %286, ptr noundef %289, i32 noundef %291) #11
  br label %310

293:                                              ; preds = %271, %264
  %294 = load i32, ptr %15, 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.3)
  %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.3)
  %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.4, i32 noundef %297, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 41, 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 %15) #11
  br label %311

311:                                              ; preds = %310
  br label %312

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

313:                                              ; No predecessors!
  br label %314

314:                                              ; preds = %313
  br label %315

315:                                              ; preds = %314, %257
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  br label %320

320:                                              ; preds = %319
  %321 = call i32 @s2n_init()
  %322 = icmp eq i32 %321, -1
  br i1 %322, label %323, label %376

323:                                              ; preds = %320
  br label %324

324:                                              ; preds = %323
  br label %325

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

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

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

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

371:                                              ; preds = %354, %337
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %372

372:                                              ; preds = %371
  br label %373

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

374:                                              ; No predecessors!
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375, %320
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = call i32 (...) @s2n_disable_tls13_in_test()
  %385 = icmp eq i32 %384, -1
  br i1 %385, label %386, label %439

386:                                              ; preds = %381
  br label %387

387:                                              ; preds = %386
  br label %388

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

395:                                              ; preds = %388
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @fileno(ptr noundef %396) #11
  %398 = call i32 @isatty(i32 noundef %397) #11
  %399 = icmp ne i32 %398, 0
  br i1 %399, label %400, label %417

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

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

434:                                              ; preds = %417, %400
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %435

435:                                              ; preds = %434
  br label %436

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

437:                                              ; No predecessors!
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438, %381
  br label %440

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %445, ptr %6, align 8, !tbaa !9
  %446 = icmp eq ptr %445, null
  br i1 %446, label %447, label %500

447:                                              ; preds = %442
  br label %448

448:                                              ; preds = %447
  br label %449

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

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

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

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

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

496:                                              ; preds = %495
  br label %497

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

498:                                              ; No predecessors!
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499, %442
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %506 = call i32 @s2n_get_public_random_data(ptr noundef %12)
  %507 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  store i32 %506, ptr %507, align 4
  %508 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  %509 = load i32, ptr %508, align 4
  %510 = call zeroext i1 @s2n_result_is_ok(i32 %509)
  br i1 %510, label %564, label %511

511:                                              ; preds = %503
  br label %512

512:                                              ; preds = %511
  br label %513

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

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #11
  %523 = call i32 @isatty(i32 noundef %522) #11
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %542

525:                                              ; preds = %520
  %526 = load i32, ptr %20, align 4, !tbaa !5
  %527 = call ptr @__errno_location() #12
  store i32 %526, ptr %527, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror(i32 noundef %531, ptr noundef @.str.3)
  %533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror_debug(i32 noundef %534, ptr noundef @.str.3)
  %536 = call ptr @__errno_location() #12
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = call ptr @strerror(i32 noundef %537) #11
  %539 = call ptr @__errno_location() #12
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef @.str, i32 noundef %529, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 45, ptr noundef %532, ptr noundef %535, ptr noundef %538, i32 noundef %540) #11
  br label %559

542:                                              ; preds = %520, %513
  %543 = load i32, ptr %20, align 4, !tbaa !5
  %544 = call ptr @__errno_location() #12
  store i32 %543, ptr %544, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror(i32 noundef %548, ptr noundef @.str.3)
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror_debug(i32 noundef %551, ptr noundef @.str.3)
  %553 = call ptr @__errno_location() #12
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @strerror(i32 noundef %554) #11
  %556 = call ptr @__errno_location() #12
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef @.str.4, i32 noundef %546, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 45, ptr noundef %549, ptr noundef %552, ptr noundef %555, i32 noundef %557) #11
  br label %559

559:                                              ; preds = %542, %525
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %560

560:                                              ; preds = %559
  br label %561

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

562:                                              ; No predecessors!
  br label %563

563:                                              ; preds = %562
  br label %564

564:                                              ; preds = %563, %503
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  %567 = load ptr, ptr %6, align 8, !tbaa !9
  %568 = getelementptr inbounds %struct.s2n_connection, ptr %567, i32 0, i32 27
  %569 = load ptr, ptr %568, align 8, !tbaa !15
  %570 = load ptr, ptr %6, align 8, !tbaa !9
  %571 = getelementptr inbounds %struct.s2n_connection, ptr %570, i32 0, i32 30
  store ptr %569, ptr %571, align 8, !tbaa !42
  %572 = load ptr, ptr %6, align 8, !tbaa !9
  %573 = getelementptr inbounds %struct.s2n_connection, ptr %572, i32 0, i32 27
  %574 = load ptr, ptr %573, align 8, !tbaa !15
  %575 = load ptr, ptr %6, align 8, !tbaa !9
  %576 = getelementptr inbounds %struct.s2n_connection, ptr %575, i32 0, i32 29
  store ptr %574, ptr %576, align 8, !tbaa !43
  %577 = load ptr, ptr %6, align 8, !tbaa !9
  %578 = getelementptr inbounds %struct.s2n_connection, ptr %577, i32 0, i32 27
  %579 = load ptr, ptr %578, align 8, !tbaa !15
  %580 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %579, i32 0, i32 0
  %581 = load ptr, ptr %580, align 8, !tbaa !44
  %582 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %581, i32 0, i32 6
  store ptr @s2n_record_alg_3des_sha, ptr %582, align 8, !tbaa !49
  br label %583

583:                                              ; preds = %566
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load ptr, ptr %6, align 8, !tbaa !9
  %587 = getelementptr inbounds %struct.s2n_connection, ptr %586, i32 0, i32 27
  %588 = load ptr, ptr %587, align 8, !tbaa !15
  %589 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %588, i32 0, i32 0
  %590 = load ptr, ptr %589, align 8, !tbaa !44
  %591 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %590, i32 0, i32 6
  %592 = load ptr, ptr %591, align 8, !tbaa !49
  %593 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %592, i32 0, i32 0
  %594 = load ptr, ptr %593, align 8, !tbaa !51
  %595 = getelementptr inbounds %struct.s2n_cipher, ptr %594, i32 0, i32 4
  %596 = load ptr, ptr %595, align 8, !tbaa !53
  %597 = load ptr, ptr %6, align 8, !tbaa !9
  %598 = getelementptr inbounds %struct.s2n_connection, ptr %597, i32 0, i32 27
  %599 = load ptr, ptr %598, align 8, !tbaa !15
  %600 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %599, i32 0, i32 2
  %601 = call i32 %596(ptr noundef %600)
  %602 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %601, ptr %602, align 4
  %603 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  %604 = load i32, ptr %603, align 4
  %605 = call zeroext i1 @s2n_result_is_ok(i32 %604)
  br i1 %605, label %659, label %606

606:                                              ; preds = %583
  br label %607

607:                                              ; preds = %606
  br label %608

608:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %609 = call ptr @__errno_location() #12
  %610 = load i32, ptr %609, align 4, !tbaa !5
  store i32 %610, ptr %22, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = call i32 @s2n_print_stacktrace(ptr noundef %611)
  %613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %614 = trunc i8 %613 to i1
  br i1 %614, label %615, label %637

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

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

637:                                              ; preds = %615, %608
  %638 = load i32, ptr %22, align 4, !tbaa !5
  %639 = call ptr @__errno_location() #12
  store i32 %638, ptr %639, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror(i32 noundef %643, ptr noundef @.str.3)
  %645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror_debug(i32 noundef %646, ptr noundef @.str.3)
  %648 = call ptr @__errno_location() #12
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @strerror(i32 noundef %649) #11
  %651 = call ptr @__errno_location() #12
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef @.str.4, i32 noundef %641, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 53, ptr noundef %644, ptr noundef %647, ptr noundef %650, i32 noundef %652) #11
  br label %654

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

655:                                              ; preds = %654
  br label %656

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

657:                                              ; No predecessors!
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658, %583
  br label %660

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = add nsw i32 %663, 1
  store i32 %664, ptr @test_count, align 4, !tbaa !5
  %665 = load ptr, ptr %6, align 8, !tbaa !9
  %666 = getelementptr inbounds %struct.s2n_connection, ptr %665, i32 0, i32 27
  %667 = load ptr, ptr %666, align 8, !tbaa !15
  %668 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %667, i32 0, i32 0
  %669 = load ptr, ptr %668, align 8, !tbaa !44
  %670 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %669, i32 0, i32 6
  %671 = load ptr, ptr %670, align 8, !tbaa !49
  %672 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %671, i32 0, i32 0
  %673 = load ptr, ptr %672, align 8, !tbaa !51
  %674 = getelementptr inbounds %struct.s2n_cipher, ptr %673, i32 0, i32 4
  %675 = load ptr, ptr %674, align 8, !tbaa !53
  %676 = load ptr, ptr %6, align 8, !tbaa !9
  %677 = getelementptr inbounds %struct.s2n_connection, ptr %676, i32 0, i32 27
  %678 = load ptr, ptr %677, align 8, !tbaa !15
  %679 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %678, i32 0, i32 1
  %680 = call i32 %675(ptr noundef %679)
  %681 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %680, ptr %681, align 4
  %682 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %683 = load i32, ptr %682, align 4
  %684 = call zeroext i1 @s2n_result_is_ok(i32 %683)
  br i1 %684, label %738, label %685

685:                                              ; preds = %662
  br label %686

686:                                              ; preds = %685
  br label %687

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

694:                                              ; preds = %687
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = call i32 @fileno(ptr noundef %695) #11
  %697 = call i32 @isatty(i32 noundef %696) #11
  %698 = icmp ne i32 %697, 0
  br i1 %698, label %699, label %716

699:                                              ; preds = %694
  %700 = load i32, ptr %24, align 4, !tbaa !5
  %701 = call ptr @__errno_location() #12
  store i32 %700, ptr %701, align 4, !tbaa !5
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror(i32 noundef %705, ptr noundef @.str.3)
  %707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror_debug(i32 noundef %708, ptr noundef @.str.3)
  %710 = call ptr @__errno_location() #12
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = call ptr @strerror(i32 noundef %711) #11
  %713 = call ptr @__errno_location() #12
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef @.str, i32 noundef %703, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 54, ptr noundef %706, ptr noundef %709, ptr noundef %712, i32 noundef %714) #11
  br label %733

716:                                              ; preds = %694, %687
  %717 = load i32, ptr %24, align 4, !tbaa !5
  %718 = call ptr @__errno_location() #12
  store i32 %717, ptr %718, align 4, !tbaa !5
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror(i32 noundef %722, ptr noundef @.str.3)
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef @.str.3)
  %727 = call ptr @__errno_location() #12
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @strerror(i32 noundef %728) #11
  %730 = call ptr @__errno_location() #12
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %719, ptr noundef @.str.4, i32 noundef %720, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 54, ptr noundef %723, ptr noundef %726, ptr noundef %729, i32 noundef %731) #11
  br label %733

733:                                              ; preds = %716, %699
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %734

734:                                              ; preds = %733
  br label %735

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

736:                                              ; No predecessors!
  br label %737

737:                                              ; preds = %736
  br label %738

738:                                              ; preds = %737, %662
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = add nsw i32 %742, 1
  store i32 %743, ptr @test_count, align 4, !tbaa !5
  %744 = load ptr, ptr %6, align 8, !tbaa !9
  %745 = getelementptr inbounds %struct.s2n_connection, ptr %744, i32 0, i32 27
  %746 = load ptr, ptr %745, align 8, !tbaa !15
  %747 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %746, i32 0, i32 0
  %748 = load ptr, ptr %747, align 8, !tbaa !44
  %749 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %748, i32 0, i32 6
  %750 = load ptr, ptr %749, align 8, !tbaa !49
  %751 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %750, i32 0, i32 0
  %752 = load ptr, ptr %751, align 8, !tbaa !51
  %753 = getelementptr inbounds %struct.s2n_cipher, ptr %752, i32 0, i32 6
  %754 = load ptr, ptr %753, align 8, !tbaa !55
  %755 = load ptr, ptr %6, align 8, !tbaa !9
  %756 = getelementptr inbounds %struct.s2n_connection, ptr %755, i32 0, i32 27
  %757 = load ptr, ptr %756, align 8, !tbaa !15
  %758 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %757, i32 0, i32 2
  %759 = call i32 %754(ptr noundef %758, ptr noundef %9)
  %760 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %759, ptr %760, align 4
  %761 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %762 = load i32, ptr %761, align 4
  %763 = call zeroext i1 @s2n_result_is_ok(i32 %762)
  br i1 %763, label %817, label %764

764:                                              ; preds = %741
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %767 = call ptr @__errno_location() #12
  %768 = load i32, ptr %767, align 4, !tbaa !5
  store i32 %768, ptr %26, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769)
  %771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc i8 %771 to i1
  br i1 %772, label %773, label %795

773:                                              ; preds = %766
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #11
  %776 = call i32 @isatty(i32 noundef %775) #11
  %777 = icmp ne i32 %776, 0
  br i1 %777, label %778, label %795

778:                                              ; preds = %773
  %779 = load i32, ptr %26, align 4, !tbaa !5
  %780 = call ptr @__errno_location() #12
  store i32 %779, ptr %780, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror(i32 noundef %784, ptr noundef @.str.3)
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef @.str.3)
  %789 = call ptr @__errno_location() #12
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #11
  %792 = call ptr @__errno_location() #12
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef @.str, i32 noundef %782, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 55, ptr noundef %785, ptr noundef %788, ptr noundef %791, i32 noundef %793) #11
  br label %812

795:                                              ; preds = %773, %766
  %796 = load i32, ptr %26, align 4, !tbaa !5
  %797 = call ptr @__errno_location() #12
  store i32 %796, ptr %797, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef @.str.3)
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef @.str.3)
  %806 = call ptr @__errno_location() #12
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #11
  %809 = call ptr @__errno_location() #12
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef @.str.4, i32 noundef %799, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 55, ptr noundef %802, ptr noundef %805, ptr noundef %808, i32 noundef %810) #11
  br label %812

812:                                              ; preds = %795, %778
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %813

813:                                              ; preds = %812
  br label %814

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

815:                                              ; No predecessors!
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816, %741
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = load ptr, ptr %6, align 8, !tbaa !9
  %824 = getelementptr inbounds %struct.s2n_connection, ptr %823, i32 0, i32 27
  %825 = load ptr, ptr %824, align 8, !tbaa !15
  %826 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %825, i32 0, i32 0
  %827 = load ptr, ptr %826, align 8, !tbaa !44
  %828 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %827, i32 0, i32 6
  %829 = load ptr, ptr %828, align 8, !tbaa !49
  %830 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %829, i32 0, i32 0
  %831 = load ptr, ptr %830, align 8, !tbaa !51
  %832 = getelementptr inbounds %struct.s2n_cipher, ptr %831, i32 0, i32 5
  %833 = load ptr, ptr %832, align 8, !tbaa !56
  %834 = load ptr, ptr %6, align 8, !tbaa !9
  %835 = getelementptr inbounds %struct.s2n_connection, ptr %834, i32 0, i32 27
  %836 = load ptr, ptr %835, align 8, !tbaa !15
  %837 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %836, i32 0, i32 1
  %838 = call i32 %833(ptr noundef %837, ptr noundef %9)
  %839 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %838, ptr %839, align 4
  %840 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  %841 = load i32, ptr %840, align 4
  %842 = call zeroext i1 @s2n_result_is_ok(i32 %841)
  br i1 %842, label %896, label %843

843:                                              ; preds = %820
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %846 = call ptr @__errno_location() #12
  %847 = load i32, ptr %846, align 4, !tbaa !5
  store i32 %847, ptr %28, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @s2n_print_stacktrace(ptr noundef %848)
  %850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %851 = trunc i8 %850 to i1
  br i1 %851, label %852, label %874

852:                                              ; preds = %845
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = call i32 @fileno(ptr noundef %853) #11
  %855 = call i32 @isatty(i32 noundef %854) #11
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %857, label %874

857:                                              ; preds = %852
  %858 = load i32, ptr %28, align 4, !tbaa !5
  %859 = call ptr @__errno_location() #12
  store i32 %858, ptr %859, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror(i32 noundef %863, ptr noundef @.str.3)
  %865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef @.str.3)
  %868 = call ptr @__errno_location() #12
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @strerror(i32 noundef %869) #11
  %871 = call ptr @__errno_location() #12
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %860, ptr noundef @.str, i32 noundef %861, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 56, ptr noundef %864, ptr noundef %867, ptr noundef %870, i32 noundef %872) #11
  br label %891

874:                                              ; preds = %852, %845
  %875 = load i32, ptr %28, align 4, !tbaa !5
  %876 = call ptr @__errno_location() #12
  store i32 %875, ptr %876, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef @.str.3)
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef @.str.3)
  %885 = call ptr @__errno_location() #12
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #11
  %888 = call ptr @__errno_location() #12
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %877, ptr noundef @.str.4, i32 noundef %878, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 56, ptr noundef %881, ptr noundef %884, ptr noundef %887, i32 noundef %889) #11
  br label %891

891:                                              ; preds = %874, %857
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %892

892:                                              ; preds = %891
  br label %893

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

894:                                              ; No predecessors!
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895, %820
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = load ptr, ptr %6, align 8, !tbaa !9
  %903 = getelementptr inbounds %struct.s2n_connection, ptr %902, i32 0, i32 27
  %904 = load ptr, ptr %903, align 8, !tbaa !15
  %905 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %904, i32 0, i32 3
  %906 = getelementptr inbounds [15 x i8], ptr %7, i64 0, i64 0
  %907 = call i32 @s2n_hmac_init(ptr noundef %905, i32 noundef 2, ptr noundef %906, i32 noundef 15)
  %908 = icmp eq i32 %907, -1
  br i1 %908, label %909, label %962

909:                                              ; preds = %899
  br label %910

910:                                              ; preds = %909
  br label %911

911:                                              ; preds = %910
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %912 = call ptr @__errno_location() #12
  %913 = load i32, ptr %912, align 4, !tbaa !5
  store i32 %913, ptr %29, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @s2n_print_stacktrace(ptr noundef %914)
  %916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %917 = trunc i8 %916 to i1
  br i1 %917, label %918, label %940

918:                                              ; preds = %911
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @fileno(ptr noundef %919) #11
  %921 = call i32 @isatty(i32 noundef %920) #11
  %922 = icmp ne i32 %921, 0
  br i1 %922, label %923, label %940

923:                                              ; preds = %918
  %924 = load i32, ptr %29, align 4, !tbaa !5
  %925 = call ptr @__errno_location() #12
  store i32 %924, ptr %925, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror(i32 noundef %929, ptr noundef @.str.3)
  %931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror_debug(i32 noundef %932, ptr noundef @.str.3)
  %934 = call ptr @__errno_location() #12
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @strerror(i32 noundef %935) #11
  %937 = call ptr @__errno_location() #12
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %926, ptr noundef @.str, i32 noundef %927, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 58, ptr noundef %930, ptr noundef %933, ptr noundef %936, i32 noundef %938) #11
  br label %957

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

957:                                              ; preds = %940, %923
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %958

958:                                              ; preds = %957
  br label %959

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

960:                                              ; No predecessors!
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961, %899
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr @test_count, align 4, !tbaa !5
  %968 = load ptr, ptr %6, align 8, !tbaa !9
  %969 = getelementptr inbounds %struct.s2n_connection, ptr %968, i32 0, i32 27
  %970 = load ptr, ptr %969, align 8, !tbaa !15
  %971 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %970, i32 0, i32 4
  %972 = getelementptr inbounds [15 x i8], ptr %7, i64 0, i64 0
  %973 = call i32 @s2n_hmac_init(ptr noundef %971, i32 noundef 2, ptr noundef %972, i32 noundef 15)
  %974 = icmp eq i32 %973, -1
  br i1 %974, label %975, label %1028

975:                                              ; preds = %965
  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.3)
  %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.3)
  %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, i32 noundef %993, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 59, 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.3)
  %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.3)
  %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.4, i32 noundef %1010, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 59, 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, %965
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  %1031 = load ptr, ptr %6, align 8, !tbaa !9
  %1032 = getelementptr inbounds %struct.s2n_connection, ptr %1031, i32 0, i32 23
  store i8 32, ptr %1032, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %1033

1033:                                             ; preds = %2514, %1030
  %1034 = load i32, ptr %31, align 4, !tbaa !5
  %1035 = icmp sle i32 %1034, 8088
  br i1 %1035, label %1037, label %1036

1036:                                             ; preds = %1033
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %2517

1037:                                             ; preds = %1033
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #11
  call void @llvm.memset.p0.i64(ptr align 8 %32, i8 0, i64 24, i1 false)
  br label %1038

1038:                                             ; preds = %1037
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr @test_count, align 4, !tbaa !5
  %1041 = getelementptr inbounds [8088 x i8], ptr %11, i64 0, i64 0
  %1042 = load i32, ptr %31, align 4, !tbaa !5
  %1043 = call i32 @s2n_blob_init(ptr noundef %32, ptr noundef %1041, i32 noundef %1042)
  %1044 = icmp eq i32 %1043, -1
  br i1 %1044, label %1045, label %1098

1045:                                             ; preds = %1038
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

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

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

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

1076:                                             ; preds = %1054, %1047
  %1077 = load i32, ptr %33, align 4, !tbaa !5
  %1078 = call ptr @__errno_location() #12
  store i32 %1077, ptr %1078, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef @.str.3)
  %1084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror_debug(i32 noundef %1085, ptr noundef @.str.3)
  %1087 = call ptr @__errno_location() #12
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call ptr @strerror(i32 noundef %1088) #11
  %1090 = call ptr @__errno_location() #12
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef @.str.4, i32 noundef %1080, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 64, ptr noundef %1083, ptr noundef %1086, ptr noundef %1089, i32 noundef %1091) #11
  br label %1093

1093:                                             ; preds = %1076, %1059
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

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

1096:                                             ; No predecessors!
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097, %1038
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %1101

1101:                                             ; preds = %1100
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = load ptr, ptr %6, align 8, !tbaa !9
  %1105 = getelementptr inbounds %struct.s2n_connection, ptr %1104, i32 0, i32 41
  %1106 = call i32 @s2n_stuffer_wipe(ptr noundef %1105)
  %1107 = icmp eq i32 %1106, -1
  br i1 %1107, label %1108, label %1161

1108:                                             ; preds = %1101
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

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

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

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

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

1156:                                             ; preds = %1139, %1122
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

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

1159:                                             ; No predecessors!
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160, %1101
  br label %1162

1162:                                             ; preds = %1161
  br label %1163

1163:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1164 = load ptr, ptr %6, align 8, !tbaa !9
  %1165 = call i32 @s2n_record_write(ptr noundef %1164, i8 noundef zeroext 23, ptr noundef %32)
  %1166 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1165, ptr %1166, align 4
  %1167 = load i32, ptr %31, align 4, !tbaa !5
  %1168 = icmp sle i32 %1167, 8087
  br i1 %1168, label %1169, label %1233

1169:                                             ; preds = %1163
  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 %struct.s2n_result, ptr %36, i32 0, i32 0
  %1174 = load i32, ptr %1173, align 4
  %1175 = call zeroext i1 @s2n_result_is_ok(i32 %1174)
  br i1 %1175, label %1229, label %1176

1176:                                             ; preds = %1170
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

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

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

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

1207:                                             ; preds = %1185, %1178
  %1208 = load i32, ptr %37, align 4, !tbaa !5
  %1209 = call ptr @__errno_location() #12
  store i32 %1208, ptr %1209, align 4, !tbaa !5
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = load i32, ptr @test_count, align 4, !tbaa !5
  %1212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror(i32 noundef %1213, ptr noundef @.str.3)
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef @.str.3)
  %1218 = call ptr @__errno_location() #12
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @strerror(i32 noundef %1219) #11
  %1221 = call ptr @__errno_location() #12
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1210, ptr noundef @.str.4, i32 noundef %1211, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 71, ptr noundef %1214, ptr noundef %1217, ptr noundef %1220, i32 noundef %1222) #11
  br label %1224

1224:                                             ; preds = %1207, %1190
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1225

1225:                                             ; preds = %1224
  br label %1226

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

1227:                                             ; No predecessors!
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228, %1170
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

1231:                                             ; preds = %1230
  %1232 = load i32, ptr %31, align 4, !tbaa !5
  store i32 %1232, ptr %34, align 4, !tbaa !5
  br label %1432

1233:                                             ; preds = %1163
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235
  %1237 = load i32, ptr @test_count, align 4, !tbaa !5
  %1238 = add nsw i32 %1237, 1
  store i32 %1238, ptr @test_count, align 4, !tbaa !5
  %1239 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1240 = load i32, ptr %1239, align 4
  %1241 = call zeroext i1 @s2n_result_is_error(i32 %1240)
  br i1 %1241, label %1295, label %1242

1242:                                             ; preds = %1236
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

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

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

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

1273:                                             ; preds = %1251, %1244
  %1274 = load i32, ptr %38, align 4, !tbaa !5
  %1275 = call ptr @__errno_location() #12
  store i32 %1274, ptr %1275, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror(i32 noundef %1279, ptr noundef @.str.3)
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef @.str.3)
  %1284 = call ptr @__errno_location() #12
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @strerror(i32 noundef %1285) #11
  %1287 = call ptr @__errno_location() #12
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1276, ptr noundef @.str.4, i32 noundef %1277, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1280, ptr noundef %1283, ptr noundef %1286, i32 noundef %1288) #11
  br label %1290

1290:                                             ; preds = %1273, %1256
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

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

1293:                                             ; No predecessors!
  br label %1294

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294, %1236
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

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

1304:                                             ; preds = %1298
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

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

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

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

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

1353:                                             ; preds = %1352
  br label %1354

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

1355:                                             ; No predecessors!
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

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

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr @test_count, align 4, !tbaa !5
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror_debug(i32 noundef %1364, ptr noundef @.str.3)
  %1366 = icmp eq ptr %1365, null
  br i1 %1366, label %1367, label %1420

1367:                                             ; preds = %1360
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

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

1376:                                             ; preds = %1369
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = call i32 @fileno(ptr noundef %1377) #11
  %1379 = call i32 @isatty(i32 noundef %1378) #11
  %1380 = icmp ne i32 %1379, 0
  br i1 %1380, label %1381, label %1398

1381:                                             ; preds = %1376
  %1382 = load i32, ptr %40, align 4, !tbaa !5
  %1383 = call ptr @__errno_location() #12
  store i32 %1382, ptr %1383, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror(i32 noundef %1387, ptr noundef @.str.3)
  %1389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror_debug(i32 noundef %1390, ptr noundef @.str.3)
  %1392 = call ptr @__errno_location() #12
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @strerror(i32 noundef %1393) #11
  %1395 = call ptr @__errno_location() #12
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1384, ptr noundef @.str, i32 noundef %1385, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1388, ptr noundef %1391, ptr noundef %1394, i32 noundef %1396) #11
  br label %1415

1398:                                             ; preds = %1376, %1369
  %1399 = load i32, ptr %40, align 4, !tbaa !5
  %1400 = call ptr @__errno_location() #12
  store i32 %1399, ptr %1400, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef @.str.3)
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef @.str.3)
  %1409 = call ptr @__errno_location() #12
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #11
  %1412 = call ptr @__errno_location() #12
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef @.str.4, i32 noundef %1402, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1405, ptr noundef %1408, ptr noundef %1411, i32 noundef %1413) #11
  br label %1415

1415:                                             ; preds = %1398, %1381
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

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

1418:                                             ; No predecessors!
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419, %1360
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1426, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1427 = call ptr @__errno_location() #12
  store i32 0, ptr %1427, align 4, !tbaa !5
  br label %1428

1428:                                             ; preds = %1425
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430
  store i32 8087, ptr %34, align 4, !tbaa !5
  br label %1432

1432:                                             ; preds = %1431, %1231
  call void @llvm.lifetime.start.p0(i64 2, ptr %41) #11
  %1433 = load i32, ptr %34, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  %1435 = add nsw i32 %1434, 20
  %1436 = add nsw i32 %1435, 8
  %1437 = trunc i32 %1436 to i16
  store i16 %1437, ptr %41, align 2, !tbaa !58
  %1438 = load i16, ptr %41, align 2, !tbaa !58
  %1439 = zext i16 %1438 to i32
  %1440 = srem i32 %1439, 8
  %1441 = icmp ne i32 %1440, 0
  br i1 %1441, label %1442, label %1451

1442:                                             ; preds = %1432
  %1443 = load i16, ptr %41, align 2, !tbaa !58
  %1444 = zext i16 %1443 to i32
  %1445 = srem i32 %1444, 8
  %1446 = sub nsw i32 8, %1445
  %1447 = load i16, ptr %41, align 2, !tbaa !58
  %1448 = zext i16 %1447 to i32
  %1449 = add nsw i32 %1448, %1446
  %1450 = trunc i32 %1449 to i16
  store i16 %1450, ptr %41, align 2, !tbaa !58
  br label %1451

1451:                                             ; preds = %1442, %1432
  br label %1452

1452:                                             ; preds = %1451
  %1453 = load i32, ptr @test_count, align 4, !tbaa !5
  %1454 = add nsw i32 %1453, 1
  store i32 %1454, ptr @test_count, align 4, !tbaa !5
  %1455 = load ptr, ptr %6, align 8, !tbaa !9
  %1456 = getelementptr inbounds %struct.s2n_connection, ptr %1455, i32 0, i32 41
  %1457 = getelementptr inbounds %struct.s2n_stuffer, ptr %1456, i32 0, i32 0
  %1458 = getelementptr inbounds %struct.s2n_blob, ptr %1457, i32 0, i32 0
  %1459 = load ptr, ptr %1458, align 8, !tbaa !59
  %1460 = getelementptr inbounds i8, ptr %1459, i64 0
  %1461 = load i8, ptr %1460, align 1, !tbaa !60
  %1462 = zext i8 %1461 to i32
  %1463 = icmp eq i32 %1462, 23
  br i1 %1463, label %1517, label %1464

1464:                                             ; preds = %1452
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1467 = call ptr @__errno_location() #12
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  store i32 %1468, ptr %42, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469)
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1472 = trunc i8 %1471 to i1
  br i1 %1472, label %1473, label %1495

1473:                                             ; preds = %1466
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @fileno(ptr noundef %1474) #11
  %1476 = call i32 @isatty(i32 noundef %1475) #11
  %1477 = icmp ne i32 %1476, 0
  br i1 %1477, label %1478, label %1495

1478:                                             ; preds = %1473
  %1479 = load i32, ptr %42, align 4, !tbaa !5
  %1480 = call ptr @__errno_location() #12
  store i32 %1479, ptr %1480, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror(i32 noundef %1484, ptr noundef @.str.3)
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef @.str.3)
  %1489 = call ptr @__errno_location() #12
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #11
  %1492 = call ptr @__errno_location() #12
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef @.str, i32 noundef %1482, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 82, ptr noundef %1485, ptr noundef %1488, ptr noundef %1491, i32 noundef %1493) #11
  br label %1512

1495:                                             ; preds = %1473, %1466
  %1496 = load i32, ptr %42, align 4, !tbaa !5
  %1497 = call ptr @__errno_location() #12
  store i32 %1496, ptr %1497, align 4, !tbaa !5
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1501 = load i32, ptr %1500, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror(i32 noundef %1501, ptr noundef @.str.3)
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror_debug(i32 noundef %1504, ptr noundef @.str.3)
  %1506 = call ptr @__errno_location() #12
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @strerror(i32 noundef %1507) #11
  %1509 = call ptr @__errno_location() #12
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1498, ptr noundef @.str.4, i32 noundef %1499, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 82, ptr noundef %1502, ptr noundef %1505, ptr noundef %1508, i32 noundef %1510) #11
  br label %1512

1512:                                             ; preds = %1495, %1478
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

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

1515:                                             ; No predecessors!
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516, %1452
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = add nsw i32 %1521, 1
  store i32 %1522, ptr @test_count, align 4, !tbaa !5
  %1523 = load ptr, ptr %6, align 8, !tbaa !9
  %1524 = getelementptr inbounds %struct.s2n_connection, ptr %1523, i32 0, i32 41
  %1525 = getelementptr inbounds %struct.s2n_stuffer, ptr %1524, i32 0, i32 0
  %1526 = getelementptr inbounds %struct.s2n_blob, ptr %1525, i32 0, i32 0
  %1527 = load ptr, ptr %1526, align 8, !tbaa !59
  %1528 = getelementptr inbounds i8, ptr %1527, i64 1
  %1529 = load i8, ptr %1528, align 1, !tbaa !60
  %1530 = zext i8 %1529 to i32
  %1531 = icmp eq i32 %1530, 3
  br i1 %1531, label %1585, label %1532

1532:                                             ; preds = %1520
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

1534:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1535 = call ptr @__errno_location() #12
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  store i32 %1536, ptr %43, align 4, !tbaa !5
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @s2n_print_stacktrace(ptr noundef %1537)
  %1539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1540 = trunc i8 %1539 to i1
  br i1 %1540, label %1541, label %1563

1541:                                             ; preds = %1534
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @fileno(ptr noundef %1542) #11
  %1544 = call i32 @isatty(i32 noundef %1543) #11
  %1545 = icmp ne i32 %1544, 0
  br i1 %1545, label %1546, label %1563

1546:                                             ; preds = %1541
  %1547 = load i32, ptr %43, align 4, !tbaa !5
  %1548 = call ptr @__errno_location() #12
  store i32 %1547, ptr %1548, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef @.str.3)
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror_debug(i32 noundef %1555, ptr noundef @.str.3)
  %1557 = call ptr @__errno_location() #12
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #11
  %1560 = call ptr @__errno_location() #12
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef @.str, i32 noundef %1550, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 83, ptr noundef %1553, ptr noundef %1556, ptr noundef %1559, i32 noundef %1561) #11
  br label %1580

1563:                                             ; preds = %1541, %1534
  %1564 = load i32, ptr %43, align 4, !tbaa !5
  %1565 = call ptr @__errno_location() #12
  store i32 %1564, ptr %1565, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror(i32 noundef %1569, ptr noundef @.str.3)
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef @.str.3)
  %1574 = call ptr @__errno_location() #12
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @strerror(i32 noundef %1575) #11
  %1577 = call ptr @__errno_location() #12
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef @.str.4, i32 noundef %1567, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 83, ptr noundef %1570, ptr noundef %1573, ptr noundef %1576, i32 noundef %1578) #11
  br label %1580

1580:                                             ; preds = %1563, %1546
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

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

1583:                                             ; No predecessors!
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584, %1520
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587
  %1589 = load i32, ptr @test_count, align 4, !tbaa !5
  %1590 = add nsw i32 %1589, 1
  store i32 %1590, ptr @test_count, align 4, !tbaa !5
  %1591 = load ptr, ptr %6, align 8, !tbaa !9
  %1592 = getelementptr inbounds %struct.s2n_connection, ptr %1591, i32 0, i32 41
  %1593 = getelementptr inbounds %struct.s2n_stuffer, ptr %1592, i32 0, i32 0
  %1594 = getelementptr inbounds %struct.s2n_blob, ptr %1593, i32 0, i32 0
  %1595 = load ptr, ptr %1594, align 8, !tbaa !59
  %1596 = getelementptr inbounds i8, ptr %1595, i64 2
  %1597 = load i8, ptr %1596, align 1, !tbaa !60
  %1598 = zext i8 %1597 to i32
  %1599 = icmp eq i32 %1598, 2
  br i1 %1599, label %1653, label %1600

1600:                                             ; preds = %1588
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

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

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

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

1631:                                             ; preds = %1609, %1602
  %1632 = load i32, ptr %44, align 4, !tbaa !5
  %1633 = call ptr @__errno_location() #12
  store i32 %1632, ptr %1633, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = load i32, ptr @test_count, align 4, !tbaa !5
  %1636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror(i32 noundef %1637, ptr noundef @.str.3)
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror_debug(i32 noundef %1640, ptr noundef @.str.3)
  %1642 = call ptr @__errno_location() #12
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call ptr @strerror(i32 noundef %1643) #11
  %1645 = call ptr @__errno_location() #12
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1634, ptr noundef @.str.4, i32 noundef %1635, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 84, ptr noundef %1638, ptr noundef %1641, ptr noundef %1644, i32 noundef %1646) #11
  br label %1648

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

1649:                                             ; preds = %1648
  br label %1650

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

1651:                                             ; No predecessors!
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

1653:                                             ; preds = %1652, %1588
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = load ptr, ptr %6, align 8, !tbaa !9
  %1660 = getelementptr inbounds %struct.s2n_connection, ptr %1659, i32 0, i32 41
  %1661 = getelementptr inbounds %struct.s2n_stuffer, ptr %1660, i32 0, i32 0
  %1662 = getelementptr inbounds %struct.s2n_blob, ptr %1661, i32 0, i32 0
  %1663 = load ptr, ptr %1662, align 8, !tbaa !59
  %1664 = getelementptr inbounds i8, ptr %1663, i64 3
  %1665 = load i8, ptr %1664, align 1, !tbaa !60
  %1666 = zext i8 %1665 to i32
  %1667 = load i16, ptr %41, align 2, !tbaa !58
  %1668 = zext i16 %1667 to i32
  %1669 = ashr i32 %1668, 8
  %1670 = and i32 %1669, 255
  %1671 = icmp eq i32 %1666, %1670
  br i1 %1671, label %1725, label %1672

1672:                                             ; preds = %1656
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

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

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

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

1703:                                             ; preds = %1681, %1674
  %1704 = load i32, ptr %45, align 4, !tbaa !5
  %1705 = call ptr @__errno_location() #12
  store i32 %1704, ptr %1705, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef @.str.3)
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef @.str.3)
  %1714 = call ptr @__errno_location() #12
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #11
  %1717 = call ptr @__errno_location() #12
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef @.str.4, i32 noundef %1707, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 85, ptr noundef %1710, ptr noundef %1713, ptr noundef %1716, i32 noundef %1718) #11
  br label %1720

1720:                                             ; preds = %1703, %1686
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

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

1723:                                             ; No predecessors!
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724, %1656
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = add nsw i32 %1729, 1
  store i32 %1730, ptr @test_count, align 4, !tbaa !5
  %1731 = load ptr, ptr %6, align 8, !tbaa !9
  %1732 = getelementptr inbounds %struct.s2n_connection, ptr %1731, i32 0, i32 41
  %1733 = getelementptr inbounds %struct.s2n_stuffer, ptr %1732, i32 0, i32 0
  %1734 = getelementptr inbounds %struct.s2n_blob, ptr %1733, i32 0, i32 0
  %1735 = load ptr, ptr %1734, align 8, !tbaa !59
  %1736 = getelementptr inbounds i8, ptr %1735, i64 4
  %1737 = load i8, ptr %1736, align 1, !tbaa !60
  %1738 = zext i8 %1737 to i32
  %1739 = load i16, ptr %41, align 2, !tbaa !58
  %1740 = zext i16 %1739 to i32
  %1741 = and i32 %1740, 255
  %1742 = icmp eq i32 %1738, %1741
  br i1 %1742, label %1796, label %1743

1743:                                             ; preds = %1728
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1746 = call ptr @__errno_location() #12
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  store i32 %1747, ptr %46, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @s2n_print_stacktrace(ptr noundef %1748)
  %1750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1751 = trunc i8 %1750 to i1
  br i1 %1751, label %1752, label %1774

1752:                                             ; preds = %1745
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @fileno(ptr noundef %1753) #11
  %1755 = call i32 @isatty(i32 noundef %1754) #11
  %1756 = icmp ne i32 %1755, 0
  br i1 %1756, label %1757, label %1774

1757:                                             ; preds = %1752
  %1758 = load i32, ptr %46, align 4, !tbaa !5
  %1759 = call ptr @__errno_location() #12
  store i32 %1758, ptr %1759, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef @.str.3)
  %1765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror_debug(i32 noundef %1766, ptr noundef @.str.3)
  %1768 = call ptr @__errno_location() #12
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #11
  %1771 = call ptr @__errno_location() #12
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef @.str, i32 noundef %1761, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 86, ptr noundef %1764, ptr noundef %1767, ptr noundef %1770, i32 noundef %1772) #11
  br label %1791

1774:                                             ; preds = %1752, %1745
  %1775 = load i32, ptr %46, align 4, !tbaa !5
  %1776 = call ptr @__errno_location() #12
  store i32 %1775, ptr %1776, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef @.str.3)
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef @.str.3)
  %1785 = call ptr @__errno_location() #12
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #11
  %1788 = call ptr @__errno_location() #12
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef @.str.4, i32 noundef %1778, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 86, ptr noundef %1781, ptr noundef %1784, ptr noundef %1787, i32 noundef %1789) #11
  br label %1791

1791:                                             ; preds = %1774, %1757
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

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

1794:                                             ; No predecessors!
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795, %1728
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

1798:                                             ; preds = %1797
  %1799 = load i32, ptr %34, align 4, !tbaa !5
  %1800 = icmp sgt i32 %1799, 10
  br i1 %1800, label %1801, label %1872

1801:                                             ; preds = %1798
  br label %1802

1802:                                             ; preds = %1801
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr @test_count, align 4, !tbaa !5
  %1805 = load ptr, ptr %6, align 8, !tbaa !9
  %1806 = getelementptr inbounds %struct.s2n_connection, ptr %1805, i32 0, i32 41
  %1807 = getelementptr inbounds %struct.s2n_stuffer, ptr %1806, i32 0, i32 0
  %1808 = getelementptr inbounds %struct.s2n_blob, ptr %1807, i32 0, i32 0
  %1809 = load ptr, ptr %1808, align 8, !tbaa !59
  %1810 = getelementptr inbounds i8, ptr %1809, i64 5
  %1811 = getelementptr inbounds [8088 x i8], ptr %11, i64 0, i64 0
  %1812 = load i32, ptr %34, align 4, !tbaa !5
  %1813 = sext i32 %1812 to i64
  %1814 = call i32 @memcmp(ptr noundef %1810, ptr noundef %1811, i64 noundef %1813) #14
  %1815 = icmp eq i32 %1814, 0
  br i1 %1815, label %1816, label %1869

1816:                                             ; preds = %1802
  br label %1817

1817:                                             ; preds = %1816
  br label %1818

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

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

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

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

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

1865:                                             ; preds = %1864
  br label %1866

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

1867:                                             ; No predecessors!
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868, %1802
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871, %1798
  br label %1873

1873:                                             ; preds = %1872
  %1874 = load i32, ptr @test_count, align 4, !tbaa !5
  %1875 = add nsw i32 %1874, 1
  store i32 %1875, ptr @test_count, align 4, !tbaa !5
  %1876 = load ptr, ptr %6, align 8, !tbaa !9
  %1877 = getelementptr inbounds %struct.s2n_connection, ptr %1876, i32 0, i32 40
  %1878 = call i32 @s2n_stuffer_wipe(ptr noundef %1877)
  %1879 = icmp eq i32 %1878, -1
  br i1 %1879, label %1880, label %1933

1880:                                             ; preds = %1873
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1883 = call ptr @__errno_location() #12
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  store i32 %1884, ptr %48, align 4, !tbaa !5
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @s2n_print_stacktrace(ptr noundef %1885)
  %1887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1888 = trunc i8 %1887 to i1
  br i1 %1888, label %1889, label %1911

1889:                                             ; preds = %1882
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = call i32 @fileno(ptr noundef %1890) #11
  %1892 = call i32 @isatty(i32 noundef %1891) #11
  %1893 = icmp ne i32 %1892, 0
  br i1 %1893, label %1894, label %1911

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

1911:                                             ; preds = %1889, %1882
  %1912 = load i32, ptr %48, align 4, !tbaa !5
  %1913 = call ptr @__errno_location() #12
  store i32 %1912, ptr %1913, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror(i32 noundef %1917, ptr noundef @.str.3)
  %1919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror_debug(i32 noundef %1920, ptr noundef @.str.3)
  %1922 = call ptr @__errno_location() #12
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @strerror(i32 noundef %1923) #11
  %1925 = call ptr @__errno_location() #12
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1914, ptr noundef @.str.4, i32 noundef %1915, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 94, ptr noundef %1918, ptr noundef %1921, ptr noundef %1924, i32 noundef %1926) #11
  br label %1928

1928:                                             ; preds = %1911, %1894
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

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

1931:                                             ; No predecessors!
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

1933:                                             ; preds = %1932, %1873
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = load ptr, ptr %6, align 8, !tbaa !9
  %1940 = getelementptr inbounds %struct.s2n_connection, ptr %1939, i32 0, i32 38
  %1941 = call i32 @s2n_stuffer_wipe(ptr noundef %1940)
  %1942 = icmp eq i32 %1941, -1
  br i1 %1942, label %1943, label %1996

1943:                                             ; preds = %1936
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1946 = call ptr @__errno_location() #12
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  store i32 %1947, ptr %49, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = call i32 @s2n_print_stacktrace(ptr noundef %1948)
  %1950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1951 = trunc i8 %1950 to i1
  br i1 %1951, label %1952, label %1974

1952:                                             ; preds = %1945
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @fileno(ptr noundef %1953) #11
  %1955 = call i32 @isatty(i32 noundef %1954) #11
  %1956 = icmp ne i32 %1955, 0
  br i1 %1956, label %1957, label %1974

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

1974:                                             ; preds = %1952, %1945
  %1975 = load i32, ptr %49, align 4, !tbaa !5
  %1976 = call ptr @__errno_location() #12
  store i32 %1975, ptr %1976, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror(i32 noundef %1980, ptr noundef @.str.3)
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror_debug(i32 noundef %1983, ptr noundef @.str.3)
  %1985 = call ptr @__errno_location() #12
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @strerror(i32 noundef %1986) #11
  %1988 = call ptr @__errno_location() #12
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1977, ptr noundef @.str.4, i32 noundef %1978, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 95, ptr noundef %1981, ptr noundef %1984, ptr noundef %1987, i32 noundef %1989) #11
  br label %1991

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

1992:                                             ; preds = %1991
  br label %1993

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

1994:                                             ; No predecessors!
  br label %1995

1995:                                             ; preds = %1994
  br label %1996

1996:                                             ; preds = %1995, %1936
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

1999:                                             ; preds = %1998
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = add nsw i32 %2000, 1
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = load ptr, ptr %6, align 8, !tbaa !9
  %2003 = getelementptr inbounds %struct.s2n_connection, ptr %2002, i32 0, i32 41
  %2004 = load ptr, ptr %6, align 8, !tbaa !9
  %2005 = getelementptr inbounds %struct.s2n_connection, ptr %2004, i32 0, i32 38
  %2006 = call i32 @s2n_stuffer_copy(ptr noundef %2003, ptr noundef %2005, i32 noundef 5)
  %2007 = icmp eq i32 %2006, -1
  br i1 %2007, label %2008, label %2061

2008:                                             ; preds = %1999
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

2010:                                             ; preds = %2009
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %2011 = call ptr @__errno_location() #12
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  store i32 %2012, ptr %50, align 4, !tbaa !5
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = call i32 @s2n_print_stacktrace(ptr noundef %2013)
  %2015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2016 = trunc i8 %2015 to i1
  br i1 %2016, label %2017, label %2039

2017:                                             ; preds = %2010
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = call i32 @fileno(ptr noundef %2018) #11
  %2020 = call i32 @isatty(i32 noundef %2019) #11
  %2021 = icmp ne i32 %2020, 0
  br i1 %2021, label %2022, label %2039

2022:                                             ; preds = %2017
  %2023 = load i32, ptr %50, align 4, !tbaa !5
  %2024 = call ptr @__errno_location() #12
  store i32 %2023, ptr %2024, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef @.str.3)
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror_debug(i32 noundef %2031, ptr noundef @.str.3)
  %2033 = call ptr @__errno_location() #12
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call ptr @strerror(i32 noundef %2034) #11
  %2036 = call ptr @__errno_location() #12
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef @.str, i32 noundef %2026, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 96, ptr noundef %2029, ptr noundef %2032, ptr noundef %2035, i32 noundef %2037) #11
  br label %2056

2039:                                             ; preds = %2017, %2010
  %2040 = load i32, ptr %50, align 4, !tbaa !5
  %2041 = call ptr @__errno_location() #12
  store i32 %2040, ptr %2041, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef @.str.3)
  %2047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror_debug(i32 noundef %2048, ptr noundef @.str.3)
  %2050 = call ptr @__errno_location() #12
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @strerror(i32 noundef %2051) #11
  %2053 = call ptr @__errno_location() #12
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef @.str.4, i32 noundef %2043, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 96, ptr noundef %2046, ptr noundef %2049, ptr noundef %2052, i32 noundef %2054) #11
  br label %2056

2056:                                             ; preds = %2039, %2022
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

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

2059:                                             ; No predecessors!
  br label %2060

2060:                                             ; preds = %2059
  br label %2061

2061:                                             ; preds = %2060, %1999
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = add nsw i32 %2065, 1
  store i32 %2066, ptr @test_count, align 4, !tbaa !5
  %2067 = load ptr, ptr %6, align 8, !tbaa !9
  %2068 = getelementptr inbounds %struct.s2n_connection, ptr %2067, i32 0, i32 41
  %2069 = load ptr, ptr %6, align 8, !tbaa !9
  %2070 = getelementptr inbounds %struct.s2n_connection, ptr %2069, i32 0, i32 40
  %2071 = load ptr, ptr %6, align 8, !tbaa !9
  %2072 = getelementptr inbounds %struct.s2n_connection, ptr %2071, i32 0, i32 41
  %2073 = getelementptr inbounds %struct.s2n_stuffer, ptr %2072, i32 0, i32 2
  %2074 = load i32, ptr %2073, align 4, !tbaa !61
  %2075 = load ptr, ptr %6, align 8, !tbaa !9
  %2076 = getelementptr inbounds %struct.s2n_connection, ptr %2075, i32 0, i32 41
  %2077 = getelementptr inbounds %struct.s2n_stuffer, ptr %2076, i32 0, i32 1
  %2078 = load i32, ptr %2077, align 8, !tbaa !62
  %2079 = sub i32 %2074, %2078
  %2080 = call i32 @s2n_stuffer_copy(ptr noundef %2068, ptr noundef %2070, i32 noundef %2079)
  %2081 = icmp eq i32 %2080, -1
  br i1 %2081, label %2082, label %2135

2082:                                             ; preds = %2064
  br label %2083

2083:                                             ; preds = %2082
  br label %2084

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

2091:                                             ; preds = %2084
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @fileno(ptr noundef %2092) #11
  %2094 = call i32 @isatty(i32 noundef %2093) #11
  %2095 = icmp ne i32 %2094, 0
  br i1 %2095, label %2096, label %2113

2096:                                             ; preds = %2091
  %2097 = load i32, ptr %51, align 4, !tbaa !5
  %2098 = call ptr @__errno_location() #12
  store i32 %2097, ptr %2098, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror(i32 noundef %2102, ptr noundef @.str.3)
  %2104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror_debug(i32 noundef %2105, ptr noundef @.str.3)
  %2107 = call ptr @__errno_location() #12
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call ptr @strerror(i32 noundef %2108) #11
  %2110 = call ptr @__errno_location() #12
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2099, ptr noundef @.str, i32 noundef %2100, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 97, ptr noundef %2103, ptr noundef %2106, ptr noundef %2109, i32 noundef %2111) #11
  br label %2130

2113:                                             ; preds = %2091, %2084
  %2114 = load i32, ptr %51, align 4, !tbaa !5
  %2115 = call ptr @__errno_location() #12
  store i32 %2114, ptr %2115, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef @.str.3)
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror_debug(i32 noundef %2122, ptr noundef @.str.3)
  %2124 = call ptr @__errno_location() #12
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @strerror(i32 noundef %2125) #11
  %2127 = call ptr @__errno_location() #12
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef @.str.4, i32 noundef %2117, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 97, ptr noundef %2120, ptr noundef %2123, ptr noundef %2126, i32 noundef %2128) #11
  br label %2130

2130:                                             ; preds = %2113, %2096
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

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

2133:                                             ; No predecessors!
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134, %2064
  br label %2136

2136:                                             ; preds = %2135
  br label %2137

2137:                                             ; preds = %2136
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #11
  store i8 0, ptr %52, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 2, ptr %53) #11
  store i16 0, ptr %53, align 2, !tbaa !58
  br label %2138

2138:                                             ; preds = %2137
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = add nsw i32 %2139, 1
  store i32 %2140, ptr @test_count, align 4, !tbaa !5
  %2141 = load ptr, ptr %6, align 8, !tbaa !9
  %2142 = call i32 @s2n_record_header_parse(ptr noundef %2141, ptr noundef %52, ptr noundef %53)
  %2143 = icmp eq i32 %2142, -1
  br i1 %2143, label %2144, label %2197

2144:                                             ; preds = %2138
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

2146:                                             ; preds = %2145
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2147 = call ptr @__errno_location() #12
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  store i32 %2148, ptr %54, align 4, !tbaa !5
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = call i32 @s2n_print_stacktrace(ptr noundef %2149)
  %2151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2152 = trunc i8 %2151 to i1
  br i1 %2152, label %2153, label %2175

2153:                                             ; preds = %2146
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = call i32 @fileno(ptr noundef %2154) #11
  %2156 = call i32 @isatty(i32 noundef %2155) #11
  %2157 = icmp ne i32 %2156, 0
  br i1 %2157, label %2158, label %2175

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

2175:                                             ; preds = %2153, %2146
  %2176 = load i32, ptr %54, align 4, !tbaa !5
  %2177 = call ptr @__errno_location() #12
  store i32 %2176, ptr %2177, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef @.str.3)
  %2183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror_debug(i32 noundef %2184, ptr noundef @.str.3)
  %2186 = call ptr @__errno_location() #12
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = call ptr @strerror(i32 noundef %2187) #11
  %2189 = call ptr @__errno_location() #12
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef @.str.4, i32 noundef %2179, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 102, ptr noundef %2182, ptr noundef %2185, ptr noundef %2188, i32 noundef %2190) #11
  br label %2192

2192:                                             ; preds = %2175, %2158
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

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

2195:                                             ; No predecessors!
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196, %2138
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

2200:                                             ; preds = %2199
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = add nsw i32 %2201, 1
  store i32 %2202, ptr @test_count, align 4, !tbaa !5
  %2203 = load ptr, ptr %6, align 8, !tbaa !9
  %2204 = call i32 @s2n_record_parse(ptr noundef %2203)
  %2205 = icmp eq i32 %2204, -1
  br i1 %2205, label %2206, label %2259

2206:                                             ; preds = %2200
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

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

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

2220:                                             ; preds = %2215
  %2221 = load i32, ptr %55, align 4, !tbaa !5
  %2222 = call ptr @__errno_location() #12
  store i32 %2221, ptr %2222, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror(i32 noundef %2226, ptr noundef @.str.3)
  %2228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror_debug(i32 noundef %2229, ptr noundef @.str.3)
  %2231 = call ptr @__errno_location() #12
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @strerror(i32 noundef %2232) #11
  %2234 = call ptr @__errno_location() #12
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2223, ptr noundef @.str, i32 noundef %2224, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 103, ptr noundef %2227, ptr noundef %2230, ptr noundef %2233, i32 noundef %2235) #11
  br label %2254

2237:                                             ; preds = %2215, %2208
  %2238 = load i32, ptr %55, align 4, !tbaa !5
  %2239 = call ptr @__errno_location() #12
  store i32 %2238, ptr %2239, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror(i32 noundef %2243, ptr noundef @.str.3)
  %2245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror_debug(i32 noundef %2246, ptr noundef @.str.3)
  %2248 = call ptr @__errno_location() #12
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call ptr @strerror(i32 noundef %2249) #11
  %2251 = call ptr @__errno_location() #12
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2240, ptr noundef @.str.4, i32 noundef %2241, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 103, ptr noundef %2244, ptr noundef %2247, ptr noundef %2250, i32 noundef %2252) #11
  br label %2254

2254:                                             ; preds = %2237, %2220
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

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

2257:                                             ; No predecessors!
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258, %2200
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = add nsw i32 %2263, 1
  store i32 %2264, ptr @test_count, align 4, !tbaa !5
  %2265 = load i8, ptr %52, align 1, !tbaa !60
  %2266 = zext i8 %2265 to i32
  %2267 = icmp eq i32 %2266, 23
  br i1 %2267, label %2321, label %2268

2268:                                             ; preds = %2262
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

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

2277:                                             ; preds = %2270
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @fileno(ptr noundef %2278) #11
  %2280 = call i32 @isatty(i32 noundef %2279) #11
  %2281 = icmp ne i32 %2280, 0
  br i1 %2281, label %2282, label %2299

2282:                                             ; preds = %2277
  %2283 = load i32, ptr %56, align 4, !tbaa !5
  %2284 = call ptr @__errno_location() #12
  store i32 %2283, ptr %2284, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef @.str.3)
  %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_debug(i32 noundef %2291, ptr noundef @.str.3)
  %2293 = call ptr @__errno_location() #12
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #11
  %2296 = call ptr @__errno_location() #12
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2285, ptr noundef @.str, i32 noundef %2286, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 104, ptr noundef %2289, ptr noundef %2292, ptr noundef %2295, i32 noundef %2297) #11
  br label %2316

2299:                                             ; preds = %2277, %2270
  %2300 = load i32, ptr %56, align 4, !tbaa !5
  %2301 = call ptr @__errno_location() #12
  store i32 %2300, ptr %2301, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror(i32 noundef %2305, ptr noundef @.str.3)
  %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_debug(i32 noundef %2308, ptr noundef @.str.3)
  %2310 = call ptr @__errno_location() #12
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @strerror(i32 noundef %2311) #11
  %2313 = call ptr @__errno_location() #12
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2302, ptr noundef @.str.4, i32 noundef %2303, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 104, ptr noundef %2306, ptr noundef %2309, ptr noundef %2312, i32 noundef %2314) #11
  br label %2316

2316:                                             ; preds = %2299, %2282
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

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

2319:                                             ; No predecessors!
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320, %2262
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323
  %2325 = load i32, ptr @test_count, align 4, !tbaa !5
  %2326 = add nsw i32 %2325, 1
  store i32 %2326, ptr @test_count, align 4, !tbaa !5
  %2327 = load i16, ptr %53, align 2, !tbaa !58
  %2328 = zext i16 %2327 to i32
  %2329 = load i16, ptr %41, align 2, !tbaa !58
  %2330 = zext i16 %2329 to i32
  %2331 = icmp eq i32 %2328, %2330
  br i1 %2331, label %2385, label %2332

2332:                                             ; preds = %2324
  br label %2333

2333:                                             ; preds = %2332
  br label %2334

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

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

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

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

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

2381:                                             ; preds = %2380
  br label %2382

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

2383:                                             ; No predecessors!
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384, %2324
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

2388:                                             ; preds = %2387
  %2389 = load i32, ptr @test_count, align 4, !tbaa !5
  %2390 = add nsw i32 %2389, 1
  store i32 %2390, ptr @test_count, align 4, !tbaa !5
  %2391 = load ptr, ptr %6, align 8, !tbaa !9
  %2392 = getelementptr inbounds %struct.s2n_connection, ptr %2391, i32 0, i32 38
  %2393 = call i32 @s2n_stuffer_wipe(ptr noundef %2392)
  %2394 = icmp eq i32 %2393, -1
  br i1 %2394, label %2395, label %2448

2395:                                             ; preds = %2388
  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.3)
  %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.3)
  %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, i32 noundef %2413, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 107, 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.3)
  %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.3)
  %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.4, i32 noundef %2430, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 107, 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, %2388
  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 ptr, ptr %6, align 8, !tbaa !9
  %2455 = getelementptr inbounds %struct.s2n_connection, ptr %2454, i32 0, i32 40
  %2456 = call i32 @s2n_stuffer_wipe(ptr noundef %2455)
  %2457 = icmp eq i32 %2456, -1
  br i1 %2457, label %2458, label %2511

2458:                                             ; preds = %2451
  br label %2459

2459:                                             ; preds = %2458
  br label %2460

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

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

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

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

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

2507:                                             ; preds = %2506
  br label %2508

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

2509:                                             ; No predecessors!
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

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

2512:                                             ; preds = %2511
  br label %2513

2513:                                             ; preds = %2512
  call void @llvm.lifetime.end.p0(i64 2, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #11
  br label %2514

2514:                                             ; preds = %2513
  %2515 = load i32, ptr %31, align 4, !tbaa !5
  %2516 = add nsw i32 %2515, 1
  store i32 %2516, ptr %31, align 4, !tbaa !5
  br label %1033, !llvm.loop !63

2517:                                             ; preds = %1036
  br label %2518

2518:                                             ; preds = %2517
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = add nsw i32 %2519, 1
  store i32 %2520, ptr @test_count, align 4, !tbaa !5
  %2521 = load ptr, ptr %6, align 8, !tbaa !9
  %2522 = getelementptr inbounds %struct.s2n_connection, ptr %2521, i32 0, i32 27
  %2523 = load ptr, ptr %2522, align 8, !tbaa !15
  %2524 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2523, i32 0, i32 0
  %2525 = load ptr, ptr %2524, align 8, !tbaa !44
  %2526 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2525, i32 0, i32 6
  %2527 = load ptr, ptr %2526, align 8, !tbaa !49
  %2528 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2527, i32 0, i32 0
  %2529 = load ptr, ptr %2528, align 8, !tbaa !51
  %2530 = getelementptr inbounds %struct.s2n_cipher, ptr %2529, i32 0, i32 7
  %2531 = load ptr, ptr %2530, align 8, !tbaa !65
  %2532 = load ptr, ptr %6, align 8, !tbaa !9
  %2533 = getelementptr inbounds %struct.s2n_connection, ptr %2532, i32 0, i32 27
  %2534 = load ptr, ptr %2533, align 8, !tbaa !15
  %2535 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2534, i32 0, i32 2
  %2536 = call i32 %2531(ptr noundef %2535)
  %2537 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2536, ptr %2537, align 4
  %2538 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2539 = load i32, ptr %2538, align 4
  %2540 = call zeroext i1 @s2n_result_is_ok(i32 %2539)
  br i1 %2540, label %2594, label %2541

2541:                                             ; preds = %2518
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2544 = call ptr @__errno_location() #12
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  store i32 %2545, ptr %61, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = call i32 @s2n_print_stacktrace(ptr noundef %2546)
  %2548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2549 = trunc i8 %2548 to i1
  br i1 %2549, label %2550, label %2572

2550:                                             ; preds = %2543
  %2551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2552 = call i32 @fileno(ptr noundef %2551) #11
  %2553 = call i32 @isatty(i32 noundef %2552) #11
  %2554 = icmp ne i32 %2553, 0
  br i1 %2554, label %2555, label %2572

2555:                                             ; preds = %2550
  %2556 = load i32, ptr %61, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #12
  store i32 %2556, ptr %2557, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2561, ptr noundef @.str.3)
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef @.str.3)
  %2566 = call ptr @__errno_location() #12
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #11
  %2569 = call ptr @__errno_location() #12
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str, i32 noundef %2559, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 111, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #11
  br label %2589

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

2589:                                             ; preds = %2572, %2555
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

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

2592:                                             ; No predecessors!
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

2594:                                             ; preds = %2593, %2518
  br label %2595

2595:                                             ; preds = %2594
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596
  %2598 = load i32, ptr @test_count, align 4, !tbaa !5
  %2599 = add nsw i32 %2598, 1
  store i32 %2599, ptr @test_count, align 4, !tbaa !5
  %2600 = load ptr, ptr %6, align 8, !tbaa !9
  %2601 = getelementptr inbounds %struct.s2n_connection, ptr %2600, i32 0, i32 27
  %2602 = load ptr, ptr %2601, align 8, !tbaa !15
  %2603 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2602, i32 0, i32 0
  %2604 = load ptr, ptr %2603, align 8, !tbaa !44
  %2605 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2604, i32 0, i32 6
  %2606 = load ptr, ptr %2605, align 8, !tbaa !49
  %2607 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2606, i32 0, i32 0
  %2608 = load ptr, ptr %2607, align 8, !tbaa !51
  %2609 = getelementptr inbounds %struct.s2n_cipher, ptr %2608, i32 0, i32 7
  %2610 = load ptr, ptr %2609, align 8, !tbaa !65
  %2611 = load ptr, ptr %6, align 8, !tbaa !9
  %2612 = getelementptr inbounds %struct.s2n_connection, ptr %2611, i32 0, i32 27
  %2613 = load ptr, ptr %2612, align 8, !tbaa !15
  %2614 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2613, i32 0, i32 1
  %2615 = call i32 %2610(ptr noundef %2614)
  %2616 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  store i32 %2615, ptr %2616, align 4
  %2617 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  %2618 = load i32, ptr %2617, align 4
  %2619 = call zeroext i1 @s2n_result_is_ok(i32 %2618)
  br i1 %2619, label %2673, label %2620

2620:                                             ; preds = %2597
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

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

2629:                                             ; preds = %2622
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @fileno(ptr noundef %2630) #11
  %2632 = call i32 @isatty(i32 noundef %2631) #11
  %2633 = icmp ne i32 %2632, 0
  br i1 %2633, label %2634, label %2651

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

2651:                                             ; preds = %2629, %2622
  %2652 = load i32, ptr %63, align 4, !tbaa !5
  %2653 = call ptr @__errno_location() #12
  store i32 %2652, ptr %2653, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror(i32 noundef %2657, ptr noundef @.str.3)
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror_debug(i32 noundef %2660, ptr noundef @.str.3)
  %2662 = call ptr @__errno_location() #12
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @strerror(i32 noundef %2663) #11
  %2665 = call ptr @__errno_location() #12
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2654, ptr noundef @.str.4, i32 noundef %2655, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 112, ptr noundef %2658, ptr noundef %2661, ptr noundef %2664, i32 noundef %2666) #11
  br label %2668

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

2669:                                             ; preds = %2668
  br label %2670

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

2671:                                             ; No predecessors!
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672, %2597
  br label %2674

2674:                                             ; preds = %2673
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2675
  %2677 = load i32, ptr @test_count, align 4, !tbaa !5
  %2678 = add nsw i32 %2677, 1
  store i32 %2678, ptr @test_count, align 4, !tbaa !5
  %2679 = load ptr, ptr %6, align 8, !tbaa !9
  %2680 = call i32 @s2n_connection_free(ptr noundef %2679)
  %2681 = icmp eq i32 %2680, -1
  br i1 %2681, label %2682, label %2735

2682:                                             ; preds = %2676
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

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

2691:                                             ; preds = %2684
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = call i32 @fileno(ptr noundef %2692) #11
  %2694 = call i32 @isatty(i32 noundef %2693) #11
  %2695 = icmp ne i32 %2694, 0
  br i1 %2695, label %2696, label %2713

2696:                                             ; preds = %2691
  %2697 = load i32, ptr %64, align 4, !tbaa !5
  %2698 = call ptr @__errno_location() #12
  store i32 %2697, ptr %2698, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef @.str.3)
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror_debug(i32 noundef %2705, ptr noundef @.str.3)
  %2707 = call ptr @__errno_location() #12
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @strerror(i32 noundef %2708) #11
  %2710 = call ptr @__errno_location() #12
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2699, ptr noundef @.str, i32 noundef %2700, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 113, ptr noundef %2703, ptr noundef %2706, ptr noundef %2709, i32 noundef %2711) #11
  br label %2730

2713:                                             ; preds = %2691, %2684
  %2714 = load i32, ptr %64, align 4, !tbaa !5
  %2715 = call ptr @__errno_location() #12
  store i32 %2714, ptr %2715, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror(i32 noundef %2719, ptr noundef @.str.3)
  %2721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @s2n_strerror_debug(i32 noundef %2722, ptr noundef @.str.3)
  %2724 = call ptr @__errno_location() #12
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @strerror(i32 noundef %2725) #11
  %2727 = call ptr @__errno_location() #12
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2716, ptr noundef @.str.4, i32 noundef %2717, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 113, ptr noundef %2720, ptr noundef %2723, ptr noundef %2726, i32 noundef %2728) #11
  br label %2730

2730:                                             ; preds = %2713, %2696
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

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

2733:                                             ; No predecessors!
  br label %2734

2734:                                             ; preds = %2733
  br label %2735

2735:                                             ; preds = %2734, %2676
  br label %2736

2736:                                             ; preds = %2735
  br label %2737

2737:                                             ; preds = %2736
  br label %2738

2738:                                             ; preds = %2737
  br label %2739

2739:                                             ; preds = %2738
  %2740 = call i32 @s2n_cleanup()
  %2741 = icmp eq i32 %2740, -1
  br i1 %2741, label %2742, label %2795

2742:                                             ; preds = %2739
  br label %2743

2743:                                             ; preds = %2742
  br label %2744

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

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

2756:                                             ; preds = %2751
  %2757 = load i32, ptr %65, align 4, !tbaa !5
  %2758 = call ptr @__errno_location() #12
  store i32 %2757, ptr %2758, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  %2763 = call ptr @s2n_strerror(i32 noundef %2762, ptr noundef @.str.3)
  %2764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef @.str.3)
  %2767 = call ptr @__errno_location() #12
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @strerror(i32 noundef %2768) #11
  %2770 = call ptr @__errno_location() #12
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef @.str, i32 noundef %2760, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 115, ptr noundef %2763, ptr noundef %2766, ptr noundef %2769, i32 noundef %2771) #11
  br label %2790

2773:                                             ; preds = %2751, %2744
  %2774 = load i32, ptr %65, align 4, !tbaa !5
  %2775 = call ptr @__errno_location() #12
  store i32 %2774, ptr %2775, align 4, !tbaa !5
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = load i32, ptr @test_count, align 4, !tbaa !5
  %2778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror(i32 noundef %2779, ptr noundef @.str.3)
  %2781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @s2n_strerror_debug(i32 noundef %2782, ptr noundef @.str.3)
  %2784 = call ptr @__errno_location() #12
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call ptr @strerror(i32 noundef %2785) #11
  %2787 = call ptr @__errno_location() #12
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2776, ptr noundef @.str.4, i32 noundef %2777, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 115, ptr noundef %2780, ptr noundef %2783, ptr noundef %2786, i32 noundef %2788) #11
  br label %2790

2790:                                             ; preds = %2773, %2756
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

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

2793:                                             ; No predecessors!
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794, %2739
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

2799:                                             ; preds = %2798
  %2800 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2801 = icmp eq i32 %2800, -1
  br i1 %2801, label %2802, label %2855

2802:                                             ; preds = %2799
  br label %2803

2803:                                             ; preds = %2802
  br label %2804

2804:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2805 = call ptr @__errno_location() #12
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  store i32 %2806, ptr %66, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @s2n_print_stacktrace(ptr noundef %2807)
  %2809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2810 = trunc i8 %2809 to i1
  br i1 %2810, label %2811, label %2833

2811:                                             ; preds = %2804
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @fileno(ptr noundef %2812) #11
  %2814 = call i32 @isatty(i32 noundef %2813) #11
  %2815 = icmp ne i32 %2814, 0
  br i1 %2815, label %2816, label %2833

2816:                                             ; preds = %2811
  %2817 = load i32, ptr %66, align 4, !tbaa !5
  %2818 = call ptr @__errno_location() #12
  store i32 %2817, ptr %2818, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef @.str.3)
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror_debug(i32 noundef %2825, ptr noundef @.str.3)
  %2827 = call ptr @__errno_location() #12
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @strerror(i32 noundef %2828) #11
  %2830 = call ptr @__errno_location() #12
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2819, ptr noundef @.str, i32 noundef %2820, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 115, ptr noundef %2823, ptr noundef %2826, ptr noundef %2829, i32 noundef %2831) #11
  br label %2850

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

2850:                                             ; preds = %2833, %2816
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

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

2853:                                             ; No predecessors!
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854, %2799
  br label %2856

2856:                                             ; preds = %2855
  br label %2857

2857:                                             ; preds = %2856
  %2858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2859 = trunc i8 %2858 to i1
  br i1 %2859, label %2860, label %2876

2860:                                             ; preds = %2857
  %2861 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2862 = call i32 @fileno(ptr noundef %2861) #11
  %2863 = call i32 @isatty(i32 noundef %2862) #11
  %2864 = icmp ne i32 %2863, 0
  br i1 %2864, label %2865, label %2876

2865:                                             ; preds = %2860
  %2866 = load i32, ptr @test_count, align 4, !tbaa !5
  %2867 = icmp ne i32 %2866, 0
  br i1 %2867, label %2868, label %2872

2868:                                             ; preds = %2865
  %2869 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2869, ptr noundef @.str.44, i32 noundef %2870) #11
  br label %2875

2872:                                             ; preds = %2865
  %2873 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2873, ptr noundef @.str.45) #11
  br label %2875

2875:                                             ; preds = %2872, %2868
  br label %2887

2876:                                             ; preds = %2860, %2857
  %2877 = load i32, ptr @test_count, align 4, !tbaa !5
  %2878 = icmp ne i32 %2877, 0
  br i1 %2878, label %2879, label %2883

2879:                                             ; preds = %2876
  %2880 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2881 = load i32, ptr @test_count, align 4, !tbaa !5
  %2882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2880, ptr noundef @.str.46, i32 noundef %2881) #11
  br label %2886

2883:                                             ; preds = %2876
  %2884 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef @.str.47) #11
  br label %2886

2886:                                             ; preds = %2883, %2879
  br label %2887

2887:                                             ; preds = %2886, %2875
  store i32 0, ptr %3, align 4
  store i32 1, ptr %67, align 4
  br label %2892

2888:                                             ; No predecessors!
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890
  store i32 0, ptr %67, align 4
  br label %2892

2892:                                             ; preds = %2891, %2887
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8088, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 15, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  %2893 = load i32, ptr %67, align 4
  switch i32 %2893, label %2896 [
    i32 0, label %2894
    i32 1, label %2894
  ]

2894:                                             ; preds = %2892, %2892
  %2895 = load i32, ptr %3, align 4
  ret i32 %2895

2896:                                             ; preds = %2892
  unreachable
}

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

; 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) #2

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #4

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

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

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

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

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

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

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

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

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

declare i32 @fflush(ptr noundef) #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #4

declare i32 @s2n_enable_atexit() #4

declare i32 @s2n_init() #4

declare i32 @s2n_disable_tls13_in_test(...) #4

declare ptr @s2n_connection_new(i32 noundef) #4

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

declare i32 @s2n_get_public_random_data(ptr noundef) #4

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

declare i32 @s2n_stuffer_wipe(ptr noundef) #4

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

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

declare void @s2n_debug_info_reset() #4

; 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) #4

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

declare i32 @s2n_record_parse(ptr noundef) #4

declare i32 @s2n_connection_free(ptr noundef) #4

declare i32 @s2n_cleanup() #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 232}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 640}
!43 = !{!16, !10, i64 632}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_crypto_parameters", !10, i64 0, !46, i64 8, !46, i64 16, !47, i64 24, !47, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!46 = !{!"s2n_session_key", !10, i64 0}
!47 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !48, i64 16, !48, i64 72, !48, i64 128, !48, i64 184, !7, i64 240, !7, i64 368}
!48 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!49 = !{!50, !10, i64 48}
!50 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!51 = !{!52, !10, i64 0}
!52 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !18, i64 16}
!53 = !{!54, !10, i64 64}
!54 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!55 = !{!54, !10, i64 80}
!56 = !{!54, !10, i64 72}
!57 = !{!16, !7, i64 220}
!58 = !{!31, !31, i64 0}
!59 = !{!16, !10, i64 1896}
!60 = !{!7, !7, i64 0}
!61 = !{!16, !6, i64 1924}
!62 = !{!16, !6, i64 1920}
!63 = distinct !{!63, !64}
!64 = !{!"llvm.loop.mustprogress"}
!65 = !{!54, !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_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
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@__const.main.des3_key = external hidden unnamed_addr constant [24 x i8], align 16
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [80 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_3des_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.13 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.47 = 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 [24 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
  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 24, ptr nonnull %4) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %4, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.des3_key, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %11 = load i32, ptr @test_count, align 4, !tbaa !5
  %12 = add nsw i32 %11, 1
  store i32 %12, ptr @test_count, align 4, !tbaa !5
  %13 = call i32 @s2n_blob_init(ptr noundef nonnull %5, ptr noundef nonnull %4, i32 noundef 24) #12
  %14 = icmp eq i32 %13, -1
  br i1 %14, label %15, label %39

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

22:                                               ; preds = %15
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = call i32 @fileno(ptr noundef %23) #12
  %25 = call i32 @isatty(i32 noundef %24) #12
  %.not195 = icmp eq i32 %25, 0
  br i1 %.not195, label %26, label %27

26:                                               ; preds = %22, %15
  br label %27

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

39:                                               ; preds = %2
  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)
  %40 = load i32, ptr @test_count, align 4, !tbaa !5
  %41 = add nsw i32 %40, 1
  store i32 %41, ptr @test_count, align 4, !tbaa !5
  %42 = call i32 @s2n_blob_init(ptr noundef nonnull %7, ptr noundef nonnull %6, i32 noundef 8088) #12
  %43 = icmp eq i32 %42, -1
  br i1 %43, label %44, label %68

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

51:                                               ; preds = %44
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = call i32 @fileno(ptr noundef %52) #12
  %54 = call i32 @isatty(i32 noundef %53) #12
  %.not194 = icmp eq i32 %54, 0
  br i1 %.not194, label %55, label %56

55:                                               ; preds = %51, %44
  br label %56

56:                                               ; preds = %51, %55
  %.str.4.sink208 = phi ptr [ @.str.4, %55 ], [ @.str, %51 ]
  store i32 %46, ptr %45, align 4, !tbaa !5
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = load i32, ptr @test_count, align 4, !tbaa !5
  %59 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = call ptr @s2n_strerror(i32 noundef %60, ptr noundef nonnull @.str.3) #12
  %62 = load i32, ptr %59, align 4, !tbaa !5
  %63 = call ptr @s2n_strerror_debug(i32 noundef %62, ptr noundef nonnull @.str.3) #12
  %64 = load i32, ptr %45, align 4, !tbaa !5
  %65 = call ptr @strerror(i32 noundef %64) #12
  %66 = load i32, ptr %45, align 4, !tbaa !5
  %67 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %57, ptr noundef nonnull %.str.4.sink208, i32 noundef %58, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2, i32 noundef 39, ptr noundef %61, ptr noundef %63, ptr noundef %65, i32 noundef %66) #14
  call void @exit(i32 noundef 1) #15
  unreachable

68:                                               ; preds = %39
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %69 = load ptr, ptr @stdout, align 8, !tbaa !9
  %70 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2) #12
  %71 = load ptr, ptr @stdout, align 8, !tbaa !9
  %72 = call i32 @fflush(ptr noundef %71)
  %73 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %74 = icmp eq i32 %73, -1
  br i1 %74, label %75, label %99

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

82:                                               ; preds = %75
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = call i32 @fileno(ptr noundef %83) #12
  %85 = call i32 @isatty(i32 noundef %84) #12
  %.not193 = icmp eq i32 %85, 0
  br i1 %.not193, label %86, label %87

86:                                               ; preds = %82, %75
  br label %87

87:                                               ; preds = %82, %86
  %.str.4.sink219 = phi ptr [ @.str.4, %86 ], [ @.str, %82 ]
  store i32 %77, ptr %76, align 4, !tbaa !5
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = load i32, ptr @test_count, align 4, !tbaa !5
  %90 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %91 = load i32, ptr %90, align 4, !tbaa !5
  %92 = call ptr @s2n_strerror(i32 noundef %91, ptr noundef nonnull @.str.3) #12
  %93 = load i32, ptr %90, align 4, !tbaa !5
  %94 = call ptr @s2n_strerror_debug(i32 noundef %93, ptr noundef nonnull @.str.3) #12
  %95 = load i32, ptr %76, align 4, !tbaa !5
  %96 = call ptr @strerror(i32 noundef %95) #12
  %97 = load i32, ptr %76, align 4, !tbaa !5
  %98 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %88, ptr noundef nonnull %.str.4.sink219, i32 noundef %89, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2, i32 noundef 41, ptr noundef %92, ptr noundef %94, ptr noundef %96, i32 noundef %97) #14
  call void @exit(i32 noundef 1) #15
  unreachable

99:                                               ; preds = %68
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = add nsw i32 %100, 1
  store i32 %101, ptr @test_count, align 4, !tbaa !5
  %102 = call i32 @s2n_enable_atexit() #12
  %103 = icmp eq i32 %102, -1
  br i1 %103, label %104, label %128

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

111:                                              ; preds = %104
  %112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %113 = call i32 @fileno(ptr noundef %112) #12
  %114 = call i32 @isatty(i32 noundef %113) #12
  %.not192 = icmp eq i32 %114, 0
  br i1 %.not192, label %115, label %116

115:                                              ; preds = %111, %104
  br label %116

116:                                              ; preds = %111, %115
  %.str.4.sink230 = phi ptr [ @.str.4, %115 ], [ @.str, %111 ]
  store i32 %106, ptr %105, align 4, !tbaa !5
  %117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %118 = load i32, ptr @test_count, align 4, !tbaa !5
  %119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = call ptr @s2n_strerror(i32 noundef %120, ptr noundef nonnull @.str.3) #12
  %122 = load i32, ptr %119, align 4, !tbaa !5
  %123 = call ptr @s2n_strerror_debug(i32 noundef %122, ptr noundef nonnull @.str.3) #12
  %124 = load i32, ptr %105, align 4, !tbaa !5
  %125 = call ptr @strerror(i32 noundef %124) #12
  %126 = load i32, ptr %105, align 4, !tbaa !5
  %127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %117, ptr noundef nonnull %.str.4.sink230, i32 noundef %118, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.2, i32 noundef 41, ptr noundef %121, ptr noundef %123, ptr noundef %125, i32 noundef %126) #14
  call void @exit(i32 noundef 1) #15
  unreachable

128:                                              ; preds = %99
  %129 = call i32 @s2n_init() #12
  %130 = icmp eq i32 %129, -1
  br i1 %130, label %131, label %155

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

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

142:                                              ; preds = %138, %131
  br label %143

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

155:                                              ; preds = %128
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr @test_count, align 4, !tbaa !5
  %158 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %159 = icmp eq i32 %158, -1
  br i1 %159, label %160, label %184

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

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

171:                                              ; preds = %167, %160
  br label %172

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

184:                                              ; preds = %155
  %185 = load i32, ptr @test_count, align 4, !tbaa !5
  %186 = add nsw i32 %185, 1
  store i32 %186, ptr @test_count, align 4, !tbaa !5
  %187 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %188 = icmp eq ptr %187, null
  br i1 %188, label %189, label %213

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

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

200:                                              ; preds = %196, %189
  br label %201

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

213:                                              ; preds = %184
  %214 = load i32, ptr @test_count, align 4, !tbaa !5
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr @test_count, align 4, !tbaa !5
  %216 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %7) #12
  %217 = call zeroext i1 @s2n_result_is_ok(i32 %216)
  br i1 %217, label %242, label %218

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

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

229:                                              ; preds = %225, %218
  br label %230

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

242:                                              ; preds = %213
  %243 = getelementptr inbounds i8, ptr %187, i64 232
  %244 = load ptr, ptr %243, align 8, !tbaa !15
  %245 = getelementptr inbounds i8, ptr %187, i64 640
  store ptr %244, ptr %245, align 8, !tbaa !42
  %246 = getelementptr inbounds i8, ptr %187, i64 632
  store ptr %244, ptr %246, align 8, !tbaa !43
  %247 = load ptr, ptr %244, align 8, !tbaa !44
  %248 = getelementptr inbounds i8, ptr %247, i64 48
  store ptr @s2n_record_alg_3des_sha, ptr %248, align 8, !tbaa !49
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = load ptr, ptr @s2n_record_alg_3des_sha, align 8, !tbaa !51
  %252 = getelementptr inbounds i8, ptr %251, i64 64
  %253 = load ptr, ptr %252, align 8, !tbaa !53
  %254 = getelementptr inbounds i8, ptr %244, i64 16
  %255 = call i32 %253(ptr noundef nonnull %254) #12
  %256 = call zeroext i1 @s2n_result_is_ok(i32 %255)
  br i1 %256, label %281, label %257

257:                                              ; preds = %242
  %258 = tail call ptr @__errno_location() #13
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = call i32 @s2n_print_stacktrace(ptr noundef %260) #12
  %262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %263 = trunc nuw i8 %262 to i1
  br i1 %263, label %264, label %268

264:                                              ; preds = %257
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = call i32 @fileno(ptr noundef %265) #12
  %267 = call i32 @isatty(i32 noundef %266) #12
  %.not151 = icmp eq i32 %267, 0
  br i1 %.not151, label %268, label %269

268:                                              ; preds = %264, %257
  br label %269

269:                                              ; preds = %264, %268
  %.str.4.sink285 = phi ptr [ @.str.4, %268 ], [ @.str, %264 ]
  store i32 %259, ptr %258, align 4, !tbaa !5
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = load i32, ptr @test_count, align 4, !tbaa !5
  %272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror(i32 noundef %273, ptr noundef nonnull @.str.3) #12
  %275 = load i32, ptr %272, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror_debug(i32 noundef %275, ptr noundef nonnull @.str.3) #12
  %277 = load i32, ptr %258, align 4, !tbaa !5
  %278 = call ptr @strerror(i32 noundef %277) #12
  %279 = load i32, ptr %258, align 4, !tbaa !5
  %280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef nonnull %.str.4.sink285, i32 noundef %271, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 53, ptr noundef %274, ptr noundef %276, ptr noundef %278, i32 noundef %279) #14
  call void @exit(i32 noundef 1) #15
  unreachable

281:                                              ; preds = %242
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr @test_count, align 4, !tbaa !5
  %284 = load ptr, ptr %243, align 8, !tbaa !15
  %285 = load ptr, ptr %284, align 8, !tbaa !44
  %286 = getelementptr inbounds i8, ptr %285, i64 48
  %287 = load ptr, ptr %286, align 8, !tbaa !49
  %288 = load ptr, ptr %287, align 8, !tbaa !51
  %289 = getelementptr inbounds i8, ptr %288, i64 64
  %290 = load ptr, ptr %289, align 8, !tbaa !53
  %291 = getelementptr inbounds i8, ptr %284, i64 8
  %292 = call i32 %290(ptr noundef nonnull %291) #12
  %293 = call zeroext i1 @s2n_result_is_ok(i32 %292)
  br i1 %293, label %318, label %294

294:                                              ; preds = %281
  %295 = tail call ptr @__errno_location() #13
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %298 = call i32 @s2n_print_stacktrace(ptr noundef %297) #12
  %299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %300 = trunc nuw i8 %299 to i1
  br i1 %300, label %301, label %305

301:                                              ; preds = %294
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = call i32 @fileno(ptr noundef %302) #12
  %304 = call i32 @isatty(i32 noundef %303) #12
  %.not152 = icmp eq i32 %304, 0
  br i1 %.not152, label %305, label %306

305:                                              ; preds = %301, %294
  br label %306

306:                                              ; preds = %301, %305
  %.str.4.sink296 = phi ptr [ @.str.4, %305 ], [ @.str, %301 ]
  store i32 %296, ptr %295, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror(i32 noundef %310, ptr noundef nonnull @.str.3) #12
  %312 = load i32, ptr %309, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror_debug(i32 noundef %312, ptr noundef nonnull @.str.3) #12
  %314 = load i32, ptr %295, align 4, !tbaa !5
  %315 = call ptr @strerror(i32 noundef %314) #12
  %316 = load i32, ptr %295, align 4, !tbaa !5
  %317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef nonnull %.str.4.sink296, i32 noundef %308, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 54, ptr noundef %311, ptr noundef %313, ptr noundef %315, i32 noundef %316) #14
  call void @exit(i32 noundef 1) #15
  unreachable

318:                                              ; preds = %281
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = add nsw i32 %319, 1
  store i32 %320, ptr @test_count, align 4, !tbaa !5
  %321 = load ptr, ptr %243, align 8, !tbaa !15
  %322 = load ptr, ptr %321, align 8, !tbaa !44
  %323 = getelementptr inbounds i8, ptr %322, i64 48
  %324 = load ptr, ptr %323, align 8, !tbaa !49
  %325 = load ptr, ptr %324, align 8, !tbaa !51
  %326 = getelementptr inbounds i8, ptr %325, i64 80
  %327 = load ptr, ptr %326, align 8, !tbaa !55
  %328 = getelementptr inbounds i8, ptr %321, i64 16
  %329 = call i32 %327(ptr noundef nonnull %328, ptr noundef nonnull %5) #12
  %330 = call zeroext i1 @s2n_result_is_ok(i32 %329)
  br i1 %330, label %355, label %331

331:                                              ; preds = %318
  %332 = tail call ptr @__errno_location() #13
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = call i32 @s2n_print_stacktrace(ptr noundef %334) #12
  %336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %337 = trunc nuw i8 %336 to i1
  br i1 %337, label %338, label %342

338:                                              ; preds = %331
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @fileno(ptr noundef %339) #12
  %341 = call i32 @isatty(i32 noundef %340) #12
  %.not153 = icmp eq i32 %341, 0
  br i1 %.not153, label %342, label %343

342:                                              ; preds = %338, %331
  br label %343

343:                                              ; preds = %338, %342
  %.str.4.sink307 = phi ptr [ @.str.4, %342 ], [ @.str, %338 ]
  store i32 %333, ptr %332, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror(i32 noundef %347, ptr noundef nonnull @.str.3) #12
  %349 = load i32, ptr %346, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef nonnull @.str.3) #12
  %351 = load i32, ptr %332, align 4, !tbaa !5
  %352 = call ptr @strerror(i32 noundef %351) #12
  %353 = load i32, ptr %332, align 4, !tbaa !5
  %354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef nonnull %.str.4.sink307, i32 noundef %345, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 55, ptr noundef %348, ptr noundef %350, ptr noundef %352, i32 noundef %353) #14
  call void @exit(i32 noundef 1) #15
  unreachable

355:                                              ; preds = %318
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = load ptr, ptr %243, align 8, !tbaa !15
  %359 = load ptr, ptr %358, align 8, !tbaa !44
  %360 = getelementptr inbounds i8, ptr %359, i64 48
  %361 = load ptr, ptr %360, align 8, !tbaa !49
  %362 = load ptr, ptr %361, align 8, !tbaa !51
  %363 = getelementptr inbounds i8, ptr %362, i64 72
  %364 = load ptr, ptr %363, align 8, !tbaa !56
  %365 = getelementptr inbounds i8, ptr %358, i64 8
  %366 = call i32 %364(ptr noundef nonnull %365, ptr noundef nonnull %5) #12
  %367 = call zeroext i1 @s2n_result_is_ok(i32 %366)
  br i1 %367, label %392, label %368

368:                                              ; preds = %355
  %369 = tail call ptr @__errno_location() #13
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @s2n_print_stacktrace(ptr noundef %371) #12
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %368
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @fileno(ptr noundef %376) #12
  %378 = call i32 @isatty(i32 noundef %377) #12
  %.not154 = icmp eq i32 %378, 0
  br i1 %.not154, label %379, label %380

379:                                              ; preds = %375, %368
  br label %380

380:                                              ; preds = %375, %379
  %.str.4.sink318 = phi ptr [ @.str.4, %379 ], [ @.str, %375 ]
  store i32 %370, ptr %369, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror(i32 noundef %384, ptr noundef nonnull @.str.3) #12
  %386 = load i32, ptr %383, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef nonnull @.str.3) #12
  %388 = load i32, ptr %369, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #12
  %390 = load i32, ptr %369, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.4.sink318, i32 noundef %382, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 56, ptr noundef %385, ptr noundef %387, ptr noundef %389, i32 noundef %390) #14
  call void @exit(i32 noundef 1) #15
  unreachable

392:                                              ; preds = %355
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = load ptr, ptr %243, align 8, !tbaa !15
  %396 = getelementptr inbounds i8, ptr %395, i64 24
  %397 = call i32 @s2n_hmac_init(ptr noundef nonnull %396, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %398 = icmp eq i32 %397, -1
  br i1 %398, label %399, label %423

399:                                              ; preds = %392
  %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
  %.not188 = icmp eq i32 %409, 0
  br i1 %.not188, label %410, label %411

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

411:                                              ; preds = %406, %410
  %.str.4.sink329 = phi ptr [ @.str.4, %410 ], [ @.str, %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.3) #12
  %417 = load i32, ptr %414, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror_debug(i32 noundef %417, ptr noundef nonnull @.str.3) #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.4.sink329, i32 noundef %413, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 58, ptr noundef %416, ptr noundef %418, ptr noundef %420, i32 noundef %421) #14
  call void @exit(i32 noundef 1) #15
  unreachable

423:                                              ; preds = %392
  %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 %243, align 8, !tbaa !15
  %427 = getelementptr inbounds i8, ptr %426, i64 456
  %428 = call i32 @s2n_hmac_init(ptr noundef nonnull %427, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %429 = icmp eq i32 %428, -1
  br i1 %429, label %430, label %454

430:                                              ; preds = %423
  %431 = tail call ptr @__errno_location() #13
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = call i32 @s2n_print_stacktrace(ptr noundef %433) #12
  %435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %436 = trunc nuw i8 %435 to i1
  br i1 %436, label %437, label %441

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @fileno(ptr noundef %438) #12
  %440 = call i32 @isatty(i32 noundef %439) #12
  %.not187 = icmp eq i32 %440, 0
  br i1 %.not187, label %441, label %442

441:                                              ; preds = %437, %430
  br label %442

442:                                              ; preds = %437, %441
  %.str.4.sink340 = phi ptr [ @.str.4, %441 ], [ @.str, %437 ]
  store i32 %432, ptr %431, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef nonnull @.str.3) #12
  %448 = load i32, ptr %445, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror_debug(i32 noundef %448, ptr noundef nonnull @.str.3) #12
  %450 = load i32, ptr %431, align 4, !tbaa !5
  %451 = call ptr @strerror(i32 noundef %450) #12
  %452 = load i32, ptr %431, align 4, !tbaa !5
  %453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.4.sink340, i32 noundef %444, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 59, ptr noundef %447, ptr noundef %449, ptr noundef %451, i32 noundef %452) #14
  call void @exit(i32 noundef 1) #15
  unreachable

454:                                              ; preds = %423
  %455 = getelementptr inbounds i8, ptr %187, i64 220
  store i8 32, ptr %455, align 4, !tbaa !57
  %456 = getelementptr inbounds i8, ptr %187, i64 1896
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = getelementptr inbounds i8, ptr %187, i64 1856
  %459 = getelementptr inbounds i8, ptr %187, i64 1776
  %460 = getelementptr inbounds i8, ptr %187, i64 1924
  %461 = getelementptr inbounds i8, ptr %187, i64 1920
  br label %475

462:                                              ; preds = %1101
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = load ptr, ptr %243, align 8, !tbaa !15
  %466 = load ptr, ptr %465, align 8, !tbaa !44
  %467 = getelementptr inbounds i8, ptr %466, i64 48
  %468 = load ptr, ptr %467, align 8, !tbaa !49
  %469 = load ptr, ptr %468, align 8, !tbaa !51
  %470 = getelementptr inbounds i8, ptr %469, i64 88
  %471 = load ptr, ptr %470, align 8, !tbaa !58
  %472 = getelementptr inbounds i8, ptr %465, i64 16
  %473 = call i32 %471(ptr noundef nonnull %472) #12
  %474 = call zeroext i1 @s2n_result_is_ok(i32 %473)
  br i1 %474, label %1126, label %1103

475:                                              ; preds = %454, %1101
  %.0197 = phi i32 [ 0, %454 ], [ %1102, %1101 ]
  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)
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr @test_count, align 4, !tbaa !5
  %478 = call i32 @s2n_blob_init(ptr noundef nonnull %8, ptr noundef nonnull %6, i32 noundef %.0197) #12
  %479 = icmp eq i32 %478, -1
  br i1 %479, label %480, label %503

480:                                              ; preds = %475
  %481 = tail call ptr @__errno_location() #13
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = call i32 @s2n_print_stacktrace(ptr noundef %483) #12
  %485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %486 = trunc nuw i8 %485 to i1
  br i1 %486, label %487, label %491

487:                                              ; preds = %480
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @fileno(ptr noundef %488) #12
  %490 = call i32 @isatty(i32 noundef %489) #12
  %.not186 = icmp eq i32 %490, 0
  br i1 %.not186, label %491, label %492

491:                                              ; preds = %487, %480
  br label %492

492:                                              ; preds = %487, %491
  %.str.4.sink351 = phi ptr [ @.str.4, %491 ], [ @.str, %487 ]
  store i32 %482, ptr %481, align 4, !tbaa !5
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = load i32, ptr %457, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef nonnull @.str.3) #12
  %497 = load i32, ptr %457, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror_debug(i32 noundef %497, ptr noundef nonnull @.str.3) #12
  %499 = load i32, ptr %481, align 4, !tbaa !5
  %500 = call ptr @strerror(i32 noundef %499) #12
  %501 = load i32, ptr %481, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %493, ptr noundef nonnull %.str.4.sink351, i32 noundef %494, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 64, ptr noundef %496, ptr noundef %498, ptr noundef %500, i32 noundef %501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

503:                                              ; preds = %475
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %506 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %456) #12
  %507 = icmp eq i32 %506, -1
  br i1 %507, label %508, label %531

508:                                              ; preds = %503
  %509 = tail call ptr @__errno_location() #13
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511) #12
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %519

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

519:                                              ; preds = %515, %508
  br label %520

520:                                              ; preds = %515, %519
  %.str.4.sink360 = phi ptr [ @.str.4, %519 ], [ @.str, %515 ]
  store i32 %510, ptr %509, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = load i32, ptr %457, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.3) #12
  %525 = load i32, ptr %457, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.3) #12
  %527 = load i32, ptr %509, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #12
  %529 = load i32, ptr %509, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef nonnull %.str.4.sink360, i32 noundef %522, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 67, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #14
  call void @exit(i32 noundef 1) #15
  unreachable

531:                                              ; preds = %503
  %532 = call i32 @s2n_record_write(ptr noundef nonnull %187, i8 noundef zeroext 23, ptr noundef nonnull %8) #12
  %.not163 = icmp eq i32 %.0197, 8088
  %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
  br i1 %.not163, label %560, label %535

535:                                              ; preds = %531
  %536 = call zeroext i1 @s2n_result_is_ok(i32 %532)
  br i1 %536, label %642, label %537

537:                                              ; preds = %535
  %538 = tail call ptr @__errno_location() #13
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @s2n_print_stacktrace(ptr noundef %540) #12
  %542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %544, label %548

544:                                              ; preds = %537
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @fileno(ptr noundef %545) #12
  %547 = call i32 @isatty(i32 noundef %546) #12
  %.not167 = icmp eq i32 %547, 0
  br i1 %.not167, label %548, label %549

548:                                              ; preds = %544, %537
  br label %549

549:                                              ; preds = %544, %548
  %.str.4.sink369 = phi ptr [ @.str.4, %548 ], [ @.str, %544 ]
  store i32 %539, ptr %538, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = load i32, ptr %457, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.3) #12
  %554 = load i32, ptr %457, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.3) #12
  %556 = load i32, ptr %538, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #12
  %558 = load i32, ptr %538, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef nonnull %.str.4.sink369, i32 noundef %551, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 71, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #14
  call void @exit(i32 noundef 1) #15
  unreachable

560:                                              ; preds = %531
  %561 = call zeroext i1 @s2n_result_is_error(i32 %532)
  br i1 %561, label %585, label %562

562:                                              ; preds = %560
  %563 = tail call ptr @__errno_location() #13
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @s2n_print_stacktrace(ptr noundef %565) #12
  %567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %568 = trunc nuw i8 %567 to i1
  br i1 %568, label %569, label %573

569:                                              ; preds = %562
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @fileno(ptr noundef %570) #12
  %572 = call i32 @isatty(i32 noundef %571) #12
  %.not164 = icmp eq i32 %572, 0
  br i1 %.not164, label %573, label %574

573:                                              ; preds = %569, %562
  br label %574

574:                                              ; preds = %569, %573
  %.str.4.sink378 = phi ptr [ @.str.4, %573 ], [ @.str, %569 ]
  store i32 %564, ptr %563, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = load i32, ptr %457, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror(i32 noundef %577, ptr noundef nonnull @.str.3) #12
  %579 = load i32, ptr %457, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror_debug(i32 noundef %579, ptr noundef nonnull @.str.3) #12
  %581 = load i32, ptr %563, align 4, !tbaa !5
  %582 = call ptr @strerror(i32 noundef %581) #12
  %583 = load i32, ptr %563, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %575, ptr noundef nonnull %.str.4.sink378, i32 noundef %576, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 74, ptr noundef %578, ptr noundef %580, ptr noundef %582, i32 noundef %583) #14
  call void @exit(i32 noundef 1) #15
  unreachable

585:                                              ; preds = %560
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = add nsw i32 %586, 1
  store i32 %587, ptr @test_count, align 4, !tbaa !5
  %588 = load i32, ptr %457, align 4, !tbaa !5
  %589 = icmp eq i32 %588, 335544390
  br i1 %589, label %613, label %590

590:                                              ; preds = %585
  %591 = tail call ptr @__errno_location() #13
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593) #12
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %590
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #12
  %600 = call i32 @isatty(i32 noundef %599) #12
  %.not165 = icmp eq i32 %600, 0
  br i1 %.not165, label %601, label %602

601:                                              ; preds = %597, %590
  br label %602

602:                                              ; preds = %597, %601
  %.str.4.sink387 = phi ptr [ @.str.4, %601 ], [ @.str, %597 ]
  store i32 %592, ptr %591, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = load i32, ptr %457, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror(i32 noundef %605, ptr noundef nonnull @.str.3) #12
  %607 = load i32, ptr %457, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror_debug(i32 noundef %607, ptr noundef nonnull @.str.3) #12
  %609 = load i32, ptr %591, align 4, !tbaa !5
  %610 = call ptr @strerror(i32 noundef %609) #12
  %611 = load i32, ptr %591, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef nonnull %.str.4.sink387, i32 noundef %604, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 74, ptr noundef %606, ptr noundef %608, ptr noundef %610, i32 noundef %611) #14
  call void @exit(i32 noundef 1) #15
  unreachable

613:                                              ; preds = %585
  %614 = add nsw i32 %586, 2
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %616 = icmp eq ptr %615, null
  br i1 %616, label %617, label %640

617:                                              ; preds = %613
  %618 = tail call ptr @__errno_location() #13
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 @s2n_print_stacktrace(ptr noundef %620) #12
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %623 = trunc nuw i8 %622 to i1
  br i1 %623, label %624, label %628

624:                                              ; preds = %617
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @fileno(ptr noundef %625) #12
  %627 = call i32 @isatty(i32 noundef %626) #12
  %.not166 = icmp eq i32 %627, 0
  br i1 %.not166, label %628, label %629

628:                                              ; preds = %624, %617
  br label %629

629:                                              ; preds = %624, %628
  %.str.4.sink396 = phi ptr [ @.str.4, %628 ], [ @.str, %624 ]
  store i32 %619, ptr %618, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = load i32, ptr %457, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror(i32 noundef %632, ptr noundef nonnull @.str.3) #12
  %634 = load i32, ptr %457, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef nonnull @.str.3) #12
  %636 = load i32, ptr %618, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #12
  %638 = load i32, ptr %618, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.4.sink396, i32 noundef %631, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 74, ptr noundef %633, ptr noundef %635, ptr noundef %637, i32 noundef %638) #14
  call void @exit(i32 noundef 1) #15
  unreachable

640:                                              ; preds = %613
  store i32 0, ptr %457, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %641 = tail call ptr @__errno_location() #13
  store i32 0, ptr %641, align 4, !tbaa !5
  br label %642

642:                                              ; preds = %535, %640
  %.0145 = phi i32 [ 8087, %640 ], [ %.0197, %535 ]
  %643 = trunc nuw i32 %.0145 to i16
  %644 = add nuw nsw i16 %643, 29
  %645 = and i16 %644, 7
  %.not168 = icmp eq i16 %645, 0
  %reass.sub = and i16 %644, 16376
  %646 = add nuw nsw i16 %reass.sub, 8
  %.0146 = select i1 %.not168, i16 %644, i16 %646
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr @test_count, align 4, !tbaa !5
  %649 = load ptr, ptr %456, align 8, !tbaa !59
  %650 = load i8, ptr %649, align 1, !tbaa !60
  %651 = icmp eq i8 %650, 23
  br i1 %651, label %675, label %652

652:                                              ; preds = %642
  %653 = tail call ptr @__errno_location() #13
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @s2n_print_stacktrace(ptr noundef %655) #12
  %657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %658 = trunc nuw i8 %657 to i1
  br i1 %658, label %659, label %663

659:                                              ; preds = %652
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = call i32 @fileno(ptr noundef %660) #12
  %662 = call i32 @isatty(i32 noundef %661) #12
  %.not169 = icmp eq i32 %662, 0
  br i1 %.not169, label %663, label %664

663:                                              ; preds = %659, %652
  br label %664

664:                                              ; preds = %659, %663
  %.str.4.sink405 = phi ptr [ @.str.4, %663 ], [ @.str, %659 ]
  store i32 %654, ptr %653, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = load i32, ptr %457, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.3) #12
  %669 = load i32, ptr %457, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.3) #12
  %671 = load i32, ptr %653, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #12
  %673 = load i32, ptr %653, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef nonnull %.str.4.sink405, i32 noundef %666, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 82, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #14
  call void @exit(i32 noundef 1) #15
  unreachable

675:                                              ; preds = %642
  %676 = add nsw i32 %647, 2
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = getelementptr inbounds i8, ptr %649, i64 1
  %678 = load i8, ptr %677, align 1, !tbaa !60
  %679 = icmp eq i8 %678, 3
  br i1 %679, label %703, label %680

680:                                              ; preds = %675
  %681 = tail call ptr @__errno_location() #13
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = call i32 @s2n_print_stacktrace(ptr noundef %683) #12
  %685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %686 = trunc nuw i8 %685 to i1
  br i1 %686, label %687, label %691

687:                                              ; preds = %680
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @fileno(ptr noundef %688) #12
  %690 = call i32 @isatty(i32 noundef %689) #12
  %.not170 = icmp eq i32 %690, 0
  br i1 %.not170, label %691, label %692

691:                                              ; preds = %687, %680
  br label %692

692:                                              ; preds = %687, %691
  %.str.4.sink414 = phi ptr [ @.str.4, %691 ], [ @.str, %687 ]
  store i32 %682, ptr %681, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = load i32, ptr %457, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror(i32 noundef %695, ptr noundef nonnull @.str.3) #12
  %697 = load i32, ptr %457, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror_debug(i32 noundef %697, ptr noundef nonnull @.str.3) #12
  %699 = load i32, ptr %681, align 4, !tbaa !5
  %700 = call ptr @strerror(i32 noundef %699) #12
  %701 = load i32, ptr %681, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef nonnull %.str.4.sink414, i32 noundef %694, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 83, ptr noundef %696, ptr noundef %698, ptr noundef %700, i32 noundef %701) #14
  call void @exit(i32 noundef 1) #15
  unreachable

703:                                              ; preds = %675
  %704 = add nsw i32 %647, 3
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = getelementptr inbounds i8, ptr %649, i64 2
  %706 = load i8, ptr %705, align 1, !tbaa !60
  %707 = icmp eq i8 %706, 2
  br i1 %707, label %731, label %708

708:                                              ; preds = %703
  %709 = tail call ptr @__errno_location() #13
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @s2n_print_stacktrace(ptr noundef %711) #12
  %713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %715, label %719

715:                                              ; preds = %708
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @fileno(ptr noundef %716) #12
  %718 = call i32 @isatty(i32 noundef %717) #12
  %.not171 = icmp eq i32 %718, 0
  br i1 %.not171, label %719, label %720

719:                                              ; preds = %715, %708
  br label %720

720:                                              ; preds = %715, %719
  %.str.4.sink423 = phi ptr [ @.str.4, %719 ], [ @.str, %715 ]
  store i32 %710, ptr %709, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = load i32, ptr %457, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef nonnull @.str.3) #12
  %725 = load i32, ptr %457, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef nonnull @.str.3) #12
  %727 = load i32, ptr %709, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #12
  %729 = load i32, ptr %709, align 4, !tbaa !5
  %730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.4.sink423, i32 noundef %722, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 84, ptr noundef %724, ptr noundef %726, ptr noundef %728, i32 noundef %729) #14
  call void @exit(i32 noundef 1) #15
  unreachable

731:                                              ; preds = %703
  %732 = add nsw i32 %647, 4
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = getelementptr inbounds i8, ptr %649, i64 3
  %734 = load i8, ptr %733, align 1, !tbaa !60
  %735 = lshr i16 %.0146, 8
  %736 = zext i8 %734 to i16
  %737 = icmp eq i16 %735, %736
  br i1 %737, label %761, label %738

738:                                              ; preds = %731
  %739 = tail call ptr @__errno_location() #13
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @s2n_print_stacktrace(ptr noundef %741) #12
  %743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %744 = trunc nuw i8 %743 to i1
  br i1 %744, label %745, label %749

745:                                              ; preds = %738
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = call i32 @fileno(ptr noundef %746) #12
  %748 = call i32 @isatty(i32 noundef %747) #12
  %.not172 = icmp eq i32 %748, 0
  br i1 %.not172, label %749, label %750

749:                                              ; preds = %745, %738
  br label %750

750:                                              ; preds = %745, %749
  %.str.4.sink432 = phi ptr [ @.str.4, %749 ], [ @.str, %745 ]
  store i32 %740, ptr %739, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = load i32, ptr %457, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef nonnull @.str.3) #12
  %755 = load i32, ptr %457, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror_debug(i32 noundef %755, ptr noundef nonnull @.str.3) #12
  %757 = load i32, ptr %739, align 4, !tbaa !5
  %758 = call ptr @strerror(i32 noundef %757) #12
  %759 = load i32, ptr %739, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef nonnull %.str.4.sink432, i32 noundef %752, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 85, ptr noundef %754, ptr noundef %756, ptr noundef %758, i32 noundef %759) #14
  call void @exit(i32 noundef 1) #15
  unreachable

761:                                              ; preds = %731
  %762 = add nsw i32 %647, 5
  store i32 %762, ptr @test_count, align 4, !tbaa !5
  %763 = getelementptr inbounds i8, ptr %649, i64 4
  %764 = load i8, ptr %763, align 1, !tbaa !60
  %765 = trunc i16 %.0146 to i8
  %766 = icmp eq i8 %764, %765
  br i1 %766, label %790, label %767

767:                                              ; preds = %761
  %768 = tail call ptr @__errno_location() #13
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #12
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

774:                                              ; preds = %767
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #12
  %777 = call i32 @isatty(i32 noundef %776) #12
  %.not173 = icmp eq i32 %777, 0
  br i1 %.not173, label %778, label %779

778:                                              ; preds = %774, %767
  br label %779

779:                                              ; preds = %774, %778
  %.str.4.sink441 = phi ptr [ @.str.4, %778 ], [ @.str, %774 ]
  store i32 %769, ptr %768, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = load i32, ptr %457, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.3) #12
  %784 = load i32, ptr %457, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.3) #12
  %786 = load i32, ptr %768, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #12
  %788 = load i32, ptr %768, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.4.sink441, i32 noundef %781, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 86, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #14
  call void @exit(i32 noundef 1) #15
  unreachable

790:                                              ; preds = %761
  %791 = icmp ugt i32 %.0145, 10
  br i1 %791, label %792, label %820

792:                                              ; preds = %790
  %793 = add nsw i32 %647, 6
  store i32 %793, ptr @test_count, align 4, !tbaa !5
  %794 = getelementptr inbounds i8, ptr %649, i64 5
  %795 = zext nneg i32 %.0145 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %794, ptr nonnull %6, i64 %795)
  %796 = icmp eq i32 %bcmp, 0
  br i1 %796, label %797, label %820

797:                                              ; preds = %792
  %798 = tail call ptr @__errno_location() #13
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @s2n_print_stacktrace(ptr noundef %800) #12
  %802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %803 = trunc nuw i8 %802 to i1
  br i1 %803, label %804, label %808

804:                                              ; preds = %797
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #12
  %807 = call i32 @isatty(i32 noundef %806) #12
  %.not184 = icmp eq i32 %807, 0
  br i1 %.not184, label %808, label %809

808:                                              ; preds = %804, %797
  br label %809

809:                                              ; preds = %804, %808
  %.str.4.sink450 = phi ptr [ @.str.4, %808 ], [ @.str, %804 ]
  store i32 %799, ptr %798, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = load i32, ptr %457, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef nonnull @.str.3) #12
  %814 = load i32, ptr %457, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef nonnull @.str.3) #12
  %816 = load i32, ptr %798, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #12
  %818 = load i32, ptr %798, align 4, !tbaa !5
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %810, ptr noundef nonnull %.str.4.sink450, i32 noundef %811, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 90, ptr noundef %813, ptr noundef %815, ptr noundef %817, i32 noundef %818) #14
  call void @exit(i32 noundef 1) #15
  unreachable

820:                                              ; preds = %790, %792
  %821 = phi i32 [ %762, %790 ], [ %793, %792 ]
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %458) #12
  %824 = icmp eq i32 %823, -1
  br i1 %824, label %825, label %848

825:                                              ; preds = %820
  %826 = tail call ptr @__errno_location() #13
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @s2n_print_stacktrace(ptr noundef %828) #12
  %830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %831 = trunc nuw i8 %830 to i1
  br i1 %831, label %832, label %836

832:                                              ; preds = %825
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @fileno(ptr noundef %833) #12
  %835 = call i32 @isatty(i32 noundef %834) #12
  %.not183 = icmp eq i32 %835, 0
  br i1 %.not183, label %836, label %837

836:                                              ; preds = %832, %825
  br label %837

837:                                              ; preds = %832, %836
  %.str.4.sink459 = phi ptr [ @.str.4, %836 ], [ @.str, %832 ]
  store i32 %827, ptr %826, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = load i32, ptr %457, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef nonnull @.str.3) #12
  %842 = load i32, ptr %457, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror_debug(i32 noundef %842, ptr noundef nonnull @.str.3) #12
  %844 = load i32, ptr %826, align 4, !tbaa !5
  %845 = call ptr @strerror(i32 noundef %844) #12
  %846 = load i32, ptr %826, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef nonnull %.str.4.sink459, i32 noundef %839, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 94, ptr noundef %841, ptr noundef %843, ptr noundef %845, i32 noundef %846) #14
  call void @exit(i32 noundef 1) #15
  unreachable

848:                                              ; preds = %820
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %459) #12
  %852 = icmp eq i32 %851, -1
  br i1 %852, label %853, label %876

853:                                              ; preds = %848
  %854 = tail call ptr @__errno_location() #13
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @s2n_print_stacktrace(ptr noundef %856) #12
  %858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %859 = trunc nuw i8 %858 to i1
  br i1 %859, label %860, label %864

860:                                              ; preds = %853
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = call i32 @fileno(ptr noundef %861) #12
  %863 = call i32 @isatty(i32 noundef %862) #12
  %.not182 = icmp eq i32 %863, 0
  br i1 %.not182, label %864, label %865

864:                                              ; preds = %860, %853
  br label %865

865:                                              ; preds = %860, %864
  %.str.4.sink468 = phi ptr [ @.str.4, %864 ], [ @.str, %860 ]
  store i32 %855, ptr %854, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = load i32, ptr %457, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror(i32 noundef %868, ptr noundef nonnull @.str.3) #12
  %870 = load i32, ptr %457, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror_debug(i32 noundef %870, ptr noundef nonnull @.str.3) #12
  %872 = load i32, ptr %854, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #12
  %874 = load i32, ptr %854, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %866, ptr noundef nonnull %.str.4.sink468, i32 noundef %867, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 95, ptr noundef %869, ptr noundef %871, ptr noundef %873, i32 noundef %874) #14
  call void @exit(i32 noundef 1) #15
  unreachable

876:                                              ; preds = %848
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %456, ptr noundef nonnull %459, i32 noundef 5) #12
  %880 = icmp eq i32 %879, -1
  br i1 %880, label %881, label %904

881:                                              ; preds = %876
  %882 = tail call ptr @__errno_location() #13
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @s2n_print_stacktrace(ptr noundef %884) #12
  %886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %887 = trunc nuw i8 %886 to i1
  br i1 %887, label %888, label %892

888:                                              ; preds = %881
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @fileno(ptr noundef %889) #12
  %891 = call i32 @isatty(i32 noundef %890) #12
  %.not181 = icmp eq i32 %891, 0
  br i1 %.not181, label %892, label %893

892:                                              ; preds = %888, %881
  br label %893

893:                                              ; preds = %888, %892
  %.str.4.sink477 = phi ptr [ @.str.4, %892 ], [ @.str, %888 ]
  store i32 %883, ptr %882, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = load i32, ptr %457, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.3) #12
  %898 = load i32, ptr %457, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.3) #12
  %900 = load i32, ptr %882, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #12
  %902 = load i32, ptr %882, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.4.sink477, i32 noundef %895, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 96, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #14
  call void @exit(i32 noundef 1) #15
  unreachable

904:                                              ; preds = %876
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @test_count, align 4, !tbaa !5
  %907 = load i32, ptr %460, align 4, !tbaa !61
  %908 = load i32, ptr %461, align 8, !tbaa !62
  %909 = sub i32 %907, %908
  %910 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %456, ptr noundef nonnull %458, i32 noundef %909) #12
  %911 = icmp eq i32 %910, -1
  br i1 %911, label %912, label %935

912:                                              ; preds = %904
  %913 = tail call ptr @__errno_location() #13
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @s2n_print_stacktrace(ptr noundef %915) #12
  %917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %918 = trunc nuw i8 %917 to i1
  br i1 %918, label %919, label %923

919:                                              ; preds = %912
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @fileno(ptr noundef %920) #12
  %922 = call i32 @isatty(i32 noundef %921) #12
  %.not180 = icmp eq i32 %922, 0
  br i1 %.not180, label %923, label %924

923:                                              ; preds = %919, %912
  br label %924

924:                                              ; preds = %919, %923
  %.str.4.sink486 = phi ptr [ @.str.4, %923 ], [ @.str, %919 ]
  store i32 %914, ptr %913, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = load i32, ptr %457, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef nonnull @.str.3) #12
  %929 = load i32, ptr %457, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.3) #12
  %931 = load i32, ptr %913, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #12
  %933 = load i32, ptr %913, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %925, ptr noundef nonnull %.str.4.sink486, i32 noundef %926, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 97, ptr noundef %928, ptr noundef %930, ptr noundef %932, i32 noundef %933) #14
  call void @exit(i32 noundef 1) #15
  unreachable

935:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #12
  store i8 0, ptr %9, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %10) #12
  store i16 0, ptr %10, align 2, !tbaa !63
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = call i32 @s2n_record_header_parse(ptr noundef nonnull %187, ptr noundef nonnull %9, ptr noundef nonnull %10) #12
  %939 = icmp eq i32 %938, -1
  br i1 %939, label %940, label %963

940:                                              ; preds = %935
  %941 = tail call ptr @__errno_location() #13
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943) #12
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc nuw i8 %945 to i1
  br i1 %946, label %947, label %951

947:                                              ; preds = %940
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #12
  %950 = call i32 @isatty(i32 noundef %949) #12
  %.not179 = icmp eq i32 %950, 0
  br i1 %.not179, label %951, label %952

951:                                              ; preds = %947, %940
  br label %952

952:                                              ; preds = %947, %951
  %.str.4.sink495 = phi ptr [ @.str.4, %951 ], [ @.str, %947 ]
  store i32 %942, ptr %941, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = load i32, ptr %457, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef nonnull @.str.3) #12
  %957 = load i32, ptr %457, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef nonnull @.str.3) #12
  %959 = load i32, ptr %941, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #12
  %961 = load i32, ptr %941, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef nonnull %.str.4.sink495, i32 noundef %954, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 102, ptr noundef %956, ptr noundef %958, ptr noundef %960, i32 noundef %961) #14
  call void @exit(i32 noundef 1) #15
  unreachable

963:                                              ; preds = %935
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = call i32 @s2n_record_parse(ptr noundef nonnull %187) #12
  %967 = icmp eq i32 %966, -1
  br i1 %967, label %968, label %991

968:                                              ; preds = %963
  %969 = tail call ptr @__errno_location() #13
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = call i32 @s2n_print_stacktrace(ptr noundef %971) #12
  %973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %974 = trunc nuw i8 %973 to i1
  br i1 %974, label %975, label %979

975:                                              ; preds = %968
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @fileno(ptr noundef %976) #12
  %978 = call i32 @isatty(i32 noundef %977) #12
  %.not178 = icmp eq i32 %978, 0
  br i1 %.not178, label %979, label %980

979:                                              ; preds = %975, %968
  br label %980

980:                                              ; preds = %975, %979
  %.str.4.sink504 = phi ptr [ @.str.4, %979 ], [ @.str, %975 ]
  store i32 %970, ptr %969, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = load i32, ptr %457, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef nonnull @.str.3) #12
  %985 = load i32, ptr %457, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef nonnull @.str.3) #12
  %987 = load i32, ptr %969, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #12
  %989 = load i32, ptr %969, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef nonnull %.str.4.sink504, i32 noundef %982, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 103, ptr noundef %984, ptr noundef %986, ptr noundef %988, i32 noundef %989) #14
  call void @exit(i32 noundef 1) #15
  unreachable

991:                                              ; preds = %963
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = add nsw i32 %992, 1
  store i32 %993, ptr @test_count, align 4, !tbaa !5
  %994 = load i8, ptr %9, align 1, !tbaa !60
  %995 = icmp eq i8 %994, 23
  br i1 %995, label %1019, label %996

996:                                              ; preds = %991
  %997 = tail call ptr @__errno_location() #13
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = call i32 @s2n_print_stacktrace(ptr noundef %999) #12
  %1001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1002 = trunc nuw i8 %1001 to i1
  br i1 %1002, label %1003, label %1007

1003:                                             ; preds = %996
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = call i32 @fileno(ptr noundef %1004) #12
  %1006 = call i32 @isatty(i32 noundef %1005) #12
  %.not174 = icmp eq i32 %1006, 0
  br i1 %.not174, label %1007, label %1008

1007:                                             ; preds = %1003, %996
  br label %1008

1008:                                             ; preds = %1003, %1007
  %.str.4.sink513 = phi ptr [ @.str.4, %1007 ], [ @.str, %1003 ]
  store i32 %998, ptr %997, align 4, !tbaa !5
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = load i32, ptr @test_count, align 4, !tbaa !5
  %1011 = load i32, ptr %457, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror(i32 noundef %1011, ptr noundef nonnull @.str.3) #12
  %1013 = load i32, ptr %457, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef nonnull @.str.3) #12
  %1015 = load i32, ptr %997, align 4, !tbaa !5
  %1016 = call ptr @strerror(i32 noundef %1015) #12
  %1017 = load i32, ptr %997, align 4, !tbaa !5
  %1018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1009, ptr noundef nonnull %.str.4.sink513, i32 noundef %1010, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 104, ptr noundef %1012, ptr noundef %1014, ptr noundef %1016, i32 noundef %1017) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1019:                                             ; preds = %991
  %1020 = add nsw i32 %992, 2
  store i32 %1020, ptr @test_count, align 4, !tbaa !5
  %1021 = load i16, ptr %10, align 2, !tbaa !63
  %1022 = icmp eq i16 %1021, %.0146
  br i1 %1022, label %1046, label %1023

1023:                                             ; preds = %1019
  %1024 = tail call ptr @__errno_location() #13
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @s2n_print_stacktrace(ptr noundef %1026) #12
  %1028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1029 = trunc nuw i8 %1028 to i1
  br i1 %1029, label %1030, label %1034

1030:                                             ; preds = %1023
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = call i32 @fileno(ptr noundef %1031) #12
  %1033 = call i32 @isatty(i32 noundef %1032) #12
  %.not175 = icmp eq i32 %1033, 0
  br i1 %.not175, label %1034, label %1035

1034:                                             ; preds = %1030, %1023
  br label %1035

1035:                                             ; preds = %1030, %1034
  %.str.4.sink522 = phi ptr [ @.str.4, %1034 ], [ @.str, %1030 ]
  store i32 %1025, ptr %1024, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = load i32, ptr %457, align 4, !tbaa !5
  %1039 = call ptr @s2n_strerror(i32 noundef %1038, ptr noundef nonnull @.str.3) #12
  %1040 = load i32, ptr %457, align 4, !tbaa !5
  %1041 = call ptr @s2n_strerror_debug(i32 noundef %1040, ptr noundef nonnull @.str.3) #12
  %1042 = load i32, ptr %1024, align 4, !tbaa !5
  %1043 = call ptr @strerror(i32 noundef %1042) #12
  %1044 = load i32, ptr %1024, align 4, !tbaa !5
  %1045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1036, ptr noundef nonnull %.str.4.sink522, i32 noundef %1037, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 105, ptr noundef %1039, ptr noundef %1041, ptr noundef %1043, i32 noundef %1044) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1046:                                             ; preds = %1019
  %1047 = add nsw i32 %992, 3
  store i32 %1047, ptr @test_count, align 4, !tbaa !5
  %1048 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %459) #12
  %1049 = icmp eq i32 %1048, -1
  br i1 %1049, label %1050, label %1073

1050:                                             ; preds = %1046
  %1051 = tail call ptr @__errno_location() #13
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @s2n_print_stacktrace(ptr noundef %1053) #12
  %1055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1056 = trunc nuw i8 %1055 to i1
  br i1 %1056, label %1057, label %1061

1057:                                             ; preds = %1050
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @fileno(ptr noundef %1058) #12
  %1060 = call i32 @isatty(i32 noundef %1059) #12
  %.not177 = icmp eq i32 %1060, 0
  br i1 %.not177, label %1061, label %1062

1061:                                             ; preds = %1057, %1050
  br label %1062

1062:                                             ; preds = %1057, %1061
  %.str.4.sink531 = phi ptr [ @.str.4, %1061 ], [ @.str, %1057 ]
  store i32 %1052, ptr %1051, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = load i32, ptr %457, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef nonnull @.str.3) #12
  %1067 = load i32, ptr %457, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef nonnull @.str.3) #12
  %1069 = load i32, ptr %1051, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #12
  %1071 = load i32, ptr %1051, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef nonnull %.str.4.sink531, i32 noundef %1064, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 107, ptr noundef %1066, ptr noundef %1068, ptr noundef %1070, i32 noundef %1071) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1073:                                             ; preds = %1046
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = add nsw i32 %1074, 1
  store i32 %1075, ptr @test_count, align 4, !tbaa !5
  %1076 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %458) #12
  %1077 = icmp eq i32 %1076, -1
  br i1 %1077, label %1078, label %1101

1078:                                             ; preds = %1073
  %1079 = tail call ptr @__errno_location() #13
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @s2n_print_stacktrace(ptr noundef %1081) #12
  %1083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1084 = trunc nuw i8 %1083 to i1
  br i1 %1084, label %1085, label %1089

1085:                                             ; preds = %1078
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = call i32 @fileno(ptr noundef %1086) #12
  %1088 = call i32 @isatty(i32 noundef %1087) #12
  %.not176 = icmp eq i32 %1088, 0
  br i1 %.not176, label %1089, label %1090

1089:                                             ; preds = %1085, %1078
  br label %1090

1090:                                             ; preds = %1085, %1089
  %.str.4.sink540 = phi ptr [ @.str.4, %1089 ], [ @.str, %1085 ]
  store i32 %1080, ptr %1079, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = load i32, ptr %457, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef nonnull @.str.3) #12
  %1095 = load i32, ptr %457, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef nonnull @.str.3) #12
  %1097 = load i32, ptr %1079, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #12
  %1099 = load i32, ptr %1079, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1091, ptr noundef nonnull %.str.4.sink540, i32 noundef %1092, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 108, ptr noundef %1094, ptr noundef %1096, ptr noundef %1098, i32 noundef %1099) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1101:                                             ; preds = %1073
  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
  %1102 = add nuw nsw i32 %.0197, 1
  %exitcond.not = icmp eq i32 %1102, 8089
  br i1 %exitcond.not, label %462, label %475, !llvm.loop !64

1103:                                             ; preds = %462
  %1104 = tail call ptr @__errno_location() #13
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 @s2n_print_stacktrace(ptr noundef %1106) #12
  %1108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1109 = trunc nuw i8 %1108 to i1
  br i1 %1109, label %1110, label %1114

1110:                                             ; preds = %1103
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @fileno(ptr noundef %1111) #12
  %1113 = call i32 @isatty(i32 noundef %1112) #12
  %.not155 = icmp eq i32 %1113, 0
  br i1 %.not155, label %1114, label %1115

1114:                                             ; preds = %1110, %1103
  br label %1115

1115:                                             ; preds = %1110, %1114
  %.str.4.sink549 = phi ptr [ @.str.4, %1114 ], [ @.str, %1110 ]
  store i32 %1105, ptr %1104, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = load i32, ptr %457, align 4, !tbaa !5
  %1119 = call ptr @s2n_strerror(i32 noundef %1118, ptr noundef nonnull @.str.3) #12
  %1120 = load i32, ptr %457, align 4, !tbaa !5
  %1121 = call ptr @s2n_strerror_debug(i32 noundef %1120, ptr noundef nonnull @.str.3) #12
  %1122 = load i32, ptr %1104, align 4, !tbaa !5
  %1123 = call ptr @strerror(i32 noundef %1122) #12
  %1124 = load i32, ptr %1104, align 4, !tbaa !5
  %1125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef nonnull %.str.4.sink549, i32 noundef %1117, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 111, ptr noundef %1119, ptr noundef %1121, ptr noundef %1123, i32 noundef %1124) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1126:                                             ; preds = %462
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr @test_count, align 4, !tbaa !5
  %1129 = load ptr, ptr %243, align 8, !tbaa !15
  %1130 = load ptr, ptr %1129, align 8, !tbaa !44
  %1131 = getelementptr inbounds i8, ptr %1130, i64 48
  %1132 = load ptr, ptr %1131, align 8, !tbaa !49
  %1133 = load ptr, ptr %1132, align 8, !tbaa !51
  %1134 = getelementptr inbounds i8, ptr %1133, i64 88
  %1135 = load ptr, ptr %1134, align 8, !tbaa !58
  %1136 = getelementptr inbounds i8, ptr %1129, i64 8
  %1137 = call i32 %1135(ptr noundef nonnull %1136) #12
  %1138 = call zeroext i1 @s2n_result_is_ok(i32 %1137)
  br i1 %1138, label %1162, label %1139

1139:                                             ; preds = %1126
  %1140 = tail call ptr @__errno_location() #13
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @s2n_print_stacktrace(ptr noundef %1142) #12
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc nuw i8 %1144 to i1
  br i1 %1145, label %1146, label %1150

1146:                                             ; preds = %1139
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #12
  %1149 = call i32 @isatty(i32 noundef %1148) #12
  %.not156 = icmp eq i32 %1149, 0
  br i1 %.not156, label %1150, label %1151

1150:                                             ; preds = %1146, %1139
  br label %1151

1151:                                             ; preds = %1146, %1150
  %.str.4.sink558 = phi ptr [ @.str.4, %1150 ], [ @.str, %1146 ]
  store i32 %1141, ptr %1140, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = load i32, ptr %457, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef nonnull @.str.3) #12
  %1156 = load i32, ptr %457, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef nonnull @.str.3) #12
  %1158 = load i32, ptr %1140, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #12
  %1160 = load i32, ptr %1140, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef nonnull %.str.4.sink558, i32 noundef %1153, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 112, ptr noundef %1155, ptr noundef %1157, ptr noundef %1159, i32 noundef %1160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1162:                                             ; preds = %1126
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr @test_count, align 4, !tbaa !5
  %1165 = call i32 @s2n_connection_free(ptr noundef nonnull %187) #12
  %1166 = icmp eq i32 %1165, -1
  br i1 %1166, label %1167, label %1190

1167:                                             ; preds = %1162
  %1168 = tail call ptr @__errno_location() #13
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @s2n_print_stacktrace(ptr noundef %1170) #12
  %1172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1173 = trunc nuw i8 %1172 to i1
  br i1 %1173, label %1174, label %1178

1174:                                             ; preds = %1167
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @fileno(ptr noundef %1175) #12
  %1177 = call i32 @isatty(i32 noundef %1176) #12
  %.not162 = icmp eq i32 %1177, 0
  br i1 %.not162, label %1178, label %1179

1178:                                             ; preds = %1174, %1167
  br label %1179

1179:                                             ; preds = %1174, %1178
  %.str.4.sink567 = phi ptr [ @.str.4, %1178 ], [ @.str, %1174 ]
  store i32 %1169, ptr %1168, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = load i32, ptr %457, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.3) #12
  %1184 = load i32, ptr %457, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.3) #12
  %1186 = load i32, ptr %1168, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #12
  %1188 = load i32, ptr %1168, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef nonnull %.str.4.sink567, i32 noundef %1181, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 113, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1190:                                             ; preds = %1162
  %1191 = call i32 @s2n_cleanup() #12
  %1192 = icmp eq i32 %1191, -1
  br i1 %1192, label %1193, label %1216

1193:                                             ; preds = %1190
  %1194 = tail call ptr @__errno_location() #13
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #12
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

1200:                                             ; preds = %1193
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #12
  %1203 = call i32 @isatty(i32 noundef %1202) #12
  %.not161 = icmp eq i32 %1203, 0
  br i1 %.not161, label %1204, label %1205

1204:                                             ; preds = %1200, %1193
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.4.sink576 = phi ptr [ @.str.4, %1204 ], [ @.str, %1200 ]
  store i32 %1195, ptr %1194, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = load i32, ptr %457, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef nonnull @.str.3) #12
  %1210 = load i32, ptr %457, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef nonnull @.str.3) #12
  %1212 = load i32, ptr %1194, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #12
  %1214 = load i32, ptr %1194, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.4.sink576, i32 noundef %1207, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 115, ptr noundef %1209, ptr noundef %1211, ptr noundef %1213, i32 noundef %1214) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1216:                                             ; preds = %1190
  %1217 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1218 = icmp eq i32 %1217, -1
  br i1 %1218, label %1219, label %1242

1219:                                             ; preds = %1216
  %1220 = tail call ptr @__errno_location() #13
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @s2n_print_stacktrace(ptr noundef %1222) #12
  %1224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1225 = trunc nuw i8 %1224 to i1
  br i1 %1225, label %1226, label %1230

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

1230:                                             ; preds = %1226, %1219
  br label %1231

1231:                                             ; preds = %1226, %1230
  %.str.4.sink585 = phi ptr [ @.str.4, %1230 ], [ @.str, %1226 ]
  store i32 %1221, ptr %1220, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = load i32, ptr %457, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror(i32 noundef %1234, ptr noundef nonnull @.str.3) #12
  %1236 = load i32, ptr %457, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror_debug(i32 noundef %1236, ptr noundef nonnull @.str.3) #12
  %1238 = load i32, ptr %1220, align 4, !tbaa !5
  %1239 = call ptr @strerror(i32 noundef %1238) #12
  %1240 = load i32, ptr %1220, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef nonnull %.str.4.sink585, i32 noundef %1233, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 115, ptr noundef %1235, ptr noundef %1237, ptr noundef %1239, i32 noundef %1240) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1242:                                             ; preds = %1216
  %1243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1244 = trunc nuw i8 %1243 to i1
  br i1 %1244, label %1245, label %1256

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

1249:                                             ; preds = %1245
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not159 = icmp eq i32 %1250, 0
  %1251 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not159, label %1254, label %1252

1252:                                             ; preds = %1249
  %1253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef nonnull @.str.44, i32 noundef %1250) #12
  br label %1263

1254:                                             ; preds = %1249
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef nonnull @.str.45) #12
  br label %1263

1256:                                             ; preds = %1245, %1242
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not158 = icmp eq i32 %1257, 0
  %1258 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not158, label %1261, label %1259

1259:                                             ; preds = %1256
  %1260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef nonnull @.str.46, i32 noundef %1257) #12
  br label %1263

1261:                                             ; preds = %1256
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef nonnull @.str.47) #12
  br label %1263

1263:                                             ; preds = %1259, %1261, %1252, %1254
  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 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %3) #12
  ret i32 0
}

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

; 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) #2

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #4

; 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 #4

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

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #4

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

; 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 #4

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

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

declare i32 @s2n_record_parse(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_cleanup() local_unnamed_addr #4

; 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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { "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 = { 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 #6 = { 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 = { 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 #8 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { 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 #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 232}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 640}
!43 = !{!16, !10, i64 632}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_crypto_parameters", !10, i64 0, !46, i64 8, !46, i64 16, !47, i64 24, !47, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!46 = !{!"s2n_session_key", !10, i64 0}
!47 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !48, i64 16, !48, i64 72, !48, i64 128, !48, i64 184, !7, i64 240, !7, i64 368}
!48 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!49 = !{!50, !10, i64 48}
!50 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!51 = !{!52, !10, i64 0}
!52 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !18, i64 16}
!53 = !{!54, !10, i64 64}
!54 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!55 = !{!54, !10, i64 80}
!56 = !{!54, !10, i64 72}
!57 = !{!16, !7, i64 220}
!58 = !{!54, !10, i64 88}
!59 = !{!16, !10, i64 1896}
!60 = !{!7, !7, i64 0}
!61 = !{!16, !6, i64 1924}
!62 = !{!16, !6, i64 1920}
!63 = !{!31, !31, i64 0}
!64 = distinct !{!64, !65}
!65 = !{!"llvm.loop.mustprogress"}


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