; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls13_handshake_early_data_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_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_psk = type { i32, %struct.s2n_blob, %struct.s2n_blob, i32, i32, i64, %struct.s2n_blob, %struct.s2n_early_data_config, i64 }
%struct.s2n_early_data_config = type { i32, i8, ptr, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.56 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [94 x i8], align 1
@stderr = external global ptr, align 8
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [678 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [1968 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [2001 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_get_current_message_type(ptr noundef) #0

; 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: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_negotiate(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_update_handshake_hashes(ptr noundef, ptr noundef) #0

declare i32 @s2n_alloc(ptr noundef, i32 noundef) #6

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) #6

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_result, align 4
  %7 = alloca i32, align 4
  %8 = alloca %struct.s2n_blob, align 8
  %9 = alloca %struct.s2n_result, align 4
  %10 = alloca i32, align 4
  %11 = alloca %struct.s2n_blob, align 8
  %12 = alloca %struct.s2n_result, align 4
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_result, align 4
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca %struct.s2n_result, align 4
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_result, align 4
  %21 = alloca %struct.s2n_blob, align 8
  %22 = alloca %struct.s2n_result, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_result, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_result, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_result, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %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 ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca %struct.s2n_stuffer, align 8
  %55 = alloca %struct.s2n_stuffer, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_blob, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  br label %77

77:                                               ; preds = %0
  br label %78

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

83:                                               ; preds = %78
  %84 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %85 = icmp eq i32 %84, -1
  br i1 %85, label %86, label %137

86:                                               ; preds = %83
  br label %87

87:                                               ; preds = %86
  br label %88

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

95:                                               ; preds = %88
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = call i32 @fileno(ptr noundef %96) #10
  %98 = call i32 @isatty(i32 noundef %97) #10
  %99 = icmp ne i32 %98, 0
  br i1 %99, label %100, label %117

100:                                              ; preds = %95
  %101 = load i32, ptr %2, align 4, !tbaa !5
  %102 = call ptr @__errno_location() #11
  store i32 %101, ptr %102, align 4, !tbaa !5
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = load i32, ptr @test_count, align 4, !tbaa !5
  %105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = call ptr @s2n_strerror(i32 noundef %106, ptr noundef @.str.60)
  %108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = call ptr @s2n_strerror_debug(i32 noundef %109, ptr noundef @.str.60)
  %111 = call ptr @__errno_location() #11
  %112 = load i32, ptr %111, align 4, !tbaa !5
  %113 = call ptr @strerror(i32 noundef %112) #10
  %114 = call ptr @__errno_location() #11
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %103, ptr noundef @.str.58, i32 noundef %104, ptr noundef @.str.59, ptr noundef @.str.57, i32 noundef 36, ptr noundef %107, ptr noundef %110, ptr noundef %113, i32 noundef %115) #10
  br label %134

117:                                              ; preds = %95, %88
  %118 = load i32, ptr %2, align 4, !tbaa !5
  %119 = call ptr @__errno_location() #11
  store i32 %118, ptr %119, align 4, !tbaa !5
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = load i32, ptr @test_count, align 4, !tbaa !5
  %122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = call ptr @s2n_strerror(i32 noundef %123, ptr noundef @.str.60)
  %125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = call ptr @s2n_strerror_debug(i32 noundef %126, ptr noundef @.str.60)
  %128 = call ptr @__errno_location() #11
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = call ptr @strerror(i32 noundef %129) #10
  %131 = call ptr @__errno_location() #11
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef @.str.61, i32 noundef %121, ptr noundef @.str.59, ptr noundef @.str.57, i32 noundef 36, ptr noundef %124, ptr noundef %127, ptr noundef %130, i32 noundef %132) #10
  br label %134

134:                                              ; preds = %117, %100
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #10
  br label %135

135:                                              ; preds = %134
  call void @exit(i32 noundef 1) #12
  unreachable

136:                                              ; No predecessors!
  br label %137

137:                                              ; preds = %136, %83
  br label %138

138:                                              ; preds = %137
  br label %139

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

144:                                              ; preds = %139
  br label %145

145:                                              ; preds = %144
  br label %146

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

153:                                              ; preds = %146
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = call i32 @fileno(ptr noundef %154) #10
  %156 = call i32 @isatty(i32 noundef %155) #10
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %158, label %175

158:                                              ; preds = %153
  %159 = load i32, ptr %3, align 4, !tbaa !5
  %160 = call ptr @__errno_location() #11
  store i32 %159, ptr %160, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call ptr @s2n_strerror(i32 noundef %164, ptr noundef @.str.60)
  %166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @s2n_strerror_debug(i32 noundef %167, ptr noundef @.str.60)
  %169 = call ptr @__errno_location() #11
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call ptr @strerror(i32 noundef %170) #10
  %172 = call ptr @__errno_location() #11
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %161, ptr noundef @.str.58, i32 noundef %162, ptr noundef @.str.62, ptr noundef @.str.57, i32 noundef 36, ptr noundef %165, ptr noundef %168, ptr noundef %171, i32 noundef %173) #10
  br label %192

175:                                              ; preds = %153, %146
  %176 = load i32, ptr %3, align 4, !tbaa !5
  %177 = call ptr @__errno_location() #11
  store i32 %176, ptr %177, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror(i32 noundef %181, ptr noundef @.str.60)
  %183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef @.str.60)
  %186 = call ptr @__errno_location() #11
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call ptr @strerror(i32 noundef %187) #10
  %189 = call ptr @__errno_location() #11
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef @.str.61, i32 noundef %179, ptr noundef @.str.62, ptr noundef @.str.57, i32 noundef 36, ptr noundef %182, ptr noundef %185, ptr noundef %188, i32 noundef %190) #10
  br label %192

192:                                              ; preds = %175, %158
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #10
  br label %193

193:                                              ; preds = %192
  call void @exit(i32 noundef 1) #12
  unreachable

194:                                              ; No predecessors!
  br label %195

195:                                              ; preds = %194, %139
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  br label %198

198:                                              ; preds = %197
  %199 = call i32 @s2n_init()
  %200 = icmp eq i32 %199, -1
  br i1 %200, label %201, label %252

201:                                              ; preds = %198
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #10
  %204 = call ptr @__errno_location() #11
  %205 = load i32, ptr %204, align 4, !tbaa !5
  store i32 %205, ptr %4, 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) #10
  %213 = call i32 @isatty(i32 noundef %212) #10
  %214 = icmp ne i32 %213, 0
  br i1 %214, label %215, label %232

215:                                              ; preds = %210
  %216 = load i32, ptr %4, align 4, !tbaa !5
  %217 = call ptr @__errno_location() #11
  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.60)
  %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.60)
  %226 = call ptr @__errno_location() #11
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @strerror(i32 noundef %227) #10
  %229 = call ptr @__errno_location() #11
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %218, ptr noundef @.str.58, i32 noundef %219, ptr noundef @.str.63, ptr noundef @.str.57, i32 noundef 36, ptr noundef %222, ptr noundef %225, ptr noundef %228, i32 noundef %230) #10
  br label %249

232:                                              ; preds = %210, %203
  %233 = load i32, ptr %4, align 4, !tbaa !5
  %234 = call ptr @__errno_location() #11
  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.60)
  %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.60)
  %243 = call ptr @__errno_location() #11
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @strerror(i32 noundef %244) #10
  %246 = call ptr @__errno_location() #11
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef @.str.61, i32 noundef %236, ptr noundef @.str.63, ptr noundef @.str.57, i32 noundef 36, ptr noundef %239, ptr noundef %242, ptr noundef %245, i32 noundef %247) #10
  br label %249

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

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

251:                                              ; No predecessors!
  br label %252

252:                                              ; preds = %251, %198
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #10
  call void @llvm.memset.p0.i64(ptr align 8 %5, i8 0, i64 24, i1 false)
  br label %255

255:                                              ; preds = %254
  %256 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %5, ptr noundef @.str.64)
  %257 = getelementptr inbounds %struct.s2n_result, ptr %6, i32 0, i32 0
  store i32 %256, ptr %257, align 4
  %258 = getelementptr inbounds %struct.s2n_result, ptr %6, i32 0, i32 0
  %259 = load i32, ptr %258, align 4
  %260 = call zeroext i1 @s2n_result_is_ok(i32 %259)
  br i1 %260, label %262, label %261

261:                                              ; preds = %255
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2918

262:                                              ; preds = %255
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #10
  call void @llvm.memset.p0.i64(ptr align 8 %8, i8 0, i64 24, i1 false)
  br label %265

265:                                              ; preds = %264
  %266 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %8, ptr noundef @.str.65)
  %267 = getelementptr inbounds %struct.s2n_result, ptr %9, i32 0, i32 0
  store i32 %266, ptr %267, align 4
  %268 = getelementptr inbounds %struct.s2n_result, ptr %9, i32 0, i32 0
  %269 = load i32, ptr %268, align 4
  %270 = call zeroext i1 @s2n_result_is_ok(i32 %269)
  br i1 %270, label %272, label %271

271:                                              ; preds = %265
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2916

272:                                              ; preds = %265
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store i32 1024, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #10
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 24, i1 false)
  br label %275

275:                                              ; preds = %274
  %276 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %11, ptr noundef @.str.66)
  %277 = getelementptr inbounds %struct.s2n_result, ptr %12, i32 0, i32 0
  store i32 %276, ptr %277, align 4
  %278 = getelementptr inbounds %struct.s2n_result, ptr %12, i32 0, i32 0
  %279 = load i32, ptr %278, align 4
  %280 = call zeroext i1 @s2n_result_is_ok(i32 %279)
  br i1 %280, label %282, label %281

281:                                              ; preds = %275
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2914

282:                                              ; preds = %275
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #10
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false)
  br label %285

285:                                              ; preds = %284
  %286 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %13, ptr noundef @.str.67)
  %287 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %286, ptr %287, align 4
  %288 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %289 = load i32, ptr %288, align 4
  %290 = call zeroext i1 @s2n_result_is_ok(i32 %289)
  br i1 %290, label %292, label %291

291:                                              ; preds = %285
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2912

292:                                              ; preds = %285
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #10
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 24, i1 false)
  br label %295

295:                                              ; preds = %294
  %296 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %15, ptr noundef @.str.68)
  %297 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %296, ptr %297, align 4
  %298 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %299 = load i32, ptr %298, align 4
  %300 = call zeroext i1 @s2n_result_is_ok(i32 %299)
  br i1 %300, label %302, label %301

301:                                              ; preds = %295
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2910

302:                                              ; preds = %295
  br label %303

303:                                              ; preds = %302
  br label %304

304:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #10
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 24, i1 false)
  br label %305

305:                                              ; preds = %304
  %306 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %17, ptr noundef @.str.69)
  %307 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  store i32 %306, ptr %307, align 4
  %308 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  %309 = load i32, ptr %308, align 4
  %310 = call zeroext i1 @s2n_result_is_ok(i32 %309)
  br i1 %310, label %312, label %311

311:                                              ; preds = %305
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2908

312:                                              ; preds = %305
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #10
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 24, i1 false)
  br label %315

315:                                              ; preds = %314
  %316 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %19, ptr noundef @.str.70)
  %317 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  store i32 %316, ptr %317, align 4
  %318 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  %319 = load i32, ptr %318, align 4
  %320 = call zeroext i1 @s2n_result_is_ok(i32 %319)
  br i1 %320, label %322, label %321

321:                                              ; preds = %315
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2906

322:                                              ; preds = %315
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #10
  call void @llvm.memset.p0.i64(ptr align 8 %21, i8 0, i64 24, i1 false)
  br label %325

325:                                              ; preds = %324
  %326 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %21, ptr noundef @.str.71)
  %327 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  store i32 %326, ptr %327, align 4
  %328 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  %329 = load i32, ptr %328, align 4
  %330 = call zeroext i1 @s2n_result_is_ok(i32 %329)
  br i1 %330, label %332, label %331

331:                                              ; preds = %325
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %7, align 4
  br label %2904

332:                                              ; preds = %325
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %335 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %335, ptr %23, align 8, !tbaa !9
  br label %336

336:                                              ; preds = %334
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr @test_count, align 4, !tbaa !5
  %339 = load ptr, ptr %23, align 8, !tbaa !9
  %340 = icmp eq ptr %339, null
  br i1 %340, label %341, label %394

341:                                              ; preds = %336
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %344 = call ptr @__errno_location() #11
  %345 = load i32, ptr %344, align 4, !tbaa !5
  store i32 %345, ptr %24, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @s2n_print_stacktrace(ptr noundef %346)
  %348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %349 = trunc i8 %348 to i1
  br i1 %349, label %350, label %372

350:                                              ; preds = %343
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @fileno(ptr noundef %351) #10
  %353 = call i32 @isatty(i32 noundef %352) #10
  %354 = icmp ne i32 %353, 0
  br i1 %354, label %355, label %372

355:                                              ; preds = %350
  %356 = load i32, ptr %24, align 4, !tbaa !5
  %357 = call ptr @__errno_location() #11
  store i32 %356, ptr %357, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef @.str.60)
  %363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef @.str.60)
  %366 = call ptr @__errno_location() #11
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @strerror(i32 noundef %367) #10
  %369 = call ptr @__errno_location() #11
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.58, i32 noundef %359, ptr noundef @.str.72, ptr noundef @.str.57, i32 noundef 269, ptr noundef %362, ptr noundef %365, ptr noundef %368, i32 noundef %370) #10
  br label %389

372:                                              ; preds = %350, %343
  %373 = load i32, ptr %24, align 4, !tbaa !5
  %374 = call ptr @__errno_location() #11
  store i32 %373, ptr %374, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror(i32 noundef %378, ptr noundef @.str.60)
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror_debug(i32 noundef %381, ptr noundef @.str.60)
  %383 = call ptr @__errno_location() #11
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @strerror(i32 noundef %384) #10
  %386 = call ptr @__errno_location() #11
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.61, i32 noundef %376, ptr noundef @.str.72, ptr noundef @.str.57, i32 noundef 269, ptr noundef %379, ptr noundef %382, ptr noundef %385, i32 noundef %387) #10
  br label %389

389:                                              ; preds = %372, %355
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390
  call void @exit(i32 noundef 1) #12
  unreachable

392:                                              ; No predecessors!
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393, %336
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  %397 = load ptr, ptr %23, align 8, !tbaa !9
  %398 = getelementptr inbounds %struct.s2n_connection, ptr %397, i32 0, i32 23
  store i8 34, ptr %398, align 4, !tbaa !15
  %399 = load ptr, ptr %23, align 8, !tbaa !9
  %400 = getelementptr inbounds %struct.s2n_connection, ptr %399, i32 0, i32 22
  store i8 34, ptr %400, align 1, !tbaa !42
  %401 = load ptr, ptr %23, align 8, !tbaa !9
  %402 = getelementptr inbounds %struct.s2n_connection, ptr %401, i32 0, i32 89
  store i32 1, ptr %402, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  store ptr null, ptr %25, align 8, !tbaa !9
  br label %403

403:                                              ; preds = %396
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %406 = load ptr, ptr %23, align 8, !tbaa !9
  %407 = getelementptr inbounds %struct.s2n_connection, ptr %406, i32 0, i32 33
  %408 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %407, i32 0, i32 1
  %409 = call i32 @s2n_array_pushback(ptr noundef %408, ptr noundef %25)
  %410 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %409, ptr %410, align 4
  %411 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %412 = load i32, ptr %411, align 4
  %413 = call zeroext i1 @s2n_result_is_ok(i32 %412)
  br i1 %413, label %467, label %414

414:                                              ; preds = %403
  br label %415

415:                                              ; preds = %414
  br label %416

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

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

428:                                              ; preds = %423
  %429 = load i32, ptr %27, align 4, !tbaa !5
  %430 = call ptr @__errno_location() #11
  store i32 %429, ptr %430, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef @.str.60)
  %436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror_debug(i32 noundef %437, ptr noundef @.str.60)
  %439 = call ptr @__errno_location() #11
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @strerror(i32 noundef %440) #10
  %442 = call ptr @__errno_location() #11
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef @.str.58, i32 noundef %432, ptr noundef @.str.73, ptr noundef @.str.57, i32 noundef 275, ptr noundef %435, ptr noundef %438, ptr noundef %441, i32 noundef %443) #10
  br label %462

445:                                              ; preds = %423, %416
  %446 = load i32, ptr %27, align 4, !tbaa !5
  %447 = call ptr @__errno_location() #11
  store i32 %446, ptr %447, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = load i32, ptr @test_count, align 4, !tbaa !5
  %450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %451 = load i32, ptr %450, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef @.str.60)
  %453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror_debug(i32 noundef %454, ptr noundef @.str.60)
  %456 = call ptr @__errno_location() #11
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @strerror(i32 noundef %457) #10
  %459 = call ptr @__errno_location() #11
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %448, ptr noundef @.str.61, i32 noundef %449, ptr noundef @.str.73, ptr noundef @.str.57, i32 noundef 275, ptr noundef %452, ptr noundef %455, ptr noundef %458, i32 noundef %460) #10
  br label %462

462:                                              ; preds = %445, %428
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %463

463:                                              ; preds = %462
  br label %464

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

465:                                              ; No predecessors!
  br label %466

466:                                              ; preds = %465
  br label %467

467:                                              ; preds = %466, %403
  br label %468

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %468
  %470 = load ptr, ptr %25, align 8, !tbaa !9
  %471 = getelementptr inbounds %struct.s2n_psk, ptr %470, i32 0, i32 3
  store i32 4, ptr %471, align 8, !tbaa !44
  br label %472

472:                                              ; preds = %469
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = load ptr, ptr %25, align 8, !tbaa !9
  %476 = call i32 @s2n_psk_configure_early_data(ptr noundef %475, i32 noundef 1024, i8 noundef zeroext 19, i8 noundef zeroext 1)
  %477 = icmp eq i32 %476, -1
  br i1 %477, label %478, label %531

478:                                              ; preds = %472
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %481 = call ptr @__errno_location() #11
  %482 = load i32, ptr %481, align 4, !tbaa !5
  store i32 %482, ptr %28, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = call i32 @s2n_print_stacktrace(ptr noundef %483)
  %485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %486 = trunc i8 %485 to i1
  br i1 %486, label %487, label %509

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

492:                                              ; preds = %487
  %493 = load i32, ptr %28, align 4, !tbaa !5
  %494 = call ptr @__errno_location() #11
  store i32 %493, ptr %494, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = load i32, ptr @test_count, align 4, !tbaa !5
  %497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror(i32 noundef %498, ptr noundef @.str.60)
  %500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef %501, ptr noundef @.str.60)
  %503 = call ptr @__errno_location() #11
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call ptr @strerror(i32 noundef %504) #10
  %506 = call ptr @__errno_location() #11
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef @.str.58, i32 noundef %496, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 277, ptr noundef %499, ptr noundef %502, ptr noundef %505, i32 noundef %507) #10
  br label %526

509:                                              ; preds = %487, %480
  %510 = load i32, ptr %28, align 4, !tbaa !5
  %511 = call ptr @__errno_location() #11
  store i32 %510, ptr %511, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror(i32 noundef %515, ptr noundef @.str.60)
  %517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror_debug(i32 noundef %518, ptr noundef @.str.60)
  %520 = call ptr @__errno_location() #11
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @strerror(i32 noundef %521) #10
  %523 = call ptr @__errno_location() #11
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef @.str.61, i32 noundef %513, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 277, ptr noundef %516, ptr noundef %519, ptr noundef %522, i32 noundef %524) #10
  br label %526

526:                                              ; preds = %509, %492
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527
  call void @exit(i32 noundef 1) #12
  unreachable

529:                                              ; No predecessors!
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530, %472
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  %534 = load ptr, ptr %25, align 8, !tbaa !9
  %535 = getelementptr inbounds %struct.s2n_psk, ptr %534, i32 0, i32 7
  %536 = getelementptr inbounds %struct.s2n_early_data_config, ptr %535, i32 0, i32 2
  %537 = load ptr, ptr %536, align 8, !tbaa !47
  %538 = load ptr, ptr %23, align 8, !tbaa !9
  %539 = getelementptr inbounds %struct.s2n_connection, ptr %538, i32 0, i32 27
  %540 = load ptr, ptr %539, align 8, !tbaa !48
  %541 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %540, i32 0, i32 0
  store ptr %537, ptr %541, align 8, !tbaa !49
  br label %542

542:                                              ; preds = %533
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = add nsw i32 %543, 1
  store i32 %544, ptr @test_count, align 4, !tbaa !5
  %545 = load ptr, ptr %25, align 8, !tbaa !9
  %546 = getelementptr inbounds %struct.s2n_psk, ptr %545, i32 0, i32 6
  %547 = call i32 @s2n_dup(ptr noundef %15, ptr noundef %546)
  %548 = icmp eq i32 %547, -1
  br i1 %548, label %549, label %602

549:                                              ; preds = %542
  br label %550

550:                                              ; preds = %549
  br label %551

551:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %552 = call ptr @__errno_location() #11
  %553 = load i32, ptr %552, align 4, !tbaa !5
  store i32 %553, ptr %29, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @s2n_print_stacktrace(ptr noundef %554)
  %556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %557 = trunc i8 %556 to i1
  br i1 %557, label %558, label %580

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

563:                                              ; preds = %558
  %564 = load i32, ptr %29, align 4, !tbaa !5
  %565 = call ptr @__errno_location() #11
  store i32 %564, ptr %565, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror(i32 noundef %569, ptr noundef @.str.60)
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror_debug(i32 noundef %572, ptr noundef @.str.60)
  %574 = call ptr @__errno_location() #11
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @strerror(i32 noundef %575) #10
  %577 = call ptr @__errno_location() #11
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef @.str.58, i32 noundef %567, ptr noundef @.str.75, ptr noundef @.str.57, i32 noundef 281, ptr noundef %570, ptr noundef %573, ptr noundef %576, i32 noundef %578) #10
  br label %597

580:                                              ; preds = %558, %551
  %581 = load i32, ptr %29, align 4, !tbaa !5
  %582 = call ptr @__errno_location() #11
  store i32 %581, ptr %582, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror(i32 noundef %586, ptr noundef @.str.60)
  %588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef @.str.60)
  %591 = call ptr @__errno_location() #11
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = call ptr @strerror(i32 noundef %592) #10
  %594 = call ptr @__errno_location() #11
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef @.str.61, i32 noundef %584, ptr noundef @.str.75, ptr noundef @.str.57, i32 noundef 281, ptr noundef %587, ptr noundef %590, ptr noundef %593, i32 noundef %595) #10
  br label %597

597:                                              ; preds = %580, %563
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  call void @exit(i32 noundef 1) #12
  unreachable

600:                                              ; No predecessors!
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601, %542
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  br label %605

605:                                              ; preds = %604
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = load ptr, ptr %23, align 8, !tbaa !9
  %609 = call i32 @s2n_conn_update_handshake_hashes(ptr noundef %608, ptr noundef %11)
  %610 = icmp eq i32 %609, -1
  br i1 %610, label %611, label %664

611:                                              ; preds = %605
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %614 = call ptr @__errno_location() #11
  %615 = load i32, ptr %614, align 4, !tbaa !5
  store i32 %615, ptr %30, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @s2n_print_stacktrace(ptr noundef %616)
  %618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %619 = trunc i8 %618 to i1
  br i1 %619, label %620, label %642

620:                                              ; preds = %613
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @fileno(ptr noundef %621) #10
  %623 = call i32 @isatty(i32 noundef %622) #10
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %642

625:                                              ; preds = %620
  %626 = load i32, ptr %30, align 4, !tbaa !5
  %627 = call ptr @__errno_location() #11
  store i32 %626, ptr %627, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef @.str.60)
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef @.str.60)
  %636 = call ptr @__errno_location() #11
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #10
  %639 = call ptr @__errno_location() #11
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef @.str.58, i32 noundef %629, ptr noundef @.str.76, ptr noundef @.str.57, i32 noundef 284, ptr noundef %632, ptr noundef %635, ptr noundef %638, i32 noundef %640) #10
  br label %659

642:                                              ; preds = %620, %613
  %643 = load i32, ptr %30, align 4, !tbaa !5
  %644 = call ptr @__errno_location() #11
  store i32 %643, ptr %644, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef @.str.60)
  %650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef @.str.60)
  %653 = call ptr @__errno_location() #11
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @strerror(i32 noundef %654) #10
  %656 = call ptr @__errno_location() #11
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef @.str.61, i32 noundef %646, ptr noundef @.str.76, ptr noundef @.str.57, i32 noundef 284, ptr noundef %649, ptr noundef %652, ptr noundef %655, i32 noundef %657) #10
  br label %659

659:                                              ; preds = %642, %625
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %660

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %660
  call void @exit(i32 noundef 1) #12
  unreachable

662:                                              ; No predecessors!
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663, %605
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  br label %667

667:                                              ; preds = %666
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = load ptr, ptr %23, align 8, !tbaa !9
  %671 = call i32 @s2n_tls13_secrets_update(ptr noundef %670)
  %672 = getelementptr inbounds %struct.s2n_result, ptr %31, i32 0, i32 0
  store i32 %671, ptr %672, align 4
  %673 = getelementptr inbounds %struct.s2n_result, ptr %31, i32 0, i32 0
  %674 = load i32, ptr %673, align 4
  %675 = call zeroext i1 @s2n_result_is_ok(i32 %674)
  br i1 %675, label %729, label %676

676:                                              ; preds = %667
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %679 = call ptr @__errno_location() #11
  %680 = load i32, ptr %679, align 4, !tbaa !5
  store i32 %680, ptr %32, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681)
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc i8 %683 to i1
  br i1 %684, label %685, label %707

685:                                              ; preds = %678
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #10
  %688 = call i32 @isatty(i32 noundef %687) #10
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %707

690:                                              ; preds = %685
  %691 = load i32, ptr %32, align 4, !tbaa !5
  %692 = call ptr @__errno_location() #11
  store i32 %691, ptr %692, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef @.str.60)
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef @.str.60)
  %701 = call ptr @__errno_location() #11
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @strerror(i32 noundef %702) #10
  %704 = call ptr @__errno_location() #11
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef @.str.58, i32 noundef %694, ptr noundef @.str.77, ptr noundef @.str.57, i32 noundef 286, ptr noundef %697, ptr noundef %700, ptr noundef %703, i32 noundef %705) #10
  br label %724

707:                                              ; preds = %685, %678
  %708 = load i32, ptr %32, align 4, !tbaa !5
  %709 = call ptr @__errno_location() #11
  store i32 %708, ptr %709, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef @.str.60)
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef @.str.60)
  %718 = call ptr @__errno_location() #11
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #10
  %721 = call ptr @__errno_location() #11
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef @.str.61, i32 noundef %711, ptr noundef @.str.77, ptr noundef @.str.57, i32 noundef 286, ptr noundef %714, ptr noundef %717, ptr noundef %720, i32 noundef %722) #10
  br label %724

724:                                              ; preds = %707, %690
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  call void @exit(i32 noundef 1) #12
  unreachable

727:                                              ; No predecessors!
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728, %667
  br label %730

730:                                              ; preds = %729
  br label %731

731:                                              ; preds = %730
  br label %732

732:                                              ; preds = %731
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr @test_count, align 4, !tbaa !5
  %735 = load ptr, ptr %23, align 8, !tbaa !9
  %736 = call i32 @s2n_tls13_key_schedule_update(ptr noundef %735)
  %737 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %736, ptr %737, align 4
  %738 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  %739 = load i32, ptr %738, align 4
  %740 = call zeroext i1 @s2n_result_is_ok(i32 %739)
  br i1 %740, label %794, label %741

741:                                              ; preds = %732
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %744 = call ptr @__errno_location() #11
  %745 = load i32, ptr %744, align 4, !tbaa !5
  store i32 %745, ptr %34, align 4, !tbaa !5
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = call i32 @s2n_print_stacktrace(ptr noundef %746)
  %748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %749 = trunc i8 %748 to i1
  br i1 %749, label %750, label %772

750:                                              ; preds = %743
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @fileno(ptr noundef %751) #10
  %753 = call i32 @isatty(i32 noundef %752) #10
  %754 = icmp ne i32 %753, 0
  br i1 %754, label %755, label %772

755:                                              ; preds = %750
  %756 = load i32, ptr %34, align 4, !tbaa !5
  %757 = call ptr @__errno_location() #11
  store i32 %756, ptr %757, align 4, !tbaa !5
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror(i32 noundef %761, ptr noundef @.str.60)
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror_debug(i32 noundef %764, ptr noundef @.str.60)
  %766 = call ptr @__errno_location() #11
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @strerror(i32 noundef %767) #10
  %769 = call ptr @__errno_location() #11
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %758, ptr noundef @.str.58, i32 noundef %759, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 287, ptr noundef %762, ptr noundef %765, ptr noundef %768, i32 noundef %770) #10
  br label %789

772:                                              ; preds = %750, %743
  %773 = load i32, ptr %34, align 4, !tbaa !5
  %774 = call ptr @__errno_location() #11
  store i32 %773, ptr %774, align 4, !tbaa !5
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = load i32, ptr @test_count, align 4, !tbaa !5
  %777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror(i32 noundef %778, ptr noundef @.str.60)
  %780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror_debug(i32 noundef %781, ptr noundef @.str.60)
  %783 = call ptr @__errno_location() #11
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @strerror(i32 noundef %784) #10
  %786 = call ptr @__errno_location() #11
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %775, ptr noundef @.str.61, i32 noundef %776, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 287, ptr noundef %779, ptr noundef %782, ptr noundef %785, i32 noundef %787) #10
  br label %789

789:                                              ; preds = %772, %755
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790
  call void @exit(i32 noundef 1) #12
  unreachable

792:                                              ; No predecessors!
  br label %793

793:                                              ; preds = %792
  br label %794

794:                                              ; preds = %793, %732
  br label %795

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = load ptr, ptr %23, align 8, !tbaa !9
  %801 = getelementptr inbounds %struct.s2n_connection, ptr %800, i32 0, i32 28
  %802 = getelementptr inbounds %struct.s2n_secrets, ptr %801, i32 0, i32 1
  %803 = load i32, ptr %802, align 4, !tbaa !54
  %804 = icmp eq i32 %803, 1
  br i1 %804, label %858, label %805

805:                                              ; preds = %797
  br label %806

806:                                              ; preds = %805
  br label %807

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

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

819:                                              ; preds = %814
  %820 = load i32, ptr %35, align 4, !tbaa !5
  %821 = call ptr @__errno_location() #11
  store i32 %820, ptr %821, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror(i32 noundef %825, ptr noundef @.str.60)
  %827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef @.str.60)
  %830 = call ptr @__errno_location() #11
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #10
  %833 = call ptr @__errno_location() #11
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %822, ptr noundef @.str.58, i32 noundef %823, ptr noundef @.str.79, ptr noundef @.str.57, i32 noundef 290, ptr noundef %826, ptr noundef %829, ptr noundef %832, i32 noundef %834) #10
  br label %853

836:                                              ; preds = %814, %807
  %837 = load i32, ptr %35, align 4, !tbaa !5
  %838 = call ptr @__errno_location() #11
  store i32 %837, ptr %838, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror(i32 noundef %842, ptr noundef @.str.60)
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror_debug(i32 noundef %845, ptr noundef @.str.60)
  %847 = call ptr @__errno_location() #11
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #10
  %850 = call ptr @__errno_location() #11
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %839, ptr noundef @.str.61, i32 noundef %840, ptr noundef @.str.79, ptr noundef @.str.57, i32 noundef 290, ptr noundef %843, ptr noundef %846, ptr noundef %849, i32 noundef %851) #10
  br label %853

853:                                              ; preds = %836, %819
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %854

854:                                              ; preds = %853
  br label %855

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

856:                                              ; No predecessors!
  br label %857

857:                                              ; preds = %856
  br label %858

858:                                              ; preds = %857, %797
  br label %859

859:                                              ; preds = %858
  br label %860

860:                                              ; preds = %859
  br label %861

861:                                              ; preds = %860
  %862 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %863 = load i32, ptr %862, align 8, !tbaa !55
  %864 = icmp ne i32 %863, 0
  br i1 %864, label %865, label %937

865:                                              ; preds = %861
  br label %866

866:                                              ; preds = %865
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = load ptr, ptr %23, align 8, !tbaa !9
  %870 = getelementptr inbounds %struct.s2n_connection, ptr %869, i32 0, i32 28
  %871 = getelementptr inbounds %struct.s2n_secrets, ptr %870, i32 0, i32 0
  %872 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %871, i32 0, i32 0
  %873 = getelementptr inbounds [48 x i8], ptr %872, i64 0, i64 0
  %874 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 0
  %875 = load ptr, ptr %874, align 8, !tbaa !56
  %876 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %877 = load i32, ptr %876, align 8, !tbaa !55
  %878 = zext i32 %877 to i64
  %879 = call i32 @memcmp(ptr noundef %873, ptr noundef %875, i64 noundef %878) #13
  %880 = icmp eq i32 %879, 0
  br i1 %880, label %934, label %881

881:                                              ; preds = %866
  br label %882

882:                                              ; preds = %881
  br label %883

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

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

895:                                              ; preds = %890
  %896 = load i32, ptr %36, align 4, !tbaa !5
  %897 = call ptr @__errno_location() #11
  store i32 %896, ptr %897, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call ptr @s2n_strerror(i32 noundef %901, ptr noundef @.str.60)
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef @.str.60)
  %906 = call ptr @__errno_location() #11
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call ptr @strerror(i32 noundef %907) #10
  %909 = call ptr @__errno_location() #11
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef @.str.58, i32 noundef %899, ptr noundef @.str.80, ptr noundef @.str.57, i32 noundef 291, ptr noundef %902, ptr noundef %905, ptr noundef %908, i32 noundef %910) #10
  br label %929

912:                                              ; preds = %890, %883
  %913 = load i32, ptr %36, align 4, !tbaa !5
  %914 = call ptr @__errno_location() #11
  store i32 %913, ptr %914, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror(i32 noundef %918, ptr noundef @.str.60)
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror_debug(i32 noundef %921, ptr noundef @.str.60)
  %923 = call ptr @__errno_location() #11
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @strerror(i32 noundef %924) #10
  %926 = call ptr @__errno_location() #11
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef @.str.61, i32 noundef %916, ptr noundef @.str.80, ptr noundef @.str.57, i32 noundef 291, ptr noundef %919, ptr noundef %922, ptr noundef %925, i32 noundef %927) #10
  br label %929

929:                                              ; preds = %912, %895
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %930

930:                                              ; preds = %929
  br label %931

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

932:                                              ; No predecessors!
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933, %866
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936, %861
  br label %938

938:                                              ; preds = %937
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  %941 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %942 = load i32, ptr %941, align 8, !tbaa !55
  %943 = icmp ne i32 %942, 0
  br i1 %943, label %944, label %1016

944:                                              ; preds = %940
  br label %945

945:                                              ; preds = %944
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr @test_count, align 4, !tbaa !5
  %948 = load ptr, ptr %23, align 8, !tbaa !9
  %949 = getelementptr inbounds %struct.s2n_connection, ptr %948, i32 0, i32 27
  %950 = load ptr, ptr %949, align 8, !tbaa !48
  %951 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %950, i32 0, i32 5
  %952 = getelementptr inbounds [16 x i8], ptr %951, i64 0, i64 0
  %953 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %954 = load ptr, ptr %953, align 8, !tbaa !56
  %955 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %956 = load i32, ptr %955, align 8, !tbaa !55
  %957 = zext i32 %956 to i64
  %958 = call i32 @memcmp(ptr noundef %952, ptr noundef %954, i64 noundef %957) #13
  %959 = icmp eq i32 %958, 0
  br i1 %959, label %1013, label %960

960:                                              ; preds = %945
  br label %961

961:                                              ; preds = %960
  br label %962

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

969:                                              ; preds = %962
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @fileno(ptr noundef %970) #10
  %972 = call i32 @isatty(i32 noundef %971) #10
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %991

974:                                              ; preds = %969
  %975 = load i32, ptr %37, align 4, !tbaa !5
  %976 = call ptr @__errno_location() #11
  store i32 %975, ptr %976, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef @.str.60)
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef @.str.60)
  %985 = call ptr @__errno_location() #11
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #10
  %988 = call ptr @__errno_location() #11
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str.58, i32 noundef %978, ptr noundef @.str.81, ptr noundef @.str.57, i32 noundef 294, ptr noundef %981, ptr noundef %984, ptr noundef %987, i32 noundef %989) #10
  br label %1008

991:                                              ; preds = %969, %962
  %992 = load i32, ptr %37, align 4, !tbaa !5
  %993 = call ptr @__errno_location() #11
  store i32 %992, ptr %993, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef @.str.60)
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef @.str.60)
  %1002 = call ptr @__errno_location() #11
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #10
  %1005 = call ptr @__errno_location() #11
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef @.str.61, i32 noundef %995, ptr noundef @.str.81, ptr noundef @.str.57, i32 noundef 294, ptr noundef %998, ptr noundef %1001, ptr noundef %1004, i32 noundef %1006) #10
  br label %1008

1008:                                             ; preds = %991, %974
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009
  call void @exit(i32 noundef 1) #12
  unreachable

1011:                                             ; No predecessors!
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012, %945
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015, %940
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = add nsw i32 %1020, 1
  store i32 %1021, ptr @test_count, align 4, !tbaa !5
  %1022 = load ptr, ptr %23, align 8, !tbaa !9
  %1023 = call i32 @s2n_record_write(ptr noundef %1022, i8 noundef zeroext 23, ptr noundef %19)
  %1024 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  store i32 %1023, ptr %1024, align 4
  %1025 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  %1026 = load i32, ptr %1025, align 4
  %1027 = call zeroext i1 @s2n_result_is_ok(i32 %1026)
  br i1 %1027, label %1081, label %1028

1028:                                             ; preds = %1019
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1031 = call ptr @__errno_location() #11
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  store i32 %1032, ptr %39, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033)
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc i8 %1035 to i1
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #10
  %1040 = call i32 @isatty(i32 noundef %1039) #10
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1059

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %39, align 4, !tbaa !5
  %1044 = call ptr @__errno_location() #11
  store i32 %1043, ptr %1044, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef @.str.60)
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef @.str.60)
  %1053 = call ptr @__errno_location() #11
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #10
  %1056 = call ptr @__errno_location() #11
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef @.str.58, i32 noundef %1046, ptr noundef @.str.82, ptr noundef @.str.57, i32 noundef 297, ptr noundef %1049, ptr noundef %1052, ptr noundef %1055, i32 noundef %1057) #10
  br label %1076

1059:                                             ; preds = %1037, %1030
  %1060 = load i32, ptr %39, align 4, !tbaa !5
  %1061 = call ptr @__errno_location() #11
  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.60)
  %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.60)
  %1070 = call ptr @__errno_location() #11
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #10
  %1073 = call ptr @__errno_location() #11
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef @.str.61, i32 noundef %1063, ptr noundef @.str.82, ptr noundef @.str.57, i32 noundef 297, ptr noundef %1066, ptr noundef %1069, ptr noundef %1072, i32 noundef %1074) #10
  br label %1076

1076:                                             ; preds = %1059, %1042
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  call void @exit(i32 noundef 1) #12
  unreachable

1079:                                             ; No predecessors!
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080, %1019
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = load ptr, ptr %23, align 8, !tbaa !9
  %1088 = getelementptr inbounds %struct.s2n_connection, ptr %1087, i32 0, i32 41
  %1089 = getelementptr inbounds %struct.s2n_stuffer, ptr %1088, i32 0, i32 2
  %1090 = load i32, ptr %1089, align 4, !tbaa !57
  %1091 = load ptr, ptr %23, align 8, !tbaa !9
  %1092 = getelementptr inbounds %struct.s2n_connection, ptr %1091, i32 0, i32 41
  %1093 = getelementptr inbounds %struct.s2n_stuffer, ptr %1092, i32 0, i32 1
  %1094 = load i32, ptr %1093, align 8, !tbaa !58
  %1095 = sub i32 %1090, %1094
  %1096 = getelementptr inbounds %struct.s2n_blob, ptr %21, i32 0, i32 1
  %1097 = load i32, ptr %1096, align 8, !tbaa !55
  %1098 = icmp eq i32 %1095, %1097
  br i1 %1098, label %1152, label %1099

1099:                                             ; preds = %1084
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %1102 = call ptr @__errno_location() #11
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  store i32 %1103, ptr %40, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @s2n_print_stacktrace(ptr noundef %1104)
  %1106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1130

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @fileno(ptr noundef %1109) #10
  %1111 = call i32 @isatty(i32 noundef %1110) #10
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1130

1113:                                             ; preds = %1108
  %1114 = load i32, ptr %40, align 4, !tbaa !5
  %1115 = call ptr @__errno_location() #11
  store i32 %1114, ptr %1115, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef @.str.60)
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror_debug(i32 noundef %1122, ptr noundef @.str.60)
  %1124 = call ptr @__errno_location() #11
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #10
  %1127 = call ptr @__errno_location() #11
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef @.str.58, i32 noundef %1117, ptr noundef @.str.83, ptr noundef @.str.57, i32 noundef 298, ptr noundef %1120, ptr noundef %1123, ptr noundef %1126, i32 noundef %1128) #10
  br label %1147

1130:                                             ; preds = %1108, %1101
  %1131 = load i32, ptr %40, align 4, !tbaa !5
  %1132 = call ptr @__errno_location() #11
  store i32 %1131, ptr %1132, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef @.str.60)
  %1138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef @.str.60)
  %1141 = call ptr @__errno_location() #11
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #10
  %1144 = call ptr @__errno_location() #11
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef @.str.61, i32 noundef %1134, ptr noundef @.str.83, ptr noundef @.str.57, i32 noundef 298, ptr noundef %1137, ptr noundef %1140, ptr noundef %1143, i32 noundef %1145) #10
  br label %1147

1147:                                             ; preds = %1130, %1113
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  call void @exit(i32 noundef 1) #12
  unreachable

1150:                                             ; No predecessors!
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151, %1084
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

1155:                                             ; preds = %1154
  %1156 = getelementptr inbounds %struct.s2n_blob, ptr %21, i32 0, i32 1
  %1157 = load i32, ptr %1156, align 8, !tbaa !55
  %1158 = icmp ne i32 %1157, 0
  br i1 %1158, label %1159, label %1231

1159:                                             ; preds = %1155
  br label %1160

1160:                                             ; preds = %1159
  %1161 = load i32, ptr @test_count, align 4, !tbaa !5
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr @test_count, align 4, !tbaa !5
  %1163 = load ptr, ptr %23, align 8, !tbaa !9
  %1164 = getelementptr inbounds %struct.s2n_connection, ptr %1163, i32 0, i32 41
  %1165 = getelementptr inbounds %struct.s2n_stuffer, ptr %1164, i32 0, i32 0
  %1166 = getelementptr inbounds %struct.s2n_blob, ptr %1165, i32 0, i32 0
  %1167 = load ptr, ptr %1166, align 8, !tbaa !59
  %1168 = getelementptr inbounds %struct.s2n_blob, ptr %21, i32 0, i32 0
  %1169 = load ptr, ptr %1168, align 8, !tbaa !56
  %1170 = getelementptr inbounds %struct.s2n_blob, ptr %21, i32 0, i32 1
  %1171 = load i32, ptr %1170, align 8, !tbaa !55
  %1172 = zext i32 %1171 to i64
  %1173 = call i32 @memcmp(ptr noundef %1167, ptr noundef %1169, i64 noundef %1172) #13
  %1174 = icmp eq i32 %1173, 0
  br i1 %1174, label %1228, label %1175

1175:                                             ; preds = %1160
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

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

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

1189:                                             ; preds = %1184
  %1190 = load i32, ptr %41, align 4, !tbaa !5
  %1191 = call ptr @__errno_location() #11
  store i32 %1190, ptr %1191, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef @.str.60)
  %1197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef @.str.60)
  %1200 = call ptr @__errno_location() #11
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #10
  %1203 = call ptr @__errno_location() #11
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef @.str.58, i32 noundef %1193, ptr noundef @.str.84, ptr noundef @.str.57, i32 noundef 299, ptr noundef %1196, ptr noundef %1199, ptr noundef %1202, i32 noundef %1204) #10
  br label %1223

1206:                                             ; preds = %1184, %1177
  %1207 = load i32, ptr %41, align 4, !tbaa !5
  %1208 = call ptr @__errno_location() #11
  store i32 %1207, ptr %1208, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror(i32 noundef %1212, ptr noundef @.str.60)
  %1214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  %1216 = call ptr @s2n_strerror_debug(i32 noundef %1215, ptr noundef @.str.60)
  %1217 = call ptr @__errno_location() #11
  %1218 = load i32, ptr %1217, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #10
  %1220 = call ptr @__errno_location() #11
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef @.str.61, i32 noundef %1210, ptr noundef @.str.84, ptr noundef @.str.57, i32 noundef 299, ptr noundef %1213, ptr noundef %1216, ptr noundef %1219, i32 noundef %1221) #10
  br label %1223

1223:                                             ; preds = %1206, %1189
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1224

1224:                                             ; preds = %1223
  br label %1225

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

1226:                                             ; No predecessors!
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

1228:                                             ; preds = %1227, %1160
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

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

1232:                                             ; preds = %1231
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = load ptr, ptr %23, align 8, !tbaa !9
  %1238 = call i32 @s2n_connection_free(ptr noundef %1237)
  %1239 = icmp eq i32 %1238, -1
  br i1 %1239, label %1240, label %1293

1240:                                             ; preds = %1234
  br label %1241

1241:                                             ; preds = %1240
  br label %1242

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

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

1254:                                             ; preds = %1249
  %1255 = load i32, ptr %42, align 4, !tbaa !5
  %1256 = call ptr @__errno_location() #11
  store i32 %1255, ptr %1256, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror(i32 noundef %1260, ptr noundef @.str.60)
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef @.str.60)
  %1265 = call ptr @__errno_location() #11
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @strerror(i32 noundef %1266) #10
  %1268 = call ptr @__errno_location() #11
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef @.str.58, i32 noundef %1258, ptr noundef @.str.85, ptr noundef @.str.57, i32 noundef 301, ptr noundef %1261, ptr noundef %1264, ptr noundef %1267, i32 noundef %1269) #10
  br label %1288

1271:                                             ; preds = %1249, %1242
  %1272 = load i32, ptr %42, align 4, !tbaa !5
  %1273 = call ptr @__errno_location() #11
  store i32 %1272, ptr %1273, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror(i32 noundef %1277, ptr noundef @.str.60)
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror_debug(i32 noundef %1280, ptr noundef @.str.60)
  %1282 = call ptr @__errno_location() #11
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @strerror(i32 noundef %1283) #10
  %1285 = call ptr @__errno_location() #11
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef @.str.61, i32 noundef %1275, ptr noundef @.str.85, ptr noundef @.str.57, i32 noundef 301, ptr noundef %1278, ptr noundef %1281, ptr noundef %1284, i32 noundef %1286) #10
  br label %1288

1288:                                             ; preds = %1271, %1254
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1289

1289:                                             ; preds = %1288
  br label %1290

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

1291:                                             ; No predecessors!
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292, %1234
  br label %1294

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %1296 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1296, ptr %43, align 8, !tbaa !9
  br label %1297

1297:                                             ; preds = %1295
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr @test_count, align 4, !tbaa !5
  %1300 = load ptr, ptr %43, align 8, !tbaa !9
  %1301 = icmp eq ptr %1300, null
  br i1 %1301, label %1302, label %1355

1302:                                             ; preds = %1297
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

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

1311:                                             ; preds = %1304
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #10
  %1314 = call i32 @isatty(i32 noundef %1313) #10
  %1315 = icmp ne i32 %1314, 0
  br i1 %1315, label %1316, label %1333

1316:                                             ; preds = %1311
  %1317 = load i32, ptr %44, align 4, !tbaa !5
  %1318 = call ptr @__errno_location() #11
  store i32 %1317, ptr %1318, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror(i32 noundef %1322, ptr noundef @.str.60)
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror_debug(i32 noundef %1325, ptr noundef @.str.60)
  %1327 = call ptr @__errno_location() #11
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @strerror(i32 noundef %1328) #10
  %1330 = call ptr @__errno_location() #11
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef @.str.58, i32 noundef %1320, ptr noundef @.str.86, ptr noundef @.str.57, i32 noundef 310, ptr noundef %1323, ptr noundef %1326, ptr noundef %1329, i32 noundef %1331) #10
  br label %1350

1333:                                             ; preds = %1311, %1304
  %1334 = load i32, ptr %44, align 4, !tbaa !5
  %1335 = call ptr @__errno_location() #11
  store i32 %1334, ptr %1335, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef @.str.60)
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef @.str.60)
  %1344 = call ptr @__errno_location() #11
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #10
  %1347 = call ptr @__errno_location() #11
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef @.str.61, i32 noundef %1337, ptr noundef @.str.86, ptr noundef @.str.57, i32 noundef 310, ptr noundef %1340, ptr noundef %1343, ptr noundef %1346, i32 noundef %1348) #10
  br label %1350

1350:                                             ; preds = %1333, %1316
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

1352:                                             ; preds = %1351
  call void @exit(i32 noundef 1) #12
  unreachable

1353:                                             ; No predecessors!
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354, %1297
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = add nsw i32 %1359, 1
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = load ptr, ptr %43, align 8, !tbaa !9
  %1362 = call i32 @s2n_connection_set_blinding(ptr noundef %1361, i32 noundef 1)
  %1363 = icmp eq i32 %1362, -1
  br i1 %1363, label %1364, label %1417

1364:                                             ; preds = %1358
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

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

1373:                                             ; preds = %1366
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @fileno(ptr noundef %1374) #10
  %1376 = call i32 @isatty(i32 noundef %1375) #10
  %1377 = icmp ne i32 %1376, 0
  br i1 %1377, label %1378, label %1395

1378:                                             ; preds = %1373
  %1379 = load i32, ptr %45, align 4, !tbaa !5
  %1380 = call ptr @__errno_location() #11
  store i32 %1379, ptr %1380, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef @.str.60)
  %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_debug(i32 noundef %1387, ptr noundef @.str.60)
  %1389 = call ptr @__errno_location() #11
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #10
  %1392 = call ptr @__errno_location() #11
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef @.str.58, i32 noundef %1382, ptr noundef @.str.87, ptr noundef @.str.57, i32 noundef 311, ptr noundef %1385, ptr noundef %1388, ptr noundef %1391, i32 noundef %1393) #10
  br label %1412

1395:                                             ; preds = %1373, %1366
  %1396 = load i32, ptr %45, align 4, !tbaa !5
  %1397 = call ptr @__errno_location() #11
  store i32 %1396, ptr %1397, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef @.str.60)
  %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_debug(i32 noundef %1404, ptr noundef @.str.60)
  %1406 = call ptr @__errno_location() #11
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #10
  %1409 = call ptr @__errno_location() #11
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef @.str.61, i32 noundef %1399, ptr noundef @.str.87, ptr noundef @.str.57, i32 noundef 311, ptr noundef %1402, ptr noundef %1405, ptr noundef %1408, i32 noundef %1410) #10
  br label %1412

1412:                                             ; preds = %1395, %1378
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413
  call void @exit(i32 noundef 1) #12
  unreachable

1415:                                             ; No predecessors!
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416, %1358
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = add nsw i32 %1421, 1
  store i32 %1422, ptr @test_count, align 4, !tbaa !5
  %1423 = load ptr, ptr %43, align 8, !tbaa !9
  %1424 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1423, ptr noundef @.str.88)
  %1425 = icmp eq i32 %1424, -1
  br i1 %1425, label %1426, label %1479

1426:                                             ; preds = %1420
  br label %1427

1427:                                             ; preds = %1426
  br label %1428

1428:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1429 = call ptr @__errno_location() #11
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  store i32 %1430, ptr %46, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431)
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1434 = trunc i8 %1433 to i1
  br i1 %1434, label %1435, label %1457

1435:                                             ; preds = %1428
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @fileno(ptr noundef %1436) #10
  %1438 = call i32 @isatty(i32 noundef %1437) #10
  %1439 = icmp ne i32 %1438, 0
  br i1 %1439, label %1440, label %1457

1440:                                             ; preds = %1435
  %1441 = load i32, ptr %46, align 4, !tbaa !5
  %1442 = call ptr @__errno_location() #11
  store i32 %1441, ptr %1442, align 4, !tbaa !5
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror(i32 noundef %1446, ptr noundef @.str.60)
  %1448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call ptr @s2n_strerror_debug(i32 noundef %1449, ptr noundef @.str.60)
  %1451 = call ptr @__errno_location() #11
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call ptr @strerror(i32 noundef %1452) #10
  %1454 = call ptr @__errno_location() #11
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1443, ptr noundef @.str.58, i32 noundef %1444, ptr noundef @.str.89, ptr noundef @.str.57, i32 noundef 312, ptr noundef %1447, ptr noundef %1450, ptr noundef %1453, i32 noundef %1455) #10
  br label %1474

1457:                                             ; preds = %1435, %1428
  %1458 = load i32, ptr %46, align 4, !tbaa !5
  %1459 = call ptr @__errno_location() #11
  store i32 %1458, ptr %1459, align 4, !tbaa !5
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror(i32 noundef %1463, ptr noundef @.str.60)
  %1465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef @.str.60)
  %1468 = call ptr @__errno_location() #11
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @strerror(i32 noundef %1469) #10
  %1471 = call ptr @__errno_location() #11
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1460, ptr noundef @.str.61, i32 noundef %1461, ptr noundef @.str.89, ptr noundef @.str.57, i32 noundef 312, ptr noundef %1464, ptr noundef %1467, ptr noundef %1470, i32 noundef %1472) #10
  br label %1474

1474:                                             ; preds = %1457, %1440
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  call void @exit(i32 noundef 1) #12
  unreachable

1477:                                             ; No predecessors!
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478, %1420
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

1481:                                             ; preds = %1480
  br label %1482

1482:                                             ; preds = %1481
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = add nsw i32 %1483, 1
  store i32 %1484, ptr @test_count, align 4, !tbaa !5
  %1485 = load ptr, ptr %43, align 8, !tbaa !9
  %1486 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %1485)
  %1487 = icmp eq i32 %1486, -1
  br i1 %1487, label %1488, label %1541

1488:                                             ; preds = %1482
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1491 = call ptr @__errno_location() #11
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  store i32 %1492, ptr %47, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493)
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc i8 %1495 to i1
  br i1 %1496, label %1497, label %1519

1497:                                             ; preds = %1490
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #10
  %1500 = call i32 @isatty(i32 noundef %1499) #10
  %1501 = icmp ne i32 %1500, 0
  br i1 %1501, label %1502, label %1519

1502:                                             ; preds = %1497
  %1503 = load i32, ptr %47, align 4, !tbaa !5
  %1504 = call ptr @__errno_location() #11
  store i32 %1503, ptr %1504, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = load i32, ptr @test_count, align 4, !tbaa !5
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror(i32 noundef %1508, ptr noundef @.str.60)
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror_debug(i32 noundef %1511, ptr noundef @.str.60)
  %1513 = call ptr @__errno_location() #11
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @strerror(i32 noundef %1514) #10
  %1516 = call ptr @__errno_location() #11
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1505, ptr noundef @.str.58, i32 noundef %1506, ptr noundef @.str.90, ptr noundef @.str.57, i32 noundef 313, ptr noundef %1509, ptr noundef %1512, ptr noundef %1515, i32 noundef %1517) #10
  br label %1536

1519:                                             ; preds = %1497, %1490
  %1520 = load i32, ptr %47, align 4, !tbaa !5
  %1521 = call ptr @__errno_location() #11
  store i32 %1520, ptr %1521, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %1524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror(i32 noundef %1525, ptr noundef @.str.60)
  %1527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror_debug(i32 noundef %1528, ptr noundef @.str.60)
  %1530 = call ptr @__errno_location() #11
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @strerror(i32 noundef %1531) #10
  %1533 = call ptr @__errno_location() #11
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1522, ptr noundef @.str.61, i32 noundef %1523, ptr noundef @.str.90, ptr noundef @.str.57, i32 noundef 313, ptr noundef %1526, ptr noundef %1529, ptr noundef %1532, i32 noundef %1534) #10
  br label %1536

1536:                                             ; preds = %1519, %1502
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  call void @exit(i32 noundef 1) #12
  unreachable

1539:                                             ; No predecessors!
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540, %1482
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = add nsw i32 %1545, 1
  store i32 %1546, ptr @test_count, align 4, !tbaa !5
  %1547 = load ptr, ptr %43, align 8, !tbaa !9
  %1548 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef %1547, i32 noundef 1024)
  %1549 = icmp eq i32 %1548, -1
  br i1 %1549, label %1550, label %1603

1550:                                             ; preds = %1544
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1553 = call ptr @__errno_location() #11
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  store i32 %1554, ptr %48, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @s2n_print_stacktrace(ptr noundef %1555)
  %1557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc i8 %1557 to i1
  br i1 %1558, label %1559, label %1581

1559:                                             ; preds = %1552
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @fileno(ptr noundef %1560) #10
  %1562 = call i32 @isatty(i32 noundef %1561) #10
  %1563 = icmp ne i32 %1562, 0
  br i1 %1563, label %1564, label %1581

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %48, align 4, !tbaa !5
  %1566 = call ptr @__errno_location() #11
  store i32 %1565, ptr %1566, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef @.str.60)
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror_debug(i32 noundef %1573, ptr noundef @.str.60)
  %1575 = call ptr @__errno_location() #11
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #10
  %1578 = call ptr @__errno_location() #11
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef @.str.58, i32 noundef %1568, ptr noundef @.str.91, ptr noundef @.str.57, i32 noundef 314, ptr noundef %1571, ptr noundef %1574, ptr noundef %1577, i32 noundef %1579) #10
  br label %1598

1581:                                             ; preds = %1559, %1552
  %1582 = load i32, ptr %48, align 4, !tbaa !5
  %1583 = call ptr @__errno_location() #11
  store i32 %1582, ptr %1583, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef @.str.60)
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef @.str.60)
  %1592 = call ptr @__errno_location() #11
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #10
  %1595 = call ptr @__errno_location() #11
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef @.str.61, i32 noundef %1585, ptr noundef @.str.91, ptr noundef @.str.57, i32 noundef 314, ptr noundef %1588, ptr noundef %1591, ptr noundef %1594, i32 noundef %1596) #10
  br label %1598

1598:                                             ; preds = %1581, %1564
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599
  call void @exit(i32 noundef 1) #12
  unreachable

1601:                                             ; No predecessors!
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602, %1544
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %1606 = call ptr @s2n_external_psk_new()
  store ptr %1606, ptr %49, align 8, !tbaa !9
  %1607 = load ptr, ptr %49, align 8, !tbaa !9
  %1608 = getelementptr inbounds %struct.s2n_psk, ptr %1607, i32 0, i32 0
  store i32 0, ptr %1608, align 8, !tbaa !60
  br label %1609

1609:                                             ; preds = %1605
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr @test_count, align 4, !tbaa !5
  %1612 = load ptr, ptr %49, align 8, !tbaa !9
  %1613 = getelementptr inbounds %struct.s2n_blob, ptr %8, i32 0, i32 0
  %1614 = load ptr, ptr %1613, align 8, !tbaa !56
  %1615 = getelementptr inbounds %struct.s2n_blob, ptr %8, i32 0, i32 1
  %1616 = load i32, ptr %1615, align 8, !tbaa !55
  %1617 = trunc i32 %1616 to i16
  %1618 = call i32 @s2n_psk_set_identity(ptr noundef %1612, ptr noundef %1614, i16 noundef zeroext %1617)
  %1619 = icmp eq i32 %1618, -1
  br i1 %1619, label %1620, label %1673

1620:                                             ; preds = %1609
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

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

1629:                                             ; preds = %1622
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = call i32 @fileno(ptr noundef %1630) #10
  %1632 = call i32 @isatty(i32 noundef %1631) #10
  %1633 = icmp ne i32 %1632, 0
  br i1 %1633, label %1634, label %1651

1634:                                             ; preds = %1629
  %1635 = load i32, ptr %50, align 4, !tbaa !5
  %1636 = call ptr @__errno_location() #11
  store i32 %1635, ptr %1636, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1640, ptr noundef @.str.60)
  %1642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror_debug(i32 noundef %1643, ptr noundef @.str.60)
  %1645 = call ptr @__errno_location() #11
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @strerror(i32 noundef %1646) #10
  %1648 = call ptr @__errno_location() #11
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1637, ptr noundef @.str.58, i32 noundef %1638, ptr noundef @.str.92, ptr noundef @.str.57, i32 noundef 318, ptr noundef %1641, ptr noundef %1644, ptr noundef %1647, i32 noundef %1649) #10
  br label %1668

1651:                                             ; preds = %1629, %1622
  %1652 = load i32, ptr %50, align 4, !tbaa !5
  %1653 = call ptr @__errno_location() #11
  store i32 %1652, ptr %1653, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror(i32 noundef %1657, ptr noundef @.str.60)
  %1659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef @.str.60)
  %1662 = call ptr @__errno_location() #11
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @strerror(i32 noundef %1663) #10
  %1665 = call ptr @__errno_location() #11
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1654, ptr noundef @.str.61, i32 noundef %1655, ptr noundef @.str.92, ptr noundef @.str.57, i32 noundef 318, ptr noundef %1658, ptr noundef %1661, ptr noundef %1664, i32 noundef %1666) #10
  br label %1668

1668:                                             ; preds = %1651, %1634
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %1669

1669:                                             ; preds = %1668
  br label %1670

1670:                                             ; preds = %1669
  call void @exit(i32 noundef 1) #12
  unreachable

1671:                                             ; No predecessors!
  br label %1672

1672:                                             ; preds = %1671
  br label %1673

1673:                                             ; preds = %1672, %1609
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

1676:                                             ; preds = %1675
  %1677 = load i32, ptr @test_count, align 4, !tbaa !5
  %1678 = add nsw i32 %1677, 1
  store i32 %1678, ptr @test_count, align 4, !tbaa !5
  %1679 = load ptr, ptr %49, align 8, !tbaa !9
  %1680 = getelementptr inbounds %struct.s2n_blob, ptr %5, i32 0, i32 0
  %1681 = load ptr, ptr %1680, align 8, !tbaa !56
  %1682 = getelementptr inbounds %struct.s2n_blob, ptr %5, i32 0, i32 1
  %1683 = load i32, ptr %1682, align 8, !tbaa !55
  %1684 = trunc i32 %1683 to i16
  %1685 = call i32 @s2n_psk_set_secret(ptr noundef %1679, ptr noundef %1681, i16 noundef zeroext %1684)
  %1686 = icmp eq i32 %1685, -1
  br i1 %1686, label %1687, label %1740

1687:                                             ; preds = %1676
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

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

1696:                                             ; preds = %1689
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @fileno(ptr noundef %1697) #10
  %1699 = call i32 @isatty(i32 noundef %1698) #10
  %1700 = icmp ne i32 %1699, 0
  br i1 %1700, label %1701, label %1718

1701:                                             ; preds = %1696
  %1702 = load i32, ptr %51, align 4, !tbaa !5
  %1703 = call ptr @__errno_location() #11
  store i32 %1702, ptr %1703, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = load i32, ptr @test_count, align 4, !tbaa !5
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror(i32 noundef %1707, ptr noundef @.str.60)
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef @.str.60)
  %1712 = call ptr @__errno_location() #11
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #10
  %1715 = call ptr @__errno_location() #11
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1704, ptr noundef @.str.58, i32 noundef %1705, ptr noundef @.str.93, ptr noundef @.str.57, i32 noundef 319, ptr noundef %1708, ptr noundef %1711, ptr noundef %1714, i32 noundef %1716) #10
  br label %1735

1718:                                             ; preds = %1696, %1689
  %1719 = load i32, ptr %51, align 4, !tbaa !5
  %1720 = call ptr @__errno_location() #11
  store i32 %1719, ptr %1720, align 4, !tbaa !5
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror(i32 noundef %1724, ptr noundef @.str.60)
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror_debug(i32 noundef %1727, ptr noundef @.str.60)
  %1729 = call ptr @__errno_location() #11
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @strerror(i32 noundef %1730) #10
  %1732 = call ptr @__errno_location() #11
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1721, ptr noundef @.str.61, i32 noundef %1722, ptr noundef @.str.93, ptr noundef @.str.57, i32 noundef 319, ptr noundef %1725, ptr noundef %1728, ptr noundef %1731, i32 noundef %1733) #10
  br label %1735

1735:                                             ; preds = %1718, %1701
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  call void @exit(i32 noundef 1) #12
  unreachable

1738:                                             ; No predecessors!
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739, %1676
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  br label %1743

1743:                                             ; preds = %1742
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = add nsw i32 %1744, 1
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = load ptr, ptr %49, align 8, !tbaa !9
  %1747 = call i32 @s2n_psk_configure_early_data(ptr noundef %1746, i32 noundef 1024, i8 noundef zeroext 19, i8 noundef zeroext 1)
  %1748 = icmp eq i32 %1747, -1
  br i1 %1748, label %1749, label %1802

1749:                                             ; preds = %1743
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

1751:                                             ; preds = %1750
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %1752 = call ptr @__errno_location() #11
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  store i32 %1753, ptr %52, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = call i32 @s2n_print_stacktrace(ptr noundef %1754)
  %1756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1757 = trunc i8 %1756 to i1
  br i1 %1757, label %1758, label %1780

1758:                                             ; preds = %1751
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = call i32 @fileno(ptr noundef %1759) #10
  %1761 = call i32 @isatty(i32 noundef %1760) #10
  %1762 = icmp ne i32 %1761, 0
  br i1 %1762, label %1763, label %1780

1763:                                             ; preds = %1758
  %1764 = load i32, ptr %52, align 4, !tbaa !5
  %1765 = call ptr @__errno_location() #11
  store i32 %1764, ptr %1765, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror(i32 noundef %1769, ptr noundef @.str.60)
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror_debug(i32 noundef %1772, ptr noundef @.str.60)
  %1774 = call ptr @__errno_location() #11
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #10
  %1777 = call ptr @__errno_location() #11
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef @.str.58, i32 noundef %1767, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 320, ptr noundef %1770, ptr noundef %1773, ptr noundef %1776, i32 noundef %1778) #10
  br label %1797

1780:                                             ; preds = %1758, %1751
  %1781 = load i32, ptr %52, align 4, !tbaa !5
  %1782 = call ptr @__errno_location() #11
  store i32 %1781, ptr %1782, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror(i32 noundef %1786, ptr noundef @.str.60)
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror_debug(i32 noundef %1789, ptr noundef @.str.60)
  %1791 = call ptr @__errno_location() #11
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @strerror(i32 noundef %1792) #10
  %1794 = call ptr @__errno_location() #11
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1783, ptr noundef @.str.61, i32 noundef %1784, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 320, ptr noundef %1787, ptr noundef %1790, ptr noundef %1793, i32 noundef %1795) #10
  br label %1797

1797:                                             ; preds = %1780, %1763
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  call void @exit(i32 noundef 1) #12
  unreachable

1800:                                             ; No predecessors!
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

1802:                                             ; preds = %1801, %1743
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804
  %1806 = load i32, ptr @test_count, align 4, !tbaa !5
  %1807 = add nsw i32 %1806, 1
  store i32 %1807, ptr @test_count, align 4, !tbaa !5
  %1808 = load ptr, ptr %43, align 8, !tbaa !9
  %1809 = load ptr, ptr %49, align 8, !tbaa !9
  %1810 = call i32 @s2n_connection_append_psk(ptr noundef %1808, ptr noundef %1809)
  %1811 = icmp eq i32 %1810, -1
  br i1 %1811, label %1812, label %1865

1812:                                             ; preds = %1805
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

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

1821:                                             ; preds = %1814
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = call i32 @fileno(ptr noundef %1822) #10
  %1824 = call i32 @isatty(i32 noundef %1823) #10
  %1825 = icmp ne i32 %1824, 0
  br i1 %1825, label %1826, label %1843

1826:                                             ; preds = %1821
  %1827 = load i32, ptr %53, align 4, !tbaa !5
  %1828 = call ptr @__errno_location() #11
  store i32 %1827, ptr %1828, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror(i32 noundef %1832, ptr noundef @.str.60)
  %1834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror_debug(i32 noundef %1835, ptr noundef @.str.60)
  %1837 = call ptr @__errno_location() #11
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @strerror(i32 noundef %1838) #10
  %1840 = call ptr @__errno_location() #11
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1829, ptr noundef @.str.58, i32 noundef %1830, ptr noundef @.str.94, ptr noundef @.str.57, i32 noundef 321, ptr noundef %1833, ptr noundef %1836, ptr noundef %1839, i32 noundef %1841) #10
  br label %1860

1843:                                             ; preds = %1821, %1814
  %1844 = load i32, ptr %53, align 4, !tbaa !5
  %1845 = call ptr @__errno_location() #11
  store i32 %1844, ptr %1845, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror(i32 noundef %1849, ptr noundef @.str.60)
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef @.str.60)
  %1854 = call ptr @__errno_location() #11
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @strerror(i32 noundef %1855) #10
  %1857 = call ptr @__errno_location() #11
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef @.str.61, i32 noundef %1847, ptr noundef @.str.94, ptr noundef @.str.57, i32 noundef 321, ptr noundef %1850, ptr noundef %1853, ptr noundef %1856, i32 noundef %1858) #10
  br label %1860

1860:                                             ; preds = %1843, %1826
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861
  call void @exit(i32 noundef 1) #12
  unreachable

1863:                                             ; No predecessors!
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864, %1805
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866
  %1868 = load ptr, ptr %43, align 8, !tbaa !9
  %1869 = getelementptr inbounds %struct.s2n_connection, ptr %1868, i32 0, i32 33
  %1870 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1869, i32 0, i32 0
  store i32 1, ptr %1870, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 40, ptr %54) #10
  call void @llvm.memset.p0.i64(ptr align 8 %54, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %55) #10
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 40, i1 false)
  br label %1871

1871:                                             ; preds = %1867
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  store i32 %1873, ptr @test_count, align 4, !tbaa !5
  %1874 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %54, i32 noundef 8092)
  %1875 = icmp eq i32 %1874, -1
  br i1 %1875, label %1876, label %1929

1876:                                             ; preds = %1871
  br label %1877

1877:                                             ; preds = %1876
  br label %1878

1878:                                             ; preds = %1877
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %1879 = call ptr @__errno_location() #11
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  store i32 %1880, ptr %56, align 4, !tbaa !5
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = call i32 @s2n_print_stacktrace(ptr noundef %1881)
  %1883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1884 = trunc i8 %1883 to i1
  br i1 %1884, label %1885, label %1907

1885:                                             ; preds = %1878
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = call i32 @fileno(ptr noundef %1886) #10
  %1888 = call i32 @isatty(i32 noundef %1887) #10
  %1889 = icmp ne i32 %1888, 0
  br i1 %1889, label %1890, label %1907

1890:                                             ; preds = %1885
  %1891 = load i32, ptr %56, align 4, !tbaa !5
  %1892 = call ptr @__errno_location() #11
  store i32 %1891, ptr %1892, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror(i32 noundef %1896, ptr noundef @.str.60)
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror_debug(i32 noundef %1899, ptr noundef @.str.60)
  %1901 = call ptr @__errno_location() #11
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #10
  %1904 = call ptr @__errno_location() #11
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef @.str.58, i32 noundef %1894, ptr noundef @.str.95, ptr noundef @.str.57, i32 noundef 329, ptr noundef %1897, ptr noundef %1900, ptr noundef %1903, i32 noundef %1905) #10
  br label %1924

1907:                                             ; preds = %1885, %1878
  %1908 = load i32, ptr %56, align 4, !tbaa !5
  %1909 = call ptr @__errno_location() #11
  store i32 %1908, ptr %1909, align 4, !tbaa !5
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror(i32 noundef %1913, ptr noundef @.str.60)
  %1915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror_debug(i32 noundef %1916, ptr noundef @.str.60)
  %1918 = call ptr @__errno_location() #11
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @strerror(i32 noundef %1919) #10
  %1921 = call ptr @__errno_location() #11
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1910, ptr noundef @.str.61, i32 noundef %1911, ptr noundef @.str.95, ptr noundef @.str.57, i32 noundef 329, ptr noundef %1914, ptr noundef %1917, ptr noundef %1920, i32 noundef %1922) #10
  br label %1924

1924:                                             ; preds = %1907, %1890
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %1925

1925:                                             ; preds = %1924
  br label %1926

1926:                                             ; preds = %1925
  call void @exit(i32 noundef 1) #12
  unreachable

1927:                                             ; No predecessors!
  br label %1928

1928:                                             ; preds = %1927
  br label %1929

1929:                                             ; preds = %1928, %1871
  br label %1930

1930:                                             ; preds = %1929
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = add nsw i32 %1933, 1
  store i32 %1934, ptr @test_count, align 4, !tbaa !5
  %1935 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %55, i32 noundef 8092)
  %1936 = icmp eq i32 %1935, -1
  br i1 %1936, label %1937, label %1990

1937:                                             ; preds = %1932
  br label %1938

1938:                                             ; preds = %1937
  br label %1939

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

1946:                                             ; preds = %1939
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @fileno(ptr noundef %1947) #10
  %1949 = call i32 @isatty(i32 noundef %1948) #10
  %1950 = icmp ne i32 %1949, 0
  br i1 %1950, label %1951, label %1968

1951:                                             ; preds = %1946
  %1952 = load i32, ptr %57, align 4, !tbaa !5
  %1953 = call ptr @__errno_location() #11
  store i32 %1952, ptr %1953, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror(i32 noundef %1957, ptr noundef @.str.60)
  %1959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror_debug(i32 noundef %1960, ptr noundef @.str.60)
  %1962 = call ptr @__errno_location() #11
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @strerror(i32 noundef %1963) #10
  %1965 = call ptr @__errno_location() #11
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef @.str.58, i32 noundef %1955, ptr noundef @.str.96, ptr noundef @.str.57, i32 noundef 330, ptr noundef %1958, ptr noundef %1961, ptr noundef %1964, i32 noundef %1966) #10
  br label %1985

1968:                                             ; preds = %1946, %1939
  %1969 = load i32, ptr %57, align 4, !tbaa !5
  %1970 = call ptr @__errno_location() #11
  store i32 %1969, ptr %1970, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef @.str.60)
  %1976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror_debug(i32 noundef %1977, ptr noundef @.str.60)
  %1979 = call ptr @__errno_location() #11
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @strerror(i32 noundef %1980) #10
  %1982 = call ptr @__errno_location() #11
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef @.str.61, i32 noundef %1972, ptr noundef @.str.96, ptr noundef @.str.57, i32 noundef 330, ptr noundef %1975, ptr noundef %1978, ptr noundef %1981, i32 noundef %1983) #10
  br label %1985

1985:                                             ; preds = %1968, %1951
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  call void @exit(i32 noundef 1) #12
  unreachable

1988:                                             ; No predecessors!
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

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

1991:                                             ; preds = %1990
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

1993:                                             ; preds = %1992
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = add nsw i32 %1994, 1
  store i32 %1995, ptr @test_count, align 4, !tbaa !5
  %1996 = load ptr, ptr %43, align 8, !tbaa !9
  %1997 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %54, ptr noundef %55, ptr noundef %1996)
  %1998 = icmp eq i32 %1997, -1
  br i1 %1998, label %1999, label %2052

1999:                                             ; preds = %1993
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

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

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

2013:                                             ; preds = %2008
  %2014 = load i32, ptr %58, align 4, !tbaa !5
  %2015 = call ptr @__errno_location() #11
  store i32 %2014, ptr %2015, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror(i32 noundef %2019, ptr noundef @.str.60)
  %2021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror_debug(i32 noundef %2022, ptr noundef @.str.60)
  %2024 = call ptr @__errno_location() #11
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #10
  %2027 = call ptr @__errno_location() #11
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef @.str.58, i32 noundef %2017, ptr noundef @.str.97, ptr noundef @.str.57, i32 noundef 331, ptr noundef %2020, ptr noundef %2023, ptr noundef %2026, i32 noundef %2028) #10
  br label %2047

2030:                                             ; preds = %2008, %2001
  %2031 = load i32, ptr %58, align 4, !tbaa !5
  %2032 = call ptr @__errno_location() #11
  store i32 %2031, ptr %2032, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = load i32, ptr @test_count, align 4, !tbaa !5
  %2035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror(i32 noundef %2036, ptr noundef @.str.60)
  %2038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror_debug(i32 noundef %2039, ptr noundef @.str.60)
  %2041 = call ptr @__errno_location() #11
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @strerror(i32 noundef %2042) #10
  %2044 = call ptr @__errno_location() #11
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2033, ptr noundef @.str.61, i32 noundef %2034, ptr noundef @.str.97, ptr noundef @.str.57, i32 noundef 331, ptr noundef %2037, ptr noundef %2040, ptr noundef %2043, i32 noundef %2045) #10
  br label %2047

2047:                                             ; preds = %2030, %2013
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

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

2050:                                             ; No predecessors!
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051, %1993
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %2057 = add nsw i32 %2056, 1
  store i32 %2057, ptr @test_count, align 4, !tbaa !5
  %2058 = call i32 @s2n_stuffer_write(ptr noundef %54, ptr noundef %13)
  %2059 = icmp eq i32 %2058, -1
  br i1 %2059, label %2060, label %2113

2060:                                             ; preds = %2055
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

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

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

2074:                                             ; preds = %2069
  %2075 = load i32, ptr %59, align 4, !tbaa !5
  %2076 = call ptr @__errno_location() #11
  store i32 %2075, ptr %2076, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = load i32, ptr @test_count, align 4, !tbaa !5
  %2079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror(i32 noundef %2080, ptr noundef @.str.60)
  %2082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef @.str.60)
  %2085 = call ptr @__errno_location() #11
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #10
  %2088 = call ptr @__errno_location() #11
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2077, ptr noundef @.str.58, i32 noundef %2078, ptr noundef @.str.98, ptr noundef @.str.57, i32 noundef 333, ptr noundef %2081, ptr noundef %2084, ptr noundef %2087, i32 noundef %2089) #10
  br label %2108

2091:                                             ; preds = %2069, %2062
  %2092 = load i32, ptr %59, align 4, !tbaa !5
  %2093 = call ptr @__errno_location() #11
  store i32 %2092, ptr %2093, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2097 = load i32, ptr %2096, align 4, !tbaa !5
  %2098 = call ptr @s2n_strerror(i32 noundef %2097, ptr noundef @.str.60)
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror_debug(i32 noundef %2100, ptr noundef @.str.60)
  %2102 = call ptr @__errno_location() #11
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #10
  %2105 = call ptr @__errno_location() #11
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef @.str.61, i32 noundef %2095, ptr noundef @.str.98, ptr noundef @.str.57, i32 noundef 333, ptr noundef %2098, ptr noundef %2101, ptr noundef %2104, i32 noundef %2106) #10
  br label %2108

2108:                                             ; preds = %2091, %2074
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

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

2111:                                             ; No predecessors!
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112, %2055
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  store i32 0, ptr %60, align 4, !tbaa !5
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

2118:                                             ; preds = %2117
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = add nsw i32 %2119, 1
  store i32 %2120, ptr @test_count, align 4, !tbaa !5
  %2121 = load ptr, ptr %43, align 8, !tbaa !9
  %2122 = call i32 @s2n_negotiate(ptr noundef %2121, ptr noundef %60)
  %2123 = icmp eq i32 %2122, -1
  br i1 %2123, label %2177, label %2124

2124:                                             ; preds = %2118
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

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

2133:                                             ; preds = %2126
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @fileno(ptr noundef %2134) #10
  %2136 = call i32 @isatty(i32 noundef %2135) #10
  %2137 = icmp ne i32 %2136, 0
  br i1 %2137, label %2138, label %2155

2138:                                             ; preds = %2133
  %2139 = load i32, ptr %61, align 4, !tbaa !5
  %2140 = call ptr @__errno_location() #11
  store i32 %2139, ptr %2140, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror(i32 noundef %2144, ptr noundef @.str.60)
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror_debug(i32 noundef %2147, ptr noundef @.str.60)
  %2149 = call ptr @__errno_location() #11
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @strerror(i32 noundef %2150) #10
  %2152 = call ptr @__errno_location() #11
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2141, ptr noundef @.str.58, i32 noundef %2142, ptr noundef @.str.99, ptr noundef @.str.57, i32 noundef 336, ptr noundef %2145, ptr noundef %2148, ptr noundef %2151, i32 noundef %2153) #10
  br label %2172

2155:                                             ; preds = %2133, %2126
  %2156 = load i32, ptr %61, align 4, !tbaa !5
  %2157 = call ptr @__errno_location() #11
  store i32 %2156, ptr %2157, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror(i32 noundef %2161, ptr noundef @.str.60)
  %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_debug(i32 noundef %2164, ptr noundef @.str.60)
  %2166 = call ptr @__errno_location() #11
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @strerror(i32 noundef %2167) #10
  %2169 = call ptr @__errno_location() #11
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2158, ptr noundef @.str.61, i32 noundef %2159, ptr noundef @.str.99, ptr noundef @.str.57, i32 noundef 336, ptr noundef %2162, ptr noundef %2165, ptr noundef %2168, i32 noundef %2170) #10
  br label %2172

2172:                                             ; preds = %2155, %2138
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  call void @exit(i32 noundef 1) #12
  unreachable

2175:                                             ; No predecessors!
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176, %2118
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178
  br label %2180

2180:                                             ; preds = %2179
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = add nsw i32 %2181, 1
  store i32 %2182, ptr @test_count, align 4, !tbaa !5
  %2183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = icmp eq i32 %2184, 201326592
  br i1 %2185, label %2239, label %2186

2186:                                             ; preds = %2180
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

2188:                                             ; preds = %2187
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2189 = call ptr @__errno_location() #11
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  store i32 %2190, ptr %62, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @s2n_print_stacktrace(ptr noundef %2191)
  %2193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2194 = trunc i8 %2193 to i1
  br i1 %2194, label %2195, label %2217

2195:                                             ; preds = %2188
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = call i32 @fileno(ptr noundef %2196) #10
  %2198 = call i32 @isatty(i32 noundef %2197) #10
  %2199 = icmp ne i32 %2198, 0
  br i1 %2199, label %2200, label %2217

2200:                                             ; preds = %2195
  %2201 = load i32, ptr %62, align 4, !tbaa !5
  %2202 = call ptr @__errno_location() #11
  store i32 %2201, ptr %2202, align 4, !tbaa !5
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror(i32 noundef %2206, ptr noundef @.str.60)
  %2208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror_debug(i32 noundef %2209, ptr noundef @.str.60)
  %2211 = call ptr @__errno_location() #11
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @strerror(i32 noundef %2212) #10
  %2214 = call ptr @__errno_location() #11
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2203, ptr noundef @.str.58, i32 noundef %2204, ptr noundef @.str.100, ptr noundef @.str.57, i32 noundef 336, ptr noundef %2207, ptr noundef %2210, ptr noundef %2213, i32 noundef %2215) #10
  br label %2234

2217:                                             ; preds = %2195, %2188
  %2218 = load i32, ptr %62, align 4, !tbaa !5
  %2219 = call ptr @__errno_location() #11
  store i32 %2218, ptr %2219, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror(i32 noundef %2223, ptr noundef @.str.60)
  %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_debug(i32 noundef %2226, ptr noundef @.str.60)
  %2228 = call ptr @__errno_location() #11
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @strerror(i32 noundef %2229) #10
  %2231 = call ptr @__errno_location() #11
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2220, ptr noundef @.str.61, i32 noundef %2221, ptr noundef @.str.100, ptr noundef @.str.57, i32 noundef 336, ptr noundef %2224, ptr noundef %2227, ptr noundef %2230, i32 noundef %2232) #10
  br label %2234

2234:                                             ; preds = %2217, %2200
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235
  call void @exit(i32 noundef 1) #12
  unreachable

2237:                                             ; No predecessors!
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238, %2180
  br label %2240

2240:                                             ; preds = %2239
  br label %2241

2241:                                             ; preds = %2240
  br label %2242

2242:                                             ; preds = %2241
  %2243 = load i32, ptr @test_count, align 4, !tbaa !5
  %2244 = add nsw i32 %2243, 1
  store i32 %2244, ptr @test_count, align 4, !tbaa !5
  %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.60)
  %2248 = icmp eq ptr %2247, null
  br i1 %2248, label %2249, label %2302

2249:                                             ; preds = %2242
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2252 = call ptr @__errno_location() #11
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  store i32 %2253, ptr %63, align 4, !tbaa !5
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @s2n_print_stacktrace(ptr noundef %2254)
  %2256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2257 = trunc i8 %2256 to i1
  br i1 %2257, label %2258, label %2280

2258:                                             ; preds = %2251
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = call i32 @fileno(ptr noundef %2259) #10
  %2261 = call i32 @isatty(i32 noundef %2260) #10
  %2262 = icmp ne i32 %2261, 0
  br i1 %2262, label %2263, label %2280

2263:                                             ; preds = %2258
  %2264 = load i32, ptr %63, align 4, !tbaa !5
  %2265 = call ptr @__errno_location() #11
  store i32 %2264, ptr %2265, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = load i32, ptr @test_count, align 4, !tbaa !5
  %2268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef @.str.60)
  %2271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror_debug(i32 noundef %2272, ptr noundef @.str.60)
  %2274 = call ptr @__errno_location() #11
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @strerror(i32 noundef %2275) #10
  %2277 = call ptr @__errno_location() #11
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2266, ptr noundef @.str.58, i32 noundef %2267, ptr noundef @.str.101, ptr noundef @.str.57, i32 noundef 336, ptr noundef %2270, ptr noundef %2273, ptr noundef %2276, i32 noundef %2278) #10
  br label %2297

2280:                                             ; preds = %2258, %2251
  %2281 = load i32, ptr %63, align 4, !tbaa !5
  %2282 = call ptr @__errno_location() #11
  store i32 %2281, ptr %2282, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef @.str.60)
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef @.str.60)
  %2291 = call ptr @__errno_location() #11
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #10
  %2294 = call ptr @__errno_location() #11
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef @.str.61, i32 noundef %2284, ptr noundef @.str.101, ptr noundef @.str.57, i32 noundef 336, ptr noundef %2287, ptr noundef %2290, ptr noundef %2293, i32 noundef %2295) #10
  br label %2297

2297:                                             ; preds = %2280, %2263
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  call void @exit(i32 noundef 1) #12
  unreachable

2300:                                             ; No predecessors!
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301, %2242
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306
  %2308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2308, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2309 = call ptr @__errno_location() #11
  store i32 0, ptr %2309, align 4, !tbaa !5
  br label %2310

2310:                                             ; preds = %2307
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = add nsw i32 %2315, 1
  store i32 %2316, ptr @test_count, align 4, !tbaa !5
  %2317 = load i32, ptr %60, align 4, !tbaa !5
  %2318 = icmp eq i32 %2317, 1
  br i1 %2318, label %2372, label %2319

2319:                                             ; preds = %2314
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2322 = call ptr @__errno_location() #11
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  store i32 %2323, ptr %64, align 4, !tbaa !5
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @s2n_print_stacktrace(ptr noundef %2324)
  %2326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2327 = trunc i8 %2326 to i1
  br i1 %2327, label %2328, label %2350

2328:                                             ; preds = %2321
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = call i32 @fileno(ptr noundef %2329) #10
  %2331 = call i32 @isatty(i32 noundef %2330) #10
  %2332 = icmp ne i32 %2331, 0
  br i1 %2332, label %2333, label %2350

2333:                                             ; preds = %2328
  %2334 = load i32, ptr %64, align 4, !tbaa !5
  %2335 = call ptr @__errno_location() #11
  store i32 %2334, ptr %2335, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror(i32 noundef %2339, ptr noundef @.str.60)
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror_debug(i32 noundef %2342, ptr noundef @.str.60)
  %2344 = call ptr @__errno_location() #11
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @strerror(i32 noundef %2345) #10
  %2347 = call ptr @__errno_location() #11
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef @.str.58, i32 noundef %2337, ptr noundef @.str.102, ptr noundef @.str.57, i32 noundef 337, ptr noundef %2340, ptr noundef %2343, ptr noundef %2346, i32 noundef %2348) #10
  br label %2367

2350:                                             ; preds = %2328, %2321
  %2351 = load i32, ptr %64, align 4, !tbaa !5
  %2352 = call ptr @__errno_location() #11
  store i32 %2351, ptr %2352, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror(i32 noundef %2356, ptr noundef @.str.60)
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_debug(i32 noundef %2359, ptr noundef @.str.60)
  %2361 = call ptr @__errno_location() #11
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @strerror(i32 noundef %2362) #10
  %2364 = call ptr @__errno_location() #11
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2353, ptr noundef @.str.61, i32 noundef %2354, ptr noundef @.str.102, ptr noundef @.str.57, i32 noundef 337, ptr noundef %2357, ptr noundef %2360, ptr noundef %2363, i32 noundef %2365) #10
  br label %2367

2367:                                             ; preds = %2350, %2333
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  call void @exit(i32 noundef 1) #12
  unreachable

2370:                                             ; No predecessors!
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371, %2314
  br label %2373

2373:                                             ; preds = %2372
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  %2376 = load i32, ptr @test_count, align 4, !tbaa !5
  %2377 = add nsw i32 %2376, 1
  store i32 %2377, ptr @test_count, align 4, !tbaa !5
  %2378 = load ptr, ptr %43, align 8, !tbaa !9
  %2379 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2378)
  %2380 = icmp eq i32 %2379, 19
  br i1 %2380, label %2434, label %2381

2381:                                             ; preds = %2375
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2384 = call ptr @__errno_location() #11
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  store i32 %2385, ptr %65, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @s2n_print_stacktrace(ptr noundef %2386)
  %2388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2389 = trunc i8 %2388 to i1
  br i1 %2389, label %2390, label %2412

2390:                                             ; preds = %2383
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @fileno(ptr noundef %2391) #10
  %2393 = call i32 @isatty(i32 noundef %2392) #10
  %2394 = icmp ne i32 %2393, 0
  br i1 %2394, label %2395, label %2412

2395:                                             ; preds = %2390
  %2396 = load i32, ptr %65, align 4, !tbaa !5
  %2397 = call ptr @__errno_location() #11
  store i32 %2396, ptr %2397, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror(i32 noundef %2401, ptr noundef @.str.60)
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror_debug(i32 noundef %2404, ptr noundef @.str.60)
  %2406 = call ptr @__errno_location() #11
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @strerror(i32 noundef %2407) #10
  %2409 = call ptr @__errno_location() #11
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef @.str.58, i32 noundef %2399, ptr noundef @.str.103, ptr noundef @.str.57, i32 noundef 338, ptr noundef %2402, ptr noundef %2405, ptr noundef %2408, i32 noundef %2410) #10
  br label %2429

2412:                                             ; preds = %2390, %2383
  %2413 = load i32, ptr %65, align 4, !tbaa !5
  %2414 = call ptr @__errno_location() #11
  store i32 %2413, ptr %2414, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2418, ptr noundef @.str.60)
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror_debug(i32 noundef %2421, ptr noundef @.str.60)
  %2423 = call ptr @__errno_location() #11
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @strerror(i32 noundef %2424) #10
  %2426 = call ptr @__errno_location() #11
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2415, ptr noundef @.str.61, i32 noundef %2416, ptr noundef @.str.103, ptr noundef @.str.57, i32 noundef 338, ptr noundef %2419, ptr noundef %2422, ptr noundef %2425, i32 noundef %2427) #10
  br label %2429

2429:                                             ; preds = %2412, %2395
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430
  call void @exit(i32 noundef 1) #12
  unreachable

2432:                                             ; No predecessors!
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433, %2375
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr @test_count, align 4, !tbaa !5
  %2440 = getelementptr inbounds %struct.s2n_stuffer, ptr %54, i32 0, i32 2
  %2441 = load i32, ptr %2440, align 4, !tbaa !62
  %2442 = getelementptr inbounds %struct.s2n_stuffer, ptr %54, i32 0, i32 1
  %2443 = load i32, ptr %2442, align 8, !tbaa !63
  %2444 = sub i32 %2441, %2443
  %2445 = icmp eq i32 %2444, 0
  br i1 %2445, label %2499, label %2446

2446:                                             ; preds = %2437
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2449 = call ptr @__errno_location() #11
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  store i32 %2450, ptr %66, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = call i32 @s2n_print_stacktrace(ptr noundef %2451)
  %2453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2454 = trunc i8 %2453 to i1
  br i1 %2454, label %2455, label %2477

2455:                                             ; preds = %2448
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @fileno(ptr noundef %2456) #10
  %2458 = call i32 @isatty(i32 noundef %2457) #10
  %2459 = icmp ne i32 %2458, 0
  br i1 %2459, label %2460, label %2477

2460:                                             ; preds = %2455
  %2461 = load i32, ptr %66, align 4, !tbaa !5
  %2462 = call ptr @__errno_location() #11
  store i32 %2461, ptr %2462, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef @.str.60)
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef @.str.60)
  %2471 = call ptr @__errno_location() #11
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @strerror(i32 noundef %2472) #10
  %2474 = call ptr @__errno_location() #11
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef @.str.58, i32 noundef %2464, ptr noundef @.str.104, ptr noundef @.str.57, i32 noundef 339, ptr noundef %2467, ptr noundef %2470, ptr noundef %2473, i32 noundef %2475) #10
  br label %2494

2477:                                             ; preds = %2455, %2448
  %2478 = load i32, ptr %66, align 4, !tbaa !5
  %2479 = call ptr @__errno_location() #11
  store i32 %2478, ptr %2479, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = load i32, ptr @test_count, align 4, !tbaa !5
  %2482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror(i32 noundef %2483, ptr noundef @.str.60)
  %2485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror_debug(i32 noundef %2486, ptr noundef @.str.60)
  %2488 = call ptr @__errno_location() #11
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  %2490 = call ptr @strerror(i32 noundef %2489) #10
  %2491 = call ptr @__errno_location() #11
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2480, ptr noundef @.str.61, i32 noundef %2481, ptr noundef @.str.104, ptr noundef @.str.57, i32 noundef 339, ptr noundef %2484, ptr noundef %2487, ptr noundef %2490, i32 noundef %2492) #10
  br label %2494

2494:                                             ; preds = %2477, %2460
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

2496:                                             ; preds = %2495
  call void @exit(i32 noundef 1) #12
  unreachable

2497:                                             ; No predecessors!
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498, %2437
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = add nsw i32 %2503, 1
  store i32 %2504, ptr @test_count, align 4, !tbaa !5
  %2505 = call i32 @s2n_stuffer_write(ptr noundef %54, ptr noundef %21)
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2560

2507:                                             ; preds = %2502
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %2510 = call ptr @__errno_location() #11
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  store i32 %2511, ptr %67, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @s2n_print_stacktrace(ptr noundef %2512)
  %2514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2515 = trunc i8 %2514 to i1
  br i1 %2515, label %2516, label %2538

2516:                                             ; preds = %2509
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @fileno(ptr noundef %2517) #10
  %2519 = call i32 @isatty(i32 noundef %2518) #10
  %2520 = icmp ne i32 %2519, 0
  br i1 %2520, label %2521, label %2538

2521:                                             ; preds = %2516
  %2522 = load i32, ptr %67, align 4, !tbaa !5
  %2523 = call ptr @__errno_location() #11
  store i32 %2522, ptr %2523, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef @.str.60)
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef @.str.60)
  %2532 = call ptr @__errno_location() #11
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #10
  %2535 = call ptr @__errno_location() #11
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef @.str.58, i32 noundef %2525, ptr noundef @.str.105, ptr noundef @.str.57, i32 noundef 341, ptr noundef %2528, ptr noundef %2531, ptr noundef %2534, i32 noundef %2536) #10
  br label %2555

2538:                                             ; preds = %2516, %2509
  %2539 = load i32, ptr %67, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #11
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.60)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.60)
  %2549 = call ptr @__errno_location() #11
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #10
  %2552 = call ptr @__errno_location() #11
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.61, i32 noundef %2542, ptr noundef @.str.105, ptr noundef @.str.57, i32 noundef 341, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #10
  br label %2555

2555:                                             ; preds = %2538, %2521
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @exit(i32 noundef 1) #12
  unreachable

2558:                                             ; No predecessors!
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559, %2502
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #10
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 24, i1 false)
  br label %2563

2563:                                             ; preds = %2562
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = add nsw i32 %2564, 1
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = getelementptr inbounds %struct.s2n_blob, ptr %19, i32 0, i32 1
  %2567 = load i32, ptr %2566, align 8, !tbaa !55
  %2568 = call i32 @s2n_alloc(ptr noundef %68, i32 noundef %2567)
  %2569 = icmp eq i32 %2568, -1
  br i1 %2569, label %2570, label %2623

2570:                                             ; preds = %2563
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

2572:                                             ; preds = %2571
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %2573 = call ptr @__errno_location() #11
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  store i32 %2574, ptr %69, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = call i32 @s2n_print_stacktrace(ptr noundef %2575)
  %2577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2578 = trunc i8 %2577 to i1
  br i1 %2578, label %2579, label %2601

2579:                                             ; preds = %2572
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @fileno(ptr noundef %2580) #10
  %2582 = call i32 @isatty(i32 noundef %2581) #10
  %2583 = icmp ne i32 %2582, 0
  br i1 %2583, label %2584, label %2601

2584:                                             ; preds = %2579
  %2585 = load i32, ptr %69, align 4, !tbaa !5
  %2586 = call ptr @__errno_location() #11
  store i32 %2585, ptr %2586, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef @.str.60)
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef @.str.60)
  %2595 = call ptr @__errno_location() #11
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #10
  %2598 = call ptr @__errno_location() #11
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef @.str.58, i32 noundef %2588, ptr noundef @.str.106, ptr noundef @.str.57, i32 noundef 344, ptr noundef %2591, ptr noundef %2594, ptr noundef %2597, i32 noundef %2599) #10
  br label %2618

2601:                                             ; preds = %2579, %2572
  %2602 = load i32, ptr %69, align 4, !tbaa !5
  %2603 = call ptr @__errno_location() #11
  store i32 %2602, ptr %2603, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror(i32 noundef %2607, ptr noundef @.str.60)
  %2609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror_debug(i32 noundef %2610, ptr noundef @.str.60)
  %2612 = call ptr @__errno_location() #11
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @strerror(i32 noundef %2613) #10
  %2615 = call ptr @__errno_location() #11
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2604, ptr noundef @.str.61, i32 noundef %2605, ptr noundef @.str.106, ptr noundef @.str.57, i32 noundef 344, ptr noundef %2608, ptr noundef %2611, ptr noundef %2614, i32 noundef %2616) #10
  br label %2618

2618:                                             ; preds = %2601, %2584
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  call void @exit(i32 noundef 1) #12
  unreachable

2621:                                             ; No predecessors!
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622, %2563
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %2626 = load ptr, ptr %43, align 8, !tbaa !9
  %2627 = getelementptr inbounds %struct.s2n_blob, ptr %68, i32 0, i32 0
  %2628 = load ptr, ptr %2627, align 8, !tbaa !56
  %2629 = getelementptr inbounds %struct.s2n_blob, ptr %68, i32 0, i32 1
  %2630 = load i32, ptr %2629, align 8, !tbaa !55
  %2631 = zext i32 %2630 to i64
  %2632 = call i64 @s2n_recv(ptr noundef %2626, ptr noundef %2628, i64 noundef %2631, ptr noundef %60)
  %2633 = trunc i64 %2632 to i32
  store i32 %2633, ptr %70, align 4, !tbaa !5
  br label %2634

2634:                                             ; preds = %2625
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = load i32, ptr %70, align 4, !tbaa !5
  %2638 = getelementptr inbounds %struct.s2n_blob, ptr %19, i32 0, i32 1
  %2639 = load i32, ptr %2638, align 8, !tbaa !55
  %2640 = icmp eq i32 %2637, %2639
  br i1 %2640, label %2694, label %2641

2641:                                             ; preds = %2634
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

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

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

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

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

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

2690:                                             ; preds = %2689
  br label %2691

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

2692:                                             ; No predecessors!
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

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

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  %2698 = getelementptr inbounds %struct.s2n_blob, ptr %19, i32 0, i32 1
  %2699 = load i32, ptr %2698, align 8, !tbaa !55
  %2700 = icmp ne i32 %2699, 0
  br i1 %2700, label %2701, label %2770

2701:                                             ; preds = %2697
  br label %2702

2702:                                             ; preds = %2701
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = add nsw i32 %2703, 1
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = getelementptr inbounds %struct.s2n_blob, ptr %68, i32 0, i32 0
  %2706 = load ptr, ptr %2705, align 8, !tbaa !56
  %2707 = getelementptr inbounds %struct.s2n_blob, ptr %19, i32 0, i32 0
  %2708 = load ptr, ptr %2707, align 8, !tbaa !56
  %2709 = getelementptr inbounds %struct.s2n_blob, ptr %19, i32 0, i32 1
  %2710 = load i32, ptr %2709, align 8, !tbaa !55
  %2711 = zext i32 %2710 to i64
  %2712 = call i32 @memcmp(ptr noundef %2706, ptr noundef %2708, i64 noundef %2711) #13
  %2713 = icmp eq i32 %2712, 0
  br i1 %2713, label %2767, label %2714

2714:                                             ; preds = %2702
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %2717 = call ptr @__errno_location() #11
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  store i32 %2718, ptr %72, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = call i32 @s2n_print_stacktrace(ptr noundef %2719)
  %2721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2722 = trunc i8 %2721 to i1
  br i1 %2722, label %2723, label %2745

2723:                                             ; preds = %2716
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = call i32 @fileno(ptr noundef %2724) #10
  %2726 = call i32 @isatty(i32 noundef %2725) #10
  %2727 = icmp ne i32 %2726, 0
  br i1 %2727, label %2728, label %2745

2728:                                             ; preds = %2723
  %2729 = load i32, ptr %72, align 4, !tbaa !5
  %2730 = call ptr @__errno_location() #11
  store i32 %2729, ptr %2730, align 4, !tbaa !5
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = load i32, ptr @test_count, align 4, !tbaa !5
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef @.str.60)
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef @.str.60)
  %2739 = call ptr @__errno_location() #11
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @strerror(i32 noundef %2740) #10
  %2742 = call ptr @__errno_location() #11
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2731, ptr noundef @.str.58, i32 noundef %2732, ptr noundef @.str.108, ptr noundef @.str.57, i32 noundef 347, ptr noundef %2735, ptr noundef %2738, ptr noundef %2741, i32 noundef %2743) #10
  br label %2762

2745:                                             ; preds = %2723, %2716
  %2746 = load i32, ptr %72, align 4, !tbaa !5
  %2747 = call ptr @__errno_location() #11
  store i32 %2746, ptr %2747, align 4, !tbaa !5
  %2748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2749 = load i32, ptr @test_count, align 4, !tbaa !5
  %2750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror(i32 noundef %2751, ptr noundef @.str.60)
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror_debug(i32 noundef %2754, ptr noundef @.str.60)
  %2756 = call ptr @__errno_location() #11
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #10
  %2759 = call ptr @__errno_location() #11
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2748, ptr noundef @.str.61, i32 noundef %2749, ptr noundef @.str.108, ptr noundef @.str.57, i32 noundef 347, ptr noundef %2752, ptr noundef %2755, ptr noundef %2758, i32 noundef %2760) #10
  br label %2762

2762:                                             ; preds = %2745, %2728
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

2764:                                             ; preds = %2763
  call void @exit(i32 noundef 1) #12
  unreachable

2765:                                             ; No predecessors!
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766, %2702
  br label %2768

2768:                                             ; preds = %2767
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769, %2697
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  br label %2773

2773:                                             ; preds = %2772
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = add nsw i32 %2774, 1
  store i32 %2775, ptr @test_count, align 4, !tbaa !5
  %2776 = getelementptr inbounds %struct.s2n_stuffer, ptr %54, i32 0, i32 2
  %2777 = load i32, ptr %2776, align 4, !tbaa !62
  %2778 = getelementptr inbounds %struct.s2n_stuffer, ptr %54, i32 0, i32 1
  %2779 = load i32, ptr %2778, align 8, !tbaa !63
  %2780 = sub i32 %2777, %2779
  %2781 = icmp eq i32 %2780, 0
  br i1 %2781, label %2835, label %2782

2782:                                             ; preds = %2773
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %2785 = call ptr @__errno_location() #11
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  store i32 %2786, ptr %73, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = call i32 @s2n_print_stacktrace(ptr noundef %2787)
  %2789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2790 = trunc i8 %2789 to i1
  br i1 %2790, label %2791, label %2813

2791:                                             ; preds = %2784
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @fileno(ptr noundef %2792) #10
  %2794 = call i32 @isatty(i32 noundef %2793) #10
  %2795 = icmp ne i32 %2794, 0
  br i1 %2795, label %2796, label %2813

2796:                                             ; preds = %2791
  %2797 = load i32, ptr %73, align 4, !tbaa !5
  %2798 = call ptr @__errno_location() #11
  store i32 %2797, ptr %2798, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror(i32 noundef %2802, ptr noundef @.str.60)
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror_debug(i32 noundef %2805, ptr noundef @.str.60)
  %2807 = call ptr @__errno_location() #11
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @strerror(i32 noundef %2808) #10
  %2810 = call ptr @__errno_location() #11
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2799, ptr noundef @.str.58, i32 noundef %2800, ptr noundef @.str.104, ptr noundef @.str.57, i32 noundef 348, ptr noundef %2803, ptr noundef %2806, ptr noundef %2809, i32 noundef %2811) #10
  br label %2830

2813:                                             ; preds = %2791, %2784
  %2814 = load i32, ptr %73, align 4, !tbaa !5
  %2815 = call ptr @__errno_location() #11
  store i32 %2814, ptr %2815, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = load i32, ptr @test_count, align 4, !tbaa !5
  %2818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror(i32 noundef %2819, ptr noundef @.str.60)
  %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_debug(i32 noundef %2822, ptr noundef @.str.60)
  %2824 = call ptr @__errno_location() #11
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @strerror(i32 noundef %2825) #10
  %2827 = call ptr @__errno_location() #11
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2816, ptr noundef @.str.61, i32 noundef %2817, ptr noundef @.str.104, ptr noundef @.str.57, i32 noundef 348, ptr noundef %2820, ptr noundef %2823, ptr noundef %2826, i32 noundef %2828) #10
  br label %2830

2830:                                             ; preds = %2813, %2796
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

2832:                                             ; preds = %2831
  call void @exit(i32 noundef 1) #12
  unreachable

2833:                                             ; No predecessors!
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

2835:                                             ; preds = %2834, %2773
  br label %2836

2836:                                             ; preds = %2835
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  %2839 = load i32, ptr @test_count, align 4, !tbaa !5
  %2840 = add nsw i32 %2839, 1
  store i32 %2840, ptr @test_count, align 4, !tbaa !5
  %2841 = load ptr, ptr %43, align 8, !tbaa !9
  %2842 = call i32 @s2n_connection_free(ptr noundef %2841)
  %2843 = icmp eq i32 %2842, -1
  br i1 %2843, label %2844, label %2897

2844:                                             ; preds = %2838
  br label %2845

2845:                                             ; preds = %2844
  br label %2846

2846:                                             ; preds = %2845
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %2847 = call ptr @__errno_location() #11
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  store i32 %2848, ptr %74, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @s2n_print_stacktrace(ptr noundef %2849)
  %2851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2852 = trunc i8 %2851 to i1
  br i1 %2852, label %2853, label %2875

2853:                                             ; preds = %2846
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @fileno(ptr noundef %2854) #10
  %2856 = call i32 @isatty(i32 noundef %2855) #10
  %2857 = icmp ne i32 %2856, 0
  br i1 %2857, label %2858, label %2875

2858:                                             ; preds = %2853
  %2859 = load i32, ptr %74, align 4, !tbaa !5
  %2860 = call ptr @__errno_location() #11
  store i32 %2859, ptr %2860, align 4, !tbaa !5
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror(i32 noundef %2864, ptr noundef @.str.60)
  %2866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror_debug(i32 noundef %2867, ptr noundef @.str.60)
  %2869 = call ptr @__errno_location() #11
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @strerror(i32 noundef %2870) #10
  %2872 = call ptr @__errno_location() #11
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2861, ptr noundef @.str.58, i32 noundef %2862, ptr noundef @.str.109, ptr noundef @.str.57, i32 noundef 350, ptr noundef %2865, ptr noundef %2868, ptr noundef %2871, i32 noundef %2873) #10
  br label %2892

2875:                                             ; preds = %2853, %2846
  %2876 = load i32, ptr %74, align 4, !tbaa !5
  %2877 = call ptr @__errno_location() #11
  store i32 %2876, ptr %2877, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef @.str.60)
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror_debug(i32 noundef %2884, ptr noundef @.str.60)
  %2886 = call ptr @__errno_location() #11
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #10
  %2889 = call ptr @__errno_location() #11
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef @.str.61, i32 noundef %2879, ptr noundef @.str.109, ptr noundef @.str.57, i32 noundef 350, ptr noundef %2882, ptr noundef %2885, ptr noundef %2888, i32 noundef %2890) #10
  br label %2892

2892:                                             ; preds = %2875, %2858
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893
  call void @exit(i32 noundef 1) #12
  unreachable

2895:                                             ; No predecessors!
  br label %2896

2896:                                             ; preds = %2895
  br label %2897

2897:                                             ; preds = %2896, %2838
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

2899:                                             ; preds = %2898
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  %2900 = call i32 @s2n_free(ptr noundef %68)
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  %2901 = call i32 @s2n_stuffer_free(ptr noundef %55)
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #10
  %2902 = call i32 @s2n_stuffer_free(ptr noundef %54)
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #10
  %2903 = call i32 @s2n_psk_free(ptr noundef %49)
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  store i32 0, ptr %7, align 4
  br label %2904

2904:                                             ; preds = %2899, %331
  %2905 = call i32 @s2n_free(ptr noundef %21)
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #10
  br label %2906

2906:                                             ; preds = %2904, %321
  %2907 = call i32 @s2n_free(ptr noundef %19)
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #10
  br label %2908

2908:                                             ; preds = %2906, %311
  %2909 = call i32 @s2n_free(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #10
  br label %2910

2910:                                             ; preds = %2908, %301
  %2911 = call i32 @s2n_free(ptr noundef %15)
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #10
  br label %2912

2912:                                             ; preds = %2910, %291
  %2913 = call i32 @s2n_free(ptr noundef %13)
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #10
  br label %2914

2914:                                             ; preds = %2912, %281
  %2915 = call i32 @s2n_free(ptr noundef %11)
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %2916

2916:                                             ; preds = %2914, %271
  %2917 = call i32 @s2n_free(ptr noundef %8)
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #10
  br label %2918

2918:                                             ; preds = %2916, %261
  %2919 = call i32 @s2n_free(ptr noundef %5)
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #10
  %2920 = load i32, ptr %7, align 4
  switch i32 %2920, label %3069 [
    i32 0, label %2921
    i32 1, label %3067
  ]

2921:                                             ; preds = %2918
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922
  %2924 = call i32 @s2n_cleanup()
  %2925 = icmp eq i32 %2924, -1
  br i1 %2925, label %2926, label %2977

2926:                                             ; preds = %2923
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

2928:                                             ; preds = %2927
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %2929 = call ptr @__errno_location() #11
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  store i32 %2930, ptr %75, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = call i32 @s2n_print_stacktrace(ptr noundef %2931)
  %2933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2934 = trunc i8 %2933 to i1
  br i1 %2934, label %2935, label %2957

2935:                                             ; preds = %2928
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = call i32 @fileno(ptr noundef %2936) #10
  %2938 = call i32 @isatty(i32 noundef %2937) #10
  %2939 = icmp ne i32 %2938, 0
  br i1 %2939, label %2940, label %2957

2940:                                             ; preds = %2935
  %2941 = load i32, ptr %75, align 4, !tbaa !5
  %2942 = call ptr @__errno_location() #11
  store i32 %2941, ptr %2942, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef @.str.60)
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef @.str.60)
  %2951 = call ptr @__errno_location() #11
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @strerror(i32 noundef %2952) #10
  %2954 = call ptr @__errno_location() #11
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef @.str.58, i32 noundef %2944, ptr noundef @.str.110, ptr noundef @.str.57, i32 noundef 355, ptr noundef %2947, ptr noundef %2950, ptr noundef %2953, i32 noundef %2955) #10
  br label %2974

2957:                                             ; preds = %2935, %2928
  %2958 = load i32, ptr %75, align 4, !tbaa !5
  %2959 = call ptr @__errno_location() #11
  store i32 %2958, ptr %2959, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef @.str.60)
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef @.str.60)
  %2968 = call ptr @__errno_location() #11
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @strerror(i32 noundef %2969) #10
  %2971 = call ptr @__errno_location() #11
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2960, ptr noundef @.str.61, i32 noundef %2961, ptr noundef @.str.110, ptr noundef @.str.57, i32 noundef 355, ptr noundef %2964, ptr noundef %2967, ptr noundef %2970, i32 noundef %2972) #10
  br label %2974

2974:                                             ; preds = %2957, %2940
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %2975

2975:                                             ; preds = %2974
  call void @exit(i32 noundef 1) #12
  unreachable

2976:                                             ; No predecessors!
  br label %2977

2977:                                             ; preds = %2976, %2923
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979
  %2981 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2982 = icmp eq i32 %2981, -1
  br i1 %2982, label %2983, label %3034

2983:                                             ; preds = %2980
  br label %2984

2984:                                             ; preds = %2983
  br label %2985

2985:                                             ; preds = %2984
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %2986 = call ptr @__errno_location() #11
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  store i32 %2987, ptr %76, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = call i32 @s2n_print_stacktrace(ptr noundef %2988)
  %2990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2991 = trunc i8 %2990 to i1
  br i1 %2991, label %2992, label %3014

2992:                                             ; preds = %2985
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @fileno(ptr noundef %2993) #10
  %2995 = call i32 @isatty(i32 noundef %2994) #10
  %2996 = icmp ne i32 %2995, 0
  br i1 %2996, label %2997, label %3014

2997:                                             ; preds = %2992
  %2998 = load i32, ptr %76, align 4, !tbaa !5
  %2999 = call ptr @__errno_location() #11
  store i32 %2998, ptr %2999, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror(i32 noundef %3003, ptr noundef @.str.60)
  %3005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror_debug(i32 noundef %3006, ptr noundef @.str.60)
  %3008 = call ptr @__errno_location() #11
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call ptr @strerror(i32 noundef %3009) #10
  %3011 = call ptr @__errno_location() #11
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3000, ptr noundef @.str.58, i32 noundef %3001, ptr noundef @.str.111, ptr noundef @.str.57, i32 noundef 355, ptr noundef %3004, ptr noundef %3007, ptr noundef %3010, i32 noundef %3012) #10
  br label %3031

3014:                                             ; preds = %2992, %2985
  %3015 = load i32, ptr %76, align 4, !tbaa !5
  %3016 = call ptr @__errno_location() #11
  store i32 %3015, ptr %3016, align 4, !tbaa !5
  %3017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3018 = load i32, ptr @test_count, align 4, !tbaa !5
  %3019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call ptr @s2n_strerror(i32 noundef %3020, ptr noundef @.str.60)
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef @.str.60)
  %3025 = call ptr @__errno_location() #11
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @strerror(i32 noundef %3026) #10
  %3028 = call ptr @__errno_location() #11
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3017, ptr noundef @.str.61, i32 noundef %3018, ptr noundef @.str.111, ptr noundef @.str.57, i32 noundef 355, ptr noundef %3021, ptr noundef %3024, ptr noundef %3027, i32 noundef %3029) #10
  br label %3031

3031:                                             ; preds = %3014, %2997
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3032

3032:                                             ; preds = %3031
  call void @exit(i32 noundef 1) #12
  unreachable

3033:                                             ; No predecessors!
  br label %3034

3034:                                             ; preds = %3033, %2980
  br label %3035

3035:                                             ; preds = %3034
  %3036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3037 = trunc i8 %3036 to i1
  br i1 %3037, label %3038, label %3054

3038:                                             ; preds = %3035
  %3039 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3040 = call i32 @fileno(ptr noundef %3039) #10
  %3041 = call i32 @isatty(i32 noundef %3040) #10
  %3042 = icmp ne i32 %3041, 0
  br i1 %3042, label %3043, label %3054

3043:                                             ; preds = %3038
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = icmp ne i32 %3044, 0
  br i1 %3045, label %3046, label %3050

3046:                                             ; preds = %3043
  %3047 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3047, ptr noundef @.str.112, i32 noundef %3048) #10
  br label %3053

3050:                                             ; preds = %3043
  %3051 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef @.str.113) #10
  br label %3053

3053:                                             ; preds = %3050, %3046
  br label %3065

3054:                                             ; preds = %3038, %3035
  %3055 = load i32, ptr @test_count, align 4, !tbaa !5
  %3056 = icmp ne i32 %3055, 0
  br i1 %3056, label %3057, label %3061

3057:                                             ; preds = %3054
  %3058 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3059 = load i32, ptr @test_count, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3058, ptr noundef @.str.114, i32 noundef %3059) #10
  br label %3064

3061:                                             ; preds = %3054
  %3062 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef @.str.115) #10
  br label %3064

3064:                                             ; preds = %3061, %3057
  br label %3065

3065:                                             ; preds = %3064, %3053
  store i32 0, ptr %1, align 4
  br label %3067

3066:                                             ; No predecessors!
  br label %3067

3067:                                             ; preds = %3066, %3065, %2918
  %3068 = load i32, ptr %1, align 4
  ret i32 %3068

3069:                                             ; preds = %2918
  unreachable
}

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

declare i32 @fflush(ptr noundef) #6

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #6

declare i32 @s2n_print_stacktrace(ptr noundef) #6

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #6

declare i32 @s2n_init() #6

declare i32 @s2n_free(ptr noundef) #6

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #6

declare ptr @s2n_connection_new(i32 noundef) #6

declare i32 @s2n_array_pushback(ptr noundef, ptr noundef) #6

declare i32 @s2n_psk_configure_early_data(ptr noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext) #6

declare i32 @s2n_dup(ptr noundef, ptr noundef) #6

declare i32 @s2n_tls13_secrets_update(ptr noundef) #6

declare i32 @s2n_tls13_key_schedule_update(ptr noundef) #6

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

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

declare i32 @s2n_connection_free(ptr noundef) #6

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) #6

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #6

declare i32 @s2n_connection_set_early_data_expected(ptr noundef) #6

declare i32 @s2n_connection_set_server_max_early_data_size(ptr noundef, i32 noundef) #6

declare ptr @s2n_external_psk_new() #6

declare i32 @s2n_psk_free(ptr noundef) #6

declare i32 @s2n_psk_set_identity(ptr noundef, ptr noundef, i16 noundef zeroext) #6

declare i32 @s2n_psk_set_secret(ptr noundef, ptr noundef, i16 noundef zeroext) #6

declare i32 @s2n_connection_append_psk(ptr noundef, ptr noundef) #6

declare i32 @s2n_stuffer_free(ptr noundef) #6

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #6

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) #6

declare void @s2n_debug_info_reset() #6

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #6

declare i32 @s2n_cleanup() #6

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: write) }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { "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 = { 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 = { 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 = { 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 #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }
attributes #13 = { 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, !7, i64 220}
!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, !7, i64 219}
!43 = !{!16, !6, i64 4088}
!44 = !{!45, !6, i64 56}
!45 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !46, i64 96, !18, i64 160}
!46 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!47 = !{!45, !10, i64 104}
!48 = !{!16, !10, i64 232}
!49 = !{!50, !10, i64 0}
!50 = !{!"s2n_crypto_parameters", !10, i64 0, !51, i64 8, !51, i64 16, !52, i64 24, !52, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!51 = !{!"s2n_session_key", !10, i64 0}
!52 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !53, i64 16, !53, i64 72, !53, i64 128, !53, i64 184, !7, i64 240, !7, i64 368}
!53 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!54 = !{!16, !6, i64 628}
!55 = !{!25, !6, i64 8}
!56 = !{!25, !10, i64 0}
!57 = !{!16, !6, i64 1924}
!58 = !{!16, !6, i64 1920}
!59 = !{!16, !10, i64 1896}
!60 = !{!45, !6, i64 0}
!61 = !{!16, !6, i64 1688}
!62 = !{!32, !6, i64 28}
!63 = !{!32, !6, i64 24}


; 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_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.56 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [94 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [678 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [1968 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [2001 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_get_current_message_type(ptr noundef) local_unnamed_addr #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: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_negotiate(ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_update_handshake_hashes(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main() local_unnamed_addr #0 {
  %1 = alloca %struct.s2n_blob, align 8
  %2 = alloca %struct.s2n_blob, align 8
  %3 = alloca %struct.s2n_blob, align 8
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca %struct.s2n_blob, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca i32, align 4
  %14 = alloca %struct.s2n_blob, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %15 = load ptr, ptr @stdout, align 8, !tbaa !9
  %16 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.57) #11
  %17 = load ptr, ptr @stdout, align 8, !tbaa !9
  %18 = tail call i32 @fflush(ptr noundef %17)
  %19 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %20 = icmp eq i32 %19, -1
  br i1 %20, label %21, label %45

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

28:                                               ; preds = %21
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = tail call i32 @fileno(ptr noundef %29) #11
  %31 = tail call i32 @isatty(i32 noundef %30) #11
  %.not196 = icmp eq i32 %31, 0
  br i1 %.not196, label %32, label %33

32:                                               ; preds = %28, %21
  br label %33

33:                                               ; preds = %28, %32
  %.str.61.sink = phi ptr [ @.str.61, %32 ], [ @.str.58, %28 ]
  store i32 %23, ptr %22, align 4, !tbaa !5
  %34 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37 = load i32, ptr %36, align 4, !tbaa !5
  %38 = tail call ptr @s2n_strerror(i32 noundef %37, ptr noundef nonnull @.str.60) #11
  %39 = load i32, ptr %36, align 4, !tbaa !5
  %40 = tail call ptr @s2n_strerror_debug(i32 noundef %39, ptr noundef nonnull @.str.60) #11
  %41 = load i32, ptr %22, align 4, !tbaa !5
  %42 = tail call ptr @strerror(i32 noundef %41) #11
  %43 = load i32, ptr %22, align 4, !tbaa !5
  %44 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34, ptr noundef nonnull %.str.61.sink, i32 noundef %35, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.57, i32 noundef 36, ptr noundef %38, ptr noundef %40, ptr noundef %42, i32 noundef %43) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

45:                                               ; preds = %0
  %46 = load i32, ptr @test_count, align 4, !tbaa !5
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr @test_count, align 4, !tbaa !5
  %48 = tail call i32 @s2n_enable_atexit() #11
  %49 = icmp eq i32 %48, -1
  br i1 %49, label %50, label %74

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

57:                                               ; preds = %50
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @fileno(ptr noundef %58) #11
  %60 = tail call i32 @isatty(i32 noundef %59) #11
  %.not195 = icmp eq i32 %60, 0
  br i1 %.not195, label %61, label %62

61:                                               ; preds = %57, %50
  br label %62

62:                                               ; preds = %57, %61
  %.str.61.sink210 = phi ptr [ @.str.61, %61 ], [ @.str.58, %57 ]
  store i32 %52, ptr %51, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = tail call ptr @s2n_strerror(i32 noundef %66, ptr noundef nonnull @.str.60) #11
  %68 = load i32, ptr %65, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror_debug(i32 noundef %68, ptr noundef nonnull @.str.60) #11
  %70 = load i32, ptr %51, align 4, !tbaa !5
  %71 = tail call ptr @strerror(i32 noundef %70) #11
  %72 = load i32, ptr %51, align 4, !tbaa !5
  %73 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %63, ptr noundef nonnull %.str.61.sink210, i32 noundef %64, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.57, i32 noundef 36, ptr noundef %67, ptr noundef %69, ptr noundef %71, i32 noundef %72) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

74:                                               ; preds = %45
  %75 = tail call i32 @s2n_init() #11
  %76 = icmp eq i32 %75, -1
  br i1 %76, label %77, label %101

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

84:                                               ; preds = %77
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @fileno(ptr noundef %85) #11
  %87 = tail call i32 @isatty(i32 noundef %86) #11
  %.not194 = icmp eq i32 %87, 0
  br i1 %.not194, label %88, label %89

88:                                               ; preds = %84, %77
  br label %89

89:                                               ; preds = %84, %88
  %.str.61.sink221 = phi ptr [ @.str.61, %88 ], [ @.str.58, %84 ]
  store i32 %79, ptr %78, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror(i32 noundef %93, ptr noundef nonnull @.str.60) #11
  %95 = load i32, ptr %92, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror_debug(i32 noundef %95, ptr noundef nonnull @.str.60) #11
  %97 = load i32, ptr %78, align 4, !tbaa !5
  %98 = tail call ptr @strerror(i32 noundef %97) #11
  %99 = load i32, ptr %78, align 4, !tbaa !5
  %100 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull %.str.61.sink221, i32 noundef %91, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.57, i32 noundef 36, ptr noundef %94, ptr noundef %96, ptr noundef %98, i32 noundef %99) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

101:                                              ; preds = %74
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1, i8 0, i64 24, i1 false)
  %102 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %1, ptr noundef nonnull @.str.64) #11
  %103 = call zeroext i1 @s2n_result_is_ok(i32 %102)
  br i1 %103, label %105, label %.thread

.thread:                                          ; preds = %101
  %104 = call i32 @s2n_free(ptr noundef nonnull %1) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #11
  br label %1385

105:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %2, i8 0, i64 24, i1 false)
  %106 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %2, ptr noundef nonnull @.str.65) #11
  %107 = call zeroext i1 @s2n_result_is_ok(i32 %106)
  br i1 %107, label %108, label %1307

108:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  %109 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %3, ptr noundef nonnull @.str.66) #11
  %110 = call zeroext i1 @s2n_result_is_ok(i32 %109)
  br i1 %110, label %111, label %1305

111:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %112 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %4, ptr noundef nonnull @.str.67) #11
  %113 = call zeroext i1 @s2n_result_is_ok(i32 %112)
  br i1 %113, label %114, label %1303

114:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %115 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %5, ptr noundef nonnull @.str.68) #11
  %116 = call zeroext i1 @s2n_result_is_ok(i32 %115)
  br i1 %116, label %117, label %1301

117:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %118 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %6, ptr noundef nonnull @.str.69) #11
  %119 = call zeroext i1 @s2n_result_is_ok(i32 %118)
  br i1 %119, label %120, label %1299

120:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %121 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %7, ptr noundef nonnull @.str.70) #11
  %122 = call zeroext i1 @s2n_result_is_ok(i32 %121)
  br i1 %122, label %123, label %1297

123:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 24, i1 false)
  %124 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %8, ptr noundef nonnull @.str.71) #11
  %125 = call zeroext i1 @s2n_result_is_ok(i32 %124)
  br i1 %125, label %126, label %1295

126:                                              ; preds = %123
  %127 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = add nsw i32 %128, 1
  store i32 %129, ptr @test_count, align 4, !tbaa !5
  %130 = icmp eq ptr %127, null
  br i1 %130, label %131, label %155

131:                                              ; preds = %126
  %132 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %141 = call i32 @isatty(i32 noundef %140) #11
  %.not193 = icmp eq i32 %141, 0
  br i1 %.not193, label %142, label %143

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

143:                                              ; preds = %138, %142
  %.str.61.sink232 = phi ptr [ @.str.61, %142 ], [ @.str.58, %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.60) #11
  %149 = load i32, ptr %146, align 4, !tbaa !5
  %150 = call ptr @s2n_strerror_debug(i32 noundef %149, ptr noundef nonnull @.str.60) #11
  %151 = load i32, ptr %132, align 4, !tbaa !5
  %152 = call ptr @strerror(i32 noundef %151) #11
  %153 = load i32, ptr %132, align 4, !tbaa !5
  %154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %144, ptr noundef nonnull %.str.61.sink232, i32 noundef %145, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.57, i32 noundef 269, ptr noundef %148, ptr noundef %150, ptr noundef %152, i32 noundef %153) #13
  call void @exit(i32 noundef 1) #14
  unreachable

155:                                              ; preds = %126
  %156 = getelementptr inbounds i8, ptr %127, i64 220
  store i8 34, ptr %156, align 4, !tbaa !15
  %157 = getelementptr inbounds i8, ptr %127, i64 219
  store i8 34, ptr %157, align 1, !tbaa !42
  %158 = getelementptr inbounds i8, ptr %127, i64 4088
  store i32 1, ptr %158, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  store ptr null, ptr %9, align 8, !tbaa !9
  %159 = add nsw i32 %128, 2
  store i32 %159, ptr @test_count, align 4, !tbaa !5
  %160 = getelementptr inbounds i8, ptr %127, i64 1696
  %161 = call i32 @s2n_array_pushback(ptr noundef nonnull %160, ptr noundef nonnull %9) #11
  %162 = call zeroext i1 @s2n_result_is_ok(i32 %161)
  br i1 %162, label %187, label %163

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

170:                                              ; preds = %163
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = call i32 @fileno(ptr noundef %171) #11
  %173 = call i32 @isatty(i32 noundef %172) #11
  %.not = icmp eq i32 %173, 0
  br i1 %.not, label %174, label %175

174:                                              ; preds = %170, %163
  br label %175

175:                                              ; preds = %170, %174
  %.str.61.sink243 = phi ptr [ @.str.61, %174 ], [ @.str.58, %170 ]
  store i32 %165, ptr %164, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror(i32 noundef %179, ptr noundef nonnull @.str.60) #11
  %181 = load i32, ptr %178, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror_debug(i32 noundef %181, ptr noundef nonnull @.str.60) #11
  %183 = load i32, ptr %164, align 4, !tbaa !5
  %184 = call ptr @strerror(i32 noundef %183) #11
  %185 = load i32, ptr %164, align 4, !tbaa !5
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef nonnull %.str.61.sink243, i32 noundef %177, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.57, i32 noundef 275, ptr noundef %180, ptr noundef %182, ptr noundef %184, i32 noundef %185) #13
  call void @exit(i32 noundef 1) #14
  unreachable

187:                                              ; preds = %155
  %188 = load ptr, ptr %9, align 8, !tbaa !9
  %189 = getelementptr inbounds i8, ptr %188, i64 56
  store i32 4, ptr %189, align 8, !tbaa !44
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = call i32 @s2n_psk_configure_early_data(ptr noundef %188, i32 noundef 1024, i8 noundef zeroext 19, i8 noundef zeroext 1) #11
  %193 = icmp eq i32 %192, -1
  br i1 %193, label %194, label %218

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

201:                                              ; preds = %194
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = call i32 @fileno(ptr noundef %202) #11
  %204 = call i32 @isatty(i32 noundef %203) #11
  %.not192 = icmp eq i32 %204, 0
  br i1 %.not192, label %205, label %206

205:                                              ; preds = %201, %194
  br label %206

206:                                              ; preds = %201, %205
  %.str.61.sink254 = phi ptr [ @.str.61, %205 ], [ @.str.58, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.60) #11
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.60) #11
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = call ptr @strerror(i32 noundef %214) #11
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.61.sink254, i32 noundef %208, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.57, i32 noundef 277, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #13
  call void @exit(i32 noundef 1) #14
  unreachable

218:                                              ; preds = %187
  %219 = load ptr, ptr %9, align 8, !tbaa !9
  %220 = getelementptr inbounds i8, ptr %219, i64 104
  %221 = load ptr, ptr %220, align 8, !tbaa !47
  %222 = getelementptr inbounds i8, ptr %127, i64 232
  %223 = load ptr, ptr %222, align 8, !tbaa !48
  store ptr %221, ptr %223, align 8, !tbaa !49
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = load ptr, ptr %9, align 8, !tbaa !9
  %227 = getelementptr inbounds i8, ptr %226, i64 72
  %228 = call i32 @s2n_dup(ptr noundef nonnull %5, ptr noundef nonnull %227) #11
  %229 = icmp eq i32 %228, -1
  br i1 %229, label %230, label %254

230:                                              ; preds = %218
  %231 = tail call ptr @__errno_location() #12
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @s2n_print_stacktrace(ptr noundef %233) #11
  %235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %236 = trunc nuw i8 %235 to i1
  br i1 %236, label %237, label %241

237:                                              ; preds = %230
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @fileno(ptr noundef %238) #11
  %240 = call i32 @isatty(i32 noundef %239) #11
  %.not191 = icmp eq i32 %240, 0
  br i1 %.not191, label %241, label %242

241:                                              ; preds = %237, %230
  br label %242

242:                                              ; preds = %237, %241
  %.str.61.sink265 = phi ptr [ @.str.61, %241 ], [ @.str.58, %237 ]
  store i32 %232, ptr %231, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror(i32 noundef %246, ptr noundef nonnull @.str.60) #11
  %248 = load i32, ptr %245, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror_debug(i32 noundef %248, ptr noundef nonnull @.str.60) #11
  %250 = load i32, ptr %231, align 4, !tbaa !5
  %251 = call ptr @strerror(i32 noundef %250) #11
  %252 = load i32, ptr %231, align 4, !tbaa !5
  %253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef nonnull %.str.61.sink265, i32 noundef %244, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.57, i32 noundef 281, ptr noundef %247, ptr noundef %249, ptr noundef %251, i32 noundef %252) #13
  call void @exit(i32 noundef 1) #14
  unreachable

254:                                              ; preds = %218
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr @test_count, align 4, !tbaa !5
  %257 = call i32 @s2n_conn_update_handshake_hashes(ptr noundef nonnull %127, ptr noundef nonnull %3)
  %258 = icmp eq i32 %257, -1
  br i1 %258, label %259, label %283

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

266:                                              ; preds = %259
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = call i32 @fileno(ptr noundef %267) #11
  %269 = call i32 @isatty(i32 noundef %268) #11
  %.not190 = icmp eq i32 %269, 0
  br i1 %.not190, label %270, label %271

270:                                              ; preds = %266, %259
  br label %271

271:                                              ; preds = %266, %270
  %.str.61.sink276 = phi ptr [ @.str.61, %270 ], [ @.str.58, %266 ]
  store i32 %261, ptr %260, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror(i32 noundef %275, ptr noundef nonnull @.str.60) #11
  %277 = load i32, ptr %274, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef nonnull @.str.60) #11
  %279 = load i32, ptr %260, align 4, !tbaa !5
  %280 = call ptr @strerror(i32 noundef %279) #11
  %281 = load i32, ptr %260, align 4, !tbaa !5
  %282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %272, ptr noundef nonnull %.str.61.sink276, i32 noundef %273, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.57, i32 noundef 284, ptr noundef %276, ptr noundef %278, ptr noundef %280, i32 noundef %281) #13
  call void @exit(i32 noundef 1) #14
  unreachable

283:                                              ; preds = %254
  %284 = load i32, ptr @test_count, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr @test_count, align 4, !tbaa !5
  %286 = call i32 @s2n_tls13_secrets_update(ptr noundef nonnull %127) #11
  %287 = call zeroext i1 @s2n_result_is_ok(i32 %286)
  br i1 %287, label %312, label %288

288:                                              ; preds = %283
  %289 = tail call ptr @__errno_location() #12
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @s2n_print_stacktrace(ptr noundef %291) #11
  %293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %294 = trunc nuw i8 %293 to i1
  br i1 %294, label %295, label %299

295:                                              ; preds = %288
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #11
  %298 = call i32 @isatty(i32 noundef %297) #11
  %.not144 = icmp eq i32 %298, 0
  br i1 %.not144, label %299, label %300

299:                                              ; preds = %295, %288
  br label %300

300:                                              ; preds = %295, %299
  %.str.61.sink287 = phi ptr [ @.str.61, %299 ], [ @.str.58, %295 ]
  store i32 %290, ptr %289, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef nonnull @.str.60) #11
  %306 = load i32, ptr %303, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror_debug(i32 noundef %306, ptr noundef nonnull @.str.60) #11
  %308 = load i32, ptr %289, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #11
  %310 = load i32, ptr %289, align 4, !tbaa !5
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.61.sink287, i32 noundef %302, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.57, i32 noundef 286, ptr noundef %305, ptr noundef %307, ptr noundef %309, i32 noundef %310) #13
  call void @exit(i32 noundef 1) #14
  unreachable

312:                                              ; preds = %283
  %313 = load i32, ptr @test_count, align 4, !tbaa !5
  %314 = add nsw i32 %313, 1
  store i32 %314, ptr @test_count, align 4, !tbaa !5
  %315 = call i32 @s2n_tls13_key_schedule_update(ptr noundef nonnull %127) #11
  %316 = call zeroext i1 @s2n_result_is_ok(i32 %315)
  br i1 %316, label %341, label %317

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

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

328:                                              ; preds = %324, %317
  br label %329

329:                                              ; preds = %324, %328
  %.str.61.sink298 = phi ptr [ @.str.61, %328 ], [ @.str.58, %324 ]
  store i32 %319, ptr %318, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = load i32, ptr @test_count, align 4, !tbaa !5
  %332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = call ptr @s2n_strerror(i32 noundef %333, ptr noundef nonnull @.str.60) #11
  %335 = load i32, ptr %332, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef nonnull @.str.60) #11
  %337 = load i32, ptr %318, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #11
  %339 = load i32, ptr %318, align 4, !tbaa !5
  %340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %330, ptr noundef nonnull %.str.61.sink298, i32 noundef %331, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.57, i32 noundef 287, ptr noundef %334, ptr noundef %336, ptr noundef %338, i32 noundef %339) #13
  call void @exit(i32 noundef 1) #14
  unreachable

341:                                              ; preds = %312
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr @test_count, align 4, !tbaa !5
  %344 = getelementptr inbounds i8, ptr %127, i64 240
  %345 = getelementptr inbounds i8, ptr %127, i64 628
  %346 = load i32, ptr %345, align 4, !tbaa !54
  %347 = icmp eq i32 %346, 1
  br i1 %347, label %372, label %348

348:                                              ; preds = %341
  %349 = tail call ptr @__errno_location() #12
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @s2n_print_stacktrace(ptr noundef %351) #11
  %353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %354 = trunc nuw i8 %353 to i1
  br i1 %354, label %355, label %359

355:                                              ; preds = %348
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call i32 @fileno(ptr noundef %356) #11
  %358 = call i32 @isatty(i32 noundef %357) #11
  %.not146 = icmp eq i32 %358, 0
  br i1 %.not146, label %359, label %360

359:                                              ; preds = %355, %348
  br label %360

360:                                              ; preds = %355, %359
  %.str.61.sink309 = phi ptr [ @.str.61, %359 ], [ @.str.58, %355 ]
  store i32 %350, ptr %349, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror(i32 noundef %364, ptr noundef nonnull @.str.60) #11
  %366 = load i32, ptr %363, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror_debug(i32 noundef %366, ptr noundef nonnull @.str.60) #11
  %368 = load i32, ptr %349, align 4, !tbaa !5
  %369 = call ptr @strerror(i32 noundef %368) #11
  %370 = load i32, ptr %349, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %361, ptr noundef nonnull %.str.61.sink309, i32 noundef %362, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.57, i32 noundef 290, ptr noundef %365, ptr noundef %367, ptr noundef %369, i32 noundef %370) #13
  call void @exit(i32 noundef 1) #14
  unreachable

372:                                              ; preds = %341
  %373 = getelementptr inbounds i8, ptr %5, i64 8
  %374 = load i32, ptr %373, align 8, !tbaa !55
  %.not147 = icmp eq i32 %374, 0
  br i1 %.not147, label %404, label %375

375:                                              ; preds = %372
  %376 = add nsw i32 %342, 2
  store i32 %376, ptr @test_count, align 4, !tbaa !5
  %377 = load ptr, ptr %5, align 8, !tbaa !56
  %378 = zext i32 %374 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %344, ptr %377, i64 %378)
  %379 = icmp eq i32 %bcmp, 0
  br i1 %379, label %404, label %380

380:                                              ; preds = %375
  %381 = tail call ptr @__errno_location() #12
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = call i32 @s2n_print_stacktrace(ptr noundef %383) #11
  %385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %386 = trunc nuw i8 %385 to i1
  br i1 %386, label %387, label %391

387:                                              ; preds = %380
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = call i32 @fileno(ptr noundef %388) #11
  %390 = call i32 @isatty(i32 noundef %389) #11
  %.not148 = icmp eq i32 %390, 0
  br i1 %.not148, label %391, label %392

391:                                              ; preds = %387, %380
  br label %392

392:                                              ; preds = %387, %391
  %.str.61.sink320 = phi ptr [ @.str.61, %391 ], [ @.str.58, %387 ]
  store i32 %382, ptr %381, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call ptr @s2n_strerror(i32 noundef %396, ptr noundef nonnull @.str.60) #11
  %398 = load i32, ptr %395, align 4, !tbaa !5
  %399 = call ptr @s2n_strerror_debug(i32 noundef %398, ptr noundef nonnull @.str.60) #11
  %400 = load i32, ptr %381, align 4, !tbaa !5
  %401 = call ptr @strerror(i32 noundef %400) #11
  %402 = load i32, ptr %381, align 4, !tbaa !5
  %403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %393, ptr noundef nonnull %.str.61.sink320, i32 noundef %394, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.57, i32 noundef 291, ptr noundef %397, ptr noundef %399, ptr noundef %401, i32 noundef %402) #13
  call void @exit(i32 noundef 1) #14
  unreachable

404:                                              ; preds = %372, %375
  %405 = phi i32 [ %343, %372 ], [ %376, %375 ]
  %406 = getelementptr inbounds i8, ptr %6, i64 8
  %407 = load i32, ptr %406, align 8, !tbaa !55
  %.not149 = icmp eq i32 %407, 0
  br i1 %.not149, label %439, label %408

408:                                              ; preds = %404
  %409 = add nsw i32 %405, 1
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = load ptr, ptr %222, align 8, !tbaa !48
  %411 = getelementptr inbounds i8, ptr %410, i64 888
  %412 = load ptr, ptr %6, align 8, !tbaa !56
  %413 = zext i32 %407 to i64
  %bcmp150 = call i32 @bcmp(ptr nonnull %411, ptr %412, i64 %413)
  %414 = icmp eq i32 %bcmp150, 0
  br i1 %414, label %439, label %415

415:                                              ; preds = %408
  %416 = tail call ptr @__errno_location() #12
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418) #11
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc nuw i8 %420 to i1
  br i1 %421, label %422, label %426

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #11
  %425 = call i32 @isatty(i32 noundef %424) #11
  %.not151 = icmp eq i32 %425, 0
  br i1 %.not151, label %426, label %427

426:                                              ; preds = %422, %415
  br label %427

427:                                              ; preds = %422, %426
  %.str.61.sink331 = phi ptr [ @.str.61, %426 ], [ @.str.58, %422 ]
  store i32 %417, ptr %416, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror(i32 noundef %431, ptr noundef nonnull @.str.60) #11
  %433 = load i32, ptr %430, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef nonnull @.str.60) #11
  %435 = load i32, ptr %416, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #11
  %437 = load i32, ptr %416, align 4, !tbaa !5
  %438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef nonnull %.str.61.sink331, i32 noundef %429, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.57, i32 noundef 294, ptr noundef %432, ptr noundef %434, ptr noundef %436, i32 noundef %437) #13
  call void @exit(i32 noundef 1) #14
  unreachable

439:                                              ; preds = %404, %408
  %440 = phi i32 [ %405, %404 ], [ %409, %408 ]
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr @test_count, align 4, !tbaa !5
  %442 = call i32 @s2n_record_write(ptr noundef nonnull %127, i8 noundef zeroext 23, ptr noundef nonnull %7) #11
  %443 = call zeroext i1 @s2n_result_is_ok(i32 %442)
  br i1 %443, label %468, label %444

444:                                              ; preds = %439
  %445 = tail call ptr @__errno_location() #12
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = call i32 @s2n_print_stacktrace(ptr noundef %447) #11
  %449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %450 = trunc nuw i8 %449 to i1
  br i1 %450, label %451, label %455

451:                                              ; preds = %444
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = call i32 @fileno(ptr noundef %452) #11
  %454 = call i32 @isatty(i32 noundef %453) #11
  %.not152 = icmp eq i32 %454, 0
  br i1 %.not152, label %455, label %456

455:                                              ; preds = %451, %444
  br label %456

456:                                              ; preds = %451, %455
  %.str.61.sink342 = phi ptr [ @.str.61, %455 ], [ @.str.58, %451 ]
  store i32 %446, ptr %445, align 4, !tbaa !5
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef nonnull @.str.60) #11
  %462 = load i32, ptr %459, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef nonnull @.str.60) #11
  %464 = load i32, ptr %445, align 4, !tbaa !5
  %465 = call ptr @strerror(i32 noundef %464) #11
  %466 = load i32, ptr %445, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %457, ptr noundef nonnull %.str.61.sink342, i32 noundef %458, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.57, i32 noundef 297, ptr noundef %461, ptr noundef %463, ptr noundef %465, i32 noundef %466) #13
  call void @exit(i32 noundef 1) #14
  unreachable

468:                                              ; preds = %439
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = add nsw i32 %469, 1
  store i32 %470, ptr @test_count, align 4, !tbaa !5
  %471 = getelementptr inbounds i8, ptr %127, i64 1896
  %472 = getelementptr inbounds i8, ptr %127, i64 1924
  %473 = load i32, ptr %472, align 4, !tbaa !57
  %474 = getelementptr inbounds i8, ptr %127, i64 1920
  %475 = load i32, ptr %474, align 8, !tbaa !58
  %476 = sub i32 %473, %475
  %477 = getelementptr inbounds i8, ptr %8, i64 8
  %478 = load i32, ptr %477, align 8, !tbaa !55
  %479 = icmp eq i32 %476, %478
  br i1 %479, label %504, label %480

480:                                              ; preds = %468
  %481 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %490 = call i32 @isatty(i32 noundef %489) #11
  %.not153 = icmp eq i32 %490, 0
  br i1 %.not153, label %491, label %492

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

492:                                              ; preds = %487, %491
  %.str.61.sink353 = phi ptr [ @.str.61, %491 ], [ @.str.58, %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %496 = load i32, ptr %495, align 4, !tbaa !5
  %497 = call ptr @s2n_strerror(i32 noundef %496, ptr noundef nonnull @.str.60) #11
  %498 = load i32, ptr %495, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef nonnull @.str.60) #11
  %500 = load i32, ptr %481, align 4, !tbaa !5
  %501 = call ptr @strerror(i32 noundef %500) #11
  %502 = load i32, ptr %481, align 4, !tbaa !5
  %503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %493, ptr noundef nonnull %.str.61.sink353, i32 noundef %494, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.57, i32 noundef 298, ptr noundef %497, ptr noundef %499, ptr noundef %501, i32 noundef %502) #13
  call void @exit(i32 noundef 1) #14
  unreachable

504:                                              ; preds = %468
  %.not154 = icmp eq i32 %473, %475
  br i1 %.not154, label %535, label %505

505:                                              ; preds = %504
  %506 = add nsw i32 %469, 2
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = load ptr, ptr %471, align 8, !tbaa !59
  %508 = load ptr, ptr %8, align 8, !tbaa !56
  %509 = zext i32 %476 to i64
  %bcmp155 = call i32 @bcmp(ptr %507, ptr %508, i64 %509)
  %510 = icmp eq i32 %bcmp155, 0
  br i1 %510, label %535, label %511

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

518:                                              ; preds = %511
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @fileno(ptr noundef %519) #11
  %521 = call i32 @isatty(i32 noundef %520) #11
  %.not156 = icmp eq i32 %521, 0
  br i1 %.not156, label %522, label %523

522:                                              ; preds = %518, %511
  br label %523

523:                                              ; preds = %518, %522
  %.str.61.sink364 = phi ptr [ @.str.61, %522 ], [ @.str.58, %518 ]
  store i32 %513, ptr %512, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror(i32 noundef %527, ptr noundef nonnull @.str.60) #11
  %529 = load i32, ptr %526, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef nonnull @.str.60) #11
  %531 = load i32, ptr %512, align 4, !tbaa !5
  %532 = call ptr @strerror(i32 noundef %531) #11
  %533 = load i32, ptr %512, align 4, !tbaa !5
  %534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef nonnull %.str.61.sink364, i32 noundef %525, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.57, i32 noundef 299, ptr noundef %528, ptr noundef %530, ptr noundef %532, i32 noundef %533) #13
  call void @exit(i32 noundef 1) #14
  unreachable

535:                                              ; preds = %504, %505
  %536 = phi i32 [ %470, %504 ], [ %506, %505 ]
  %537 = add nsw i32 %536, 1
  store i32 %537, ptr @test_count, align 4, !tbaa !5
  %538 = call i32 @s2n_connection_free(ptr noundef nonnull %127) #11
  %539 = icmp eq i32 %538, -1
  br i1 %539, label %540, label %564

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

547:                                              ; preds = %540
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @fileno(ptr noundef %548) #11
  %550 = call i32 @isatty(i32 noundef %549) #11
  %.not189 = icmp eq i32 %550, 0
  br i1 %.not189, label %551, label %552

551:                                              ; preds = %547, %540
  br label %552

552:                                              ; preds = %547, %551
  %.str.61.sink375 = phi ptr [ @.str.61, %551 ], [ @.str.58, %547 ]
  store i32 %542, ptr %541, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef nonnull @.str.60) #11
  %558 = load i32, ptr %555, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror_debug(i32 noundef %558, ptr noundef nonnull @.str.60) #11
  %560 = load i32, ptr %541, align 4, !tbaa !5
  %561 = call ptr @strerror(i32 noundef %560) #11
  %562 = load i32, ptr %541, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.61.sink375, i32 noundef %554, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.57, i32 noundef 301, ptr noundef %557, ptr noundef %559, ptr noundef %561, i32 noundef %562) #13
  call void @exit(i32 noundef 1) #14
  unreachable

564:                                              ; preds = %535
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  %565 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = icmp eq ptr %565, null
  br i1 %568, label %569, label %593

569:                                              ; preds = %564
  %570 = tail call ptr @__errno_location() #12
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @s2n_print_stacktrace(ptr noundef %572) #11
  %574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %580

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #11
  %579 = call i32 @isatty(i32 noundef %578) #11
  %.not188 = icmp eq i32 %579, 0
  br i1 %.not188, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.61.sink386 = phi ptr [ @.str.61, %580 ], [ @.str.58, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef nonnull @.str.60) #11
  %587 = load i32, ptr %584, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef nonnull @.str.60) #11
  %589 = load i32, ptr %570, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #11
  %591 = load i32, ptr %570, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.61.sink386, i32 noundef %583, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.57, i32 noundef 310, ptr noundef %586, ptr noundef %588, ptr noundef %590, i32 noundef %591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

593:                                              ; preds = %564
  %594 = add nsw i32 %566, 2
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %565, i32 noundef 1) #11
  %596 = icmp eq i32 %595, -1
  br i1 %596, label %597, label %621

597:                                              ; preds = %593
  %598 = tail call ptr @__errno_location() #12
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @s2n_print_stacktrace(ptr noundef %600) #11
  %602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %603 = trunc nuw i8 %602 to i1
  br i1 %603, label %604, label %608

604:                                              ; preds = %597
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @fileno(ptr noundef %605) #11
  %607 = call i32 @isatty(i32 noundef %606) #11
  %.not187 = icmp eq i32 %607, 0
  br i1 %.not187, label %608, label %609

608:                                              ; preds = %604, %597
  br label %609

609:                                              ; preds = %604, %608
  %.str.61.sink397 = phi ptr [ @.str.61, %608 ], [ @.str.58, %604 ]
  store i32 %599, ptr %598, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef nonnull @.str.60) #11
  %615 = load i32, ptr %612, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef nonnull @.str.60) #11
  %617 = load i32, ptr %598, align 4, !tbaa !5
  %618 = call ptr @strerror(i32 noundef %617) #11
  %619 = load i32, ptr %598, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.61.sink397, i32 noundef %611, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.57, i32 noundef 311, ptr noundef %614, ptr noundef %616, ptr noundef %618, i32 noundef %619) #13
  call void @exit(i32 noundef 1) #14
  unreachable

621:                                              ; preds = %593
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %565, ptr noundef nonnull @.str.88) #11
  %625 = icmp eq i32 %624, -1
  br i1 %625, label %626, label %650

626:                                              ; preds = %621
  %627 = tail call ptr @__errno_location() #12
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @s2n_print_stacktrace(ptr noundef %629) #11
  %631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %632 = trunc nuw i8 %631 to i1
  br i1 %632, label %633, label %637

633:                                              ; preds = %626
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @fileno(ptr noundef %634) #11
  %636 = call i32 @isatty(i32 noundef %635) #11
  %.not186 = icmp eq i32 %636, 0
  br i1 %.not186, label %637, label %638

637:                                              ; preds = %633, %626
  br label %638

638:                                              ; preds = %633, %637
  %.str.61.sink408 = phi ptr [ @.str.61, %637 ], [ @.str.58, %633 ]
  store i32 %628, ptr %627, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.60) #11
  %644 = load i32, ptr %641, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.60) #11
  %646 = load i32, ptr %627, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #11
  %648 = load i32, ptr %627, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %639, ptr noundef nonnull %.str.61.sink408, i32 noundef %640, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.57, i32 noundef 312, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #13
  call void @exit(i32 noundef 1) #14
  unreachable

650:                                              ; preds = %621
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %565) #11
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %679

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

662:                                              ; preds = %655
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #11
  %665 = call i32 @isatty(i32 noundef %664) #11
  %.not185 = icmp eq i32 %665, 0
  br i1 %.not185, label %666, label %667

666:                                              ; preds = %662, %655
  br label %667

667:                                              ; preds = %662, %666
  %.str.61.sink419 = phi ptr [ @.str.61, %666 ], [ @.str.58, %662 ]
  store i32 %657, ptr %656, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.60) #11
  %673 = load i32, ptr %670, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.60) #11
  %675 = load i32, ptr %656, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #11
  %677 = load i32, ptr %656, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef nonnull %.str.61.sink419, i32 noundef %669, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.57, i32 noundef 313, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #13
  call void @exit(i32 noundef 1) #14
  unreachable

679:                                              ; preds = %650
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef nonnull %565, i32 noundef 1024) #11
  %683 = icmp eq i32 %682, -1
  br i1 %683, label %684, label %708

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

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #11
  %694 = call i32 @isatty(i32 noundef %693) #11
  %.not184 = icmp eq i32 %694, 0
  br i1 %.not184, label %695, label %696

695:                                              ; preds = %691, %684
  br label %696

696:                                              ; preds = %691, %695
  %.str.61.sink430 = phi ptr [ @.str.61, %695 ], [ @.str.58, %691 ]
  store i32 %686, ptr %685, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror(i32 noundef %700, ptr noundef nonnull @.str.60) #11
  %702 = load i32, ptr %699, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef nonnull @.str.60) #11
  %704 = load i32, ptr %685, align 4, !tbaa !5
  %705 = call ptr @strerror(i32 noundef %704) #11
  %706 = load i32, ptr %685, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.61.sink430, i32 noundef %698, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.57, i32 noundef 314, ptr noundef %701, ptr noundef %703, ptr noundef %705, i32 noundef %706) #13
  call void @exit(i32 noundef 1) #14
  unreachable

708:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %709 = call ptr @s2n_external_psk_new() #11
  store ptr %709, ptr %10, align 8, !tbaa !9
  store i32 0, ptr %709, align 8, !tbaa !60
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = load ptr, ptr %2, align 8, !tbaa !56
  %713 = getelementptr inbounds i8, ptr %2, i64 8
  %714 = load i32, ptr %713, align 8, !tbaa !55
  %715 = trunc i32 %714 to i16
  %716 = call i32 @s2n_psk_set_identity(ptr noundef nonnull %709, ptr noundef %712, i16 noundef zeroext %715) #11
  %717 = icmp eq i32 %716, -1
  br i1 %717, label %718, label %742

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

725:                                              ; preds = %718
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @fileno(ptr noundef %726) #11
  %728 = call i32 @isatty(i32 noundef %727) #11
  %.not183 = icmp eq i32 %728, 0
  br i1 %.not183, label %729, label %730

729:                                              ; preds = %725, %718
  br label %730

730:                                              ; preds = %725, %729
  %.str.61.sink441 = phi ptr [ @.str.61, %729 ], [ @.str.58, %725 ]
  store i32 %720, ptr %719, align 4, !tbaa !5
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = load i32, ptr @test_count, align 4, !tbaa !5
  %733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror(i32 noundef %734, ptr noundef nonnull @.str.60) #11
  %736 = load i32, ptr %733, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef nonnull @.str.60) #11
  %738 = load i32, ptr %719, align 4, !tbaa !5
  %739 = call ptr @strerror(i32 noundef %738) #11
  %740 = load i32, ptr %719, align 4, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %731, ptr noundef nonnull %.str.61.sink441, i32 noundef %732, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.57, i32 noundef 318, ptr noundef %735, ptr noundef %737, ptr noundef %739, i32 noundef %740) #13
  call void @exit(i32 noundef 1) #14
  unreachable

742:                                              ; preds = %708
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr @test_count, align 4, !tbaa !5
  %745 = load ptr, ptr %1, align 8, !tbaa !56
  %746 = getelementptr inbounds i8, ptr %1, i64 8
  %747 = load i32, ptr %746, align 8, !tbaa !55
  %748 = trunc i32 %747 to i16
  %749 = call i32 @s2n_psk_set_secret(ptr noundef nonnull %709, ptr noundef %745, i16 noundef zeroext %748) #11
  %750 = icmp eq i32 %749, -1
  br i1 %750, label %751, label %775

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

758:                                              ; preds = %751
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @fileno(ptr noundef %759) #11
  %761 = call i32 @isatty(i32 noundef %760) #11
  %.not182 = icmp eq i32 %761, 0
  br i1 %.not182, label %762, label %763

762:                                              ; preds = %758, %751
  br label %763

763:                                              ; preds = %758, %762
  %.str.61.sink452 = phi ptr [ @.str.61, %762 ], [ @.str.58, %758 ]
  store i32 %753, ptr %752, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror(i32 noundef %767, ptr noundef nonnull @.str.60) #11
  %769 = load i32, ptr %766, align 4, !tbaa !5
  %770 = call ptr @s2n_strerror_debug(i32 noundef %769, ptr noundef nonnull @.str.60) #11
  %771 = load i32, ptr %752, align 4, !tbaa !5
  %772 = call ptr @strerror(i32 noundef %771) #11
  %773 = load i32, ptr %752, align 4, !tbaa !5
  %774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %764, ptr noundef nonnull %.str.61.sink452, i32 noundef %765, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.57, i32 noundef 319, ptr noundef %768, ptr noundef %770, ptr noundef %772, i32 noundef %773) #13
  call void @exit(i32 noundef 1) #14
  unreachable

775:                                              ; preds = %742
  %776 = load i32, ptr @test_count, align 4, !tbaa !5
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr @test_count, align 4, !tbaa !5
  %778 = call i32 @s2n_psk_configure_early_data(ptr noundef nonnull %709, i32 noundef 1024, i8 noundef zeroext 19, i8 noundef zeroext 1) #11
  %779 = icmp eq i32 %778, -1
  br i1 %779, label %780, label %804

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

787:                                              ; preds = %780
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = call i32 @fileno(ptr noundef %788) #11
  %790 = call i32 @isatty(i32 noundef %789) #11
  %.not181 = icmp eq i32 %790, 0
  br i1 %.not181, label %791, label %792

791:                                              ; preds = %787, %780
  br label %792

792:                                              ; preds = %787, %791
  %.str.61.sink463 = phi ptr [ @.str.61, %791 ], [ @.str.58, %787 ]
  store i32 %782, ptr %781, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror(i32 noundef %796, ptr noundef nonnull @.str.60) #11
  %798 = load i32, ptr %795, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef nonnull @.str.60) #11
  %800 = load i32, ptr %781, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #11
  %802 = load i32, ptr %781, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %793, ptr noundef nonnull %.str.61.sink463, i32 noundef %794, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.57, i32 noundef 320, ptr noundef %797, ptr noundef %799, ptr noundef %801, i32 noundef %802) #13
  call void @exit(i32 noundef 1) #14
  unreachable

804:                                              ; preds = %775
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr @test_count, align 4, !tbaa !5
  %807 = call i32 @s2n_connection_append_psk(ptr noundef nonnull %565, ptr noundef nonnull %709) #11
  %808 = icmp eq i32 %807, -1
  br i1 %808, label %809, label %833

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

816:                                              ; preds = %809
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @fileno(ptr noundef %817) #11
  %819 = call i32 @isatty(i32 noundef %818) #11
  %.not180 = icmp eq i32 %819, 0
  br i1 %.not180, label %820, label %821

820:                                              ; preds = %816, %809
  br label %821

821:                                              ; preds = %816, %820
  %.str.61.sink474 = phi ptr [ @.str.61, %820 ], [ @.str.58, %816 ]
  store i32 %811, ptr %810, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror(i32 noundef %825, ptr noundef nonnull @.str.60) #11
  %827 = load i32, ptr %824, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror_debug(i32 noundef %827, ptr noundef nonnull @.str.60) #11
  %829 = load i32, ptr %810, align 4, !tbaa !5
  %830 = call ptr @strerror(i32 noundef %829) #11
  %831 = load i32, ptr %810, align 4, !tbaa !5
  %832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %822, ptr noundef nonnull %.str.61.sink474, i32 noundef %823, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.57, i32 noundef 321, ptr noundef %826, ptr noundef %828, ptr noundef %830, i32 noundef %831) #13
  call void @exit(i32 noundef 1) #14
  unreachable

833:                                              ; preds = %804
  %834 = getelementptr inbounds i8, ptr %565, i64 1688
  store i32 1, ptr %834, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 8092) #11
  %838 = icmp eq i32 %837, -1
  br i1 %838, label %839, label %863

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

846:                                              ; preds = %839
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @fileno(ptr noundef %847) #11
  %849 = call i32 @isatty(i32 noundef %848) #11
  %.not179 = icmp eq i32 %849, 0
  br i1 %.not179, label %850, label %851

850:                                              ; preds = %846, %839
  br label %851

851:                                              ; preds = %846, %850
  %.str.61.sink485 = phi ptr [ @.str.61, %850 ], [ @.str.58, %846 ]
  store i32 %841, ptr %840, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror(i32 noundef %855, ptr noundef nonnull @.str.60) #11
  %857 = load i32, ptr %854, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef nonnull @.str.60) #11
  %859 = load i32, ptr %840, align 4, !tbaa !5
  %860 = call ptr @strerror(i32 noundef %859) #11
  %861 = load i32, ptr %840, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %852, ptr noundef nonnull %.str.61.sink485, i32 noundef %853, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.57, i32 noundef 329, ptr noundef %856, ptr noundef %858, ptr noundef %860, i32 noundef %861) #13
  call void @exit(i32 noundef 1) #14
  unreachable

863:                                              ; preds = %833
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %12, i32 noundef 8092) #11
  %867 = icmp eq i32 %866, -1
  br i1 %867, label %868, label %892

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

875:                                              ; preds = %868
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @fileno(ptr noundef %876) #11
  %878 = call i32 @isatty(i32 noundef %877) #11
  %.not178 = icmp eq i32 %878, 0
  br i1 %.not178, label %879, label %880

879:                                              ; preds = %875, %868
  br label %880

880:                                              ; preds = %875, %879
  %.str.61.sink496 = phi ptr [ @.str.61, %879 ], [ @.str.58, %875 ]
  store i32 %870, ptr %869, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef nonnull @.str.60) #11
  %886 = load i32, ptr %883, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef nonnull @.str.60) #11
  %888 = load i32, ptr %869, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #11
  %890 = load i32, ptr %869, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %881, ptr noundef nonnull %.str.61.sink496, i32 noundef %882, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.57, i32 noundef 330, ptr noundef %885, ptr noundef %887, ptr noundef %889, i32 noundef %890) #13
  call void @exit(i32 noundef 1) #14
  unreachable

892:                                              ; preds = %863
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr @test_count, align 4, !tbaa !5
  %895 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %565) #11
  %896 = icmp eq i32 %895, -1
  br i1 %896, label %897, label %921

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

904:                                              ; preds = %897
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @fileno(ptr noundef %905) #11
  %907 = call i32 @isatty(i32 noundef %906) #11
  %.not177 = icmp eq i32 %907, 0
  br i1 %.not177, label %908, label %909

908:                                              ; preds = %904, %897
  br label %909

909:                                              ; preds = %904, %908
  %.str.61.sink507 = phi ptr [ @.str.61, %908 ], [ @.str.58, %904 ]
  store i32 %899, ptr %898, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror(i32 noundef %913, ptr noundef nonnull @.str.60) #11
  %915 = load i32, ptr %912, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror_debug(i32 noundef %915, ptr noundef nonnull @.str.60) #11
  %917 = load i32, ptr %898, align 4, !tbaa !5
  %918 = call ptr @strerror(i32 noundef %917) #11
  %919 = load i32, ptr %898, align 4, !tbaa !5
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %910, ptr noundef nonnull %.str.61.sink507, i32 noundef %911, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.57, i32 noundef 331, ptr noundef %914, ptr noundef %916, ptr noundef %918, i32 noundef %919) #13
  call void @exit(i32 noundef 1) #14
  unreachable

921:                                              ; preds = %892
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %923 = add nsw i32 %922, 1
  store i32 %923, ptr @test_count, align 4, !tbaa !5
  %924 = call i32 @s2n_stuffer_write(ptr noundef nonnull %11, ptr noundef nonnull %4) #11
  %925 = icmp eq i32 %924, -1
  br i1 %925, label %926, label %950

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

933:                                              ; preds = %926
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @fileno(ptr noundef %934) #11
  %936 = call i32 @isatty(i32 noundef %935) #11
  %.not176 = icmp eq i32 %936, 0
  br i1 %.not176, label %937, label %938

937:                                              ; preds = %933, %926
  br label %938

938:                                              ; preds = %933, %937
  %.str.61.sink518 = phi ptr [ @.str.61, %937 ], [ @.str.58, %933 ]
  store i32 %928, ptr %927, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.60) #11
  %944 = load i32, ptr %941, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.60) #11
  %946 = load i32, ptr %927, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #11
  %948 = load i32, ptr %927, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef nonnull %.str.61.sink518, i32 noundef %940, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.57, i32 noundef 333, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #13
  call void @exit(i32 noundef 1) #14
  unreachable

950:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #11
  store i32 0, ptr %13, align 4, !tbaa !5
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = call i32 @s2n_negotiate(ptr noundef nonnull %565, ptr noundef nonnull %13)
  %954 = icmp eq i32 %953, -1
  br i1 %954, label %979, label %955

955:                                              ; preds = %950
  %956 = tail call ptr @__errno_location() #12
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958) #11
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc nuw i8 %960 to i1
  br i1 %961, label %962, label %966

962:                                              ; preds = %955
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @fileno(ptr noundef %963) #11
  %965 = call i32 @isatty(i32 noundef %964) #11
  %.not157 = icmp eq i32 %965, 0
  br i1 %.not157, label %966, label %967

966:                                              ; preds = %962, %955
  br label %967

967:                                              ; preds = %962, %966
  %.str.61.sink529 = phi ptr [ @.str.61, %966 ], [ @.str.58, %962 ]
  store i32 %957, ptr %956, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef nonnull @.str.60) #11
  %973 = load i32, ptr %970, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef nonnull @.str.60) #11
  %975 = load i32, ptr %956, align 4, !tbaa !5
  %976 = call ptr @strerror(i32 noundef %975) #11
  %977 = load i32, ptr %956, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef nonnull %.str.61.sink529, i32 noundef %969, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.57, i32 noundef 336, ptr noundef %972, ptr noundef %974, ptr noundef %976, i32 noundef %977) #13
  call void @exit(i32 noundef 1) #14
  unreachable

979:                                              ; preds = %950
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = icmp eq i32 %983, 201326592
  br i1 %984, label %1008, label %985

985:                                              ; preds = %979
  %986 = tail call ptr @__errno_location() #12
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @s2n_print_stacktrace(ptr noundef %988) #11
  %990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %991 = trunc nuw i8 %990 to i1
  br i1 %991, label %992, label %996

992:                                              ; preds = %985
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @fileno(ptr noundef %993) #11
  %995 = call i32 @isatty(i32 noundef %994) #11
  %.not158 = icmp eq i32 %995, 0
  br i1 %.not158, label %996, label %997

996:                                              ; preds = %992, %985
  br label %997

997:                                              ; preds = %992, %996
  %.str.61.sink540 = phi ptr [ @.str.61, %996 ], [ @.str.58, %992 ]
  store i32 %987, ptr %986, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = load i32, ptr %982, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef nonnull @.str.60) #11
  %1002 = load i32, ptr %982, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef nonnull @.str.60) #11
  %1004 = load i32, ptr %986, align 4, !tbaa !5
  %1005 = call ptr @strerror(i32 noundef %1004) #11
  %1006 = load i32, ptr %986, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef nonnull %.str.61.sink540, i32 noundef %999, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.57, i32 noundef 336, ptr noundef %1001, ptr noundef %1003, ptr noundef %1005, i32 noundef %1006) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1008:                                             ; preds = %979
  %1009 = add nsw i32 %980, 2
  store i32 %1009, ptr @test_count, align 4, !tbaa !5
  %1010 = call ptr @s2n_strerror_debug(i32 noundef 201326592, ptr noundef nonnull @.str.60) #11
  %1011 = icmp eq ptr %1010, null
  br i1 %1011, label %1012, label %1035

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

1019:                                             ; preds = %1012
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @fileno(ptr noundef %1020) #11
  %1022 = call i32 @isatty(i32 noundef %1021) #11
  %.not175 = icmp eq i32 %1022, 0
  br i1 %.not175, label %1023, label %1024

1023:                                             ; preds = %1019, %1012
  br label %1024

1024:                                             ; preds = %1019, %1023
  %.str.61.sink549 = phi ptr [ @.str.61, %1023 ], [ @.str.58, %1019 ]
  store i32 %1014, ptr %1013, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = load i32, ptr %982, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef nonnull @.str.60) #11
  %1029 = load i32, ptr %982, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef nonnull @.str.60) #11
  %1031 = load i32, ptr %1013, align 4, !tbaa !5
  %1032 = call ptr @strerror(i32 noundef %1031) #11
  %1033 = load i32, ptr %1013, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1025, ptr noundef nonnull %.str.61.sink549, i32 noundef %1026, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.57, i32 noundef 336, ptr noundef %1028, ptr noundef %1030, ptr noundef %1032, i32 noundef %1033) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1035:                                             ; preds = %1008
  store i32 0, ptr %982, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %1036 = tail call ptr @__errno_location() #12
  store i32 0, ptr %1036, align 4, !tbaa !5
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = add nsw i32 %1037, 1
  store i32 %1038, ptr @test_count, align 4, !tbaa !5
  %1039 = load i32, ptr %13, align 4, !tbaa !5
  %1040 = icmp eq i32 %1039, 1
  br i1 %1040, label %1063, label %1041

1041:                                             ; preds = %1035
  %1042 = load i32, ptr %1036, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @s2n_print_stacktrace(ptr noundef %1043) #11
  %1045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1046 = trunc nuw i8 %1045 to i1
  br i1 %1046, label %1047, label %1051

1047:                                             ; preds = %1041
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = call i32 @fileno(ptr noundef %1048) #11
  %1050 = call i32 @isatty(i32 noundef %1049) #11
  %.not159 = icmp eq i32 %1050, 0
  br i1 %.not159, label %1051, label %1052

1051:                                             ; preds = %1047, %1041
  br label %1052

1052:                                             ; preds = %1047, %1051
  %.str.61.sink558 = phi ptr [ @.str.61, %1051 ], [ @.str.58, %1047 ]
  store i32 %1042, ptr %1036, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = load i32, ptr %982, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror(i32 noundef %1055, ptr noundef nonnull @.str.60) #11
  %1057 = load i32, ptr %982, align 4, !tbaa !5
  %1058 = call ptr @s2n_strerror_debug(i32 noundef %1057, ptr noundef nonnull @.str.60) #11
  %1059 = load i32, ptr %1036, align 4, !tbaa !5
  %1060 = call ptr @strerror(i32 noundef %1059) #11
  %1061 = load i32, ptr %1036, align 4, !tbaa !5
  %1062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1053, ptr noundef nonnull %.str.61.sink558, i32 noundef %1054, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.57, i32 noundef 337, ptr noundef %1056, ptr noundef %1058, ptr noundef %1060, i32 noundef %1061) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1063:                                             ; preds = %1035
  %1064 = add nsw i32 %1037, 2
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %565)
  %1066 = icmp eq i32 %1065, 19
  br i1 %1066, label %1089, label %1067

1067:                                             ; preds = %1063
  %1068 = load i32, ptr %1036, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #11
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

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

1077:                                             ; preds = %1073, %1067
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.61.sink567 = phi ptr [ @.str.61, %1077 ], [ @.str.58, %1073 ]
  store i32 %1068, ptr %1036, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = load i32, ptr %982, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef nonnull @.str.60) #11
  %1083 = load i32, ptr %982, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef nonnull @.str.60) #11
  %1085 = load i32, ptr %1036, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #11
  %1087 = load i32, ptr %1036, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.61.sink567, i32 noundef %1080, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.57, i32 noundef 338, ptr noundef %1082, ptr noundef %1084, ptr noundef %1086, i32 noundef %1087) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1089:                                             ; preds = %1063
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = add nsw i32 %1090, 1
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = getelementptr inbounds i8, ptr %11, i64 28
  %1093 = load i32, ptr %1092, align 4, !tbaa !62
  %1094 = getelementptr inbounds i8, ptr %11, i64 24
  %1095 = load i32, ptr %1094, align 8, !tbaa !63
  %1096 = icmp eq i32 %1093, %1095
  br i1 %1096, label %1119, label %1097

1097:                                             ; preds = %1089
  %1098 = load i32, ptr %1036, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @s2n_print_stacktrace(ptr noundef %1099) #11
  %1101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1102 = trunc nuw i8 %1101 to i1
  br i1 %1102, label %1103, label %1107

1103:                                             ; preds = %1097
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @fileno(ptr noundef %1104) #11
  %1106 = call i32 @isatty(i32 noundef %1105) #11
  %.not161 = icmp eq i32 %1106, 0
  br i1 %.not161, label %1107, label %1108

1107:                                             ; preds = %1103, %1097
  br label %1108

1108:                                             ; preds = %1103, %1107
  %.str.61.sink576 = phi ptr [ @.str.61, %1107 ], [ @.str.58, %1103 ]
  store i32 %1098, ptr %1036, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = load i32, ptr %982, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror(i32 noundef %1111, ptr noundef nonnull @.str.60) #11
  %1113 = load i32, ptr %982, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef nonnull @.str.60) #11
  %1115 = load i32, ptr %1036, align 4, !tbaa !5
  %1116 = call ptr @strerror(i32 noundef %1115) #11
  %1117 = load i32, ptr %1036, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1109, ptr noundef nonnull %.str.61.sink576, i32 noundef %1110, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.57, i32 noundef 339, ptr noundef %1112, ptr noundef %1114, ptr noundef %1116, i32 noundef %1117) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1119:                                             ; preds = %1089
  %1120 = add nsw i32 %1090, 2
  store i32 %1120, ptr @test_count, align 4, !tbaa !5
  %1121 = call i32 @s2n_stuffer_write(ptr noundef nonnull %11, ptr noundef nonnull %8) #11
  %1122 = icmp eq i32 %1121, -1
  br i1 %1122, label %1123, label %1145

1123:                                             ; preds = %1119
  %1124 = load i32, ptr %1036, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125) #11
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc nuw i8 %1127 to i1
  br i1 %1128, label %1129, label %1133

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

1133:                                             ; preds = %1129, %1123
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.61.sink585 = phi ptr [ @.str.61, %1133 ], [ @.str.58, %1129 ]
  store i32 %1124, ptr %1036, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = load i32, ptr %982, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef nonnull @.str.60) #11
  %1139 = load i32, ptr %982, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.60) #11
  %1141 = load i32, ptr %1036, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #11
  %1143 = load i32, ptr %1036, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.61.sink585, i32 noundef %1136, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.57, i32 noundef 341, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1145:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = add nsw i32 %1146, 1
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = getelementptr inbounds i8, ptr %7, i64 8
  %1149 = load i32, ptr %1148, align 8, !tbaa !55
  %1150 = call i32 @s2n_alloc(ptr noundef nonnull %14, i32 noundef %1149) #11
  %1151 = icmp eq i32 %1150, -1
  br i1 %1151, label %1152, label %1174

1152:                                             ; preds = %1145
  %1153 = load i32, ptr %1036, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @s2n_print_stacktrace(ptr noundef %1154) #11
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc nuw i8 %1156 to i1
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1152
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @fileno(ptr noundef %1159) #11
  %1161 = call i32 @isatty(i32 noundef %1160) #11
  %.not173 = icmp eq i32 %1161, 0
  br i1 %.not173, label %1162, label %1163

1162:                                             ; preds = %1158, %1152
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.61.sink594 = phi ptr [ @.str.61, %1162 ], [ @.str.58, %1158 ]
  store i32 %1153, ptr %1036, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = load i32, ptr %982, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror(i32 noundef %1166, ptr noundef nonnull @.str.60) #11
  %1168 = load i32, ptr %982, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef nonnull @.str.60) #11
  %1170 = load i32, ptr %1036, align 4, !tbaa !5
  %1171 = call ptr @strerror(i32 noundef %1170) #11
  %1172 = load i32, ptr %1036, align 4, !tbaa !5
  %1173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.61.sink594, i32 noundef %1165, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.57, i32 noundef 344, ptr noundef %1167, ptr noundef %1169, ptr noundef %1171, i32 noundef %1172) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1174:                                             ; preds = %1145
  %1175 = load ptr, ptr %14, align 8, !tbaa !56
  %1176 = getelementptr inbounds i8, ptr %14, i64 8
  %1177 = load i32, ptr %1176, align 8, !tbaa !55
  %1178 = zext i32 %1177 to i64
  %1179 = call i64 @s2n_recv(ptr noundef nonnull %565, ptr noundef %1175, i64 noundef %1178, ptr noundef nonnull %13) #11
  %1180 = trunc i64 %1179 to i32
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, ptr @test_count, align 4, !tbaa !5
  %1183 = load i32, ptr %1148, align 8, !tbaa !55
  %1184 = icmp eq i32 %1183, %1180
  br i1 %1184, label %1207, label %1185

1185:                                             ; preds = %1174
  %1186 = load i32, ptr %1036, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = call i32 @s2n_print_stacktrace(ptr noundef %1187) #11
  %1189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1190 = trunc nuw i8 %1189 to i1
  br i1 %1190, label %1191, label %1195

1191:                                             ; preds = %1185
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = call i32 @fileno(ptr noundef %1192) #11
  %1194 = call i32 @isatty(i32 noundef %1193) #11
  %.not162 = icmp eq i32 %1194, 0
  br i1 %.not162, label %1195, label %1196

1195:                                             ; preds = %1191, %1185
  br label %1196

1196:                                             ; preds = %1191, %1195
  %.str.61.sink603 = phi ptr [ @.str.61, %1195 ], [ @.str.58, %1191 ]
  store i32 %1186, ptr %1036, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = load i32, ptr @test_count, align 4, !tbaa !5
  %1199 = load i32, ptr %982, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef nonnull @.str.60) #11
  %1201 = load i32, ptr %982, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror_debug(i32 noundef %1201, ptr noundef nonnull @.str.60) #11
  %1203 = load i32, ptr %1036, align 4, !tbaa !5
  %1204 = call ptr @strerror(i32 noundef %1203) #11
  %1205 = load i32, ptr %1036, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef nonnull %.str.61.sink603, i32 noundef %1198, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.57, i32 noundef 346, ptr noundef %1200, ptr noundef %1202, ptr noundef %1204, i32 noundef %1205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1207:                                             ; preds = %1174
  %.not163 = icmp eq i32 %1180, 0
  br i1 %.not163, label %1236, label %1208

1208:                                             ; preds = %1207
  %1209 = add nsw i32 %1181, 2
  store i32 %1209, ptr @test_count, align 4, !tbaa !5
  %1210 = load ptr, ptr %14, align 8, !tbaa !56
  %1211 = load ptr, ptr %7, align 8, !tbaa !56
  %1212 = and i64 %1179, 4294967295
  %bcmp164 = call i32 @bcmp(ptr %1210, ptr %1211, i64 %1212)
  %1213 = icmp eq i32 %bcmp164, 0
  br i1 %1213, label %1236, label %1214

1214:                                             ; preds = %1208
  %1215 = load i32, ptr %1036, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @s2n_print_stacktrace(ptr noundef %1216) #11
  %1218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1219 = trunc nuw i8 %1218 to i1
  br i1 %1219, label %1220, label %1224

1220:                                             ; preds = %1214
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @fileno(ptr noundef %1221) #11
  %1223 = call i32 @isatty(i32 noundef %1222) #11
  %.not165 = icmp eq i32 %1223, 0
  br i1 %.not165, label %1224, label %1225

1224:                                             ; preds = %1220, %1214
  br label %1225

1225:                                             ; preds = %1220, %1224
  %.str.61.sink612 = phi ptr [ @.str.61, %1224 ], [ @.str.58, %1220 ]
  store i32 %1215, ptr %1036, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = load i32, ptr %982, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror(i32 noundef %1228, ptr noundef nonnull @.str.60) #11
  %1230 = load i32, ptr %982, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror_debug(i32 noundef %1230, ptr noundef nonnull @.str.60) #11
  %1232 = load i32, ptr %1036, align 4, !tbaa !5
  %1233 = call ptr @strerror(i32 noundef %1232) #11
  %1234 = load i32, ptr %1036, align 4, !tbaa !5
  %1235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef nonnull %.str.61.sink612, i32 noundef %1227, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.57, i32 noundef 347, ptr noundef %1229, ptr noundef %1231, ptr noundef %1233, i32 noundef %1234) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1236:                                             ; preds = %1207, %1208
  %1237 = phi i32 [ %1182, %1207 ], [ %1209, %1208 ]
  %1238 = add nsw i32 %1237, 1
  store i32 %1238, ptr @test_count, align 4, !tbaa !5
  %1239 = load i32, ptr %1092, align 4, !tbaa !62
  %1240 = load i32, ptr %1094, align 8, !tbaa !63
  %1241 = icmp eq i32 %1239, %1240
  br i1 %1241, label %1264, label %1242

1242:                                             ; preds = %1236
  %1243 = load i32, ptr %1036, align 4, !tbaa !5
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = call i32 @s2n_print_stacktrace(ptr noundef %1244) #11
  %1246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1247 = trunc nuw i8 %1246 to i1
  br i1 %1247, label %1248, label %1252

1248:                                             ; preds = %1242
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @fileno(ptr noundef %1249) #11
  %1251 = call i32 @isatty(i32 noundef %1250) #11
  %.not166 = icmp eq i32 %1251, 0
  br i1 %.not166, label %1252, label %1253

1252:                                             ; preds = %1248, %1242
  br label %1253

1253:                                             ; preds = %1248, %1252
  %.str.61.sink621 = phi ptr [ @.str.61, %1252 ], [ @.str.58, %1248 ]
  store i32 %1243, ptr %1036, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %1256 = load i32, ptr %982, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror(i32 noundef %1256, ptr noundef nonnull @.str.60) #11
  %1258 = load i32, ptr %982, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror_debug(i32 noundef %1258, ptr noundef nonnull @.str.60) #11
  %1260 = load i32, ptr %1036, align 4, !tbaa !5
  %1261 = call ptr @strerror(i32 noundef %1260) #11
  %1262 = load i32, ptr %1036, align 4, !tbaa !5
  %1263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef nonnull %.str.61.sink621, i32 noundef %1255, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.57, i32 noundef 348, ptr noundef %1257, ptr noundef %1259, ptr noundef %1261, i32 noundef %1262) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1264:                                             ; preds = %1236
  %1265 = add nsw i32 %1237, 2
  store i32 %1265, ptr @test_count, align 4, !tbaa !5
  %1266 = call i32 @s2n_connection_free(ptr noundef nonnull %565) #11
  %1267 = icmp eq i32 %1266, -1
  br i1 %1267, label %1268, label %1290

1268:                                             ; preds = %1264
  %1269 = load i32, ptr %1036, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @s2n_print_stacktrace(ptr noundef %1270) #11
  %1272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1273 = trunc nuw i8 %1272 to i1
  br i1 %1273, label %1274, label %1278

1274:                                             ; preds = %1268
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #11
  %1277 = call i32 @isatty(i32 noundef %1276) #11
  %.not172 = icmp eq i32 %1277, 0
  br i1 %.not172, label %1278, label %1279

1278:                                             ; preds = %1274, %1268
  br label %1279

1279:                                             ; preds = %1274, %1278
  %.str.61.sink630 = phi ptr [ @.str.61, %1278 ], [ @.str.58, %1274 ]
  store i32 %1269, ptr %1036, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = load i32, ptr %982, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef nonnull @.str.60) #11
  %1284 = load i32, ptr %982, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror_debug(i32 noundef %1284, ptr noundef nonnull @.str.60) #11
  %1286 = load i32, ptr %1036, align 4, !tbaa !5
  %1287 = call ptr @strerror(i32 noundef %1286) #11
  %1288 = load i32, ptr %1036, align 4, !tbaa !5
  %1289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef nonnull %.str.61.sink630, i32 noundef %1281, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.57, i32 noundef 350, ptr noundef %1283, ptr noundef %1285, ptr noundef %1287, i32 noundef %1288) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1290:                                             ; preds = %1264
  %1291 = call i32 @s2n_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #11
  %1292 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #11
  %1293 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #11
  %1294 = call i32 @s2n_psk_free(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  br label %1295

1295:                                             ; preds = %123, %1290
  %.0 = phi i32 [ 0, %1290 ], [ -1, %123 ]
  %1296 = call i32 @s2n_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #11
  br label %1297

1297:                                             ; preds = %120, %1295
  %.1131 = phi i1 [ %125, %1295 ], [ false, %120 ]
  %.1 = phi i32 [ %.0, %1295 ], [ -1, %120 ]
  %1298 = call i32 @s2n_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #11
  br label %1299

1299:                                             ; preds = %117, %1297
  %.2132 = phi i1 [ %.1131, %1297 ], [ false, %117 ]
  %.2 = phi i32 [ %.1, %1297 ], [ -1, %117 ]
  %1300 = call i32 @s2n_free(ptr noundef nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #11
  br label %1301

1301:                                             ; preds = %114, %1299
  %.3133 = phi i1 [ %.2132, %1299 ], [ false, %114 ]
  %.3 = phi i32 [ %.2, %1299 ], [ -1, %114 ]
  %1302 = call i32 @s2n_free(ptr noundef nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #11
  br label %1303

1303:                                             ; preds = %111, %1301
  %.4134 = phi i1 [ %.3133, %1301 ], [ false, %111 ]
  %.4 = phi i32 [ %.3, %1301 ], [ -1, %111 ]
  %1304 = call i32 @s2n_free(ptr noundef nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #11
  br label %1305

1305:                                             ; preds = %108, %1303
  %.5135 = phi i1 [ %.4134, %1303 ], [ false, %108 ]
  %.5 = phi i32 [ %.4, %1303 ], [ -1, %108 ]
  %1306 = call i32 @s2n_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #11
  br label %1307

1307:                                             ; preds = %1305, %105
  %.6136 = phi i1 [ %.5135, %1305 ], [ false, %105 ]
  %.6 = phi i32 [ %.5, %1305 ], [ -1, %105 ]
  %1308 = call i32 @s2n_free(ptr noundef nonnull %2) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #11
  %1309 = call i32 @s2n_free(ptr noundef nonnull %1) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #11
  br i1 %.6136, label %1310, label %1385

1310:                                             ; preds = %1307
  %1311 = call i32 @s2n_cleanup() #11
  %1312 = icmp eq i32 %1311, -1
  br i1 %1312, label %1313, label %1337

1313:                                             ; preds = %1310
  %1314 = tail call ptr @__errno_location() #12
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = call i32 @s2n_print_stacktrace(ptr noundef %1316) #11
  %1318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1319 = trunc nuw i8 %1318 to i1
  br i1 %1319, label %1320, label %1324

1320:                                             ; preds = %1313
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = call i32 @fileno(ptr noundef %1321) #11
  %1323 = call i32 @isatty(i32 noundef %1322) #11
  %.not171 = icmp eq i32 %1323, 0
  br i1 %.not171, label %1324, label %1325

1324:                                             ; preds = %1320, %1313
  br label %1325

1325:                                             ; preds = %1320, %1324
  %.str.61.sink639 = phi ptr [ @.str.61, %1324 ], [ @.str.58, %1320 ]
  store i32 %1315, ptr %1314, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef nonnull @.str.60) #11
  %1331 = load i32, ptr %1328, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror_debug(i32 noundef %1331, ptr noundef nonnull @.str.60) #11
  %1333 = load i32, ptr %1314, align 4, !tbaa !5
  %1334 = call ptr @strerror(i32 noundef %1333) #11
  %1335 = load i32, ptr %1314, align 4, !tbaa !5
  %1336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef nonnull %.str.61.sink639, i32 noundef %1327, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.57, i32 noundef 355, ptr noundef %1330, ptr noundef %1332, ptr noundef %1334, i32 noundef %1335) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1337:                                             ; preds = %1310
  %1338 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %1339 = icmp eq i32 %1338, -1
  br i1 %1339, label %1340, label %1364

1340:                                             ; preds = %1337
  %1341 = tail call ptr @__errno_location() #12
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = call i32 @s2n_print_stacktrace(ptr noundef %1343) #11
  %1345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1346 = trunc nuw i8 %1345 to i1
  br i1 %1346, label %1347, label %1351

1347:                                             ; preds = %1340
  %1348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1349 = call i32 @fileno(ptr noundef %1348) #11
  %1350 = call i32 @isatty(i32 noundef %1349) #11
  %.not170 = icmp eq i32 %1350, 0
  br i1 %.not170, label %1351, label %1352

1351:                                             ; preds = %1347, %1340
  br label %1352

1352:                                             ; preds = %1347, %1351
  %.str.61.sink650 = phi ptr [ @.str.61, %1351 ], [ @.str.58, %1347 ]
  store i32 %1342, ptr %1341, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror(i32 noundef %1356, ptr noundef nonnull @.str.60) #11
  %1358 = load i32, ptr %1355, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror_debug(i32 noundef %1358, ptr noundef nonnull @.str.60) #11
  %1360 = load i32, ptr %1341, align 4, !tbaa !5
  %1361 = call ptr @strerror(i32 noundef %1360) #11
  %1362 = load i32, ptr %1341, align 4, !tbaa !5
  %1363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef nonnull %.str.61.sink650, i32 noundef %1354, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.57, i32 noundef 355, ptr noundef %1357, ptr noundef %1359, ptr noundef %1361, i32 noundef %1362) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1364:                                             ; preds = %1337
  %1365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1366 = trunc nuw i8 %1365 to i1
  br i1 %1366, label %1367, label %1378

1367:                                             ; preds = %1364
  %1368 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1369 = call i32 @fileno(ptr noundef %1368) #11
  %1370 = call i32 @isatty(i32 noundef %1369) #11
  %.not167 = icmp eq i32 %1370, 0
  br i1 %.not167, label %1378, label %1371

1371:                                             ; preds = %1367
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not169 = icmp eq i32 %1372, 0
  %1373 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not169, label %1376, label %1374

1374:                                             ; preds = %1371
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef nonnull @.str.112, i32 noundef %1372) #11
  br label %1385

1376:                                             ; preds = %1371
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef nonnull @.str.113) #11
  br label %1385

1378:                                             ; preds = %1367, %1364
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not168 = icmp eq i32 %1379, 0
  %1380 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not168, label %1383, label %1381

1381:                                             ; preds = %1378
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef nonnull @.str.114, i32 noundef %1379) #11
  br label %1385

1383:                                             ; preds = %1378
  %1384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef nonnull @.str.115) #11
  br label %1385

1385:                                             ; preds = %.thread, %1376, %1374, %1383, %1381, %1307
  %.8 = phi i32 [ %.6, %1307 ], [ 0, %1381 ], [ 0, %1383 ], [ 0, %1374 ], [ 0, %1376 ], [ -1, %.thread ]
  ret i32 %.8
}

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #6

declare i32 @s2n_init() local_unnamed_addr #6

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #6

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #6

declare i32 @s2n_array_pushback(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_psk_configure_early_data(ptr noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #6

declare i32 @s2n_dup(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_tls13_secrets_update(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_tls13_key_schedule_update(ptr noundef) local_unnamed_addr #6

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_early_data_expected(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_server_max_early_data_size(ptr noundef, i32 noundef) local_unnamed_addr #6

declare ptr @s2n_external_psk_new() local_unnamed_addr #6

declare i32 @s2n_psk_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_psk_set_identity(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #6

declare i32 @s2n_psk_set_secret(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #6

declare i32 @s2n_connection_append_psk(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare void @s2n_debug_info_reset() local_unnamed_addr #6

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_cleanup() local_unnamed_addr #6

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #10

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: write) }
attributes #3 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { "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 = { 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 = { 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 = { nofree nounwind willreturn memory(argmem: read) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!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, !7, i64 219}
!43 = !{!16, !6, i64 4088}
!44 = !{!45, !6, i64 56}
!45 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !46, i64 96, !18, i64 160}
!46 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!47 = !{!45, !10, i64 104}
!48 = !{!16, !10, i64 232}
!49 = !{!50, !10, i64 0}
!50 = !{!"s2n_crypto_parameters", !10, i64 0, !51, i64 8, !51, i64 16, !52, i64 24, !52, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!51 = !{!"s2n_session_key", !10, i64 0}
!52 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !53, i64 16, !53, i64 72, !53, i64 128, !53, i64 184, !7, i64 240, !7, i64 368}
!53 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!54 = !{!16, !6, i64 628}
!55 = !{!25, !6, i64 8}
!56 = !{!25, !10, i64 0}
!57 = !{!16, !6, i64 1924}
!58 = !{!16, !6, i64 1920}
!59 = !{!16, !10, i64 1896}
!60 = !{!45, !6, i64 0}
!61 = !{!16, !6, i64 1688}
!62 = !{!32, !6, i64 28}
!63 = !{!32, !6, i64 24}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass