; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_auth_handshake_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, 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 }

@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
@stderr = external global ptr, align 8
@.str.49 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [59 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: 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) #3

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_write_io(ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_read_io(ptr noundef) #0

declare ptr @s2n_connection_new(i32 noundef) #5

declare i32 @s2n_print_stacktrace(ptr noundef) #5

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

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

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

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

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

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

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

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #5

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) #5

declare i32 @s2n_connection_free(ptr noundef) #5

; Function Attrs: nounwind uwtable
define dso_local i32 @s2n_test_client_auth_message_by_message(i1 noundef zeroext %0) #0 {
  %2 = alloca i8, align 1
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, 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_stuffer, align 8
  %32 = alloca %struct.s2n_stuffer, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca 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 i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = zext i1 %0 to i8
  store i8 %108, ptr %2, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  store ptr null, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  store ptr null, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  store ptr null, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  br label %109

109:                                              ; preds = %1
  %110 = load i32, ptr @test_count, align 4, !tbaa !11
  %111 = add nsw i32 %110, 1
  store i32 %111, ptr @test_count, align 4, !tbaa !11
  %112 = call ptr @s2n_config_new()
  store ptr %112, ptr %5, align 8, !tbaa !9
  %113 = icmp eq ptr %112, null
  br i1 %113, label %114, label %167

114:                                              ; preds = %109
  br label %115

115:                                              ; preds = %114
  br label %116

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %117 = call ptr @__errno_location() #10
  %118 = load i32, ptr %117, align 4, !tbaa !11
  store i32 %118, ptr %7, align 4, !tbaa !11
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = call i32 @s2n_print_stacktrace(ptr noundef %119)
  %121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %122 = trunc i8 %121 to i1
  br i1 %122, label %123, label %145

123:                                              ; preds = %116
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = call i32 @fileno(ptr noundef %124) #9
  %126 = call i32 @isatty(i32 noundef %125) #9
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %145

128:                                              ; preds = %123
  %129 = load i32, ptr %7, align 4, !tbaa !11
  %130 = call ptr @__errno_location() #10
  store i32 %129, ptr %130, align 4, !tbaa !11
  %131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %132 = load i32, ptr @test_count, align 4, !tbaa !11
  %133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %134 = load i32, ptr %133, align 4, !tbaa !11
  %135 = call ptr @s2n_strerror(i32 noundef %134, ptr noundef @.str.52)
  %136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %137 = load i32, ptr %136, align 4, !tbaa !11
  %138 = call ptr @s2n_strerror_debug(i32 noundef %137, ptr noundef @.str.52)
  %139 = call ptr @__errno_location() #10
  %140 = load i32, ptr %139, align 4, !tbaa !11
  %141 = call ptr @strerror(i32 noundef %140) #9
  %142 = call ptr @__errno_location() #10
  %143 = load i32, ptr %142, align 4, !tbaa !11
  %144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %131, ptr noundef @.str.49, i32 noundef %132, ptr noundef @.str.74, ptr noundef @.str.51, i32 noundef 108, ptr noundef %135, ptr noundef %138, ptr noundef %141, i32 noundef %143) #9
  br label %162

145:                                              ; preds = %123, %116
  %146 = load i32, ptr %7, align 4, !tbaa !11
  %147 = call ptr @__errno_location() #10
  store i32 %146, ptr %147, align 4, !tbaa !11
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !11
  %150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !11
  %152 = call ptr @s2n_strerror(i32 noundef %151, ptr noundef @.str.52)
  %153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !11
  %155 = call ptr @s2n_strerror_debug(i32 noundef %154, ptr noundef @.str.52)
  %156 = call ptr @__errno_location() #10
  %157 = load i32, ptr %156, align 4, !tbaa !11
  %158 = call ptr @strerror(i32 noundef %157) #9
  %159 = call ptr @__errno_location() #10
  %160 = load i32, ptr %159, align 4, !tbaa !11
  %161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef @.str.53, i32 noundef %149, ptr noundef @.str.74, ptr noundef @.str.51, i32 noundef 108, ptr noundef %152, ptr noundef %155, ptr noundef %158, i32 noundef %160) #9
  br label %162

162:                                              ; preds = %145, %128
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %163

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163
  call void @exit(i32 noundef 1) #11
  unreachable

165:                                              ; No predecessors!
  br label %166

166:                                              ; preds = %165
  br label %167

167:                                              ; preds = %166, %109
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  %171 = load i32, ptr @test_count, align 4, !tbaa !11
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr @test_count, align 4, !tbaa !11
  %173 = call ptr @s2n_config_new()
  store ptr %173, ptr %6, align 8, !tbaa !9
  %174 = icmp eq ptr %173, null
  br i1 %174, label %175, label %228

175:                                              ; preds = %170
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %178 = call ptr @__errno_location() #10
  %179 = load i32, ptr %178, align 4, !tbaa !11
  store i32 %179, ptr %8, align 4, !tbaa !11
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = call i32 @s2n_print_stacktrace(ptr noundef %180)
  %182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %183 = trunc i8 %182 to i1
  br i1 %183, label %184, label %206

184:                                              ; preds = %177
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @fileno(ptr noundef %185) #9
  %187 = call i32 @isatty(i32 noundef %186) #9
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %189, label %206

189:                                              ; preds = %184
  %190 = load i32, ptr %8, align 4, !tbaa !11
  %191 = call ptr @__errno_location() #10
  store i32 %190, ptr %191, align 4, !tbaa !11
  %192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %193 = load i32, ptr @test_count, align 4, !tbaa !11
  %194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %195 = load i32, ptr %194, align 4, !tbaa !11
  %196 = call ptr @s2n_strerror(i32 noundef %195, ptr noundef @.str.52)
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !11
  %199 = call ptr @s2n_strerror_debug(i32 noundef %198, ptr noundef @.str.52)
  %200 = call ptr @__errno_location() #10
  %201 = load i32, ptr %200, align 4, !tbaa !11
  %202 = call ptr @strerror(i32 noundef %201) #9
  %203 = call ptr @__errno_location() #10
  %204 = load i32, ptr %203, align 4, !tbaa !11
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %192, ptr noundef @.str.49, i32 noundef %193, ptr noundef @.str.75, ptr noundef @.str.51, i32 noundef 109, ptr noundef %196, ptr noundef %199, ptr noundef %202, i32 noundef %204) #9
  br label %223

206:                                              ; preds = %184, %177
  %207 = load i32, ptr %8, align 4, !tbaa !11
  %208 = call ptr @__errno_location() #10
  store i32 %207, ptr %208, align 4, !tbaa !11
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = load i32, ptr @test_count, align 4, !tbaa !11
  %211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %212 = load i32, ptr %211, align 4, !tbaa !11
  %213 = call ptr @s2n_strerror(i32 noundef %212, ptr noundef @.str.52)
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !11
  %216 = call ptr @s2n_strerror_debug(i32 noundef %215, ptr noundef @.str.52)
  %217 = call ptr @__errno_location() #10
  %218 = load i32, ptr %217, align 4, !tbaa !11
  %219 = call ptr @strerror(i32 noundef %218) #9
  %220 = call ptr @__errno_location() #10
  %221 = load i32, ptr %220, align 4, !tbaa !11
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef @.str.53, i32 noundef %210, ptr noundef @.str.75, ptr noundef @.str.51, i32 noundef 109, ptr noundef %213, ptr noundef %216, ptr noundef %219, i32 noundef %221) #9
  br label %223

223:                                              ; preds = %206, %189
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  call void @exit(i32 noundef 1) #11
  unreachable

226:                                              ; No predecessors!
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227, %170
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  %232 = load i32, ptr @test_count, align 4, !tbaa !11
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr @test_count, align 4, !tbaa !11
  %234 = load ptr, ptr %6, align 8, !tbaa !9
  %235 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %234)
  %236 = icmp eq i32 %235, -1
  br i1 %236, label %237, label %290

237:                                              ; preds = %231
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %240 = call ptr @__errno_location() #10
  %241 = load i32, ptr %240, align 4, !tbaa !11
  store i32 %241, ptr %9, align 4, !tbaa !11
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = call i32 @s2n_print_stacktrace(ptr noundef %242)
  %244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %245 = trunc i8 %244 to i1
  br i1 %245, label %246, label %268

246:                                              ; preds = %239
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = call i32 @fileno(ptr noundef %247) #9
  %249 = call i32 @isatty(i32 noundef %248) #9
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %251, label %268

251:                                              ; preds = %246
  %252 = load i32, ptr %9, align 4, !tbaa !11
  %253 = call ptr @__errno_location() #10
  store i32 %252, ptr %253, align 4, !tbaa !11
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !11
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !11
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef @.str.52)
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !11
  %261 = call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef @.str.52)
  %262 = call ptr @__errno_location() #10
  %263 = load i32, ptr %262, align 4, !tbaa !11
  %264 = call ptr @strerror(i32 noundef %263) #9
  %265 = call ptr @__errno_location() #10
  %266 = load i32, ptr %265, align 4, !tbaa !11
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef @.str.49, i32 noundef %255, ptr noundef @.str.76, ptr noundef @.str.51, i32 noundef 110, ptr noundef %258, ptr noundef %261, ptr noundef %264, i32 noundef %266) #9
  br label %285

268:                                              ; preds = %246, %239
  %269 = load i32, ptr %9, align 4, !tbaa !11
  %270 = call ptr @__errno_location() #10
  store i32 %269, ptr %270, align 4, !tbaa !11
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !11
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !11
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef @.str.52)
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !11
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef @.str.52)
  %279 = call ptr @__errno_location() #10
  %280 = load i32, ptr %279, align 4, !tbaa !11
  %281 = call ptr @strerror(i32 noundef %280) #9
  %282 = call ptr @__errno_location() #10
  %283 = load i32, ptr %282, align 4, !tbaa !11
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef @.str.53, i32 noundef %272, ptr noundef @.str.76, ptr noundef @.str.51, i32 noundef 110, ptr noundef %275, ptr noundef %278, ptr noundef %281, i32 noundef %283) #9
  br label %285

285:                                              ; preds = %268, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  call void @exit(i32 noundef 1) #11
  unreachable

288:                                              ; No predecessors!
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289, %231
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  %294 = load i32, ptr @test_count, align 4, !tbaa !11
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !11
  %296 = load ptr, ptr %5, align 8, !tbaa !9
  %297 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %296, ptr noundef @.str.77)
  %298 = icmp eq i32 %297, -1
  br i1 %298, label %299, label %352

299:                                              ; preds = %293
  br label %300

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %302 = call ptr @__errno_location() #10
  %303 = load i32, ptr %302, align 4, !tbaa !11
  store i32 %303, ptr %10, align 4, !tbaa !11
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @s2n_print_stacktrace(ptr noundef %304)
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %307 = trunc i8 %306 to i1
  br i1 %307, label %308, label %330

308:                                              ; preds = %301
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @fileno(ptr noundef %309) #9
  %311 = call i32 @isatty(i32 noundef %310) #9
  %312 = icmp ne i32 %311, 0
  br i1 %312, label %313, label %330

313:                                              ; preds = %308
  %314 = load i32, ptr %10, align 4, !tbaa !11
  %315 = call ptr @__errno_location() #10
  store i32 %314, ptr %315, align 4, !tbaa !11
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = load i32, ptr @test_count, align 4, !tbaa !11
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !11
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef @.str.52)
  %321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %322 = load i32, ptr %321, align 4, !tbaa !11
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef @.str.52)
  %324 = call ptr @__errno_location() #10
  %325 = load i32, ptr %324, align 4, !tbaa !11
  %326 = call ptr @strerror(i32 noundef %325) #9
  %327 = call ptr @__errno_location() #10
  %328 = load i32, ptr %327, align 4, !tbaa !11
  %329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %316, ptr noundef @.str.49, i32 noundef %317, ptr noundef @.str.78, ptr noundef @.str.51, i32 noundef 111, ptr noundef %320, ptr noundef %323, ptr noundef %326, i32 noundef %328) #9
  br label %347

330:                                              ; preds = %308, %301
  %331 = load i32, ptr %10, align 4, !tbaa !11
  %332 = call ptr @__errno_location() #10
  store i32 %331, ptr %332, align 4, !tbaa !11
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = load i32, ptr @test_count, align 4, !tbaa !11
  %335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %336 = load i32, ptr %335, align 4, !tbaa !11
  %337 = call ptr @s2n_strerror(i32 noundef %336, ptr noundef @.str.52)
  %338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %339 = load i32, ptr %338, align 4, !tbaa !11
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef @.str.52)
  %341 = call ptr @__errno_location() #10
  %342 = load i32, ptr %341, align 4, !tbaa !11
  %343 = call ptr @strerror(i32 noundef %342) #9
  %344 = call ptr @__errno_location() #10
  %345 = load i32, ptr %344, align 4, !tbaa !11
  %346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %333, ptr noundef @.str.53, i32 noundef %334, ptr noundef @.str.78, ptr noundef @.str.51, i32 noundef 111, ptr noundef %337, ptr noundef %340, ptr noundef %343, i32 noundef %345) #9
  br label %347

347:                                              ; preds = %330, %313
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %348

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348
  call void @exit(i32 noundef 1) #11
  unreachable

350:                                              ; No predecessors!
  br label %351

351:                                              ; preds = %350
  br label %352

352:                                              ; preds = %351, %293
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353
  br label %355

355:                                              ; preds = %354
  %356 = load i32, ptr @test_count, align 4, !tbaa !11
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !11
  %358 = load ptr, ptr %6, align 8, !tbaa !9
  %359 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %358, ptr noundef @.str.77)
  %360 = icmp eq i32 %359, -1
  br i1 %360, label %361, label %414

361:                                              ; preds = %355
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %364 = call ptr @__errno_location() #10
  %365 = load i32, ptr %364, align 4, !tbaa !11
  store i32 %365, ptr %11, align 4, !tbaa !11
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @s2n_print_stacktrace(ptr noundef %366)
  %368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %369 = trunc i8 %368 to i1
  br i1 %369, label %370, label %392

370:                                              ; preds = %363
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @fileno(ptr noundef %371) #9
  %373 = call i32 @isatty(i32 noundef %372) #9
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %375, label %392

375:                                              ; preds = %370
  %376 = load i32, ptr %11, align 4, !tbaa !11
  %377 = call ptr @__errno_location() #10
  store i32 %376, ptr %377, align 4, !tbaa !11
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = load i32, ptr @test_count, align 4, !tbaa !11
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !11
  %382 = call ptr @s2n_strerror(i32 noundef %381, ptr noundef @.str.52)
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !11
  %385 = call ptr @s2n_strerror_debug(i32 noundef %384, ptr noundef @.str.52)
  %386 = call ptr @__errno_location() #10
  %387 = load i32, ptr %386, align 4, !tbaa !11
  %388 = call ptr @strerror(i32 noundef %387) #9
  %389 = call ptr @__errno_location() #10
  %390 = load i32, ptr %389, align 4, !tbaa !11
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef @.str.49, i32 noundef %379, ptr noundef @.str.79, ptr noundef @.str.51, i32 noundef 112, ptr noundef %382, ptr noundef %385, ptr noundef %388, i32 noundef %390) #9
  br label %409

392:                                              ; preds = %370, %363
  %393 = load i32, ptr %11, align 4, !tbaa !11
  %394 = call ptr @__errno_location() #10
  store i32 %393, ptr %394, align 4, !tbaa !11
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !11
  %397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %398 = load i32, ptr %397, align 4, !tbaa !11
  %399 = call ptr @s2n_strerror(i32 noundef %398, ptr noundef @.str.52)
  %400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %401 = load i32, ptr %400, align 4, !tbaa !11
  %402 = call ptr @s2n_strerror_debug(i32 noundef %401, ptr noundef @.str.52)
  %403 = call ptr @__errno_location() #10
  %404 = load i32, ptr %403, align 4, !tbaa !11
  %405 = call ptr @strerror(i32 noundef %404) #9
  %406 = call ptr @__errno_location() #10
  %407 = load i32, ptr %406, align 4, !tbaa !11
  %408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef @.str.53, i32 noundef %396, ptr noundef @.str.79, ptr noundef @.str.51, i32 noundef 112, ptr noundef %399, ptr noundef %402, ptr noundef %405, i32 noundef %407) #9
  br label %409

409:                                              ; preds = %392, %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410
  call void @exit(i32 noundef 1) #11
  unreachable

412:                                              ; No predecessors!
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413, %355
  br label %415

415:                                              ; preds = %414
  br label %416

416:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %417

417:                                              ; preds = %416
  %418 = load i32, ptr @test_count, align 4, !tbaa !11
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr @test_count, align 4, !tbaa !11
  %420 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %420, ptr %12, align 8, !tbaa !9
  %421 = icmp eq ptr %420, null
  br i1 %421, label %422, label %475

422:                                              ; preds = %417
  br label %423

423:                                              ; preds = %422
  br label %424

424:                                              ; preds = %423
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %425 = call ptr @__errno_location() #10
  %426 = load i32, ptr %425, align 4, !tbaa !11
  store i32 %426, ptr %14, align 4, !tbaa !11
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = call i32 @s2n_print_stacktrace(ptr noundef %427)
  %429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %430 = trunc i8 %429 to i1
  br i1 %430, label %431, label %453

431:                                              ; preds = %424
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = call i32 @fileno(ptr noundef %432) #9
  %434 = call i32 @isatty(i32 noundef %433) #9
  %435 = icmp ne i32 %434, 0
  br i1 %435, label %436, label %453

436:                                              ; preds = %431
  %437 = load i32, ptr %14, align 4, !tbaa !11
  %438 = call ptr @__errno_location() #10
  store i32 %437, ptr %438, align 4, !tbaa !11
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !11
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !11
  %443 = call ptr @s2n_strerror(i32 noundef %442, ptr noundef @.str.52)
  %444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %445 = load i32, ptr %444, align 4, !tbaa !11
  %446 = call ptr @s2n_strerror_debug(i32 noundef %445, ptr noundef @.str.52)
  %447 = call ptr @__errno_location() #10
  %448 = load i32, ptr %447, align 4, !tbaa !11
  %449 = call ptr @strerror(i32 noundef %448) #9
  %450 = call ptr @__errno_location() #10
  %451 = load i32, ptr %450, align 4, !tbaa !11
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef @.str.49, i32 noundef %440, ptr noundef @.str.80, ptr noundef @.str.51, i32 noundef 116, ptr noundef %443, ptr noundef %446, ptr noundef %449, i32 noundef %451) #9
  br label %470

453:                                              ; preds = %431, %424
  %454 = load i32, ptr %14, align 4, !tbaa !11
  %455 = call ptr @__errno_location() #10
  store i32 %454, ptr %455, align 4, !tbaa !11
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !11
  %458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %459 = load i32, ptr %458, align 4, !tbaa !11
  %460 = call ptr @s2n_strerror(i32 noundef %459, ptr noundef @.str.52)
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !11
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef @.str.52)
  %464 = call ptr @__errno_location() #10
  %465 = load i32, ptr %464, align 4, !tbaa !11
  %466 = call ptr @strerror(i32 noundef %465) #9
  %467 = call ptr @__errno_location() #10
  %468 = load i32, ptr %467, align 4, !tbaa !11
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef @.str.53, i32 noundef %457, ptr noundef @.str.80, ptr noundef @.str.51, i32 noundef 116, ptr noundef %460, ptr noundef %463, ptr noundef %466, i32 noundef %468) #9
  br label %470

470:                                              ; preds = %453, %436
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %471

471:                                              ; preds = %470
  br label %472

472:                                              ; preds = %471
  call void @exit(i32 noundef 1) #11
  unreachable

473:                                              ; No predecessors!
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474, %417
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  %479 = load i32, ptr @test_count, align 4, !tbaa !11
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr @test_count, align 4, !tbaa !11
  %481 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %481, ptr %13, align 8, !tbaa !9
  %482 = icmp eq ptr %481, null
  br i1 %482, label %483, label %536

483:                                              ; preds = %478
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %486 = call ptr @__errno_location() #10
  %487 = load i32, ptr %486, align 4, !tbaa !11
  store i32 %487, ptr %15, align 4, !tbaa !11
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @s2n_print_stacktrace(ptr noundef %488)
  %490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %514

492:                                              ; preds = %485
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @fileno(ptr noundef %493) #9
  %495 = call i32 @isatty(i32 noundef %494) #9
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %514

497:                                              ; preds = %492
  %498 = load i32, ptr %15, align 4, !tbaa !11
  %499 = call ptr @__errno_location() #10
  store i32 %498, ptr %499, align 4, !tbaa !11
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !11
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !11
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef @.str.52)
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !11
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef @.str.52)
  %508 = call ptr @__errno_location() #10
  %509 = load i32, ptr %508, align 4, !tbaa !11
  %510 = call ptr @strerror(i32 noundef %509) #9
  %511 = call ptr @__errno_location() #10
  %512 = load i32, ptr %511, align 4, !tbaa !11
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef @.str.49, i32 noundef %501, ptr noundef @.str.81, ptr noundef @.str.51, i32 noundef 117, ptr noundef %504, ptr noundef %507, ptr noundef %510, i32 noundef %512) #9
  br label %531

514:                                              ; preds = %492, %485
  %515 = load i32, ptr %15, align 4, !tbaa !11
  %516 = call ptr @__errno_location() #10
  store i32 %515, ptr %516, align 4, !tbaa !11
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !11
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !11
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef @.str.52)
  %522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !11
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef @.str.52)
  %525 = call ptr @__errno_location() #10
  %526 = load i32, ptr %525, align 4, !tbaa !11
  %527 = call ptr @strerror(i32 noundef %526) #9
  %528 = call ptr @__errno_location() #10
  %529 = load i32, ptr %528, align 4, !tbaa !11
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef @.str.53, i32 noundef %518, ptr noundef @.str.81, ptr noundef @.str.51, i32 noundef 117, ptr noundef %521, ptr noundef %524, ptr noundef %527, i32 noundef %529) #9
  br label %531

531:                                              ; preds = %514, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  call void @exit(i32 noundef 1) #11
  unreachable

534:                                              ; No predecessors!
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535, %478
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  %540 = load i32, ptr @test_count, align 4, !tbaa !11
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr @test_count, align 4, !tbaa !11
  %542 = load ptr, ptr %12, align 8, !tbaa !9
  %543 = call i32 @s2n_read_test_pem(ptr noundef @.str.82, ptr noundef %542, i64 noundef 12000)
  %544 = icmp eq i32 %543, -1
  br i1 %544, label %545, label %598

545:                                              ; preds = %539
  br label %546

546:                                              ; preds = %545
  br label %547

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

554:                                              ; preds = %547
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = call i32 @fileno(ptr noundef %555) #9
  %557 = call i32 @isatty(i32 noundef %556) #9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %576

559:                                              ; preds = %554
  %560 = load i32, ptr %16, align 4, !tbaa !11
  %561 = call ptr @__errno_location() #10
  store i32 %560, ptr %561, align 4, !tbaa !11
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !11
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !11
  %566 = call ptr @s2n_strerror(i32 noundef %565, ptr noundef @.str.52)
  %567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %568 = load i32, ptr %567, align 4, !tbaa !11
  %569 = call ptr @s2n_strerror_debug(i32 noundef %568, ptr noundef @.str.52)
  %570 = call ptr @__errno_location() #10
  %571 = load i32, ptr %570, align 4, !tbaa !11
  %572 = call ptr @strerror(i32 noundef %571) #9
  %573 = call ptr @__errno_location() #10
  %574 = load i32, ptr %573, align 4, !tbaa !11
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef @.str.49, i32 noundef %563, ptr noundef @.str.83, ptr noundef @.str.51, i32 noundef 119, ptr noundef %566, ptr noundef %569, ptr noundef %572, i32 noundef %574) #9
  br label %593

576:                                              ; preds = %554, %547
  %577 = load i32, ptr %16, align 4, !tbaa !11
  %578 = call ptr @__errno_location() #10
  store i32 %577, ptr %578, align 4, !tbaa !11
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !11
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !11
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef @.str.52)
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !11
  %586 = call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef @.str.52)
  %587 = call ptr @__errno_location() #10
  %588 = load i32, ptr %587, align 4, !tbaa !11
  %589 = call ptr @strerror(i32 noundef %588) #9
  %590 = call ptr @__errno_location() #10
  %591 = load i32, ptr %590, align 4, !tbaa !11
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef @.str.53, i32 noundef %580, ptr noundef @.str.83, ptr noundef @.str.51, i32 noundef 119, ptr noundef %583, ptr noundef %586, ptr noundef %589, i32 noundef %591) #9
  br label %593

593:                                              ; preds = %576, %559
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594
  call void @exit(i32 noundef 1) #11
  unreachable

596:                                              ; No predecessors!
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597, %539
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600
  %602 = load i32, ptr @test_count, align 4, !tbaa !11
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr @test_count, align 4, !tbaa !11
  %604 = load ptr, ptr %13, align 8, !tbaa !9
  %605 = call i32 @s2n_read_test_pem(ptr noundef @.str.84, ptr noundef %604, i64 noundef 12000)
  %606 = icmp eq i32 %605, -1
  br i1 %606, label %607, label %660

607:                                              ; preds = %601
  br label %608

608:                                              ; preds = %607
  br label %609

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

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

621:                                              ; preds = %616
  %622 = load i32, ptr %17, align 4, !tbaa !11
  %623 = call ptr @__errno_location() #10
  store i32 %622, ptr %623, align 4, !tbaa !11
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = load i32, ptr @test_count, align 4, !tbaa !11
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !11
  %628 = call ptr @s2n_strerror(i32 noundef %627, ptr noundef @.str.52)
  %629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %630 = load i32, ptr %629, align 4, !tbaa !11
  %631 = call ptr @s2n_strerror_debug(i32 noundef %630, ptr noundef @.str.52)
  %632 = call ptr @__errno_location() #10
  %633 = load i32, ptr %632, align 4, !tbaa !11
  %634 = call ptr @strerror(i32 noundef %633) #9
  %635 = call ptr @__errno_location() #10
  %636 = load i32, ptr %635, align 4, !tbaa !11
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %624, ptr noundef @.str.49, i32 noundef %625, ptr noundef @.str.85, ptr noundef @.str.51, i32 noundef 120, ptr noundef %628, ptr noundef %631, ptr noundef %634, i32 noundef %636) #9
  br label %655

638:                                              ; preds = %616, %609
  %639 = load i32, ptr %17, align 4, !tbaa !11
  %640 = call ptr @__errno_location() #10
  store i32 %639, ptr %640, align 4, !tbaa !11
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = load i32, ptr @test_count, align 4, !tbaa !11
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !11
  %645 = call ptr @s2n_strerror(i32 noundef %644, ptr noundef @.str.52)
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !11
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef @.str.52)
  %649 = call ptr @__errno_location() #10
  %650 = load i32, ptr %649, align 4, !tbaa !11
  %651 = call ptr @strerror(i32 noundef %650) #9
  %652 = call ptr @__errno_location() #10
  %653 = load i32, ptr %652, align 4, !tbaa !11
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef @.str.53, i32 noundef %642, ptr noundef @.str.85, ptr noundef @.str.51, i32 noundef 120, ptr noundef %645, ptr noundef %648, ptr noundef %651, i32 noundef %653) #9
  br label %655

655:                                              ; preds = %638, %621
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %656

656:                                              ; preds = %655
  br label %657

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

658:                                              ; No predecessors!
  br label %659

659:                                              ; preds = %658
  br label %660

660:                                              ; preds = %659, %601
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %663

663:                                              ; preds = %662
  %664 = load i32, ptr @test_count, align 4, !tbaa !11
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr @test_count, align 4, !tbaa !11
  %666 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %666, ptr %18, align 8, !tbaa !9
  %667 = icmp eq ptr %666, null
  br i1 %667, label %668, label %721

668:                                              ; preds = %663
  br label %669

669:                                              ; preds = %668
  br label %670

670:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %671 = call ptr @__errno_location() #10
  %672 = load i32, ptr %671, align 4, !tbaa !11
  store i32 %672, ptr %19, align 4, !tbaa !11
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @s2n_print_stacktrace(ptr noundef %673)
  %675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %676 = trunc i8 %675 to i1
  br i1 %676, label %677, label %699

677:                                              ; preds = %670
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = call i32 @fileno(ptr noundef %678) #9
  %680 = call i32 @isatty(i32 noundef %679) #9
  %681 = icmp ne i32 %680, 0
  br i1 %681, label %682, label %699

682:                                              ; preds = %677
  %683 = load i32, ptr %19, align 4, !tbaa !11
  %684 = call ptr @__errno_location() #10
  store i32 %683, ptr %684, align 4, !tbaa !11
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !11
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !11
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef @.str.52)
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !11
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef @.str.52)
  %693 = call ptr @__errno_location() #10
  %694 = load i32, ptr %693, align 4, !tbaa !11
  %695 = call ptr @strerror(i32 noundef %694) #9
  %696 = call ptr @__errno_location() #10
  %697 = load i32, ptr %696, align 4, !tbaa !11
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.49, i32 noundef %686, ptr noundef @.str.86, ptr noundef @.str.51, i32 noundef 123, ptr noundef %689, ptr noundef %692, ptr noundef %695, i32 noundef %697) #9
  br label %716

699:                                              ; preds = %677, %670
  %700 = load i32, ptr %19, align 4, !tbaa !11
  %701 = call ptr @__errno_location() #10
  store i32 %700, ptr %701, align 4, !tbaa !11
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = load i32, ptr @test_count, align 4, !tbaa !11
  %704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %705 = load i32, ptr %704, align 4, !tbaa !11
  %706 = call ptr @s2n_strerror(i32 noundef %705, ptr noundef @.str.52)
  %707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %708 = load i32, ptr %707, align 4, !tbaa !11
  %709 = call ptr @s2n_strerror_debug(i32 noundef %708, ptr noundef @.str.52)
  %710 = call ptr @__errno_location() #10
  %711 = load i32, ptr %710, align 4, !tbaa !11
  %712 = call ptr @strerror(i32 noundef %711) #9
  %713 = call ptr @__errno_location() #10
  %714 = load i32, ptr %713, align 4, !tbaa !11
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef @.str.53, i32 noundef %703, ptr noundef @.str.86, ptr noundef @.str.51, i32 noundef 123, ptr noundef %706, ptr noundef %709, ptr noundef %712, i32 noundef %714) #9
  br label %716

716:                                              ; preds = %699, %682
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717
  call void @exit(i32 noundef 1) #11
  unreachable

719:                                              ; No predecessors!
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720, %663
  br label %722

722:                                              ; preds = %721
  br label %723

723:                                              ; preds = %722
  br label %724

724:                                              ; preds = %723
  %725 = load i32, ptr @test_count, align 4, !tbaa !11
  %726 = add nsw i32 %725, 1
  store i32 %726, ptr @test_count, align 4, !tbaa !11
  %727 = load ptr, ptr %18, align 8, !tbaa !9
  %728 = load ptr, ptr %12, align 8, !tbaa !9
  %729 = load ptr, ptr %13, align 8, !tbaa !9
  %730 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %727, ptr noundef %728, ptr noundef %729)
  %731 = icmp eq i32 %730, -1
  br i1 %731, label %732, label %785

732:                                              ; preds = %724
  br label %733

733:                                              ; preds = %732
  br label %734

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

741:                                              ; preds = %734
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @fileno(ptr noundef %742) #9
  %744 = call i32 @isatty(i32 noundef %743) #9
  %745 = icmp ne i32 %744, 0
  br i1 %745, label %746, label %763

746:                                              ; preds = %741
  %747 = load i32, ptr %20, align 4, !tbaa !11
  %748 = call ptr @__errno_location() #10
  store i32 %747, ptr %748, align 4, !tbaa !11
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = load i32, ptr @test_count, align 4, !tbaa !11
  %751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %752 = load i32, ptr %751, align 4, !tbaa !11
  %753 = call ptr @s2n_strerror(i32 noundef %752, ptr noundef @.str.52)
  %754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %755 = load i32, ptr %754, align 4, !tbaa !11
  %756 = call ptr @s2n_strerror_debug(i32 noundef %755, ptr noundef @.str.52)
  %757 = call ptr @__errno_location() #10
  %758 = load i32, ptr %757, align 4, !tbaa !11
  %759 = call ptr @strerror(i32 noundef %758) #9
  %760 = call ptr @__errno_location() #10
  %761 = load i32, ptr %760, align 4, !tbaa !11
  %762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %749, ptr noundef @.str.49, i32 noundef %750, ptr noundef @.str.87, ptr noundef @.str.51, i32 noundef 124, ptr noundef %753, ptr noundef %756, ptr noundef %759, i32 noundef %761) #9
  br label %780

763:                                              ; preds = %741, %734
  %764 = load i32, ptr %20, align 4, !tbaa !11
  %765 = call ptr @__errno_location() #10
  store i32 %764, ptr %765, align 4, !tbaa !11
  %766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %767 = load i32, ptr @test_count, align 4, !tbaa !11
  %768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %769 = load i32, ptr %768, align 4, !tbaa !11
  %770 = call ptr @s2n_strerror(i32 noundef %769, ptr noundef @.str.52)
  %771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %772 = load i32, ptr %771, align 4, !tbaa !11
  %773 = call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef @.str.52)
  %774 = call ptr @__errno_location() #10
  %775 = load i32, ptr %774, align 4, !tbaa !11
  %776 = call ptr @strerror(i32 noundef %775) #9
  %777 = call ptr @__errno_location() #10
  %778 = load i32, ptr %777, align 4, !tbaa !11
  %779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %766, ptr noundef @.str.53, i32 noundef %767, ptr noundef @.str.87, ptr noundef @.str.51, i32 noundef 124, ptr noundef %770, ptr noundef %773, ptr noundef %776, i32 noundef %778) #9
  br label %780

780:                                              ; preds = %763, %746
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  call void @exit(i32 noundef 1) #11
  unreachable

783:                                              ; No predecessors!
  br label %784

784:                                              ; preds = %783
  br label %785

785:                                              ; preds = %784, %724
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787
  %789 = load i32, ptr @test_count, align 4, !tbaa !11
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr @test_count, align 4, !tbaa !11
  %791 = load ptr, ptr %5, align 8, !tbaa !9
  %792 = load ptr, ptr %18, align 8, !tbaa !9
  %793 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %791, ptr noundef %792)
  %794 = icmp eq i32 %793, -1
  br i1 %794, label %795, label %848

795:                                              ; preds = %788
  br label %796

796:                                              ; preds = %795
  br label %797

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

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

809:                                              ; preds = %804
  %810 = load i32, ptr %21, align 4, !tbaa !11
  %811 = call ptr @__errno_location() #10
  store i32 %810, ptr %811, align 4, !tbaa !11
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !11
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !11
  %816 = call ptr @s2n_strerror(i32 noundef %815, ptr noundef @.str.52)
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !11
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef @.str.52)
  %820 = call ptr @__errno_location() #10
  %821 = load i32, ptr %820, align 4, !tbaa !11
  %822 = call ptr @strerror(i32 noundef %821) #9
  %823 = call ptr @__errno_location() #10
  %824 = load i32, ptr %823, align 4, !tbaa !11
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef @.str.49, i32 noundef %813, ptr noundef @.str.88, ptr noundef @.str.51, i32 noundef 125, ptr noundef %816, ptr noundef %819, ptr noundef %822, i32 noundef %824) #9
  br label %843

826:                                              ; preds = %804, %797
  %827 = load i32, ptr %21, align 4, !tbaa !11
  %828 = call ptr @__errno_location() #10
  store i32 %827, ptr %828, align 4, !tbaa !11
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !11
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !11
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef @.str.52)
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !11
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef @.str.52)
  %837 = call ptr @__errno_location() #10
  %838 = load i32, ptr %837, align 4, !tbaa !11
  %839 = call ptr @strerror(i32 noundef %838) #9
  %840 = call ptr @__errno_location() #10
  %841 = load i32, ptr %840, align 4, !tbaa !11
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.53, i32 noundef %830, ptr noundef @.str.88, ptr noundef @.str.51, i32 noundef 125, ptr noundef %833, ptr noundef %836, ptr noundef %839, i32 noundef %841) #9
  br label %843

843:                                              ; preds = %826, %809
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  call void @exit(i32 noundef 1) #11
  unreachable

846:                                              ; No predecessors!
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847, %788
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  %851 = load i8, ptr %2, align 1, !tbaa !5, !range !13, !noundef !14
  %852 = trunc i8 %851 to i1
  br i1 %852, label %917, label %853

853:                                              ; preds = %850
  br label %854

854:                                              ; preds = %853
  %855 = load i32, ptr @test_count, align 4, !tbaa !11
  %856 = add nsw i32 %855, 1
  store i32 %856, ptr @test_count, align 4, !tbaa !11
  %857 = load ptr, ptr %6, align 8, !tbaa !9
  %858 = load ptr, ptr %18, align 8, !tbaa !9
  %859 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %857, ptr noundef %858)
  %860 = icmp eq i32 %859, -1
  br i1 %860, label %861, label %914

861:                                              ; preds = %854
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %864 = call ptr @__errno_location() #10
  %865 = load i32, ptr %864, align 4, !tbaa !11
  store i32 %865, ptr %22, align 4, !tbaa !11
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = call i32 @s2n_print_stacktrace(ptr noundef %866)
  %868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %869 = trunc i8 %868 to i1
  br i1 %869, label %870, label %892

870:                                              ; preds = %863
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @fileno(ptr noundef %871) #9
  %873 = call i32 @isatty(i32 noundef %872) #9
  %874 = icmp ne i32 %873, 0
  br i1 %874, label %875, label %892

875:                                              ; preds = %870
  %876 = load i32, ptr %22, align 4, !tbaa !11
  %877 = call ptr @__errno_location() #10
  store i32 %876, ptr %877, align 4, !tbaa !11
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !11
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !11
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef @.str.52)
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !11
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef @.str.52)
  %886 = call ptr @__errno_location() #10
  %887 = load i32, ptr %886, align 4, !tbaa !11
  %888 = call ptr @strerror(i32 noundef %887) #9
  %889 = call ptr @__errno_location() #10
  %890 = load i32, ptr %889, align 4, !tbaa !11
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.49, i32 noundef %879, ptr noundef @.str.89, ptr noundef @.str.51, i32 noundef 127, ptr noundef %882, ptr noundef %885, ptr noundef %888, i32 noundef %890) #9
  br label %909

892:                                              ; preds = %870, %863
  %893 = load i32, ptr %22, align 4, !tbaa !11
  %894 = call ptr @__errno_location() #10
  store i32 %893, ptr %894, align 4, !tbaa !11
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = load i32, ptr @test_count, align 4, !tbaa !11
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !11
  %899 = call ptr @s2n_strerror(i32 noundef %898, ptr noundef @.str.52)
  %900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %901 = load i32, ptr %900, align 4, !tbaa !11
  %902 = call ptr @s2n_strerror_debug(i32 noundef %901, ptr noundef @.str.52)
  %903 = call ptr @__errno_location() #10
  %904 = load i32, ptr %903, align 4, !tbaa !11
  %905 = call ptr @strerror(i32 noundef %904) #9
  %906 = call ptr @__errno_location() #10
  %907 = load i32, ptr %906, align 4, !tbaa !11
  %908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef @.str.53, i32 noundef %896, ptr noundef @.str.89, ptr noundef @.str.51, i32 noundef 127, ptr noundef %899, ptr noundef %902, ptr noundef %905, i32 noundef %907) #9
  br label %909

909:                                              ; preds = %892, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %910

910:                                              ; preds = %909
  br label %911

911:                                              ; preds = %910
  call void @exit(i32 noundef 1) #11
  unreachable

912:                                              ; No predecessors!
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913, %854
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916, %850
  br label %918

918:                                              ; preds = %917
  %919 = load i32, ptr @test_count, align 4, !tbaa !11
  %920 = add nsw i32 %919, 1
  store i32 %920, ptr @test_count, align 4, !tbaa !11
  %921 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %921, ptr %3, align 8, !tbaa !9
  %922 = icmp eq ptr %921, null
  br i1 %922, label %923, label %976

923:                                              ; preds = %918
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %926 = call ptr @__errno_location() #10
  %927 = load i32, ptr %926, align 4, !tbaa !11
  store i32 %927, ptr %23, align 4, !tbaa !11
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928)
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %931 = trunc i8 %930 to i1
  br i1 %931, label %932, label %954

932:                                              ; preds = %925
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @fileno(ptr noundef %933) #9
  %935 = call i32 @isatty(i32 noundef %934) #9
  %936 = icmp ne i32 %935, 0
  br i1 %936, label %937, label %954

937:                                              ; preds = %932
  %938 = load i32, ptr %23, align 4, !tbaa !11
  %939 = call ptr @__errno_location() #10
  store i32 %938, ptr %939, align 4, !tbaa !11
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !11
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !11
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef @.str.52)
  %945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %946 = load i32, ptr %945, align 4, !tbaa !11
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef @.str.52)
  %948 = call ptr @__errno_location() #10
  %949 = load i32, ptr %948, align 4, !tbaa !11
  %950 = call ptr @strerror(i32 noundef %949) #9
  %951 = call ptr @__errno_location() #10
  %952 = load i32, ptr %951, align 4, !tbaa !11
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef @.str.49, i32 noundef %941, ptr noundef @.str.54, ptr noundef @.str.51, i32 noundef 130, ptr noundef %944, ptr noundef %947, ptr noundef %950, i32 noundef %952) #9
  br label %971

954:                                              ; preds = %932, %925
  %955 = load i32, ptr %23, align 4, !tbaa !11
  %956 = call ptr @__errno_location() #10
  store i32 %955, ptr %956, align 4, !tbaa !11
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !11
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !11
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef @.str.52)
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !11
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef @.str.52)
  %965 = call ptr @__errno_location() #10
  %966 = load i32, ptr %965, align 4, !tbaa !11
  %967 = call ptr @strerror(i32 noundef %966) #9
  %968 = call ptr @__errno_location() #10
  %969 = load i32, ptr %968, align 4, !tbaa !11
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef @.str.53, i32 noundef %958, ptr noundef @.str.54, ptr noundef @.str.51, i32 noundef 130, ptr noundef %961, ptr noundef %964, ptr noundef %967, i32 noundef %969) #9
  br label %971

971:                                              ; preds = %954, %937
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %972

972:                                              ; preds = %971
  br label %973

973:                                              ; preds = %972
  call void @exit(i32 noundef 1) #11
  unreachable

974:                                              ; No predecessors!
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975, %918
  br label %977

977:                                              ; preds = %976
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  %980 = load i32, ptr @test_count, align 4, !tbaa !11
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr @test_count, align 4, !tbaa !11
  %982 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %982, ptr %4, align 8, !tbaa !9
  %983 = icmp eq ptr %982, null
  br i1 %983, label %984, label %1037

984:                                              ; preds = %979
  br label %985

985:                                              ; preds = %984
  br label %986

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

993:                                              ; preds = %986
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #9
  %996 = call i32 @isatty(i32 noundef %995) #9
  %997 = icmp ne i32 %996, 0
  br i1 %997, label %998, label %1015

998:                                              ; preds = %993
  %999 = load i32, ptr %24, align 4, !tbaa !11
  %1000 = call ptr @__errno_location() #10
  store i32 %999, ptr %1000, align 4, !tbaa !11
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr @test_count, align 4, !tbaa !11
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !11
  %1005 = call ptr @s2n_strerror(i32 noundef %1004, ptr noundef @.str.52)
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !11
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef @.str.52)
  %1009 = call ptr @__errno_location() #10
  %1010 = load i32, ptr %1009, align 4, !tbaa !11
  %1011 = call ptr @strerror(i32 noundef %1010) #9
  %1012 = call ptr @__errno_location() #10
  %1013 = load i32, ptr %1012, align 4, !tbaa !11
  %1014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef @.str.49, i32 noundef %1002, ptr noundef @.str.50, ptr noundef @.str.51, i32 noundef 131, ptr noundef %1005, ptr noundef %1008, ptr noundef %1011, i32 noundef %1013) #9
  br label %1032

1015:                                             ; preds = %993, %986
  %1016 = load i32, ptr %24, align 4, !tbaa !11
  %1017 = call ptr @__errno_location() #10
  store i32 %1016, ptr %1017, align 4, !tbaa !11
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !11
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !11
  %1022 = call ptr @s2n_strerror(i32 noundef %1021, ptr noundef @.str.52)
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !11
  %1025 = call ptr @s2n_strerror_debug(i32 noundef %1024, ptr noundef @.str.52)
  %1026 = call ptr @__errno_location() #10
  %1027 = load i32, ptr %1026, align 4, !tbaa !11
  %1028 = call ptr @strerror(i32 noundef %1027) #9
  %1029 = call ptr @__errno_location() #10
  %1030 = load i32, ptr %1029, align 4, !tbaa !11
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef @.str.53, i32 noundef %1019, ptr noundef @.str.50, ptr noundef @.str.51, i32 noundef 131, ptr noundef %1022, ptr noundef %1025, ptr noundef %1028, i32 noundef %1030) #9
  br label %1032

1032:                                             ; preds = %1015, %998
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

1034:                                             ; preds = %1033
  call void @exit(i32 noundef 1) #11
  unreachable

1035:                                             ; No predecessors!
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036, %979
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039
  %1041 = load i32, ptr @test_count, align 4, !tbaa !11
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr @test_count, align 4, !tbaa !11
  %1043 = load ptr, ptr %4, align 8, !tbaa !9
  %1044 = load ptr, ptr %5, align 8, !tbaa !9
  %1045 = call i32 @s2n_connection_set_config(ptr noundef %1043, ptr noundef %1044)
  %1046 = icmp eq i32 %1045, -1
  br i1 %1046, label %1047, label %1100

1047:                                             ; preds = %1040
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

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

1056:                                             ; preds = %1049
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #9
  %1059 = call i32 @isatty(i32 noundef %1058) #9
  %1060 = icmp ne i32 %1059, 0
  br i1 %1060, label %1061, label %1078

1061:                                             ; preds = %1056
  %1062 = load i32, ptr %25, align 4, !tbaa !11
  %1063 = call ptr @__errno_location() #10
  store i32 %1062, ptr %1063, align 4, !tbaa !11
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = load i32, ptr @test_count, align 4, !tbaa !11
  %1066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1067 = load i32, ptr %1066, align 4, !tbaa !11
  %1068 = call ptr @s2n_strerror(i32 noundef %1067, ptr noundef @.str.52)
  %1069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1070 = load i32, ptr %1069, align 4, !tbaa !11
  %1071 = call ptr @s2n_strerror_debug(i32 noundef %1070, ptr noundef @.str.52)
  %1072 = call ptr @__errno_location() #10
  %1073 = load i32, ptr %1072, align 4, !tbaa !11
  %1074 = call ptr @strerror(i32 noundef %1073) #9
  %1075 = call ptr @__errno_location() #10
  %1076 = load i32, ptr %1075, align 4, !tbaa !11
  %1077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1064, ptr noundef @.str.49, i32 noundef %1065, ptr noundef @.str.56, ptr noundef @.str.51, i32 noundef 132, ptr noundef %1068, ptr noundef %1071, ptr noundef %1074, i32 noundef %1076) #9
  br label %1095

1078:                                             ; preds = %1056, %1049
  %1079 = load i32, ptr %25, align 4, !tbaa !11
  %1080 = call ptr @__errno_location() #10
  store i32 %1079, ptr %1080, align 4, !tbaa !11
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !11
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !11
  %1085 = call ptr @s2n_strerror(i32 noundef %1084, ptr noundef @.str.52)
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !11
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef @.str.52)
  %1089 = call ptr @__errno_location() #10
  %1090 = load i32, ptr %1089, align 4, !tbaa !11
  %1091 = call ptr @strerror(i32 noundef %1090) #9
  %1092 = call ptr @__errno_location() #10
  %1093 = load i32, ptr %1092, align 4, !tbaa !11
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef @.str.53, i32 noundef %1082, ptr noundef @.str.56, ptr noundef @.str.51, i32 noundef 132, ptr noundef %1085, ptr noundef %1088, ptr noundef %1091, i32 noundef %1093) #9
  br label %1095

1095:                                             ; preds = %1078, %1061
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  call void @exit(i32 noundef 1) #11
  unreachable

1098:                                             ; No predecessors!
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099, %1040
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  %1104 = load i32, ptr @test_count, align 4, !tbaa !11
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr @test_count, align 4, !tbaa !11
  %1106 = load ptr, ptr %3, align 8, !tbaa !9
  %1107 = load ptr, ptr %6, align 8, !tbaa !9
  %1108 = call i32 @s2n_connection_set_config(ptr noundef %1106, ptr noundef %1107)
  %1109 = icmp eq i32 %1108, -1
  br i1 %1109, label %1110, label %1163

1110:                                             ; preds = %1103
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

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

1119:                                             ; preds = %1112
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @fileno(ptr noundef %1120) #9
  %1122 = call i32 @isatty(i32 noundef %1121) #9
  %1123 = icmp ne i32 %1122, 0
  br i1 %1123, label %1124, label %1141

1124:                                             ; preds = %1119
  %1125 = load i32, ptr %26, align 4, !tbaa !11
  %1126 = call ptr @__errno_location() #10
  store i32 %1125, ptr %1126, align 4, !tbaa !11
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = load i32, ptr @test_count, align 4, !tbaa !11
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !11
  %1131 = call ptr @s2n_strerror(i32 noundef %1130, ptr noundef @.str.52)
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !11
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef @.str.52)
  %1135 = call ptr @__errno_location() #10
  %1136 = load i32, ptr %1135, align 4, !tbaa !11
  %1137 = call ptr @strerror(i32 noundef %1136) #9
  %1138 = call ptr @__errno_location() #10
  %1139 = load i32, ptr %1138, align 4, !tbaa !11
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1127, ptr noundef @.str.49, i32 noundef %1128, ptr noundef @.str.55, ptr noundef @.str.51, i32 noundef 133, ptr noundef %1131, ptr noundef %1134, ptr noundef %1137, i32 noundef %1139) #9
  br label %1158

1141:                                             ; preds = %1119, %1112
  %1142 = load i32, ptr %26, align 4, !tbaa !11
  %1143 = call ptr @__errno_location() #10
  store i32 %1142, ptr %1143, align 4, !tbaa !11
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = load i32, ptr @test_count, align 4, !tbaa !11
  %1146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1147 = load i32, ptr %1146, align 4, !tbaa !11
  %1148 = call ptr @s2n_strerror(i32 noundef %1147, ptr noundef @.str.52)
  %1149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1150 = load i32, ptr %1149, align 4, !tbaa !11
  %1151 = call ptr @s2n_strerror_debug(i32 noundef %1150, ptr noundef @.str.52)
  %1152 = call ptr @__errno_location() #10
  %1153 = load i32, ptr %1152, align 4, !tbaa !11
  %1154 = call ptr @strerror(i32 noundef %1153) #9
  %1155 = call ptr @__errno_location() #10
  %1156 = load i32, ptr %1155, align 4, !tbaa !11
  %1157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1144, ptr noundef @.str.53, i32 noundef %1145, ptr noundef @.str.55, ptr noundef @.str.51, i32 noundef 133, ptr noundef %1148, ptr noundef %1151, ptr noundef %1154, i32 noundef %1156) #9
  br label %1158

1158:                                             ; preds = %1141, %1124
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  call void @exit(i32 noundef 1) #11
  unreachable

1161:                                             ; No predecessors!
  br label %1162

1162:                                             ; preds = %1161
  br label %1163

1163:                                             ; preds = %1162, %1103
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164
  %1166 = load i8, ptr %2, align 1, !tbaa !5, !range !13, !noundef !14
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1168, label %1293

1168:                                             ; preds = %1165
  br label %1169

1169:                                             ; preds = %1168
  %1170 = load i32, ptr @test_count, align 4, !tbaa !11
  %1171 = add nsw i32 %1170, 1
  store i32 %1171, ptr @test_count, align 4, !tbaa !11
  %1172 = load ptr, ptr %4, align 8, !tbaa !9
  %1173 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1172, i32 noundef 2)
  %1174 = icmp eq i32 %1173, -1
  br i1 %1174, label %1175, label %1228

1175:                                             ; preds = %1169
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1178 = call ptr @__errno_location() #10
  %1179 = load i32, ptr %1178, align 4, !tbaa !11
  store i32 %1179, ptr %27, align 4, !tbaa !11
  %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 !5, !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) #9
  %1187 = call i32 @isatty(i32 noundef %1186) #9
  %1188 = icmp ne i32 %1187, 0
  br i1 %1188, label %1189, label %1206

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

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

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

1224:                                             ; preds = %1223
  br label %1225

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

1226:                                             ; No predecessors!
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

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

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

1231:                                             ; preds = %1230
  %1232 = load i32, ptr @test_count, align 4, !tbaa !11
  %1233 = add nsw i32 %1232, 1
  store i32 %1233, ptr @test_count, align 4, !tbaa !11
  %1234 = load ptr, ptr %3, align 8, !tbaa !9
  %1235 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1234, i32 noundef 2)
  %1236 = icmp eq i32 %1235, -1
  br i1 %1236, label %1237, label %1290

1237:                                             ; preds = %1231
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

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

1246:                                             ; preds = %1239
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @fileno(ptr noundef %1247) #9
  %1249 = call i32 @isatty(i32 noundef %1248) #9
  %1250 = icmp ne i32 %1249, 0
  br i1 %1250, label %1251, label %1268

1251:                                             ; preds = %1246
  %1252 = load i32, ptr %28, align 4, !tbaa !11
  %1253 = call ptr @__errno_location() #10
  store i32 %1252, ptr %1253, align 4, !tbaa !11
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = load i32, ptr @test_count, align 4, !tbaa !11
  %1256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1257 = load i32, ptr %1256, align 4, !tbaa !11
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef @.str.52)
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !11
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef @.str.52)
  %1262 = call ptr @__errno_location() #10
  %1263 = load i32, ptr %1262, align 4, !tbaa !11
  %1264 = call ptr @strerror(i32 noundef %1263) #9
  %1265 = call ptr @__errno_location() #10
  %1266 = load i32, ptr %1265, align 4, !tbaa !11
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef @.str.49, i32 noundef %1255, ptr noundef @.str.58, ptr noundef @.str.51, i32 noundef 136, ptr noundef %1258, ptr noundef %1261, ptr noundef %1264, i32 noundef %1266) #9
  br label %1285

1268:                                             ; preds = %1246, %1239
  %1269 = load i32, ptr %28, align 4, !tbaa !11
  %1270 = call ptr @__errno_location() #10
  store i32 %1269, ptr %1270, align 4, !tbaa !11
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !11
  %1273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1274 = load i32, ptr %1273, align 4, !tbaa !11
  %1275 = call ptr @s2n_strerror(i32 noundef %1274, ptr noundef @.str.52)
  %1276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1277 = load i32, ptr %1276, align 4, !tbaa !11
  %1278 = call ptr @s2n_strerror_debug(i32 noundef %1277, ptr noundef @.str.52)
  %1279 = call ptr @__errno_location() #10
  %1280 = load i32, ptr %1279, align 4, !tbaa !11
  %1281 = call ptr @strerror(i32 noundef %1280) #9
  %1282 = call ptr @__errno_location() #10
  %1283 = load i32, ptr %1282, align 4, !tbaa !11
  %1284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef @.str.53, i32 noundef %1272, ptr noundef @.str.58, ptr noundef @.str.51, i32 noundef 136, ptr noundef %1275, ptr noundef %1278, ptr noundef %1281, i32 noundef %1283) #9
  br label %1285

1285:                                             ; preds = %1268, %1251
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1286

1286:                                             ; preds = %1285
  br label %1287

1287:                                             ; preds = %1286
  call void @exit(i32 noundef 1) #11
  unreachable

1288:                                             ; No predecessors!
  br label %1289

1289:                                             ; preds = %1288
  br label %1290

1290:                                             ; preds = %1289, %1231
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  br label %1424

1293:                                             ; preds = %1165
  br label %1294

1294:                                             ; preds = %1293
  %1295 = load i32, ptr @test_count, align 4, !tbaa !11
  %1296 = add nsw i32 %1295, 1
  store i32 %1296, ptr @test_count, align 4, !tbaa !11
  %1297 = load ptr, ptr %4, align 8, !tbaa !9
  %1298 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1297, i32 noundef 1)
  %1299 = icmp eq i32 %1298, -1
  br i1 %1299, label %1300, label %1353

1300:                                             ; preds = %1294
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

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

1309:                                             ; preds = %1302
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @fileno(ptr noundef %1310) #9
  %1312 = call i32 @isatty(i32 noundef %1311) #9
  %1313 = icmp ne i32 %1312, 0
  br i1 %1313, label %1314, label %1331

1314:                                             ; preds = %1309
  %1315 = load i32, ptr %29, align 4, !tbaa !11
  %1316 = call ptr @__errno_location() #10
  store i32 %1315, ptr %1316, align 4, !tbaa !11
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !11
  %1319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1320 = load i32, ptr %1319, align 4, !tbaa !11
  %1321 = call ptr @s2n_strerror(i32 noundef %1320, ptr noundef @.str.52)
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !11
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef @.str.52)
  %1325 = call ptr @__errno_location() #10
  %1326 = load i32, ptr %1325, align 4, !tbaa !11
  %1327 = call ptr @strerror(i32 noundef %1326) #9
  %1328 = call ptr @__errno_location() #10
  %1329 = load i32, ptr %1328, align 4, !tbaa !11
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef @.str.49, i32 noundef %1318, ptr noundef @.str.59, ptr noundef @.str.51, i32 noundef 138, ptr noundef %1321, ptr noundef %1324, ptr noundef %1327, i32 noundef %1329) #9
  br label %1348

1331:                                             ; preds = %1309, %1302
  %1332 = load i32, ptr %29, align 4, !tbaa !11
  %1333 = call ptr @__errno_location() #10
  store i32 %1332, ptr %1333, align 4, !tbaa !11
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !11
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !11
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef @.str.52)
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !11
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef @.str.52)
  %1342 = call ptr @__errno_location() #10
  %1343 = load i32, ptr %1342, align 4, !tbaa !11
  %1344 = call ptr @strerror(i32 noundef %1343) #9
  %1345 = call ptr @__errno_location() #10
  %1346 = load i32, ptr %1345, align 4, !tbaa !11
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef @.str.53, i32 noundef %1335, ptr noundef @.str.59, ptr noundef @.str.51, i32 noundef 138, ptr noundef %1338, ptr noundef %1341, ptr noundef %1344, i32 noundef %1346) #9
  br label %1348

1348:                                             ; preds = %1331, %1314
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  call void @exit(i32 noundef 1) #11
  unreachable

1351:                                             ; No predecessors!
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352, %1294
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  %1357 = load i32, ptr @test_count, align 4, !tbaa !11
  %1358 = add nsw i32 %1357, 1
  store i32 %1358, ptr @test_count, align 4, !tbaa !11
  %1359 = load ptr, ptr %3, align 8, !tbaa !9
  %1360 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1359, i32 noundef 1)
  %1361 = icmp eq i32 %1360, -1
  br i1 %1361, label %1362, label %1415

1362:                                             ; preds = %1356
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

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

1371:                                             ; preds = %1364
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @fileno(ptr noundef %1372) #9
  %1374 = call i32 @isatty(i32 noundef %1373) #9
  %1375 = icmp ne i32 %1374, 0
  br i1 %1375, label %1376, label %1393

1376:                                             ; preds = %1371
  %1377 = load i32, ptr %30, align 4, !tbaa !11
  %1378 = call ptr @__errno_location() #10
  store i32 %1377, ptr %1378, align 4, !tbaa !11
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = load i32, ptr @test_count, align 4, !tbaa !11
  %1381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1382 = load i32, ptr %1381, align 4, !tbaa !11
  %1383 = call ptr @s2n_strerror(i32 noundef %1382, ptr noundef @.str.52)
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !11
  %1386 = call ptr @s2n_strerror_debug(i32 noundef %1385, ptr noundef @.str.52)
  %1387 = call ptr @__errno_location() #10
  %1388 = load i32, ptr %1387, align 4, !tbaa !11
  %1389 = call ptr @strerror(i32 noundef %1388) #9
  %1390 = call ptr @__errno_location() #10
  %1391 = load i32, ptr %1390, align 4, !tbaa !11
  %1392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1379, ptr noundef @.str.49, i32 noundef %1380, ptr noundef @.str.60, ptr noundef @.str.51, i32 noundef 139, ptr noundef %1383, ptr noundef %1386, ptr noundef %1389, i32 noundef %1391) #9
  br label %1410

1393:                                             ; preds = %1371, %1364
  %1394 = load i32, ptr %30, align 4, !tbaa !11
  %1395 = call ptr @__errno_location() #10
  store i32 %1394, ptr %1395, align 4, !tbaa !11
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = load i32, ptr @test_count, align 4, !tbaa !11
  %1398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1399 = load i32, ptr %1398, align 4, !tbaa !11
  %1400 = call ptr @s2n_strerror(i32 noundef %1399, ptr noundef @.str.52)
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !11
  %1403 = call ptr @s2n_strerror_debug(i32 noundef %1402, ptr noundef @.str.52)
  %1404 = call ptr @__errno_location() #10
  %1405 = load i32, ptr %1404, align 4, !tbaa !11
  %1406 = call ptr @strerror(i32 noundef %1405) #9
  %1407 = call ptr @__errno_location() #10
  %1408 = load i32, ptr %1407, align 4, !tbaa !11
  %1409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1396, ptr noundef @.str.53, i32 noundef %1397, ptr noundef @.str.60, ptr noundef @.str.51, i32 noundef 139, ptr noundef %1400, ptr noundef %1403, ptr noundef %1406, i32 noundef %1408) #9
  br label %1410

1410:                                             ; preds = %1393, %1376
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411
  call void @exit(i32 noundef 1) #11
  unreachable

1413:                                             ; No predecessors!
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414, %1356
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416
  %1418 = load ptr, ptr %3, align 8, !tbaa !9
  %1419 = getelementptr inbounds %struct.s2n_connection, ptr %1418, i32 0, i32 72
  %1420 = getelementptr inbounds %struct.s2n_x509_validator, ptr %1419, i32 0, i32 2
  store i8 1, ptr %1420, align 8, !tbaa !15
  %1421 = load ptr, ptr %4, align 8, !tbaa !9
  %1422 = getelementptr inbounds %struct.s2n_connection, ptr %1421, i32 0, i32 72
  %1423 = getelementptr inbounds %struct.s2n_x509_validator, ptr %1422, i32 0, i32 2
  store i8 1, ptr %1423, align 8, !tbaa !15
  br label %1424

1424:                                             ; preds = %1417, %1292
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #9
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %32) #9
  call void @llvm.memset.p0.i64(ptr align 8 %32, i8 0, i64 40, i1 false)
  br label %1425

1425:                                             ; preds = %1424
  %1426 = load i32, ptr @test_count, align 4, !tbaa !11
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr @test_count, align 4, !tbaa !11
  %1428 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %31, i32 noundef 0)
  %1429 = icmp eq i32 %1428, -1
  br i1 %1429, label %1430, label %1483

1430:                                             ; preds = %1425
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

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

1439:                                             ; preds = %1432
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @fileno(ptr noundef %1440) #9
  %1442 = call i32 @isatty(i32 noundef %1441) #9
  %1443 = icmp ne i32 %1442, 0
  br i1 %1443, label %1444, label %1461

1444:                                             ; preds = %1439
  %1445 = load i32, ptr %33, align 4, !tbaa !11
  %1446 = call ptr @__errno_location() #10
  store i32 %1445, ptr %1446, align 4, !tbaa !11
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = load i32, ptr @test_count, align 4, !tbaa !11
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !11
  %1451 = call ptr @s2n_strerror(i32 noundef %1450, ptr noundef @.str.52)
  %1452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !11
  %1454 = call ptr @s2n_strerror_debug(i32 noundef %1453, ptr noundef @.str.52)
  %1455 = call ptr @__errno_location() #10
  %1456 = load i32, ptr %1455, align 4, !tbaa !11
  %1457 = call ptr @strerror(i32 noundef %1456) #9
  %1458 = call ptr @__errno_location() #10
  %1459 = load i32, ptr %1458, align 4, !tbaa !11
  %1460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1447, ptr noundef @.str.49, i32 noundef %1448, ptr noundef @.str.90, ptr noundef @.str.51, i32 noundef 147, ptr noundef %1451, ptr noundef %1454, ptr noundef %1457, i32 noundef %1459) #9
  br label %1478

1461:                                             ; preds = %1439, %1432
  %1462 = load i32, ptr %33, align 4, !tbaa !11
  %1463 = call ptr @__errno_location() #10
  store i32 %1462, ptr %1463, align 4, !tbaa !11
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = load i32, ptr @test_count, align 4, !tbaa !11
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !11
  %1468 = call ptr @s2n_strerror(i32 noundef %1467, ptr noundef @.str.52)
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !11
  %1471 = call ptr @s2n_strerror_debug(i32 noundef %1470, ptr noundef @.str.52)
  %1472 = call ptr @__errno_location() #10
  %1473 = load i32, ptr %1472, align 4, !tbaa !11
  %1474 = call ptr @strerror(i32 noundef %1473) #9
  %1475 = call ptr @__errno_location() #10
  %1476 = load i32, ptr %1475, align 4, !tbaa !11
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1464, ptr noundef @.str.53, i32 noundef %1465, ptr noundef @.str.90, ptr noundef @.str.51, i32 noundef 147, ptr noundef %1468, ptr noundef %1471, ptr noundef %1474, i32 noundef %1476) #9
  br label %1478

1478:                                             ; preds = %1461, %1444
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  call void @exit(i32 noundef 1) #11
  unreachable

1481:                                             ; No predecessors!
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482, %1425
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  %1487 = load i32, ptr @test_count, align 4, !tbaa !11
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @test_count, align 4, !tbaa !11
  %1489 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %32, i32 noundef 0)
  %1490 = icmp eq i32 %1489, -1
  br i1 %1490, label %1491, label %1544

1491:                                             ; preds = %1486
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

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

1500:                                             ; preds = %1493
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @fileno(ptr noundef %1501) #9
  %1503 = call i32 @isatty(i32 noundef %1502) #9
  %1504 = icmp ne i32 %1503, 0
  br i1 %1504, label %1505, label %1522

1505:                                             ; preds = %1500
  %1506 = load i32, ptr %34, align 4, !tbaa !11
  %1507 = call ptr @__errno_location() #10
  store i32 %1506, ptr %1507, align 4, !tbaa !11
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !11
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !11
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef @.str.52)
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !11
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef @.str.52)
  %1516 = call ptr @__errno_location() #10
  %1517 = load i32, ptr %1516, align 4, !tbaa !11
  %1518 = call ptr @strerror(i32 noundef %1517) #9
  %1519 = call ptr @__errno_location() #10
  %1520 = load i32, ptr %1519, align 4, !tbaa !11
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef @.str.49, i32 noundef %1509, ptr noundef @.str.91, ptr noundef @.str.51, i32 noundef 148, ptr noundef %1512, ptr noundef %1515, ptr noundef %1518, i32 noundef %1520) #9
  br label %1539

1522:                                             ; preds = %1500, %1493
  %1523 = load i32, ptr %34, align 4, !tbaa !11
  %1524 = call ptr @__errno_location() #10
  store i32 %1523, ptr %1524, align 4, !tbaa !11
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = load i32, ptr @test_count, align 4, !tbaa !11
  %1527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1528 = load i32, ptr %1527, align 4, !tbaa !11
  %1529 = call ptr @s2n_strerror(i32 noundef %1528, ptr noundef @.str.52)
  %1530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1531 = load i32, ptr %1530, align 4, !tbaa !11
  %1532 = call ptr @s2n_strerror_debug(i32 noundef %1531, ptr noundef @.str.52)
  %1533 = call ptr @__errno_location() #10
  %1534 = load i32, ptr %1533, align 4, !tbaa !11
  %1535 = call ptr @strerror(i32 noundef %1534) #9
  %1536 = call ptr @__errno_location() #10
  %1537 = load i32, ptr %1536, align 4, !tbaa !11
  %1538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1525, ptr noundef @.str.53, i32 noundef %1526, ptr noundef @.str.91, ptr noundef @.str.51, i32 noundef 148, ptr noundef %1529, ptr noundef %1532, ptr noundef %1535, i32 noundef %1537) #9
  br label %1539

1539:                                             ; preds = %1522, %1505
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  call void @exit(i32 noundef 1) #11
  unreachable

1542:                                             ; No predecessors!
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543, %1486
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load i32, ptr @test_count, align 4, !tbaa !11
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr @test_count, align 4, !tbaa !11
  %1550 = load ptr, ptr %3, align 8, !tbaa !9
  %1551 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %32, ptr noundef %31, ptr noundef %1550)
  %1552 = icmp eq i32 %1551, -1
  br i1 %1552, label %1553, label %1606

1553:                                             ; preds = %1547
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

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

1562:                                             ; preds = %1555
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @fileno(ptr noundef %1563) #9
  %1565 = call i32 @isatty(i32 noundef %1564) #9
  %1566 = icmp ne i32 %1565, 0
  br i1 %1566, label %1567, label %1584

1567:                                             ; preds = %1562
  %1568 = load i32, ptr %35, align 4, !tbaa !11
  %1569 = call ptr @__errno_location() #10
  store i32 %1568, ptr %1569, align 4, !tbaa !11
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !11
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !11
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef @.str.52)
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !11
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef @.str.52)
  %1578 = call ptr @__errno_location() #10
  %1579 = load i32, ptr %1578, align 4, !tbaa !11
  %1580 = call ptr @strerror(i32 noundef %1579) #9
  %1581 = call ptr @__errno_location() #10
  %1582 = load i32, ptr %1581, align 4, !tbaa !11
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef @.str.49, i32 noundef %1571, ptr noundef @.str.92, ptr noundef @.str.51, i32 noundef 150, ptr noundef %1574, ptr noundef %1577, ptr noundef %1580, i32 noundef %1582) #9
  br label %1601

1584:                                             ; preds = %1562, %1555
  %1585 = load i32, ptr %35, align 4, !tbaa !11
  %1586 = call ptr @__errno_location() #10
  store i32 %1585, ptr %1586, align 4, !tbaa !11
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = load i32, ptr @test_count, align 4, !tbaa !11
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !11
  %1591 = call ptr @s2n_strerror(i32 noundef %1590, ptr noundef @.str.52)
  %1592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1593 = load i32, ptr %1592, align 4, !tbaa !11
  %1594 = call ptr @s2n_strerror_debug(i32 noundef %1593, ptr noundef @.str.52)
  %1595 = call ptr @__errno_location() #10
  %1596 = load i32, ptr %1595, align 4, !tbaa !11
  %1597 = call ptr @strerror(i32 noundef %1596) #9
  %1598 = call ptr @__errno_location() #10
  %1599 = load i32, ptr %1598, align 4, !tbaa !11
  %1600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1587, ptr noundef @.str.53, i32 noundef %1588, ptr noundef @.str.92, ptr noundef @.str.51, i32 noundef 150, ptr noundef %1591, ptr noundef %1594, ptr noundef %1597, i32 noundef %1599) #9
  br label %1601

1601:                                             ; preds = %1584, %1567
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602
  call void @exit(i32 noundef 1) #11
  unreachable

1604:                                             ; No predecessors!
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1605, %1547
  br label %1607

1607:                                             ; preds = %1606
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608
  %1610 = load i32, ptr @test_count, align 4, !tbaa !11
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr @test_count, align 4, !tbaa !11
  %1612 = load ptr, ptr %4, align 8, !tbaa !9
  %1613 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %31, ptr noundef %32, ptr noundef %1612)
  %1614 = icmp eq i32 %1613, -1
  br i1 %1614, label %1615, label %1668

1615:                                             ; preds = %1609
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1618 = call ptr @__errno_location() #10
  %1619 = load i32, ptr %1618, align 4, !tbaa !11
  store i32 %1619, ptr %36, align 4, !tbaa !11
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @s2n_print_stacktrace(ptr noundef %1620)
  %1622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %1623 = trunc i8 %1622 to i1
  br i1 %1623, label %1624, label %1646

1624:                                             ; preds = %1617
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @fileno(ptr noundef %1625) #9
  %1627 = call i32 @isatty(i32 noundef %1626) #9
  %1628 = icmp ne i32 %1627, 0
  br i1 %1628, label %1629, label %1646

1629:                                             ; preds = %1624
  %1630 = load i32, ptr %36, align 4, !tbaa !11
  %1631 = call ptr @__errno_location() #10
  store i32 %1630, ptr %1631, align 4, !tbaa !11
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !11
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !11
  %1636 = call ptr @s2n_strerror(i32 noundef %1635, ptr noundef @.str.52)
  %1637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1638 = load i32, ptr %1637, align 4, !tbaa !11
  %1639 = call ptr @s2n_strerror_debug(i32 noundef %1638, ptr noundef @.str.52)
  %1640 = call ptr @__errno_location() #10
  %1641 = load i32, ptr %1640, align 4, !tbaa !11
  %1642 = call ptr @strerror(i32 noundef %1641) #9
  %1643 = call ptr @__errno_location() #10
  %1644 = load i32, ptr %1643, align 4, !tbaa !11
  %1645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef @.str.49, i32 noundef %1633, ptr noundef @.str.93, ptr noundef @.str.51, i32 noundef 151, ptr noundef %1636, ptr noundef %1639, ptr noundef %1642, i32 noundef %1644) #9
  br label %1663

1646:                                             ; preds = %1624, %1617
  %1647 = load i32, ptr %36, align 4, !tbaa !11
  %1648 = call ptr @__errno_location() #10
  store i32 %1647, ptr %1648, align 4, !tbaa !11
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = load i32, ptr @test_count, align 4, !tbaa !11
  %1651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1652 = load i32, ptr %1651, align 4, !tbaa !11
  %1653 = call ptr @s2n_strerror(i32 noundef %1652, ptr noundef @.str.52)
  %1654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1655 = load i32, ptr %1654, align 4, !tbaa !11
  %1656 = call ptr @s2n_strerror_debug(i32 noundef %1655, ptr noundef @.str.52)
  %1657 = call ptr @__errno_location() #10
  %1658 = load i32, ptr %1657, align 4, !tbaa !11
  %1659 = call ptr @strerror(i32 noundef %1658) #9
  %1660 = call ptr @__errno_location() #10
  %1661 = load i32, ptr %1660, align 4, !tbaa !11
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef @.str.53, i32 noundef %1650, ptr noundef @.str.93, ptr noundef @.str.51, i32 noundef 151, ptr noundef %1653, ptr noundef %1656, ptr noundef %1659, i32 noundef %1661) #9
  br label %1663

1663:                                             ; preds = %1646, %1629
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664
  call void @exit(i32 noundef 1) #11
  unreachable

1666:                                             ; No predecessors!
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667, %1609
  br label %1669

1669:                                             ; preds = %1668
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  %1672 = load i32, ptr @test_count, align 4, !tbaa !11
  %1673 = add nsw i32 %1672, 1
  store i32 %1673, ptr @test_count, align 4, !tbaa !11
  %1674 = load ptr, ptr %3, align 8, !tbaa !9
  %1675 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1674, ptr noundef @.str.94)
  %1676 = icmp eq i32 %1675, -1
  br i1 %1676, label %1677, label %1730

1677:                                             ; preds = %1671
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

1679:                                             ; preds = %1678
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1680 = call ptr @__errno_location() #10
  %1681 = load i32, ptr %1680, align 4, !tbaa !11
  store i32 %1681, ptr %37, align 4, !tbaa !11
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = call i32 @s2n_print_stacktrace(ptr noundef %1682)
  %1684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %1685 = trunc i8 %1684 to i1
  br i1 %1685, label %1686, label %1708

1686:                                             ; preds = %1679
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = call i32 @fileno(ptr noundef %1687) #9
  %1689 = call i32 @isatty(i32 noundef %1688) #9
  %1690 = icmp ne i32 %1689, 0
  br i1 %1690, label %1691, label %1708

1691:                                             ; preds = %1686
  %1692 = load i32, ptr %37, align 4, !tbaa !11
  %1693 = call ptr @__errno_location() #10
  store i32 %1692, ptr %1693, align 4, !tbaa !11
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = load i32, ptr @test_count, align 4, !tbaa !11
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !11
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef @.str.52)
  %1699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !11
  %1701 = call ptr @s2n_strerror_debug(i32 noundef %1700, ptr noundef @.str.52)
  %1702 = call ptr @__errno_location() #10
  %1703 = load i32, ptr %1702, align 4, !tbaa !11
  %1704 = call ptr @strerror(i32 noundef %1703) #9
  %1705 = call ptr @__errno_location() #10
  %1706 = load i32, ptr %1705, align 4, !tbaa !11
  %1707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1694, ptr noundef @.str.49, i32 noundef %1695, ptr noundef @.str.95, ptr noundef @.str.51, i32 noundef 153, ptr noundef %1698, ptr noundef %1701, ptr noundef %1704, i32 noundef %1706) #9
  br label %1725

1708:                                             ; preds = %1686, %1679
  %1709 = load i32, ptr %37, align 4, !tbaa !11
  %1710 = call ptr @__errno_location() #10
  store i32 %1709, ptr %1710, align 4, !tbaa !11
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !11
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !11
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef @.str.52)
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !11
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef @.str.52)
  %1719 = call ptr @__errno_location() #10
  %1720 = load i32, ptr %1719, align 4, !tbaa !11
  %1721 = call ptr @strerror(i32 noundef %1720) #9
  %1722 = call ptr @__errno_location() #10
  %1723 = load i32, ptr %1722, align 4, !tbaa !11
  %1724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef @.str.53, i32 noundef %1712, ptr noundef @.str.95, ptr noundef @.str.51, i32 noundef 153, ptr noundef %1715, ptr noundef %1718, ptr noundef %1721, i32 noundef %1723) #9
  br label %1725

1725:                                             ; preds = %1708, %1691
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1726
  call void @exit(i32 noundef 1) #11
  unreachable

1728:                                             ; No predecessors!
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729, %1671
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732
  %1734 = load i32, ptr @test_count, align 4, !tbaa !11
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr @test_count, align 4, !tbaa !11
  %1736 = load ptr, ptr %4, align 8, !tbaa !9
  %1737 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1736, ptr noundef @.str.94)
  %1738 = icmp eq i32 %1737, -1
  br i1 %1738, label %1739, label %1792

1739:                                             ; preds = %1733
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1742 = call ptr @__errno_location() #10
  %1743 = load i32, ptr %1742, align 4, !tbaa !11
  store i32 %1743, ptr %38, align 4, !tbaa !11
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @s2n_print_stacktrace(ptr noundef %1744)
  %1746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %1747 = trunc i8 %1746 to i1
  br i1 %1747, label %1748, label %1770

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #9
  %1751 = call i32 @isatty(i32 noundef %1750) #9
  %1752 = icmp ne i32 %1751, 0
  br i1 %1752, label %1753, label %1770

1753:                                             ; preds = %1748
  %1754 = load i32, ptr %38, align 4, !tbaa !11
  %1755 = call ptr @__errno_location() #10
  store i32 %1754, ptr %1755, align 4, !tbaa !11
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = load i32, ptr @test_count, align 4, !tbaa !11
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !11
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef @.str.52)
  %1761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1762 = load i32, ptr %1761, align 4, !tbaa !11
  %1763 = call ptr @s2n_strerror_debug(i32 noundef %1762, ptr noundef @.str.52)
  %1764 = call ptr @__errno_location() #10
  %1765 = load i32, ptr %1764, align 4, !tbaa !11
  %1766 = call ptr @strerror(i32 noundef %1765) #9
  %1767 = call ptr @__errno_location() #10
  %1768 = load i32, ptr %1767, align 4, !tbaa !11
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1756, ptr noundef @.str.49, i32 noundef %1757, ptr noundef @.str.96, ptr noundef @.str.51, i32 noundef 154, ptr noundef %1760, ptr noundef %1763, ptr noundef %1766, i32 noundef %1768) #9
  br label %1787

1770:                                             ; preds = %1748, %1741
  %1771 = load i32, ptr %38, align 4, !tbaa !11
  %1772 = call ptr @__errno_location() #10
  store i32 %1771, ptr %1772, align 4, !tbaa !11
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = load i32, ptr @test_count, align 4, !tbaa !11
  %1775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1776 = load i32, ptr %1775, align 4, !tbaa !11
  %1777 = call ptr @s2n_strerror(i32 noundef %1776, ptr noundef @.str.52)
  %1778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1779 = load i32, ptr %1778, align 4, !tbaa !11
  %1780 = call ptr @s2n_strerror_debug(i32 noundef %1779, ptr noundef @.str.52)
  %1781 = call ptr @__errno_location() #10
  %1782 = load i32, ptr %1781, align 4, !tbaa !11
  %1783 = call ptr @strerror(i32 noundef %1782) #9
  %1784 = call ptr @__errno_location() #10
  %1785 = load i32, ptr %1784, align 4, !tbaa !11
  %1786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1773, ptr noundef @.str.53, i32 noundef %1774, ptr noundef @.str.96, ptr noundef @.str.51, i32 noundef 154, ptr noundef %1777, ptr noundef %1780, ptr noundef %1783, i32 noundef %1785) #9
  br label %1787

1787:                                             ; preds = %1770, %1753
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

1789:                                             ; preds = %1788
  call void @exit(i32 noundef 1) #11
  unreachable

1790:                                             ; No predecessors!
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

1792:                                             ; preds = %1791, %1733
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

1795:                                             ; preds = %1794
  %1796 = load i32, ptr @test_count, align 4, !tbaa !11
  %1797 = add nsw i32 %1796, 1
  store i32 %1797, ptr @test_count, align 4, !tbaa !11
  %1798 = load ptr, ptr %3, align 8, !tbaa !9
  %1799 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1798)
  %1800 = icmp eq i32 %1799, 0
  br i1 %1800, label %1854, label %1801

1801:                                             ; preds = %1795
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1804 = call ptr @__errno_location() #10
  %1805 = load i32, ptr %1804, align 4, !tbaa !11
  store i32 %1805, ptr %39, align 4, !tbaa !11
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806)
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %1809 = trunc i8 %1808 to i1
  br i1 %1809, label %1810, label %1832

1810:                                             ; preds = %1803
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #9
  %1813 = call i32 @isatty(i32 noundef %1812) #9
  %1814 = icmp ne i32 %1813, 0
  br i1 %1814, label %1815, label %1832

1815:                                             ; preds = %1810
  %1816 = load i32, ptr %39, align 4, !tbaa !11
  %1817 = call ptr @__errno_location() #10
  store i32 %1816, ptr %1817, align 4, !tbaa !11
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !11
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !11
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef @.str.52)
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !11
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef @.str.52)
  %1826 = call ptr @__errno_location() #10
  %1827 = load i32, ptr %1826, align 4, !tbaa !11
  %1828 = call ptr @strerror(i32 noundef %1827) #9
  %1829 = call ptr @__errno_location() #10
  %1830 = load i32, ptr %1829, align 4, !tbaa !11
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef @.str.49, i32 noundef %1819, ptr noundef @.str.97, ptr noundef @.str.51, i32 noundef 157, ptr noundef %1822, ptr noundef %1825, ptr noundef %1828, i32 noundef %1830) #9
  br label %1849

1832:                                             ; preds = %1810, %1803
  %1833 = load i32, ptr %39, align 4, !tbaa !11
  %1834 = call ptr @__errno_location() #10
  store i32 %1833, ptr %1834, align 4, !tbaa !11
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = load i32, ptr @test_count, align 4, !tbaa !11
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !11
  %1839 = call ptr @s2n_strerror(i32 noundef %1838, ptr noundef @.str.52)
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !11
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef @.str.52)
  %1843 = call ptr @__errno_location() #10
  %1844 = load i32, ptr %1843, align 4, !tbaa !11
  %1845 = call ptr @strerror(i32 noundef %1844) #9
  %1846 = call ptr @__errno_location() #10
  %1847 = load i32, ptr %1846, align 4, !tbaa !11
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1835, ptr noundef @.str.53, i32 noundef %1836, ptr noundef @.str.97, ptr noundef @.str.51, i32 noundef 157, ptr noundef %1839, ptr noundef %1842, ptr noundef %1845, i32 noundef %1847) #9
  br label %1849

1849:                                             ; preds = %1832, %1815
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

1851:                                             ; preds = %1850
  call void @exit(i32 noundef 1) #11
  unreachable

1852:                                             ; No predecessors!
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853, %1795
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  %1858 = load i32, ptr @test_count, align 4, !tbaa !11
  %1859 = add nsw i32 %1858, 1
  store i32 %1859, ptr @test_count, align 4, !tbaa !11
  %1860 = load ptr, ptr %3, align 8, !tbaa !9
  %1861 = call i32 @s2n_handshake_write_io(ptr noundef %1860)
  %1862 = icmp eq i32 %1861, -1
  br i1 %1862, label %1863, label %1916

1863:                                             ; preds = %1857
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

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

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #9
  %1875 = call i32 @isatty(i32 noundef %1874) #9
  %1876 = icmp ne i32 %1875, 0
  br i1 %1876, label %1877, label %1894

1877:                                             ; preds = %1872
  %1878 = load i32, ptr %40, align 4, !tbaa !11
  %1879 = call ptr @__errno_location() #10
  store i32 %1878, ptr %1879, align 4, !tbaa !11
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !11
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !11
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.52)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !11
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.52)
  %1888 = call ptr @__errno_location() #10
  %1889 = load i32, ptr %1888, align 4, !tbaa !11
  %1890 = call ptr @strerror(i32 noundef %1889) #9
  %1891 = call ptr @__errno_location() #10
  %1892 = load i32, ptr %1891, align 4, !tbaa !11
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.49, i32 noundef %1881, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 158, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #9
  br label %1911

1894:                                             ; preds = %1872, %1865
  %1895 = load i32, ptr %40, align 4, !tbaa !11
  %1896 = call ptr @__errno_location() #10
  store i32 %1895, ptr %1896, align 4, !tbaa !11
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = load i32, ptr @test_count, align 4, !tbaa !11
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !11
  %1901 = call ptr @s2n_strerror(i32 noundef %1900, ptr noundef @.str.52)
  %1902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1903 = load i32, ptr %1902, align 4, !tbaa !11
  %1904 = call ptr @s2n_strerror_debug(i32 noundef %1903, ptr noundef @.str.52)
  %1905 = call ptr @__errno_location() #10
  %1906 = load i32, ptr %1905, align 4, !tbaa !11
  %1907 = call ptr @strerror(i32 noundef %1906) #9
  %1908 = call ptr @__errno_location() #10
  %1909 = load i32, ptr %1908, align 4, !tbaa !11
  %1910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1897, ptr noundef @.str.53, i32 noundef %1898, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 158, ptr noundef %1901, ptr noundef %1904, ptr noundef %1907, i32 noundef %1909) #9
  br label %1911

1911:                                             ; preds = %1894, %1877
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

1913:                                             ; preds = %1912
  call void @exit(i32 noundef 1) #11
  unreachable

1914:                                             ; No predecessors!
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915, %1857
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  %1920 = load i32, ptr @test_count, align 4, !tbaa !11
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !11
  %1922 = load ptr, ptr %3, align 8, !tbaa !9
  %1923 = getelementptr inbounds %struct.s2n_connection, ptr %1922, i32 0, i32 23
  %1924 = load i8, ptr %1923, align 4, !tbaa !42
  %1925 = zext i8 %1924 to i32
  %1926 = icmp eq i32 %1925, 34
  br i1 %1926, label %1980, label %1927

1927:                                             ; preds = %1919
  br label %1928

1928:                                             ; preds = %1927
  br label %1929

1929:                                             ; preds = %1928
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1930 = call ptr @__errno_location() #10
  %1931 = load i32, ptr %1930, align 4, !tbaa !11
  store i32 %1931, ptr %41, align 4, !tbaa !11
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = call i32 @s2n_print_stacktrace(ptr noundef %1932)
  %1934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %1935 = trunc i8 %1934 to i1
  br i1 %1935, label %1936, label %1958

1936:                                             ; preds = %1929
  %1937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1938 = call i32 @fileno(ptr noundef %1937) #9
  %1939 = call i32 @isatty(i32 noundef %1938) #9
  %1940 = icmp ne i32 %1939, 0
  br i1 %1940, label %1941, label %1958

1941:                                             ; preds = %1936
  %1942 = load i32, ptr %41, align 4, !tbaa !11
  %1943 = call ptr @__errno_location() #10
  store i32 %1942, ptr %1943, align 4, !tbaa !11
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = load i32, ptr @test_count, align 4, !tbaa !11
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !11
  %1948 = call ptr @s2n_strerror(i32 noundef %1947, ptr noundef @.str.52)
  %1949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1950 = load i32, ptr %1949, align 4, !tbaa !11
  %1951 = call ptr @s2n_strerror_debug(i32 noundef %1950, ptr noundef @.str.52)
  %1952 = call ptr @__errno_location() #10
  %1953 = load i32, ptr %1952, align 4, !tbaa !11
  %1954 = call ptr @strerror(i32 noundef %1953) #9
  %1955 = call ptr @__errno_location() #10
  %1956 = load i32, ptr %1955, align 4, !tbaa !11
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1944, ptr noundef @.str.49, i32 noundef %1945, ptr noundef @.str.99, ptr noundef @.str.51, i32 noundef 160, ptr noundef %1948, ptr noundef %1951, ptr noundef %1954, i32 noundef %1956) #9
  br label %1975

1958:                                             ; preds = %1936, %1929
  %1959 = load i32, ptr %41, align 4, !tbaa !11
  %1960 = call ptr @__errno_location() #10
  store i32 %1959, ptr %1960, align 4, !tbaa !11
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = load i32, ptr @test_count, align 4, !tbaa !11
  %1963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1964 = load i32, ptr %1963, align 4, !tbaa !11
  %1965 = call ptr @s2n_strerror(i32 noundef %1964, ptr noundef @.str.52)
  %1966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1967 = load i32, ptr %1966, align 4, !tbaa !11
  %1968 = call ptr @s2n_strerror_debug(i32 noundef %1967, ptr noundef @.str.52)
  %1969 = call ptr @__errno_location() #10
  %1970 = load i32, ptr %1969, align 4, !tbaa !11
  %1971 = call ptr @strerror(i32 noundef %1970) #9
  %1972 = call ptr @__errno_location() #10
  %1973 = load i32, ptr %1972, align 4, !tbaa !11
  %1974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1961, ptr noundef @.str.53, i32 noundef %1962, ptr noundef @.str.99, ptr noundef @.str.51, i32 noundef 160, ptr noundef %1965, ptr noundef %1968, ptr noundef %1971, i32 noundef %1973) #9
  br label %1975

1975:                                             ; preds = %1958, %1941
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  call void @exit(i32 noundef 1) #11
  unreachable

1978:                                             ; No predecessors!
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979, %1919
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982
  %1984 = load i32, ptr @test_count, align 4, !tbaa !11
  %1985 = add nsw i32 %1984, 1
  store i32 %1985, ptr @test_count, align 4, !tbaa !11
  %1986 = load ptr, ptr %4, align 8, !tbaa !9
  %1987 = getelementptr inbounds %struct.s2n_connection, ptr %1986, i32 0, i32 23
  %1988 = load i8, ptr %1987, align 4, !tbaa !42
  %1989 = zext i8 %1988 to i32
  %1990 = icmp eq i32 %1989, 0
  br i1 %1990, label %2044, label %1991

1991:                                             ; preds = %1983
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

1993:                                             ; preds = %1992
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1994 = call ptr @__errno_location() #10
  %1995 = load i32, ptr %1994, align 4, !tbaa !11
  store i32 %1995, ptr %42, align 4, !tbaa !11
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = call i32 @s2n_print_stacktrace(ptr noundef %1996)
  %1998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %1999 = trunc i8 %1998 to i1
  br i1 %1999, label %2000, label %2022

2000:                                             ; preds = %1993
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = call i32 @fileno(ptr noundef %2001) #9
  %2003 = call i32 @isatty(i32 noundef %2002) #9
  %2004 = icmp ne i32 %2003, 0
  br i1 %2004, label %2005, label %2022

2005:                                             ; preds = %2000
  %2006 = load i32, ptr %42, align 4, !tbaa !11
  %2007 = call ptr @__errno_location() #10
  store i32 %2006, ptr %2007, align 4, !tbaa !11
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = load i32, ptr @test_count, align 4, !tbaa !11
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !11
  %2012 = call ptr @s2n_strerror(i32 noundef %2011, ptr noundef @.str.52)
  %2013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2014 = load i32, ptr %2013, align 4, !tbaa !11
  %2015 = call ptr @s2n_strerror_debug(i32 noundef %2014, ptr noundef @.str.52)
  %2016 = call ptr @__errno_location() #10
  %2017 = load i32, ptr %2016, align 4, !tbaa !11
  %2018 = call ptr @strerror(i32 noundef %2017) #9
  %2019 = call ptr @__errno_location() #10
  %2020 = load i32, ptr %2019, align 4, !tbaa !11
  %2021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2008, ptr noundef @.str.49, i32 noundef %2009, ptr noundef @.str.100, ptr noundef @.str.51, i32 noundef 161, ptr noundef %2012, ptr noundef %2015, ptr noundef %2018, i32 noundef %2020) #9
  br label %2039

2022:                                             ; preds = %2000, %1993
  %2023 = load i32, ptr %42, align 4, !tbaa !11
  %2024 = call ptr @__errno_location() #10
  store i32 %2023, ptr %2024, align 4, !tbaa !11
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !11
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !11
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef @.str.52)
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !11
  %2032 = call ptr @s2n_strerror_debug(i32 noundef %2031, ptr noundef @.str.52)
  %2033 = call ptr @__errno_location() #10
  %2034 = load i32, ptr %2033, align 4, !tbaa !11
  %2035 = call ptr @strerror(i32 noundef %2034) #9
  %2036 = call ptr @__errno_location() #10
  %2037 = load i32, ptr %2036, align 4, !tbaa !11
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef @.str.53, i32 noundef %2026, ptr noundef @.str.100, ptr noundef @.str.51, i32 noundef 161, ptr noundef %2029, ptr noundef %2032, ptr noundef %2035, i32 noundef %2037) #9
  br label %2039

2039:                                             ; preds = %2022, %2005
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040
  call void @exit(i32 noundef 1) #11
  unreachable

2042:                                             ; No predecessors!
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043, %1983
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  %2048 = load i32, ptr @test_count, align 4, !tbaa !11
  %2049 = add nsw i32 %2048, 1
  store i32 %2049, ptr @test_count, align 4, !tbaa !11
  %2050 = load ptr, ptr %4, align 8, !tbaa !9
  %2051 = getelementptr inbounds %struct.s2n_connection, ptr %2050, i32 0, i32 52
  %2052 = getelementptr inbounds %struct.s2n_handshake, ptr %2051, i32 0, i32 6
  %2053 = load i32, ptr %2052, align 4, !tbaa !43
  %2054 = icmp eq i32 %2053, 0
  br i1 %2054, label %2108, label %2055

2055:                                             ; preds = %2047
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %2058 = call ptr @__errno_location() #10
  %2059 = load i32, ptr %2058, align 4, !tbaa !11
  store i32 %2059, ptr %43, align 4, !tbaa !11
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @s2n_print_stacktrace(ptr noundef %2060)
  %2062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2063 = trunc i8 %2062 to i1
  br i1 %2063, label %2064, label %2086

2064:                                             ; preds = %2057
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @fileno(ptr noundef %2065) #9
  %2067 = call i32 @isatty(i32 noundef %2066) #9
  %2068 = icmp ne i32 %2067, 0
  br i1 %2068, label %2069, label %2086

2069:                                             ; preds = %2064
  %2070 = load i32, ptr %43, align 4, !tbaa !11
  %2071 = call ptr @__errno_location() #10
  store i32 %2070, ptr %2071, align 4, !tbaa !11
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = load i32, ptr @test_count, align 4, !tbaa !11
  %2074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2075 = load i32, ptr %2074, align 4, !tbaa !11
  %2076 = call ptr @s2n_strerror(i32 noundef %2075, ptr noundef @.str.52)
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !11
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef @.str.52)
  %2080 = call ptr @__errno_location() #10
  %2081 = load i32, ptr %2080, align 4, !tbaa !11
  %2082 = call ptr @strerror(i32 noundef %2081) #9
  %2083 = call ptr @__errno_location() #10
  %2084 = load i32, ptr %2083, align 4, !tbaa !11
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2072, ptr noundef @.str.49, i32 noundef %2073, ptr noundef @.str.101, ptr noundef @.str.51, i32 noundef 163, ptr noundef %2076, ptr noundef %2079, ptr noundef %2082, i32 noundef %2084) #9
  br label %2103

2086:                                             ; preds = %2064, %2057
  %2087 = load i32, ptr %43, align 4, !tbaa !11
  %2088 = call ptr @__errno_location() #10
  store i32 %2087, ptr %2088, align 4, !tbaa !11
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !11
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !11
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef @.str.52)
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !11
  %2096 = call ptr @s2n_strerror_debug(i32 noundef %2095, ptr noundef @.str.52)
  %2097 = call ptr @__errno_location() #10
  %2098 = load i32, ptr %2097, align 4, !tbaa !11
  %2099 = call ptr @strerror(i32 noundef %2098) #9
  %2100 = call ptr @__errno_location() #10
  %2101 = load i32, ptr %2100, align 4, !tbaa !11
  %2102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef @.str.53, i32 noundef %2090, ptr noundef @.str.101, ptr noundef @.str.51, i32 noundef 163, ptr noundef %2093, ptr noundef %2096, ptr noundef %2099, i32 noundef %2101) #9
  br label %2103

2103:                                             ; preds = %2086, %2069
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  call void @exit(i32 noundef 1) #11
  unreachable

2106:                                             ; No predecessors!
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107, %2047
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  %2112 = load i32, ptr @test_count, align 4, !tbaa !11
  %2113 = add nsw i32 %2112, 1
  store i32 %2113, ptr @test_count, align 4, !tbaa !11
  %2114 = load ptr, ptr %4, align 8, !tbaa !9
  %2115 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2114)
  %2116 = icmp eq i32 %2115, 0
  br i1 %2116, label %2170, label %2117

2117:                                             ; preds = %2111
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %2120 = call ptr @__errno_location() #10
  %2121 = load i32, ptr %2120, align 4, !tbaa !11
  store i32 %2121, ptr %44, align 4, !tbaa !11
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = call i32 @s2n_print_stacktrace(ptr noundef %2122)
  %2124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2125 = trunc i8 %2124 to i1
  br i1 %2125, label %2126, label %2148

2126:                                             ; preds = %2119
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @fileno(ptr noundef %2127) #9
  %2129 = call i32 @isatty(i32 noundef %2128) #9
  %2130 = icmp ne i32 %2129, 0
  br i1 %2130, label %2131, label %2148

2131:                                             ; preds = %2126
  %2132 = load i32, ptr %44, align 4, !tbaa !11
  %2133 = call ptr @__errno_location() #10
  store i32 %2132, ptr %2133, align 4, !tbaa !11
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = load i32, ptr @test_count, align 4, !tbaa !11
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !11
  %2138 = call ptr @s2n_strerror(i32 noundef %2137, ptr noundef @.str.52)
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !11
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef @.str.52)
  %2142 = call ptr @__errno_location() #10
  %2143 = load i32, ptr %2142, align 4, !tbaa !11
  %2144 = call ptr @strerror(i32 noundef %2143) #9
  %2145 = call ptr @__errno_location() #10
  %2146 = load i32, ptr %2145, align 4, !tbaa !11
  %2147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2134, ptr noundef @.str.49, i32 noundef %2135, ptr noundef @.str.102, ptr noundef @.str.51, i32 noundef 166, ptr noundef %2138, ptr noundef %2141, ptr noundef %2144, i32 noundef %2146) #9
  br label %2165

2148:                                             ; preds = %2126, %2119
  %2149 = load i32, ptr %44, align 4, !tbaa !11
  %2150 = call ptr @__errno_location() #10
  store i32 %2149, ptr %2150, align 4, !tbaa !11
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = load i32, ptr @test_count, align 4, !tbaa !11
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !11
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef @.str.52)
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !11
  %2158 = call ptr @s2n_strerror_debug(i32 noundef %2157, ptr noundef @.str.52)
  %2159 = call ptr @__errno_location() #10
  %2160 = load i32, ptr %2159, align 4, !tbaa !11
  %2161 = call ptr @strerror(i32 noundef %2160) #9
  %2162 = call ptr @__errno_location() #10
  %2163 = load i32, ptr %2162, align 4, !tbaa !11
  %2164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef @.str.53, i32 noundef %2152, ptr noundef @.str.102, ptr noundef @.str.51, i32 noundef 166, ptr noundef %2155, ptr noundef %2158, ptr noundef %2161, i32 noundef %2163) #9
  br label %2165

2165:                                             ; preds = %2148, %2131
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  call void @exit(i32 noundef 1) #11
  unreachable

2168:                                             ; No predecessors!
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169, %2111
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  %2174 = load i32, ptr @test_count, align 4, !tbaa !11
  %2175 = add nsw i32 %2174, 1
  store i32 %2175, ptr @test_count, align 4, !tbaa !11
  %2176 = load ptr, ptr %4, align 8, !tbaa !9
  %2177 = call i32 @s2n_handshake_read_io(ptr noundef %2176)
  %2178 = icmp eq i32 %2177, -1
  br i1 %2178, label %2179, label %2232

2179:                                             ; preds = %2173
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %2182 = call ptr @__errno_location() #10
  %2183 = load i32, ptr %2182, align 4, !tbaa !11
  store i32 %2183, ptr %45, align 4, !tbaa !11
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184)
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2187 = trunc i8 %2186 to i1
  br i1 %2187, label %2188, label %2210

2188:                                             ; preds = %2181
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @fileno(ptr noundef %2189) #9
  %2191 = call i32 @isatty(i32 noundef %2190) #9
  %2192 = icmp ne i32 %2191, 0
  br i1 %2192, label %2193, label %2210

2193:                                             ; preds = %2188
  %2194 = load i32, ptr %45, align 4, !tbaa !11
  %2195 = call ptr @__errno_location() #10
  store i32 %2194, ptr %2195, align 4, !tbaa !11
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !11
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !11
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef @.str.52)
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !11
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef @.str.52)
  %2204 = call ptr @__errno_location() #10
  %2205 = load i32, ptr %2204, align 4, !tbaa !11
  %2206 = call ptr @strerror(i32 noundef %2205) #9
  %2207 = call ptr @__errno_location() #10
  %2208 = load i32, ptr %2207, align 4, !tbaa !11
  %2209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef @.str.49, i32 noundef %2197, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 167, ptr noundef %2200, ptr noundef %2203, ptr noundef %2206, i32 noundef %2208) #9
  br label %2227

2210:                                             ; preds = %2188, %2181
  %2211 = load i32, ptr %45, align 4, !tbaa !11
  %2212 = call ptr @__errno_location() #10
  store i32 %2211, ptr %2212, align 4, !tbaa !11
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = load i32, ptr @test_count, align 4, !tbaa !11
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !11
  %2217 = call ptr @s2n_strerror(i32 noundef %2216, ptr noundef @.str.52)
  %2218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2219 = load i32, ptr %2218, align 4, !tbaa !11
  %2220 = call ptr @s2n_strerror_debug(i32 noundef %2219, ptr noundef @.str.52)
  %2221 = call ptr @__errno_location() #10
  %2222 = load i32, ptr %2221, align 4, !tbaa !11
  %2223 = call ptr @strerror(i32 noundef %2222) #9
  %2224 = call ptr @__errno_location() #10
  %2225 = load i32, ptr %2224, align 4, !tbaa !11
  %2226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2213, ptr noundef @.str.53, i32 noundef %2214, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 167, ptr noundef %2217, ptr noundef %2220, ptr noundef %2223, i32 noundef %2225) #9
  br label %2227

2227:                                             ; preds = %2210, %2193
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  call void @exit(i32 noundef 1) #11
  unreachable

2230:                                             ; No predecessors!
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231, %2173
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  %2236 = load i32, ptr @test_count, align 4, !tbaa !11
  %2237 = add nsw i32 %2236, 1
  store i32 %2237, ptr @test_count, align 4, !tbaa !11
  %2238 = load ptr, ptr %4, align 8, !tbaa !9
  %2239 = getelementptr inbounds %struct.s2n_connection, ptr %2238, i32 0, i32 23
  %2240 = load i8, ptr %2239, align 4, !tbaa !42
  %2241 = zext i8 %2240 to i32
  %2242 = icmp eq i32 %2241, 34
  br i1 %2242, label %2296, label %2243

2243:                                             ; preds = %2235
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

2245:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2246 = call ptr @__errno_location() #10
  %2247 = load i32, ptr %2246, align 4, !tbaa !11
  store i32 %2247, ptr %46, align 4, !tbaa !11
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @s2n_print_stacktrace(ptr noundef %2248)
  %2250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2251 = trunc i8 %2250 to i1
  br i1 %2251, label %2252, label %2274

2252:                                             ; preds = %2245
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @fileno(ptr noundef %2253) #9
  %2255 = call i32 @isatty(i32 noundef %2254) #9
  %2256 = icmp ne i32 %2255, 0
  br i1 %2256, label %2257, label %2274

2257:                                             ; preds = %2252
  %2258 = load i32, ptr %46, align 4, !tbaa !11
  %2259 = call ptr @__errno_location() #10
  store i32 %2258, ptr %2259, align 4, !tbaa !11
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = load i32, ptr @test_count, align 4, !tbaa !11
  %2262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2263 = load i32, ptr %2262, align 4, !tbaa !11
  %2264 = call ptr @s2n_strerror(i32 noundef %2263, ptr noundef @.str.52)
  %2265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2266 = load i32, ptr %2265, align 4, !tbaa !11
  %2267 = call ptr @s2n_strerror_debug(i32 noundef %2266, ptr noundef @.str.52)
  %2268 = call ptr @__errno_location() #10
  %2269 = load i32, ptr %2268, align 4, !tbaa !11
  %2270 = call ptr @strerror(i32 noundef %2269) #9
  %2271 = call ptr @__errno_location() #10
  %2272 = load i32, ptr %2271, align 4, !tbaa !11
  %2273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2260, ptr noundef @.str.49, i32 noundef %2261, ptr noundef @.str.104, ptr noundef @.str.51, i32 noundef 169, ptr noundef %2264, ptr noundef %2267, ptr noundef %2270, i32 noundef %2272) #9
  br label %2291

2274:                                             ; preds = %2252, %2245
  %2275 = load i32, ptr %46, align 4, !tbaa !11
  %2276 = call ptr @__errno_location() #10
  store i32 %2275, ptr %2276, align 4, !tbaa !11
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !11
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !11
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef @.str.52)
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !11
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef @.str.52)
  %2285 = call ptr @__errno_location() #10
  %2286 = load i32, ptr %2285, align 4, !tbaa !11
  %2287 = call ptr @strerror(i32 noundef %2286) #9
  %2288 = call ptr @__errno_location() #10
  %2289 = load i32, ptr %2288, align 4, !tbaa !11
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef @.str.53, i32 noundef %2278, ptr noundef @.str.104, ptr noundef @.str.51, i32 noundef 169, ptr noundef %2281, ptr noundef %2284, ptr noundef %2287, i32 noundef %2289) #9
  br label %2291

2291:                                             ; preds = %2274, %2257
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  call void @exit(i32 noundef 1) #11
  unreachable

2294:                                             ; No predecessors!
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295, %2235
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  %2300 = load i32, ptr @test_count, align 4, !tbaa !11
  %2301 = add nsw i32 %2300, 1
  store i32 %2301, ptr @test_count, align 4, !tbaa !11
  %2302 = load ptr, ptr %4, align 8, !tbaa !9
  %2303 = getelementptr inbounds %struct.s2n_connection, ptr %2302, i32 0, i32 52
  %2304 = getelementptr inbounds %struct.s2n_handshake, ptr %2303, i32 0, i32 6
  %2305 = load i32, ptr %2304, align 4, !tbaa !43
  %2306 = icmp eq i32 %2305, 39
  br i1 %2306, label %2360, label %2307

2307:                                             ; preds = %2299
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %2310 = call ptr @__errno_location() #10
  %2311 = load i32, ptr %2310, align 4, !tbaa !11
  store i32 %2311, ptr %47, align 4, !tbaa !11
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @s2n_print_stacktrace(ptr noundef %2312)
  %2314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2315 = trunc i8 %2314 to i1
  br i1 %2315, label %2316, label %2338

2316:                                             ; preds = %2309
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @fileno(ptr noundef %2317) #9
  %2319 = call i32 @isatty(i32 noundef %2318) #9
  %2320 = icmp ne i32 %2319, 0
  br i1 %2320, label %2321, label %2338

2321:                                             ; preds = %2316
  %2322 = load i32, ptr %47, align 4, !tbaa !11
  %2323 = call ptr @__errno_location() #10
  store i32 %2322, ptr %2323, align 4, !tbaa !11
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = load i32, ptr @test_count, align 4, !tbaa !11
  %2326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2327 = load i32, ptr %2326, align 4, !tbaa !11
  %2328 = call ptr @s2n_strerror(i32 noundef %2327, ptr noundef @.str.52)
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !11
  %2331 = call ptr @s2n_strerror_debug(i32 noundef %2330, ptr noundef @.str.52)
  %2332 = call ptr @__errno_location() #10
  %2333 = load i32, ptr %2332, align 4, !tbaa !11
  %2334 = call ptr @strerror(i32 noundef %2333) #9
  %2335 = call ptr @__errno_location() #10
  %2336 = load i32, ptr %2335, align 4, !tbaa !11
  %2337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2324, ptr noundef @.str.49, i32 noundef %2325, ptr noundef @.str.105, ptr noundef @.str.51, i32 noundef 170, ptr noundef %2328, ptr noundef %2331, ptr noundef %2334, i32 noundef %2336) #9
  br label %2355

2338:                                             ; preds = %2316, %2309
  %2339 = load i32, ptr %47, align 4, !tbaa !11
  %2340 = call ptr @__errno_location() #10
  store i32 %2339, ptr %2340, align 4, !tbaa !11
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = load i32, ptr @test_count, align 4, !tbaa !11
  %2343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2344 = load i32, ptr %2343, align 4, !tbaa !11
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef @.str.52)
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !11
  %2348 = call ptr @s2n_strerror_debug(i32 noundef %2347, ptr noundef @.str.52)
  %2349 = call ptr @__errno_location() #10
  %2350 = load i32, ptr %2349, align 4, !tbaa !11
  %2351 = call ptr @strerror(i32 noundef %2350) #9
  %2352 = call ptr @__errno_location() #10
  %2353 = load i32, ptr %2352, align 4, !tbaa !11
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2341, ptr noundef @.str.53, i32 noundef %2342, ptr noundef @.str.105, ptr noundef @.str.51, i32 noundef 170, ptr noundef %2345, ptr noundef %2348, ptr noundef %2351, i32 noundef %2353) #9
  br label %2355

2355:                                             ; preds = %2338, %2321
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

2357:                                             ; preds = %2356
  call void @exit(i32 noundef 1) #11
  unreachable

2358:                                             ; No predecessors!
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

2360:                                             ; preds = %2359, %2299
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362
  %2364 = load i32, ptr @test_count, align 4, !tbaa !11
  %2365 = add nsw i32 %2364, 1
  store i32 %2365, ptr @test_count, align 4, !tbaa !11
  %2366 = load ptr, ptr %4, align 8, !tbaa !9
  %2367 = call i32 @s2n_conn_set_handshake_type(ptr noundef %2366)
  %2368 = icmp eq i32 %2367, -1
  br i1 %2368, label %2369, label %2422

2369:                                             ; preds = %2363
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

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

2378:                                             ; preds = %2371
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = call i32 @fileno(ptr noundef %2379) #9
  %2381 = call i32 @isatty(i32 noundef %2380) #9
  %2382 = icmp ne i32 %2381, 0
  br i1 %2382, label %2383, label %2400

2383:                                             ; preds = %2378
  %2384 = load i32, ptr %48, align 4, !tbaa !11
  %2385 = call ptr @__errno_location() #10
  store i32 %2384, ptr %2385, align 4, !tbaa !11
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = load i32, ptr @test_count, align 4, !tbaa !11
  %2388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2389 = load i32, ptr %2388, align 4, !tbaa !11
  %2390 = call ptr @s2n_strerror(i32 noundef %2389, ptr noundef @.str.52)
  %2391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2392 = load i32, ptr %2391, align 4, !tbaa !11
  %2393 = call ptr @s2n_strerror_debug(i32 noundef %2392, ptr noundef @.str.52)
  %2394 = call ptr @__errno_location() #10
  %2395 = load i32, ptr %2394, align 4, !tbaa !11
  %2396 = call ptr @strerror(i32 noundef %2395) #9
  %2397 = call ptr @__errno_location() #10
  %2398 = load i32, ptr %2397, align 4, !tbaa !11
  %2399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2386, ptr noundef @.str.49, i32 noundef %2387, ptr noundef @.str.106, ptr noundef @.str.51, i32 noundef 172, ptr noundef %2390, ptr noundef %2393, ptr noundef %2396, i32 noundef %2398) #9
  br label %2417

2400:                                             ; preds = %2378, %2371
  %2401 = load i32, ptr %48, align 4, !tbaa !11
  %2402 = call ptr @__errno_location() #10
  store i32 %2401, ptr %2402, align 4, !tbaa !11
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = load i32, ptr @test_count, align 4, !tbaa !11
  %2405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2406 = load i32, ptr %2405, align 4, !tbaa !11
  %2407 = call ptr @s2n_strerror(i32 noundef %2406, ptr noundef @.str.52)
  %2408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2409 = load i32, ptr %2408, align 4, !tbaa !11
  %2410 = call ptr @s2n_strerror_debug(i32 noundef %2409, ptr noundef @.str.52)
  %2411 = call ptr @__errno_location() #10
  %2412 = load i32, ptr %2411, align 4, !tbaa !11
  %2413 = call ptr @strerror(i32 noundef %2412) #9
  %2414 = call ptr @__errno_location() #10
  %2415 = load i32, ptr %2414, align 4, !tbaa !11
  %2416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2403, ptr noundef @.str.53, i32 noundef %2404, ptr noundef @.str.106, ptr noundef @.str.51, i32 noundef 172, ptr noundef %2407, ptr noundef %2410, ptr noundef %2413, i32 noundef %2415) #9
  br label %2417

2417:                                             ; preds = %2400, %2383
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2418

2418:                                             ; preds = %2417
  br label %2419

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

2420:                                             ; No predecessors!
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

2422:                                             ; preds = %2421, %2363
  br label %2423

2423:                                             ; preds = %2422
  br label %2424

2424:                                             ; preds = %2423
  br label %2425

2425:                                             ; preds = %2424
  %2426 = load i32, ptr @test_count, align 4, !tbaa !11
  %2427 = add nsw i32 %2426, 1
  store i32 %2427, ptr @test_count, align 4, !tbaa !11
  %2428 = load ptr, ptr %4, align 8, !tbaa !9
  %2429 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2428)
  %2430 = icmp eq i32 %2429, 1
  br i1 %2430, label %2484, label %2431

2431:                                             ; preds = %2425
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %2434 = call ptr @__errno_location() #10
  %2435 = load i32, ptr %2434, align 4, !tbaa !11
  store i32 %2435, ptr %49, align 4, !tbaa !11
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = call i32 @s2n_print_stacktrace(ptr noundef %2436)
  %2438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2439 = trunc i8 %2438 to i1
  br i1 %2439, label %2440, label %2462

2440:                                             ; preds = %2433
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = call i32 @fileno(ptr noundef %2441) #9
  %2443 = call i32 @isatty(i32 noundef %2442) #9
  %2444 = icmp ne i32 %2443, 0
  br i1 %2444, label %2445, label %2462

2445:                                             ; preds = %2440
  %2446 = load i32, ptr %49, align 4, !tbaa !11
  %2447 = call ptr @__errno_location() #10
  store i32 %2446, ptr %2447, align 4, !tbaa !11
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = load i32, ptr @test_count, align 4, !tbaa !11
  %2450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2451 = load i32, ptr %2450, align 4, !tbaa !11
  %2452 = call ptr @s2n_strerror(i32 noundef %2451, ptr noundef @.str.52)
  %2453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2454 = load i32, ptr %2453, align 4, !tbaa !11
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef @.str.52)
  %2456 = call ptr @__errno_location() #10
  %2457 = load i32, ptr %2456, align 4, !tbaa !11
  %2458 = call ptr @strerror(i32 noundef %2457) #9
  %2459 = call ptr @__errno_location() #10
  %2460 = load i32, ptr %2459, align 4, !tbaa !11
  %2461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2448, ptr noundef @.str.49, i32 noundef %2449, ptr noundef @.str.107, ptr noundef @.str.51, i32 noundef 175, ptr noundef %2452, ptr noundef %2455, ptr noundef %2458, i32 noundef %2460) #9
  br label %2479

2462:                                             ; preds = %2440, %2433
  %2463 = load i32, ptr %49, align 4, !tbaa !11
  %2464 = call ptr @__errno_location() #10
  store i32 %2463, ptr %2464, align 4, !tbaa !11
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = load i32, ptr @test_count, align 4, !tbaa !11
  %2467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2468 = load i32, ptr %2467, align 4, !tbaa !11
  %2469 = call ptr @s2n_strerror(i32 noundef %2468, ptr noundef @.str.52)
  %2470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2471 = load i32, ptr %2470, align 4, !tbaa !11
  %2472 = call ptr @s2n_strerror_debug(i32 noundef %2471, ptr noundef @.str.52)
  %2473 = call ptr @__errno_location() #10
  %2474 = load i32, ptr %2473, align 4, !tbaa !11
  %2475 = call ptr @strerror(i32 noundef %2474) #9
  %2476 = call ptr @__errno_location() #10
  %2477 = load i32, ptr %2476, align 4, !tbaa !11
  %2478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2465, ptr noundef @.str.53, i32 noundef %2466, ptr noundef @.str.107, ptr noundef @.str.51, i32 noundef 175, ptr noundef %2469, ptr noundef %2472, ptr noundef %2475, i32 noundef %2477) #9
  br label %2479

2479:                                             ; preds = %2462, %2445
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480
  call void @exit(i32 noundef 1) #11
  unreachable

2482:                                             ; No predecessors!
  br label %2483

2483:                                             ; preds = %2482
  br label %2484

2484:                                             ; preds = %2483, %2425
  br label %2485

2485:                                             ; preds = %2484
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

2487:                                             ; preds = %2486
  %2488 = load i32, ptr @test_count, align 4, !tbaa !11
  %2489 = add nsw i32 %2488, 1
  store i32 %2489, ptr @test_count, align 4, !tbaa !11
  %2490 = load ptr, ptr %4, align 8, !tbaa !9
  %2491 = call i32 @s2n_handshake_write_io(ptr noundef %2490)
  %2492 = icmp eq i32 %2491, -1
  br i1 %2492, label %2493, label %2546

2493:                                             ; preds = %2487
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

2495:                                             ; preds = %2494
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %2496 = call ptr @__errno_location() #10
  %2497 = load i32, ptr %2496, align 4, !tbaa !11
  store i32 %2497, ptr %50, align 4, !tbaa !11
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @s2n_print_stacktrace(ptr noundef %2498)
  %2500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2501 = trunc i8 %2500 to i1
  br i1 %2501, label %2502, label %2524

2502:                                             ; preds = %2495
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @fileno(ptr noundef %2503) #9
  %2505 = call i32 @isatty(i32 noundef %2504) #9
  %2506 = icmp ne i32 %2505, 0
  br i1 %2506, label %2507, label %2524

2507:                                             ; preds = %2502
  %2508 = load i32, ptr %50, align 4, !tbaa !11
  %2509 = call ptr @__errno_location() #10
  store i32 %2508, ptr %2509, align 4, !tbaa !11
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = load i32, ptr @test_count, align 4, !tbaa !11
  %2512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2513 = load i32, ptr %2512, align 4, !tbaa !11
  %2514 = call ptr @s2n_strerror(i32 noundef %2513, ptr noundef @.str.52)
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !11
  %2517 = call ptr @s2n_strerror_debug(i32 noundef %2516, ptr noundef @.str.52)
  %2518 = call ptr @__errno_location() #10
  %2519 = load i32, ptr %2518, align 4, !tbaa !11
  %2520 = call ptr @strerror(i32 noundef %2519) #9
  %2521 = call ptr @__errno_location() #10
  %2522 = load i32, ptr %2521, align 4, !tbaa !11
  %2523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2510, ptr noundef @.str.49, i32 noundef %2511, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 176, ptr noundef %2514, ptr noundef %2517, ptr noundef %2520, i32 noundef %2522) #9
  br label %2541

2524:                                             ; preds = %2502, %2495
  %2525 = load i32, ptr %50, align 4, !tbaa !11
  %2526 = call ptr @__errno_location() #10
  store i32 %2525, ptr %2526, align 4, !tbaa !11
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = load i32, ptr @test_count, align 4, !tbaa !11
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !11
  %2531 = call ptr @s2n_strerror(i32 noundef %2530, ptr noundef @.str.52)
  %2532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2533 = load i32, ptr %2532, align 4, !tbaa !11
  %2534 = call ptr @s2n_strerror_debug(i32 noundef %2533, ptr noundef @.str.52)
  %2535 = call ptr @__errno_location() #10
  %2536 = load i32, ptr %2535, align 4, !tbaa !11
  %2537 = call ptr @strerror(i32 noundef %2536) #9
  %2538 = call ptr @__errno_location() #10
  %2539 = load i32, ptr %2538, align 4, !tbaa !11
  %2540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2527, ptr noundef @.str.53, i32 noundef %2528, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 176, ptr noundef %2531, ptr noundef %2534, ptr noundef %2537, i32 noundef %2539) #9
  br label %2541

2541:                                             ; preds = %2524, %2507
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542
  call void @exit(i32 noundef 1) #11
  unreachable

2544:                                             ; No predecessors!
  br label %2545

2545:                                             ; preds = %2544
  br label %2546

2546:                                             ; preds = %2545, %2487
  br label %2547

2547:                                             ; preds = %2546
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

2549:                                             ; preds = %2548
  %2550 = load i32, ptr @test_count, align 4, !tbaa !11
  %2551 = add nsw i32 %2550, 1
  store i32 %2551, ptr @test_count, align 4, !tbaa !11
  %2552 = load ptr, ptr %4, align 8, !tbaa !9
  %2553 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2552)
  %2554 = icmp eq i32 %2553, 14
  br i1 %2554, label %2608, label %2555

2555:                                             ; preds = %2549
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2558 = call ptr @__errno_location() #10
  %2559 = load i32, ptr %2558, align 4, !tbaa !11
  store i32 %2559, ptr %51, align 4, !tbaa !11
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = call i32 @s2n_print_stacktrace(ptr noundef %2560)
  %2562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2563 = trunc i8 %2562 to i1
  br i1 %2563, label %2564, label %2586

2564:                                             ; preds = %2557
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @fileno(ptr noundef %2565) #9
  %2567 = call i32 @isatty(i32 noundef %2566) #9
  %2568 = icmp ne i32 %2567, 0
  br i1 %2568, label %2569, label %2586

2569:                                             ; preds = %2564
  %2570 = load i32, ptr %51, align 4, !tbaa !11
  %2571 = call ptr @__errno_location() #10
  store i32 %2570, ptr %2571, align 4, !tbaa !11
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = load i32, ptr @test_count, align 4, !tbaa !11
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !11
  %2576 = call ptr @s2n_strerror(i32 noundef %2575, ptr noundef @.str.52)
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2578 = load i32, ptr %2577, align 4, !tbaa !11
  %2579 = call ptr @s2n_strerror_debug(i32 noundef %2578, ptr noundef @.str.52)
  %2580 = call ptr @__errno_location() #10
  %2581 = load i32, ptr %2580, align 4, !tbaa !11
  %2582 = call ptr @strerror(i32 noundef %2581) #9
  %2583 = call ptr @__errno_location() #10
  %2584 = load i32, ptr %2583, align 4, !tbaa !11
  %2585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2572, ptr noundef @.str.49, i32 noundef %2573, ptr noundef @.str.109, ptr noundef @.str.51, i32 noundef 179, ptr noundef %2576, ptr noundef %2579, ptr noundef %2582, i32 noundef %2584) #9
  br label %2603

2586:                                             ; preds = %2564, %2557
  %2587 = load i32, ptr %51, align 4, !tbaa !11
  %2588 = call ptr @__errno_location() #10
  store i32 %2587, ptr %2588, align 4, !tbaa !11
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = load i32, ptr @test_count, align 4, !tbaa !11
  %2591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2592 = load i32, ptr %2591, align 4, !tbaa !11
  %2593 = call ptr @s2n_strerror(i32 noundef %2592, ptr noundef @.str.52)
  %2594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2595 = load i32, ptr %2594, align 4, !tbaa !11
  %2596 = call ptr @s2n_strerror_debug(i32 noundef %2595, ptr noundef @.str.52)
  %2597 = call ptr @__errno_location() #10
  %2598 = load i32, ptr %2597, align 4, !tbaa !11
  %2599 = call ptr @strerror(i32 noundef %2598) #9
  %2600 = call ptr @__errno_location() #10
  %2601 = load i32, ptr %2600, align 4, !tbaa !11
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2589, ptr noundef @.str.53, i32 noundef %2590, ptr noundef @.str.109, ptr noundef @.str.51, i32 noundef 179, ptr noundef %2593, ptr noundef %2596, ptr noundef %2599, i32 noundef %2601) #9
  br label %2603

2603:                                             ; preds = %2586, %2569
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604
  call void @exit(i32 noundef 1) #11
  unreachable

2606:                                             ; No predecessors!
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

2608:                                             ; preds = %2607, %2549
  br label %2609

2609:                                             ; preds = %2608
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610
  %2612 = load i32, ptr @test_count, align 4, !tbaa !11
  %2613 = add nsw i32 %2612, 1
  store i32 %2613, ptr @test_count, align 4, !tbaa !11
  %2614 = load ptr, ptr %4, align 8, !tbaa !9
  %2615 = call i32 @s2n_handshake_write_io(ptr noundef %2614)
  %2616 = icmp eq i32 %2615, -1
  br i1 %2616, label %2617, label %2670

2617:                                             ; preds = %2611
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

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

2626:                                             ; preds = %2619
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = call i32 @fileno(ptr noundef %2627) #9
  %2629 = call i32 @isatty(i32 noundef %2628) #9
  %2630 = icmp ne i32 %2629, 0
  br i1 %2630, label %2631, label %2648

2631:                                             ; preds = %2626
  %2632 = load i32, ptr %52, align 4, !tbaa !11
  %2633 = call ptr @__errno_location() #10
  store i32 %2632, ptr %2633, align 4, !tbaa !11
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = load i32, ptr @test_count, align 4, !tbaa !11
  %2636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2637 = load i32, ptr %2636, align 4, !tbaa !11
  %2638 = call ptr @s2n_strerror(i32 noundef %2637, ptr noundef @.str.52)
  %2639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2640 = load i32, ptr %2639, align 4, !tbaa !11
  %2641 = call ptr @s2n_strerror_debug(i32 noundef %2640, ptr noundef @.str.52)
  %2642 = call ptr @__errno_location() #10
  %2643 = load i32, ptr %2642, align 4, !tbaa !11
  %2644 = call ptr @strerror(i32 noundef %2643) #9
  %2645 = call ptr @__errno_location() #10
  %2646 = load i32, ptr %2645, align 4, !tbaa !11
  %2647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2634, ptr noundef @.str.49, i32 noundef %2635, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 180, ptr noundef %2638, ptr noundef %2641, ptr noundef %2644, i32 noundef %2646) #9
  br label %2665

2648:                                             ; preds = %2626, %2619
  %2649 = load i32, ptr %52, align 4, !tbaa !11
  %2650 = call ptr @__errno_location() #10
  store i32 %2649, ptr %2650, align 4, !tbaa !11
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !11
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !11
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef @.str.52)
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !11
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef @.str.52)
  %2659 = call ptr @__errno_location() #10
  %2660 = load i32, ptr %2659, align 4, !tbaa !11
  %2661 = call ptr @strerror(i32 noundef %2660) #9
  %2662 = call ptr @__errno_location() #10
  %2663 = load i32, ptr %2662, align 4, !tbaa !11
  %2664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef @.str.53, i32 noundef %2652, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 180, ptr noundef %2655, ptr noundef %2658, ptr noundef %2661, i32 noundef %2663) #9
  br label %2665

2665:                                             ; preds = %2648, %2631
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2666

2666:                                             ; preds = %2665
  br label %2667

2667:                                             ; preds = %2666
  call void @exit(i32 noundef 1) #11
  unreachable

2668:                                             ; No predecessors!
  br label %2669

2669:                                             ; preds = %2668
  br label %2670

2670:                                             ; preds = %2669, %2611
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672
  %2674 = load i32, ptr @test_count, align 4, !tbaa !11
  %2675 = add nsw i32 %2674, 1
  store i32 %2675, ptr @test_count, align 4, !tbaa !11
  %2676 = load ptr, ptr %4, align 8, !tbaa !9
  %2677 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2676)
  %2678 = icmp eq i32 %2677, 16
  br i1 %2678, label %2732, label %2679

2679:                                             ; preds = %2673
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

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

2688:                                             ; preds = %2681
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = call i32 @fileno(ptr noundef %2689) #9
  %2691 = call i32 @isatty(i32 noundef %2690) #9
  %2692 = icmp ne i32 %2691, 0
  br i1 %2692, label %2693, label %2710

2693:                                             ; preds = %2688
  %2694 = load i32, ptr %53, align 4, !tbaa !11
  %2695 = call ptr @__errno_location() #10
  store i32 %2694, ptr %2695, align 4, !tbaa !11
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = load i32, ptr @test_count, align 4, !tbaa !11
  %2698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2699 = load i32, ptr %2698, align 4, !tbaa !11
  %2700 = call ptr @s2n_strerror(i32 noundef %2699, ptr noundef @.str.52)
  %2701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2702 = load i32, ptr %2701, align 4, !tbaa !11
  %2703 = call ptr @s2n_strerror_debug(i32 noundef %2702, ptr noundef @.str.52)
  %2704 = call ptr @__errno_location() #10
  %2705 = load i32, ptr %2704, align 4, !tbaa !11
  %2706 = call ptr @strerror(i32 noundef %2705) #9
  %2707 = call ptr @__errno_location() #10
  %2708 = load i32, ptr %2707, align 4, !tbaa !11
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2696, ptr noundef @.str.49, i32 noundef %2697, ptr noundef @.str.110, ptr noundef @.str.51, i32 noundef 183, ptr noundef %2700, ptr noundef %2703, ptr noundef %2706, i32 noundef %2708) #9
  br label %2727

2710:                                             ; preds = %2688, %2681
  %2711 = load i32, ptr %53, align 4, !tbaa !11
  %2712 = call ptr @__errno_location() #10
  store i32 %2711, ptr %2712, align 4, !tbaa !11
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = load i32, ptr @test_count, align 4, !tbaa !11
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !11
  %2717 = call ptr @s2n_strerror(i32 noundef %2716, ptr noundef @.str.52)
  %2718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2719 = load i32, ptr %2718, align 4, !tbaa !11
  %2720 = call ptr @s2n_strerror_debug(i32 noundef %2719, ptr noundef @.str.52)
  %2721 = call ptr @__errno_location() #10
  %2722 = load i32, ptr %2721, align 4, !tbaa !11
  %2723 = call ptr @strerror(i32 noundef %2722) #9
  %2724 = call ptr @__errno_location() #10
  %2725 = load i32, ptr %2724, align 4, !tbaa !11
  %2726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2713, ptr noundef @.str.53, i32 noundef %2714, ptr noundef @.str.110, ptr noundef @.str.51, i32 noundef 183, ptr noundef %2717, ptr noundef %2720, ptr noundef %2723, i32 noundef %2725) #9
  br label %2727

2727:                                             ; preds = %2710, %2693
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

2729:                                             ; preds = %2728
  call void @exit(i32 noundef 1) #11
  unreachable

2730:                                             ; No predecessors!
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731, %2673
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  br label %2735

2735:                                             ; preds = %2734
  %2736 = load i32, ptr @test_count, align 4, !tbaa !11
  %2737 = add nsw i32 %2736, 1
  store i32 %2737, ptr @test_count, align 4, !tbaa !11
  %2738 = load ptr, ptr %4, align 8, !tbaa !9
  %2739 = call i32 @s2n_handshake_write_io(ptr noundef %2738)
  %2740 = icmp eq i32 %2739, -1
  br i1 %2740, label %2741, label %2794

2741:                                             ; preds = %2735
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

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

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

2755:                                             ; preds = %2750
  %2756 = load i32, ptr %54, align 4, !tbaa !11
  %2757 = call ptr @__errno_location() #10
  store i32 %2756, ptr %2757, align 4, !tbaa !11
  %2758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2759 = load i32, ptr @test_count, align 4, !tbaa !11
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !11
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef @.str.52)
  %2763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2764 = load i32, ptr %2763, align 4, !tbaa !11
  %2765 = call ptr @s2n_strerror_debug(i32 noundef %2764, ptr noundef @.str.52)
  %2766 = call ptr @__errno_location() #10
  %2767 = load i32, ptr %2766, align 4, !tbaa !11
  %2768 = call ptr @strerror(i32 noundef %2767) #9
  %2769 = call ptr @__errno_location() #10
  %2770 = load i32, ptr %2769, align 4, !tbaa !11
  %2771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2758, ptr noundef @.str.49, i32 noundef %2759, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 184, ptr noundef %2762, ptr noundef %2765, ptr noundef %2768, i32 noundef %2770) #9
  br label %2789

2772:                                             ; preds = %2750, %2743
  %2773 = load i32, ptr %54, align 4, !tbaa !11
  %2774 = call ptr @__errno_location() #10
  store i32 %2773, ptr %2774, align 4, !tbaa !11
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = load i32, ptr @test_count, align 4, !tbaa !11
  %2777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2778 = load i32, ptr %2777, align 4, !tbaa !11
  %2779 = call ptr @s2n_strerror(i32 noundef %2778, ptr noundef @.str.52)
  %2780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2781 = load i32, ptr %2780, align 4, !tbaa !11
  %2782 = call ptr @s2n_strerror_debug(i32 noundef %2781, ptr noundef @.str.52)
  %2783 = call ptr @__errno_location() #10
  %2784 = load i32, ptr %2783, align 4, !tbaa !11
  %2785 = call ptr @strerror(i32 noundef %2784) #9
  %2786 = call ptr @__errno_location() #10
  %2787 = load i32, ptr %2786, align 4, !tbaa !11
  %2788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2775, ptr noundef @.str.53, i32 noundef %2776, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 184, ptr noundef %2779, ptr noundef %2782, ptr noundef %2785, i32 noundef %2787) #9
  br label %2789

2789:                                             ; preds = %2772, %2755
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2790

2790:                                             ; preds = %2789
  br label %2791

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

2792:                                             ; No predecessors!
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793, %2735
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  %2798 = load i32, ptr @test_count, align 4, !tbaa !11
  %2799 = add nsw i32 %2798, 1
  store i32 %2799, ptr @test_count, align 4, !tbaa !11
  %2800 = load ptr, ptr %4, align 8, !tbaa !9
  %2801 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2800)
  %2802 = icmp eq i32 %2801, 6
  br i1 %2802, label %2856, label %2803

2803:                                             ; preds = %2797
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

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

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

2817:                                             ; preds = %2812
  %2818 = load i32, ptr %55, align 4, !tbaa !11
  %2819 = call ptr @__errno_location() #10
  store i32 %2818, ptr %2819, align 4, !tbaa !11
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = load i32, ptr @test_count, align 4, !tbaa !11
  %2822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2823 = load i32, ptr %2822, align 4, !tbaa !11
  %2824 = call ptr @s2n_strerror(i32 noundef %2823, ptr noundef @.str.52)
  %2825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2826 = load i32, ptr %2825, align 4, !tbaa !11
  %2827 = call ptr @s2n_strerror_debug(i32 noundef %2826, ptr noundef @.str.52)
  %2828 = call ptr @__errno_location() #10
  %2829 = load i32, ptr %2828, align 4, !tbaa !11
  %2830 = call ptr @strerror(i32 noundef %2829) #9
  %2831 = call ptr @__errno_location() #10
  %2832 = load i32, ptr %2831, align 4, !tbaa !11
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2820, ptr noundef @.str.49, i32 noundef %2821, ptr noundef @.str.111, ptr noundef @.str.51, i32 noundef 187, ptr noundef %2824, ptr noundef %2827, ptr noundef %2830, i32 noundef %2832) #9
  br label %2851

2834:                                             ; preds = %2812, %2805
  %2835 = load i32, ptr %55, align 4, !tbaa !11
  %2836 = call ptr @__errno_location() #10
  store i32 %2835, ptr %2836, align 4, !tbaa !11
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !11
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !11
  %2841 = call ptr @s2n_strerror(i32 noundef %2840, ptr noundef @.str.52)
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !11
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.52)
  %2845 = call ptr @__errno_location() #10
  %2846 = load i32, ptr %2845, align 4, !tbaa !11
  %2847 = call ptr @strerror(i32 noundef %2846) #9
  %2848 = call ptr @__errno_location() #10
  %2849 = load i32, ptr %2848, align 4, !tbaa !11
  %2850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef @.str.53, i32 noundef %2838, ptr noundef @.str.111, ptr noundef @.str.51, i32 noundef 187, ptr noundef %2841, ptr noundef %2844, ptr noundef %2847, i32 noundef %2849) #9
  br label %2851

2851:                                             ; preds = %2834, %2817
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

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

2854:                                             ; No predecessors!
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

2856:                                             ; preds = %2855, %2797
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858
  %2860 = load i32, ptr @test_count, align 4, !tbaa !11
  %2861 = add nsw i32 %2860, 1
  store i32 %2861, ptr @test_count, align 4, !tbaa !11
  %2862 = load ptr, ptr %4, align 8, !tbaa !9
  %2863 = call i32 @s2n_handshake_write_io(ptr noundef %2862)
  %2864 = icmp eq i32 %2863, -1
  br i1 %2864, label %2865, label %2918

2865:                                             ; preds = %2859
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2868 = call ptr @__errno_location() #10
  %2869 = load i32, ptr %2868, align 4, !tbaa !11
  store i32 %2869, ptr %56, align 4, !tbaa !11
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = call i32 @s2n_print_stacktrace(ptr noundef %2870)
  %2872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2873 = trunc i8 %2872 to i1
  br i1 %2873, label %2874, label %2896

2874:                                             ; preds = %2867
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = call i32 @fileno(ptr noundef %2875) #9
  %2877 = call i32 @isatty(i32 noundef %2876) #9
  %2878 = icmp ne i32 %2877, 0
  br i1 %2878, label %2879, label %2896

2879:                                             ; preds = %2874
  %2880 = load i32, ptr %56, align 4, !tbaa !11
  %2881 = call ptr @__errno_location() #10
  store i32 %2880, ptr %2881, align 4, !tbaa !11
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = load i32, ptr @test_count, align 4, !tbaa !11
  %2884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2885 = load i32, ptr %2884, align 4, !tbaa !11
  %2886 = call ptr @s2n_strerror(i32 noundef %2885, ptr noundef @.str.52)
  %2887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2888 = load i32, ptr %2887, align 4, !tbaa !11
  %2889 = call ptr @s2n_strerror_debug(i32 noundef %2888, ptr noundef @.str.52)
  %2890 = call ptr @__errno_location() #10
  %2891 = load i32, ptr %2890, align 4, !tbaa !11
  %2892 = call ptr @strerror(i32 noundef %2891) #9
  %2893 = call ptr @__errno_location() #10
  %2894 = load i32, ptr %2893, align 4, !tbaa !11
  %2895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2882, ptr noundef @.str.49, i32 noundef %2883, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 188, ptr noundef %2886, ptr noundef %2889, ptr noundef %2892, i32 noundef %2894) #9
  br label %2913

2896:                                             ; preds = %2874, %2867
  %2897 = load i32, ptr %56, align 4, !tbaa !11
  %2898 = call ptr @__errno_location() #10
  store i32 %2897, ptr %2898, align 4, !tbaa !11
  %2899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2900 = load i32, ptr @test_count, align 4, !tbaa !11
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !11
  %2903 = call ptr @s2n_strerror(i32 noundef %2902, ptr noundef @.str.52)
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !11
  %2906 = call ptr @s2n_strerror_debug(i32 noundef %2905, ptr noundef @.str.52)
  %2907 = call ptr @__errno_location() #10
  %2908 = load i32, ptr %2907, align 4, !tbaa !11
  %2909 = call ptr @strerror(i32 noundef %2908) #9
  %2910 = call ptr @__errno_location() #10
  %2911 = load i32, ptr %2910, align 4, !tbaa !11
  %2912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2899, ptr noundef @.str.53, i32 noundef %2900, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 188, ptr noundef %2903, ptr noundef %2906, ptr noundef %2909, i32 noundef %2911) #9
  br label %2913

2913:                                             ; preds = %2896, %2879
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2914

2914:                                             ; preds = %2913
  br label %2915

2915:                                             ; preds = %2914
  call void @exit(i32 noundef 1) #11
  unreachable

2916:                                             ; No predecessors!
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

2918:                                             ; preds = %2917, %2859
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920
  %2922 = load i32, ptr @test_count, align 4, !tbaa !11
  %2923 = add nsw i32 %2922, 1
  store i32 %2923, ptr @test_count, align 4, !tbaa !11
  %2924 = load ptr, ptr %4, align 8, !tbaa !9
  %2925 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2924)
  %2926 = icmp eq i32 %2925, 2
  br i1 %2926, label %2980, label %2927

2927:                                             ; preds = %2921
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

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

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

2941:                                             ; preds = %2936
  %2942 = load i32, ptr %57, align 4, !tbaa !11
  %2943 = call ptr @__errno_location() #10
  store i32 %2942, ptr %2943, align 4, !tbaa !11
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !11
  %2946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2947 = load i32, ptr %2946, align 4, !tbaa !11
  %2948 = call ptr @s2n_strerror(i32 noundef %2947, ptr noundef @.str.52)
  %2949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2950 = load i32, ptr %2949, align 4, !tbaa !11
  %2951 = call ptr @s2n_strerror_debug(i32 noundef %2950, ptr noundef @.str.52)
  %2952 = call ptr @__errno_location() #10
  %2953 = load i32, ptr %2952, align 4, !tbaa !11
  %2954 = call ptr @strerror(i32 noundef %2953) #9
  %2955 = call ptr @__errno_location() #10
  %2956 = load i32, ptr %2955, align 4, !tbaa !11
  %2957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef @.str.49, i32 noundef %2945, ptr noundef @.str.112, ptr noundef @.str.51, i32 noundef 191, ptr noundef %2948, ptr noundef %2951, ptr noundef %2954, i32 noundef %2956) #9
  br label %2975

2958:                                             ; preds = %2936, %2929
  %2959 = load i32, ptr %57, align 4, !tbaa !11
  %2960 = call ptr @__errno_location() #10
  store i32 %2959, ptr %2960, align 4, !tbaa !11
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !11
  %2963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2964 = load i32, ptr %2963, align 4, !tbaa !11
  %2965 = call ptr @s2n_strerror(i32 noundef %2964, ptr noundef @.str.52)
  %2966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2967 = load i32, ptr %2966, align 4, !tbaa !11
  %2968 = call ptr @s2n_strerror_debug(i32 noundef %2967, ptr noundef @.str.52)
  %2969 = call ptr @__errno_location() #10
  %2970 = load i32, ptr %2969, align 4, !tbaa !11
  %2971 = call ptr @strerror(i32 noundef %2970) #9
  %2972 = call ptr @__errno_location() #10
  %2973 = load i32, ptr %2972, align 4, !tbaa !11
  %2974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef @.str.53, i32 noundef %2962, ptr noundef @.str.112, ptr noundef @.str.51, i32 noundef 191, ptr noundef %2965, ptr noundef %2968, ptr noundef %2971, i32 noundef %2973) #9
  br label %2975

2975:                                             ; preds = %2958, %2941
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2976

2976:                                             ; preds = %2975
  br label %2977

2977:                                             ; preds = %2976
  call void @exit(i32 noundef 1) #11
  unreachable

2978:                                             ; No predecessors!
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979, %2921
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981
  br label %2983

2983:                                             ; preds = %2982
  %2984 = load i32, ptr @test_count, align 4, !tbaa !11
  %2985 = add nsw i32 %2984, 1
  store i32 %2985, ptr @test_count, align 4, !tbaa !11
  %2986 = load ptr, ptr %4, align 8, !tbaa !9
  %2987 = call i32 @s2n_handshake_write_io(ptr noundef %2986)
  %2988 = icmp eq i32 %2987, -1
  br i1 %2988, label %2989, label %3042

2989:                                             ; preds = %2983
  br label %2990

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2992 = call ptr @__errno_location() #10
  %2993 = load i32, ptr %2992, align 4, !tbaa !11
  store i32 %2993, ptr %58, align 4, !tbaa !11
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = call i32 @s2n_print_stacktrace(ptr noundef %2994)
  %2996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %2997 = trunc i8 %2996 to i1
  br i1 %2997, label %2998, label %3020

2998:                                             ; preds = %2991
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = call i32 @fileno(ptr noundef %2999) #9
  %3001 = call i32 @isatty(i32 noundef %3000) #9
  %3002 = icmp ne i32 %3001, 0
  br i1 %3002, label %3003, label %3020

3003:                                             ; preds = %2998
  %3004 = load i32, ptr %58, align 4, !tbaa !11
  %3005 = call ptr @__errno_location() #10
  store i32 %3004, ptr %3005, align 4, !tbaa !11
  %3006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3007 = load i32, ptr @test_count, align 4, !tbaa !11
  %3008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3009 = load i32, ptr %3008, align 4, !tbaa !11
  %3010 = call ptr @s2n_strerror(i32 noundef %3009, ptr noundef @.str.52)
  %3011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3012 = load i32, ptr %3011, align 4, !tbaa !11
  %3013 = call ptr @s2n_strerror_debug(i32 noundef %3012, ptr noundef @.str.52)
  %3014 = call ptr @__errno_location() #10
  %3015 = load i32, ptr %3014, align 4, !tbaa !11
  %3016 = call ptr @strerror(i32 noundef %3015) #9
  %3017 = call ptr @__errno_location() #10
  %3018 = load i32, ptr %3017, align 4, !tbaa !11
  %3019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3006, ptr noundef @.str.49, i32 noundef %3007, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 192, ptr noundef %3010, ptr noundef %3013, ptr noundef %3016, i32 noundef %3018) #9
  br label %3037

3020:                                             ; preds = %2998, %2991
  %3021 = load i32, ptr %58, align 4, !tbaa !11
  %3022 = call ptr @__errno_location() #10
  store i32 %3021, ptr %3022, align 4, !tbaa !11
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = load i32, ptr @test_count, align 4, !tbaa !11
  %3025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3026 = load i32, ptr %3025, align 4, !tbaa !11
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef @.str.52)
  %3028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3029 = load i32, ptr %3028, align 4, !tbaa !11
  %3030 = call ptr @s2n_strerror_debug(i32 noundef %3029, ptr noundef @.str.52)
  %3031 = call ptr @__errno_location() #10
  %3032 = load i32, ptr %3031, align 4, !tbaa !11
  %3033 = call ptr @strerror(i32 noundef %3032) #9
  %3034 = call ptr @__errno_location() #10
  %3035 = load i32, ptr %3034, align 4, !tbaa !11
  %3036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3023, ptr noundef @.str.53, i32 noundef %3024, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 192, ptr noundef %3027, ptr noundef %3030, ptr noundef %3033, i32 noundef %3035) #9
  br label %3037

3037:                                             ; preds = %3020, %3003
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %3038

3038:                                             ; preds = %3037
  br label %3039

3039:                                             ; preds = %3038
  call void @exit(i32 noundef 1) #11
  unreachable

3040:                                             ; No predecessors!
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041, %2983
  br label %3043

3043:                                             ; preds = %3042
  br label %3044

3044:                                             ; preds = %3043
  br label %3045

3045:                                             ; preds = %3044
  %3046 = load i32, ptr @test_count, align 4, !tbaa !11
  %3047 = add nsw i32 %3046, 1
  store i32 %3047, ptr @test_count, align 4, !tbaa !11
  %3048 = load ptr, ptr %4, align 8, !tbaa !9
  %3049 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3048)
  %3050 = icmp eq i32 %3049, 17
  br i1 %3050, label %3104, label %3051

3051:                                             ; preds = %3045
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

3053:                                             ; preds = %3052
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %3054 = call ptr @__errno_location() #10
  %3055 = load i32, ptr %3054, align 4, !tbaa !11
  store i32 %3055, ptr %59, align 4, !tbaa !11
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = call i32 @s2n_print_stacktrace(ptr noundef %3056)
  %3058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3059 = trunc i8 %3058 to i1
  br i1 %3059, label %3060, label %3082

3060:                                             ; preds = %3053
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = call i32 @fileno(ptr noundef %3061) #9
  %3063 = call i32 @isatty(i32 noundef %3062) #9
  %3064 = icmp ne i32 %3063, 0
  br i1 %3064, label %3065, label %3082

3065:                                             ; preds = %3060
  %3066 = load i32, ptr %59, align 4, !tbaa !11
  %3067 = call ptr @__errno_location() #10
  store i32 %3066, ptr %3067, align 4, !tbaa !11
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = load i32, ptr @test_count, align 4, !tbaa !11
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !11
  %3072 = call ptr @s2n_strerror(i32 noundef %3071, ptr noundef @.str.52)
  %3073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3074 = load i32, ptr %3073, align 4, !tbaa !11
  %3075 = call ptr @s2n_strerror_debug(i32 noundef %3074, ptr noundef @.str.52)
  %3076 = call ptr @__errno_location() #10
  %3077 = load i32, ptr %3076, align 4, !tbaa !11
  %3078 = call ptr @strerror(i32 noundef %3077) #9
  %3079 = call ptr @__errno_location() #10
  %3080 = load i32, ptr %3079, align 4, !tbaa !11
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3068, ptr noundef @.str.49, i32 noundef %3069, ptr noundef @.str.113, ptr noundef @.str.51, i32 noundef 195, ptr noundef %3072, ptr noundef %3075, ptr noundef %3078, i32 noundef %3080) #9
  br label %3099

3082:                                             ; preds = %3060, %3053
  %3083 = load i32, ptr %59, align 4, !tbaa !11
  %3084 = call ptr @__errno_location() #10
  store i32 %3083, ptr %3084, align 4, !tbaa !11
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !11
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !11
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef @.str.52)
  %3090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3091 = load i32, ptr %3090, align 4, !tbaa !11
  %3092 = call ptr @s2n_strerror_debug(i32 noundef %3091, ptr noundef @.str.52)
  %3093 = call ptr @__errno_location() #10
  %3094 = load i32, ptr %3093, align 4, !tbaa !11
  %3095 = call ptr @strerror(i32 noundef %3094) #9
  %3096 = call ptr @__errno_location() #10
  %3097 = load i32, ptr %3096, align 4, !tbaa !11
  %3098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef @.str.53, i32 noundef %3086, ptr noundef @.str.113, ptr noundef @.str.51, i32 noundef 195, ptr noundef %3089, ptr noundef %3092, ptr noundef %3095, i32 noundef %3097) #9
  br label %3099

3099:                                             ; preds = %3082, %3065
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

3101:                                             ; preds = %3100
  call void @exit(i32 noundef 1) #11
  unreachable

3102:                                             ; No predecessors!
  br label %3103

3103:                                             ; preds = %3102
  br label %3104

3104:                                             ; preds = %3103, %3045
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

3106:                                             ; preds = %3105
  br label %3107

3107:                                             ; preds = %3106
  %3108 = load i32, ptr @test_count, align 4, !tbaa !11
  %3109 = add nsw i32 %3108, 1
  store i32 %3109, ptr @test_count, align 4, !tbaa !11
  %3110 = load ptr, ptr %4, align 8, !tbaa !9
  %3111 = call i32 @s2n_handshake_write_io(ptr noundef %3110)
  %3112 = icmp eq i32 %3111, -1
  br i1 %3112, label %3113, label %3166

3113:                                             ; preds = %3107
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %3116 = call ptr @__errno_location() #10
  %3117 = load i32, ptr %3116, align 4, !tbaa !11
  store i32 %3117, ptr %60, align 4, !tbaa !11
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = call i32 @s2n_print_stacktrace(ptr noundef %3118)
  %3120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3121 = trunc i8 %3120 to i1
  br i1 %3121, label %3122, label %3144

3122:                                             ; preds = %3115
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = call i32 @fileno(ptr noundef %3123) #9
  %3125 = call i32 @isatty(i32 noundef %3124) #9
  %3126 = icmp ne i32 %3125, 0
  br i1 %3126, label %3127, label %3144

3127:                                             ; preds = %3122
  %3128 = load i32, ptr %60, align 4, !tbaa !11
  %3129 = call ptr @__errno_location() #10
  store i32 %3128, ptr %3129, align 4, !tbaa !11
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = load i32, ptr @test_count, align 4, !tbaa !11
  %3132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3133 = load i32, ptr %3132, align 4, !tbaa !11
  %3134 = call ptr @s2n_strerror(i32 noundef %3133, ptr noundef @.str.52)
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !11
  %3137 = call ptr @s2n_strerror_debug(i32 noundef %3136, ptr noundef @.str.52)
  %3138 = call ptr @__errno_location() #10
  %3139 = load i32, ptr %3138, align 4, !tbaa !11
  %3140 = call ptr @strerror(i32 noundef %3139) #9
  %3141 = call ptr @__errno_location() #10
  %3142 = load i32, ptr %3141, align 4, !tbaa !11
  %3143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3130, ptr noundef @.str.49, i32 noundef %3131, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 196, ptr noundef %3134, ptr noundef %3137, ptr noundef %3140, i32 noundef %3142) #9
  br label %3161

3144:                                             ; preds = %3122, %3115
  %3145 = load i32, ptr %60, align 4, !tbaa !11
  %3146 = call ptr @__errno_location() #10
  store i32 %3145, ptr %3146, align 4, !tbaa !11
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = load i32, ptr @test_count, align 4, !tbaa !11
  %3149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3150 = load i32, ptr %3149, align 4, !tbaa !11
  %3151 = call ptr @s2n_strerror(i32 noundef %3150, ptr noundef @.str.52)
  %3152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3153 = load i32, ptr %3152, align 4, !tbaa !11
  %3154 = call ptr @s2n_strerror_debug(i32 noundef %3153, ptr noundef @.str.52)
  %3155 = call ptr @__errno_location() #10
  %3156 = load i32, ptr %3155, align 4, !tbaa !11
  %3157 = call ptr @strerror(i32 noundef %3156) #9
  %3158 = call ptr @__errno_location() #10
  %3159 = load i32, ptr %3158, align 4, !tbaa !11
  %3160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef @.str.53, i32 noundef %3148, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 196, ptr noundef %3151, ptr noundef %3154, ptr noundef %3157, i32 noundef %3159) #9
  br label %3161

3161:                                             ; preds = %3144, %3127
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162
  call void @exit(i32 noundef 1) #11
  unreachable

3164:                                             ; No predecessors!
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

3166:                                             ; preds = %3165, %3107
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

3168:                                             ; preds = %3167
  br label %3169

3169:                                             ; preds = %3168
  %3170 = load i32, ptr @test_count, align 4, !tbaa !11
  %3171 = add nsw i32 %3170, 1
  store i32 %3171, ptr @test_count, align 4, !tbaa !11
  %3172 = load ptr, ptr %4, align 8, !tbaa !9
  %3173 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3172)
  %3174 = icmp eq i32 %3173, 15
  br i1 %3174, label %3228, label %3175

3175:                                             ; preds = %3169
  br label %3176

3176:                                             ; preds = %3175
  br label %3177

3177:                                             ; preds = %3176
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %3178 = call ptr @__errno_location() #10
  %3179 = load i32, ptr %3178, align 4, !tbaa !11
  store i32 %3179, ptr %61, align 4, !tbaa !11
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = call i32 @s2n_print_stacktrace(ptr noundef %3180)
  %3182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3183 = trunc i8 %3182 to i1
  br i1 %3183, label %3184, label %3206

3184:                                             ; preds = %3177
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = call i32 @fileno(ptr noundef %3185) #9
  %3187 = call i32 @isatty(i32 noundef %3186) #9
  %3188 = icmp ne i32 %3187, 0
  br i1 %3188, label %3189, label %3206

3189:                                             ; preds = %3184
  %3190 = load i32, ptr %61, align 4, !tbaa !11
  %3191 = call ptr @__errno_location() #10
  store i32 %3190, ptr %3191, align 4, !tbaa !11
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = load i32, ptr @test_count, align 4, !tbaa !11
  %3194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3195 = load i32, ptr %3194, align 4, !tbaa !11
  %3196 = call ptr @s2n_strerror(i32 noundef %3195, ptr noundef @.str.52)
  %3197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3198 = load i32, ptr %3197, align 4, !tbaa !11
  %3199 = call ptr @s2n_strerror_debug(i32 noundef %3198, ptr noundef @.str.52)
  %3200 = call ptr @__errno_location() #10
  %3201 = load i32, ptr %3200, align 4, !tbaa !11
  %3202 = call ptr @strerror(i32 noundef %3201) #9
  %3203 = call ptr @__errno_location() #10
  %3204 = load i32, ptr %3203, align 4, !tbaa !11
  %3205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3192, ptr noundef @.str.49, i32 noundef %3193, ptr noundef @.str.114, ptr noundef @.str.51, i32 noundef 199, ptr noundef %3196, ptr noundef %3199, ptr noundef %3202, i32 noundef %3204) #9
  br label %3223

3206:                                             ; preds = %3184, %3177
  %3207 = load i32, ptr %61, align 4, !tbaa !11
  %3208 = call ptr @__errno_location() #10
  store i32 %3207, ptr %3208, align 4, !tbaa !11
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = load i32, ptr @test_count, align 4, !tbaa !11
  %3211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3212 = load i32, ptr %3211, align 4, !tbaa !11
  %3213 = call ptr @s2n_strerror(i32 noundef %3212, ptr noundef @.str.52)
  %3214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3215 = load i32, ptr %3214, align 4, !tbaa !11
  %3216 = call ptr @s2n_strerror_debug(i32 noundef %3215, ptr noundef @.str.52)
  %3217 = call ptr @__errno_location() #10
  %3218 = load i32, ptr %3217, align 4, !tbaa !11
  %3219 = call ptr @strerror(i32 noundef %3218) #9
  %3220 = call ptr @__errno_location() #10
  %3221 = load i32, ptr %3220, align 4, !tbaa !11
  %3222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3209, ptr noundef @.str.53, i32 noundef %3210, ptr noundef @.str.114, ptr noundef @.str.51, i32 noundef 199, ptr noundef %3213, ptr noundef %3216, ptr noundef %3219, i32 noundef %3221) #9
  br label %3223

3223:                                             ; preds = %3206, %3189
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %3224

3224:                                             ; preds = %3223
  br label %3225

3225:                                             ; preds = %3224
  call void @exit(i32 noundef 1) #11
  unreachable

3226:                                             ; No predecessors!
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227, %3169
  br label %3229

3229:                                             ; preds = %3228
  br label %3230

3230:                                             ; preds = %3229
  br label %3231

3231:                                             ; preds = %3230
  %3232 = load i32, ptr @test_count, align 4, !tbaa !11
  %3233 = add nsw i32 %3232, 1
  store i32 %3233, ptr @test_count, align 4, !tbaa !11
  %3234 = load ptr, ptr %4, align 8, !tbaa !9
  %3235 = call i32 @s2n_handshake_write_io(ptr noundef %3234)
  %3236 = icmp eq i32 %3235, -1
  br i1 %3236, label %3237, label %3290

3237:                                             ; preds = %3231
  br label %3238

3238:                                             ; preds = %3237
  br label %3239

3239:                                             ; preds = %3238
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %3240 = call ptr @__errno_location() #10
  %3241 = load i32, ptr %3240, align 4, !tbaa !11
  store i32 %3241, ptr %62, align 4, !tbaa !11
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @s2n_print_stacktrace(ptr noundef %3242)
  %3244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3245 = trunc i8 %3244 to i1
  br i1 %3245, label %3246, label %3268

3246:                                             ; preds = %3239
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @fileno(ptr noundef %3247) #9
  %3249 = call i32 @isatty(i32 noundef %3248) #9
  %3250 = icmp ne i32 %3249, 0
  br i1 %3250, label %3251, label %3268

3251:                                             ; preds = %3246
  %3252 = load i32, ptr %62, align 4, !tbaa !11
  %3253 = call ptr @__errno_location() #10
  store i32 %3252, ptr %3253, align 4, !tbaa !11
  %3254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3255 = load i32, ptr @test_count, align 4, !tbaa !11
  %3256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3257 = load i32, ptr %3256, align 4, !tbaa !11
  %3258 = call ptr @s2n_strerror(i32 noundef %3257, ptr noundef @.str.52)
  %3259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3260 = load i32, ptr %3259, align 4, !tbaa !11
  %3261 = call ptr @s2n_strerror_debug(i32 noundef %3260, ptr noundef @.str.52)
  %3262 = call ptr @__errno_location() #10
  %3263 = load i32, ptr %3262, align 4, !tbaa !11
  %3264 = call ptr @strerror(i32 noundef %3263) #9
  %3265 = call ptr @__errno_location() #10
  %3266 = load i32, ptr %3265, align 4, !tbaa !11
  %3267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3254, ptr noundef @.str.49, i32 noundef %3255, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 200, ptr noundef %3258, ptr noundef %3261, ptr noundef %3264, i32 noundef %3266) #9
  br label %3285

3268:                                             ; preds = %3246, %3239
  %3269 = load i32, ptr %62, align 4, !tbaa !11
  %3270 = call ptr @__errno_location() #10
  store i32 %3269, ptr %3270, align 4, !tbaa !11
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = load i32, ptr @test_count, align 4, !tbaa !11
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !11
  %3275 = call ptr @s2n_strerror(i32 noundef %3274, ptr noundef @.str.52)
  %3276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3277 = load i32, ptr %3276, align 4, !tbaa !11
  %3278 = call ptr @s2n_strerror_debug(i32 noundef %3277, ptr noundef @.str.52)
  %3279 = call ptr @__errno_location() #10
  %3280 = load i32, ptr %3279, align 4, !tbaa !11
  %3281 = call ptr @strerror(i32 noundef %3280) #9
  %3282 = call ptr @__errno_location() #10
  %3283 = load i32, ptr %3282, align 4, !tbaa !11
  %3284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3271, ptr noundef @.str.53, i32 noundef %3272, ptr noundef @.str.108, ptr noundef @.str.51, i32 noundef 200, ptr noundef %3275, ptr noundef %3278, ptr noundef %3281, i32 noundef %3283) #9
  br label %3285

3285:                                             ; preds = %3268, %3251
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  call void @exit(i32 noundef 1) #11
  unreachable

3288:                                             ; No predecessors!
  br label %3289

3289:                                             ; preds = %3288
  br label %3290

3290:                                             ; preds = %3289, %3231
  br label %3291

3291:                                             ; preds = %3290
  br label %3292

3292:                                             ; preds = %3291
  br label %3293

3293:                                             ; preds = %3292
  %3294 = load i32, ptr @test_count, align 4, !tbaa !11
  %3295 = add nsw i32 %3294, 1
  store i32 %3295, ptr @test_count, align 4, !tbaa !11
  %3296 = load ptr, ptr %3, align 8, !tbaa !9
  %3297 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3296)
  %3298 = icmp eq i32 %3297, 1
  br i1 %3298, label %3352, label %3299

3299:                                             ; preds = %3293
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

3301:                                             ; preds = %3300
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %3302 = call ptr @__errno_location() #10
  %3303 = load i32, ptr %3302, align 4, !tbaa !11
  store i32 %3303, ptr %63, align 4, !tbaa !11
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = call i32 @s2n_print_stacktrace(ptr noundef %3304)
  %3306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3307 = trunc i8 %3306 to i1
  br i1 %3307, label %3308, label %3330

3308:                                             ; preds = %3301
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = call i32 @fileno(ptr noundef %3309) #9
  %3311 = call i32 @isatty(i32 noundef %3310) #9
  %3312 = icmp ne i32 %3311, 0
  br i1 %3312, label %3313, label %3330

3313:                                             ; preds = %3308
  %3314 = load i32, ptr %63, align 4, !tbaa !11
  %3315 = call ptr @__errno_location() #10
  store i32 %3314, ptr %3315, align 4, !tbaa !11
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = load i32, ptr @test_count, align 4, !tbaa !11
  %3318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3319 = load i32, ptr %3318, align 4, !tbaa !11
  %3320 = call ptr @s2n_strerror(i32 noundef %3319, ptr noundef @.str.52)
  %3321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3322 = load i32, ptr %3321, align 4, !tbaa !11
  %3323 = call ptr @s2n_strerror_debug(i32 noundef %3322, ptr noundef @.str.52)
  %3324 = call ptr @__errno_location() #10
  %3325 = load i32, ptr %3324, align 4, !tbaa !11
  %3326 = call ptr @strerror(i32 noundef %3325) #9
  %3327 = call ptr @__errno_location() #10
  %3328 = load i32, ptr %3327, align 4, !tbaa !11
  %3329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3316, ptr noundef @.str.49, i32 noundef %3317, ptr noundef @.str.115, ptr noundef @.str.51, i32 noundef 203, ptr noundef %3320, ptr noundef %3323, ptr noundef %3326, i32 noundef %3328) #9
  br label %3347

3330:                                             ; preds = %3308, %3301
  %3331 = load i32, ptr %63, align 4, !tbaa !11
  %3332 = call ptr @__errno_location() #10
  store i32 %3331, ptr %3332, align 4, !tbaa !11
  %3333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3334 = load i32, ptr @test_count, align 4, !tbaa !11
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3336 = load i32, ptr %3335, align 4, !tbaa !11
  %3337 = call ptr @s2n_strerror(i32 noundef %3336, ptr noundef @.str.52)
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !11
  %3340 = call ptr @s2n_strerror_debug(i32 noundef %3339, ptr noundef @.str.52)
  %3341 = call ptr @__errno_location() #10
  %3342 = load i32, ptr %3341, align 4, !tbaa !11
  %3343 = call ptr @strerror(i32 noundef %3342) #9
  %3344 = call ptr @__errno_location() #10
  %3345 = load i32, ptr %3344, align 4, !tbaa !11
  %3346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3333, ptr noundef @.str.53, i32 noundef %3334, ptr noundef @.str.115, ptr noundef @.str.51, i32 noundef 203, ptr noundef %3337, ptr noundef %3340, ptr noundef %3343, i32 noundef %3345) #9
  br label %3347

3347:                                             ; preds = %3330, %3313
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348
  call void @exit(i32 noundef 1) #11
  unreachable

3350:                                             ; No predecessors!
  br label %3351

3351:                                             ; preds = %3350
  br label %3352

3352:                                             ; preds = %3351, %3293
  br label %3353

3353:                                             ; preds = %3352
  br label %3354

3354:                                             ; preds = %3353
  br label %3355

3355:                                             ; preds = %3354
  %3356 = load i32, ptr @test_count, align 4, !tbaa !11
  %3357 = add nsw i32 %3356, 1
  store i32 %3357, ptr @test_count, align 4, !tbaa !11
  %3358 = load ptr, ptr %3, align 8, !tbaa !9
  %3359 = call i32 @s2n_handshake_read_io(ptr noundef %3358)
  %3360 = icmp eq i32 %3359, -1
  br i1 %3360, label %3361, label %3414

3361:                                             ; preds = %3355
  br label %3362

3362:                                             ; preds = %3361
  br label %3363

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

3370:                                             ; preds = %3363
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = call i32 @fileno(ptr noundef %3371) #9
  %3373 = call i32 @isatty(i32 noundef %3372) #9
  %3374 = icmp ne i32 %3373, 0
  br i1 %3374, label %3375, label %3392

3375:                                             ; preds = %3370
  %3376 = load i32, ptr %64, align 4, !tbaa !11
  %3377 = call ptr @__errno_location() #10
  store i32 %3376, ptr %3377, align 4, !tbaa !11
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = load i32, ptr @test_count, align 4, !tbaa !11
  %3380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3381 = load i32, ptr %3380, align 4, !tbaa !11
  %3382 = call ptr @s2n_strerror(i32 noundef %3381, ptr noundef @.str.52)
  %3383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3384 = load i32, ptr %3383, align 4, !tbaa !11
  %3385 = call ptr @s2n_strerror_debug(i32 noundef %3384, ptr noundef @.str.52)
  %3386 = call ptr @__errno_location() #10
  %3387 = load i32, ptr %3386, align 4, !tbaa !11
  %3388 = call ptr @strerror(i32 noundef %3387) #9
  %3389 = call ptr @__errno_location() #10
  %3390 = load i32, ptr %3389, align 4, !tbaa !11
  %3391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3378, ptr noundef @.str.49, i32 noundef %3379, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 204, ptr noundef %3382, ptr noundef %3385, ptr noundef %3388, i32 noundef %3390) #9
  br label %3409

3392:                                             ; preds = %3370, %3363
  %3393 = load i32, ptr %64, align 4, !tbaa !11
  %3394 = call ptr @__errno_location() #10
  store i32 %3393, ptr %3394, align 4, !tbaa !11
  %3395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3396 = load i32, ptr @test_count, align 4, !tbaa !11
  %3397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3398 = load i32, ptr %3397, align 4, !tbaa !11
  %3399 = call ptr @s2n_strerror(i32 noundef %3398, ptr noundef @.str.52)
  %3400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3401 = load i32, ptr %3400, align 4, !tbaa !11
  %3402 = call ptr @s2n_strerror_debug(i32 noundef %3401, ptr noundef @.str.52)
  %3403 = call ptr @__errno_location() #10
  %3404 = load i32, ptr %3403, align 4, !tbaa !11
  %3405 = call ptr @strerror(i32 noundef %3404) #9
  %3406 = call ptr @__errno_location() #10
  %3407 = load i32, ptr %3406, align 4, !tbaa !11
  %3408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3395, ptr noundef @.str.53, i32 noundef %3396, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 204, ptr noundef %3399, ptr noundef %3402, ptr noundef %3405, i32 noundef %3407) #9
  br label %3409

3409:                                             ; preds = %3392, %3375
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %3410

3410:                                             ; preds = %3409
  br label %3411

3411:                                             ; preds = %3410
  call void @exit(i32 noundef 1) #11
  unreachable

3412:                                             ; No predecessors!
  br label %3413

3413:                                             ; preds = %3412
  br label %3414

3414:                                             ; preds = %3413, %3355
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415
  br label %3417

3417:                                             ; preds = %3416
  %3418 = load i32, ptr @test_count, align 4, !tbaa !11
  %3419 = add nsw i32 %3418, 1
  store i32 %3419, ptr @test_count, align 4, !tbaa !11
  %3420 = load ptr, ptr %3, align 8, !tbaa !9
  %3421 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3420)
  %3422 = icmp eq i32 %3421, 16
  br i1 %3422, label %3476, label %3423

3423:                                             ; preds = %3417
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

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

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

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

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

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

3472:                                             ; preds = %3471
  br label %3473

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

3474:                                             ; No predecessors!
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

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

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478
  %3480 = load i32, ptr @test_count, align 4, !tbaa !11
  %3481 = add nsw i32 %3480, 1
  store i32 %3481, ptr @test_count, align 4, !tbaa !11
  %3482 = load ptr, ptr %3, align 8, !tbaa !9
  %3483 = call i32 @s2n_handshake_read_io(ptr noundef %3482)
  %3484 = icmp eq i32 %3483, -1
  br i1 %3484, label %3485, label %3538

3485:                                             ; preds = %3479
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %3488 = call ptr @__errno_location() #10
  %3489 = load i32, ptr %3488, align 4, !tbaa !11
  store i32 %3489, ptr %66, align 4, !tbaa !11
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @s2n_print_stacktrace(ptr noundef %3490)
  %3492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3493 = trunc i8 %3492 to i1
  br i1 %3493, label %3494, label %3516

3494:                                             ; preds = %3487
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = call i32 @fileno(ptr noundef %3495) #9
  %3497 = call i32 @isatty(i32 noundef %3496) #9
  %3498 = icmp ne i32 %3497, 0
  br i1 %3498, label %3499, label %3516

3499:                                             ; preds = %3494
  %3500 = load i32, ptr %66, align 4, !tbaa !11
  %3501 = call ptr @__errno_location() #10
  store i32 %3500, ptr %3501, align 4, !tbaa !11
  %3502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3503 = load i32, ptr @test_count, align 4, !tbaa !11
  %3504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3505 = load i32, ptr %3504, align 4, !tbaa !11
  %3506 = call ptr @s2n_strerror(i32 noundef %3505, ptr noundef @.str.52)
  %3507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3508 = load i32, ptr %3507, align 4, !tbaa !11
  %3509 = call ptr @s2n_strerror_debug(i32 noundef %3508, ptr noundef @.str.52)
  %3510 = call ptr @__errno_location() #10
  %3511 = load i32, ptr %3510, align 4, !tbaa !11
  %3512 = call ptr @strerror(i32 noundef %3511) #9
  %3513 = call ptr @__errno_location() #10
  %3514 = load i32, ptr %3513, align 4, !tbaa !11
  %3515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3502, ptr noundef @.str.49, i32 noundef %3503, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 209, ptr noundef %3506, ptr noundef %3509, ptr noundef %3512, i32 noundef %3514) #9
  br label %3533

3516:                                             ; preds = %3494, %3487
  %3517 = load i32, ptr %66, align 4, !tbaa !11
  %3518 = call ptr @__errno_location() #10
  store i32 %3517, ptr %3518, align 4, !tbaa !11
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = load i32, ptr @test_count, align 4, !tbaa !11
  %3521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3522 = load i32, ptr %3521, align 4, !tbaa !11
  %3523 = call ptr @s2n_strerror(i32 noundef %3522, ptr noundef @.str.52)
  %3524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3525 = load i32, ptr %3524, align 4, !tbaa !11
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef @.str.52)
  %3527 = call ptr @__errno_location() #10
  %3528 = load i32, ptr %3527, align 4, !tbaa !11
  %3529 = call ptr @strerror(i32 noundef %3528) #9
  %3530 = call ptr @__errno_location() #10
  %3531 = load i32, ptr %3530, align 4, !tbaa !11
  %3532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3519, ptr noundef @.str.53, i32 noundef %3520, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 209, ptr noundef %3523, ptr noundef %3526, ptr noundef %3529, i32 noundef %3531) #9
  br label %3533

3533:                                             ; preds = %3516, %3499
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

3535:                                             ; preds = %3534
  call void @exit(i32 noundef 1) #11
  unreachable

3536:                                             ; No predecessors!
  br label %3537

3537:                                             ; preds = %3536
  br label %3538

3538:                                             ; preds = %3537, %3479
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

3541:                                             ; preds = %3540
  %3542 = load i32, ptr @test_count, align 4, !tbaa !11
  %3543 = add nsw i32 %3542, 1
  store i32 %3543, ptr @test_count, align 4, !tbaa !11
  %3544 = load ptr, ptr %3, align 8, !tbaa !9
  %3545 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3544)
  %3546 = icmp eq i32 %3545, 16
  br i1 %3546, label %3600, label %3547

3547:                                             ; preds = %3541
  br label %3548

3548:                                             ; preds = %3547
  br label %3549

3549:                                             ; preds = %3548
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %3550 = call ptr @__errno_location() #10
  %3551 = load i32, ptr %3550, align 4, !tbaa !11
  store i32 %3551, ptr %67, align 4, !tbaa !11
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = call i32 @s2n_print_stacktrace(ptr noundef %3552)
  %3554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3555 = trunc i8 %3554 to i1
  br i1 %3555, label %3556, label %3578

3556:                                             ; preds = %3549
  %3557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3558 = call i32 @fileno(ptr noundef %3557) #9
  %3559 = call i32 @isatty(i32 noundef %3558) #9
  %3560 = icmp ne i32 %3559, 0
  br i1 %3560, label %3561, label %3578

3561:                                             ; preds = %3556
  %3562 = load i32, ptr %67, align 4, !tbaa !11
  %3563 = call ptr @__errno_location() #10
  store i32 %3562, ptr %3563, align 4, !tbaa !11
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = load i32, ptr @test_count, align 4, !tbaa !11
  %3566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3567 = load i32, ptr %3566, align 4, !tbaa !11
  %3568 = call ptr @s2n_strerror(i32 noundef %3567, ptr noundef @.str.52)
  %3569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3570 = load i32, ptr %3569, align 4, !tbaa !11
  %3571 = call ptr @s2n_strerror_debug(i32 noundef %3570, ptr noundef @.str.52)
  %3572 = call ptr @__errno_location() #10
  %3573 = load i32, ptr %3572, align 4, !tbaa !11
  %3574 = call ptr @strerror(i32 noundef %3573) #9
  %3575 = call ptr @__errno_location() #10
  %3576 = load i32, ptr %3575, align 4, !tbaa !11
  %3577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3564, ptr noundef @.str.49, i32 noundef %3565, ptr noundef @.str.117, ptr noundef @.str.51, i32 noundef 212, ptr noundef %3568, ptr noundef %3571, ptr noundef %3574, i32 noundef %3576) #9
  br label %3595

3578:                                             ; preds = %3556, %3549
  %3579 = load i32, ptr %67, align 4, !tbaa !11
  %3580 = call ptr @__errno_location() #10
  store i32 %3579, ptr %3580, align 4, !tbaa !11
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = load i32, ptr @test_count, align 4, !tbaa !11
  %3583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3584 = load i32, ptr %3583, align 4, !tbaa !11
  %3585 = call ptr @s2n_strerror(i32 noundef %3584, ptr noundef @.str.52)
  %3586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3587 = load i32, ptr %3586, align 4, !tbaa !11
  %3588 = call ptr @s2n_strerror_debug(i32 noundef %3587, ptr noundef @.str.52)
  %3589 = call ptr @__errno_location() #10
  %3590 = load i32, ptr %3589, align 4, !tbaa !11
  %3591 = call ptr @strerror(i32 noundef %3590) #9
  %3592 = call ptr @__errno_location() #10
  %3593 = load i32, ptr %3592, align 4, !tbaa !11
  %3594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3581, ptr noundef @.str.53, i32 noundef %3582, ptr noundef @.str.117, ptr noundef @.str.51, i32 noundef 212, ptr noundef %3585, ptr noundef %3588, ptr noundef %3591, i32 noundef %3593) #9
  br label %3595

3595:                                             ; preds = %3578, %3561
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  call void @exit(i32 noundef 1) #11
  unreachable

3598:                                             ; No predecessors!
  br label %3599

3599:                                             ; preds = %3598
  br label %3600

3600:                                             ; preds = %3599, %3541
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

3603:                                             ; preds = %3602
  %3604 = load i32, ptr @test_count, align 4, !tbaa !11
  %3605 = add nsw i32 %3604, 1
  store i32 %3605, ptr @test_count, align 4, !tbaa !11
  %3606 = load ptr, ptr %3, align 8, !tbaa !9
  %3607 = call i32 @s2n_handshake_read_io(ptr noundef %3606)
  %3608 = icmp eq i32 %3607, -1
  br i1 %3608, label %3609, label %3662

3609:                                             ; preds = %3603
  br label %3610

3610:                                             ; preds = %3609
  br label %3611

3611:                                             ; preds = %3610
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %3612 = call ptr @__errno_location() #10
  %3613 = load i32, ptr %3612, align 4, !tbaa !11
  store i32 %3613, ptr %68, align 4, !tbaa !11
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = call i32 @s2n_print_stacktrace(ptr noundef %3614)
  %3616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3617 = trunc i8 %3616 to i1
  br i1 %3617, label %3618, label %3640

3618:                                             ; preds = %3611
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = call i32 @fileno(ptr noundef %3619) #9
  %3621 = call i32 @isatty(i32 noundef %3620) #9
  %3622 = icmp ne i32 %3621, 0
  br i1 %3622, label %3623, label %3640

3623:                                             ; preds = %3618
  %3624 = load i32, ptr %68, align 4, !tbaa !11
  %3625 = call ptr @__errno_location() #10
  store i32 %3624, ptr %3625, align 4, !tbaa !11
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = load i32, ptr @test_count, align 4, !tbaa !11
  %3628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3629 = load i32, ptr %3628, align 4, !tbaa !11
  %3630 = call ptr @s2n_strerror(i32 noundef %3629, ptr noundef @.str.52)
  %3631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3632 = load i32, ptr %3631, align 4, !tbaa !11
  %3633 = call ptr @s2n_strerror_debug(i32 noundef %3632, ptr noundef @.str.52)
  %3634 = call ptr @__errno_location() #10
  %3635 = load i32, ptr %3634, align 4, !tbaa !11
  %3636 = call ptr @strerror(i32 noundef %3635) #9
  %3637 = call ptr @__errno_location() #10
  %3638 = load i32, ptr %3637, align 4, !tbaa !11
  %3639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3626, ptr noundef @.str.49, i32 noundef %3627, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 213, ptr noundef %3630, ptr noundef %3633, ptr noundef %3636, i32 noundef %3638) #9
  br label %3657

3640:                                             ; preds = %3618, %3611
  %3641 = load i32, ptr %68, align 4, !tbaa !11
  %3642 = call ptr @__errno_location() #10
  store i32 %3641, ptr %3642, align 4, !tbaa !11
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = load i32, ptr @test_count, align 4, !tbaa !11
  %3645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3646 = load i32, ptr %3645, align 4, !tbaa !11
  %3647 = call ptr @s2n_strerror(i32 noundef %3646, ptr noundef @.str.52)
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !11
  %3650 = call ptr @s2n_strerror_debug(i32 noundef %3649, ptr noundef @.str.52)
  %3651 = call ptr @__errno_location() #10
  %3652 = load i32, ptr %3651, align 4, !tbaa !11
  %3653 = call ptr @strerror(i32 noundef %3652) #9
  %3654 = call ptr @__errno_location() #10
  %3655 = load i32, ptr %3654, align 4, !tbaa !11
  %3656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3643, ptr noundef @.str.53, i32 noundef %3644, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 213, ptr noundef %3647, ptr noundef %3650, ptr noundef %3653, i32 noundef %3655) #9
  br label %3657

3657:                                             ; preds = %3640, %3623
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3658

3658:                                             ; preds = %3657
  br label %3659

3659:                                             ; preds = %3658
  call void @exit(i32 noundef 1) #11
  unreachable

3660:                                             ; No predecessors!
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661, %3603
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

3664:                                             ; preds = %3663
  %3665 = load i8, ptr %2, align 1, !tbaa !5, !range !13, !noundef !14
  %3666 = trunc i8 %3665 to i1
  br i1 %3666, label %3667, label %3730

3667:                                             ; preds = %3664
  br label %3668

3668:                                             ; preds = %3667
  %3669 = load i32, ptr @test_count, align 4, !tbaa !11
  %3670 = add nsw i32 %3669, 1
  store i32 %3670, ptr @test_count, align 4, !tbaa !11
  %3671 = load ptr, ptr %3, align 8, !tbaa !9
  %3672 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3671)
  %3673 = icmp eq i32 %3672, 2
  br i1 %3673, label %3727, label %3674

3674:                                             ; preds = %3668
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3677 = call ptr @__errno_location() #10
  %3678 = load i32, ptr %3677, align 4, !tbaa !11
  store i32 %3678, ptr %69, align 4, !tbaa !11
  %3679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3680 = call i32 @s2n_print_stacktrace(ptr noundef %3679)
  %3681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3682 = trunc i8 %3681 to i1
  br i1 %3682, label %3683, label %3705

3683:                                             ; preds = %3676
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = call i32 @fileno(ptr noundef %3684) #9
  %3686 = call i32 @isatty(i32 noundef %3685) #9
  %3687 = icmp ne i32 %3686, 0
  br i1 %3687, label %3688, label %3705

3688:                                             ; preds = %3683
  %3689 = load i32, ptr %69, align 4, !tbaa !11
  %3690 = call ptr @__errno_location() #10
  store i32 %3689, ptr %3690, align 4, !tbaa !11
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = load i32, ptr @test_count, align 4, !tbaa !11
  %3693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3694 = load i32, ptr %3693, align 4, !tbaa !11
  %3695 = call ptr @s2n_strerror(i32 noundef %3694, ptr noundef @.str.52)
  %3696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3697 = load i32, ptr %3696, align 4, !tbaa !11
  %3698 = call ptr @s2n_strerror_debug(i32 noundef %3697, ptr noundef @.str.52)
  %3699 = call ptr @__errno_location() #10
  %3700 = load i32, ptr %3699, align 4, !tbaa !11
  %3701 = call ptr @strerror(i32 noundef %3700) #9
  %3702 = call ptr @__errno_location() #10
  %3703 = load i32, ptr %3702, align 4, !tbaa !11
  %3704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3691, ptr noundef @.str.49, i32 noundef %3692, ptr noundef @.str.118, ptr noundef @.str.51, i32 noundef 217, ptr noundef %3695, ptr noundef %3698, ptr noundef %3701, i32 noundef %3703) #9
  br label %3722

3705:                                             ; preds = %3683, %3676
  %3706 = load i32, ptr %69, align 4, !tbaa !11
  %3707 = call ptr @__errno_location() #10
  store i32 %3706, ptr %3707, align 4, !tbaa !11
  %3708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3709 = load i32, ptr @test_count, align 4, !tbaa !11
  %3710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3711 = load i32, ptr %3710, align 4, !tbaa !11
  %3712 = call ptr @s2n_strerror(i32 noundef %3711, ptr noundef @.str.52)
  %3713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3714 = load i32, ptr %3713, align 4, !tbaa !11
  %3715 = call ptr @s2n_strerror_debug(i32 noundef %3714, ptr noundef @.str.52)
  %3716 = call ptr @__errno_location() #10
  %3717 = load i32, ptr %3716, align 4, !tbaa !11
  %3718 = call ptr @strerror(i32 noundef %3717) #9
  %3719 = call ptr @__errno_location() #10
  %3720 = load i32, ptr %3719, align 4, !tbaa !11
  %3721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3708, ptr noundef @.str.53, i32 noundef %3709, ptr noundef @.str.118, ptr noundef @.str.51, i32 noundef 217, ptr noundef %3712, ptr noundef %3715, ptr noundef %3718, i32 noundef %3720) #9
  br label %3722

3722:                                             ; preds = %3705, %3688
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3723

3723:                                             ; preds = %3722
  br label %3724

3724:                                             ; preds = %3723
  call void @exit(i32 noundef 1) #11
  unreachable

3725:                                             ; No predecessors!
  br label %3726

3726:                                             ; preds = %3725
  br label %3727

3727:                                             ; preds = %3726, %3668
  br label %3728

3728:                                             ; preds = %3727
  br label %3729

3729:                                             ; preds = %3728
  br label %3793

3730:                                             ; preds = %3664
  br label %3731

3731:                                             ; preds = %3730
  %3732 = load i32, ptr @test_count, align 4, !tbaa !11
  %3733 = add nsw i32 %3732, 1
  store i32 %3733, ptr @test_count, align 4, !tbaa !11
  %3734 = load ptr, ptr %3, align 8, !tbaa !9
  %3735 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3734)
  %3736 = icmp eq i32 %3735, 6
  br i1 %3736, label %3790, label %3737

3737:                                             ; preds = %3731
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

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

3746:                                             ; preds = %3739
  %3747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3748 = call i32 @fileno(ptr noundef %3747) #9
  %3749 = call i32 @isatty(i32 noundef %3748) #9
  %3750 = icmp ne i32 %3749, 0
  br i1 %3750, label %3751, label %3768

3751:                                             ; preds = %3746
  %3752 = load i32, ptr %70, align 4, !tbaa !11
  %3753 = call ptr @__errno_location() #10
  store i32 %3752, ptr %3753, align 4, !tbaa !11
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = load i32, ptr @test_count, align 4, !tbaa !11
  %3756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3757 = load i32, ptr %3756, align 4, !tbaa !11
  %3758 = call ptr @s2n_strerror(i32 noundef %3757, ptr noundef @.str.52)
  %3759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3760 = load i32, ptr %3759, align 4, !tbaa !11
  %3761 = call ptr @s2n_strerror_debug(i32 noundef %3760, ptr noundef @.str.52)
  %3762 = call ptr @__errno_location() #10
  %3763 = load i32, ptr %3762, align 4, !tbaa !11
  %3764 = call ptr @strerror(i32 noundef %3763) #9
  %3765 = call ptr @__errno_location() #10
  %3766 = load i32, ptr %3765, align 4, !tbaa !11
  %3767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3754, ptr noundef @.str.49, i32 noundef %3755, ptr noundef @.str.119, ptr noundef @.str.51, i32 noundef 219, ptr noundef %3758, ptr noundef %3761, ptr noundef %3764, i32 noundef %3766) #9
  br label %3785

3768:                                             ; preds = %3746, %3739
  %3769 = load i32, ptr %70, align 4, !tbaa !11
  %3770 = call ptr @__errno_location() #10
  store i32 %3769, ptr %3770, align 4, !tbaa !11
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = load i32, ptr @test_count, align 4, !tbaa !11
  %3773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3774 = load i32, ptr %3773, align 4, !tbaa !11
  %3775 = call ptr @s2n_strerror(i32 noundef %3774, ptr noundef @.str.52)
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3777 = load i32, ptr %3776, align 4, !tbaa !11
  %3778 = call ptr @s2n_strerror_debug(i32 noundef %3777, ptr noundef @.str.52)
  %3779 = call ptr @__errno_location() #10
  %3780 = load i32, ptr %3779, align 4, !tbaa !11
  %3781 = call ptr @strerror(i32 noundef %3780) #9
  %3782 = call ptr @__errno_location() #10
  %3783 = load i32, ptr %3782, align 4, !tbaa !11
  %3784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3771, ptr noundef @.str.53, i32 noundef %3772, ptr noundef @.str.119, ptr noundef @.str.51, i32 noundef 219, ptr noundef %3775, ptr noundef %3778, ptr noundef %3781, i32 noundef %3783) #9
  br label %3785

3785:                                             ; preds = %3768, %3751
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3786

3786:                                             ; preds = %3785
  br label %3787

3787:                                             ; preds = %3786
  call void @exit(i32 noundef 1) #11
  unreachable

3788:                                             ; No predecessors!
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

3790:                                             ; preds = %3789, %3731
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

3792:                                             ; preds = %3791
  br label %3793

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

3794:                                             ; preds = %3793
  %3795 = load i32, ptr @test_count, align 4, !tbaa !11
  %3796 = add nsw i32 %3795, 1
  store i32 %3796, ptr @test_count, align 4, !tbaa !11
  %3797 = load ptr, ptr %3, align 8, !tbaa !9
  %3798 = call i32 @s2n_handshake_read_io(ptr noundef %3797)
  %3799 = icmp eq i32 %3798, -1
  br i1 %3799, label %3800, label %3853

3800:                                             ; preds = %3794
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

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

3809:                                             ; preds = %3802
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = call i32 @fileno(ptr noundef %3810) #9
  %3812 = call i32 @isatty(i32 noundef %3811) #9
  %3813 = icmp ne i32 %3812, 0
  br i1 %3813, label %3814, label %3831

3814:                                             ; preds = %3809
  %3815 = load i32, ptr %71, align 4, !tbaa !11
  %3816 = call ptr @__errno_location() #10
  store i32 %3815, ptr %3816, align 4, !tbaa !11
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = load i32, ptr @test_count, align 4, !tbaa !11
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !11
  %3821 = call ptr @s2n_strerror(i32 noundef %3820, ptr noundef @.str.52)
  %3822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3823 = load i32, ptr %3822, align 4, !tbaa !11
  %3824 = call ptr @s2n_strerror_debug(i32 noundef %3823, ptr noundef @.str.52)
  %3825 = call ptr @__errno_location() #10
  %3826 = load i32, ptr %3825, align 4, !tbaa !11
  %3827 = call ptr @strerror(i32 noundef %3826) #9
  %3828 = call ptr @__errno_location() #10
  %3829 = load i32, ptr %3828, align 4, !tbaa !11
  %3830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3817, ptr noundef @.str.49, i32 noundef %3818, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 221, ptr noundef %3821, ptr noundef %3824, ptr noundef %3827, i32 noundef %3829) #9
  br label %3848

3831:                                             ; preds = %3809, %3802
  %3832 = load i32, ptr %71, align 4, !tbaa !11
  %3833 = call ptr @__errno_location() #10
  store i32 %3832, ptr %3833, align 4, !tbaa !11
  %3834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3835 = load i32, ptr @test_count, align 4, !tbaa !11
  %3836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3837 = load i32, ptr %3836, align 4, !tbaa !11
  %3838 = call ptr @s2n_strerror(i32 noundef %3837, ptr noundef @.str.52)
  %3839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3840 = load i32, ptr %3839, align 4, !tbaa !11
  %3841 = call ptr @s2n_strerror_debug(i32 noundef %3840, ptr noundef @.str.52)
  %3842 = call ptr @__errno_location() #10
  %3843 = load i32, ptr %3842, align 4, !tbaa !11
  %3844 = call ptr @strerror(i32 noundef %3843) #9
  %3845 = call ptr @__errno_location() #10
  %3846 = load i32, ptr %3845, align 4, !tbaa !11
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3834, ptr noundef @.str.53, i32 noundef %3835, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 221, ptr noundef %3838, ptr noundef %3841, ptr noundef %3844, i32 noundef %3846) #9
  br label %3848

3848:                                             ; preds = %3831, %3814
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849
  call void @exit(i32 noundef 1) #11
  unreachable

3851:                                             ; No predecessors!
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

3853:                                             ; preds = %3852, %3794
  br label %3854

3854:                                             ; preds = %3853
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

3856:                                             ; preds = %3855
  %3857 = load i32, ptr @test_count, align 4, !tbaa !11
  %3858 = add nsw i32 %3857, 1
  store i32 %3858, ptr @test_count, align 4, !tbaa !11
  %3859 = load ptr, ptr %3, align 8, !tbaa !9
  %3860 = getelementptr inbounds %struct.s2n_connection, ptr %3859, i32 0, i32 52
  %3861 = getelementptr inbounds %struct.s2n_handshake, ptr %3860, i32 0, i32 6
  %3862 = load i32, ptr %3861, align 4, !tbaa !43
  %3863 = icmp eq i32 %3862, 39
  br i1 %3863, label %3917, label %3864

3864:                                             ; preds = %3856
  br label %3865

3865:                                             ; preds = %3864
  br label %3866

3866:                                             ; preds = %3865
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3867 = call ptr @__errno_location() #10
  %3868 = load i32, ptr %3867, align 4, !tbaa !11
  store i32 %3868, ptr %72, align 4, !tbaa !11
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = call i32 @s2n_print_stacktrace(ptr noundef %3869)
  %3871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3872 = trunc i8 %3871 to i1
  br i1 %3872, label %3873, label %3895

3873:                                             ; preds = %3866
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = call i32 @fileno(ptr noundef %3874) #9
  %3876 = call i32 @isatty(i32 noundef %3875) #9
  %3877 = icmp ne i32 %3876, 0
  br i1 %3877, label %3878, label %3895

3878:                                             ; preds = %3873
  %3879 = load i32, ptr %72, align 4, !tbaa !11
  %3880 = call ptr @__errno_location() #10
  store i32 %3879, ptr %3880, align 4, !tbaa !11
  %3881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3882 = load i32, ptr @test_count, align 4, !tbaa !11
  %3883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3884 = load i32, ptr %3883, align 4, !tbaa !11
  %3885 = call ptr @s2n_strerror(i32 noundef %3884, ptr noundef @.str.52)
  %3886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3887 = load i32, ptr %3886, align 4, !tbaa !11
  %3888 = call ptr @s2n_strerror_debug(i32 noundef %3887, ptr noundef @.str.52)
  %3889 = call ptr @__errno_location() #10
  %3890 = load i32, ptr %3889, align 4, !tbaa !11
  %3891 = call ptr @strerror(i32 noundef %3890) #9
  %3892 = call ptr @__errno_location() #10
  %3893 = load i32, ptr %3892, align 4, !tbaa !11
  %3894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3881, ptr noundef @.str.49, i32 noundef %3882, ptr noundef @.str.120, ptr noundef @.str.51, i32 noundef 223, ptr noundef %3885, ptr noundef %3888, ptr noundef %3891, i32 noundef %3893) #9
  br label %3912

3895:                                             ; preds = %3873, %3866
  %3896 = load i32, ptr %72, align 4, !tbaa !11
  %3897 = call ptr @__errno_location() #10
  store i32 %3896, ptr %3897, align 4, !tbaa !11
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = load i32, ptr @test_count, align 4, !tbaa !11
  %3900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3901 = load i32, ptr %3900, align 4, !tbaa !11
  %3902 = call ptr @s2n_strerror(i32 noundef %3901, ptr noundef @.str.52)
  %3903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3904 = load i32, ptr %3903, align 4, !tbaa !11
  %3905 = call ptr @s2n_strerror_debug(i32 noundef %3904, ptr noundef @.str.52)
  %3906 = call ptr @__errno_location() #10
  %3907 = load i32, ptr %3906, align 4, !tbaa !11
  %3908 = call ptr @strerror(i32 noundef %3907) #9
  %3909 = call ptr @__errno_location() #10
  %3910 = load i32, ptr %3909, align 4, !tbaa !11
  %3911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3898, ptr noundef @.str.53, i32 noundef %3899, ptr noundef @.str.120, ptr noundef @.str.51, i32 noundef 223, ptr noundef %3902, ptr noundef %3905, ptr noundef %3908, i32 noundef %3910) #9
  br label %3912

3912:                                             ; preds = %3895, %3878
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3913

3913:                                             ; preds = %3912
  br label %3914

3914:                                             ; preds = %3913
  call void @exit(i32 noundef 1) #11
  unreachable

3915:                                             ; No predecessors!
  br label %3916

3916:                                             ; preds = %3915
  br label %3917

3917:                                             ; preds = %3916, %3856
  br label %3918

3918:                                             ; preds = %3917
  br label %3919

3919:                                             ; preds = %3918
  br label %3920

3920:                                             ; preds = %3919
  %3921 = load i32, ptr @test_count, align 4, !tbaa !11
  %3922 = add nsw i32 %3921, 1
  store i32 %3922, ptr @test_count, align 4, !tbaa !11
  %3923 = load ptr, ptr %3, align 8, !tbaa !9
  %3924 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3923)
  %3925 = icmp eq i32 %3924, 2
  br i1 %3925, label %3979, label %3926

3926:                                             ; preds = %3920
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3929 = call ptr @__errno_location() #10
  %3930 = load i32, ptr %3929, align 4, !tbaa !11
  store i32 %3930, ptr %73, align 4, !tbaa !11
  %3931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3932 = call i32 @s2n_print_stacktrace(ptr noundef %3931)
  %3933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %3934 = trunc i8 %3933 to i1
  br i1 %3934, label %3935, label %3957

3935:                                             ; preds = %3928
  %3936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3937 = call i32 @fileno(ptr noundef %3936) #9
  %3938 = call i32 @isatty(i32 noundef %3937) #9
  %3939 = icmp ne i32 %3938, 0
  br i1 %3939, label %3940, label %3957

3940:                                             ; preds = %3935
  %3941 = load i32, ptr %73, align 4, !tbaa !11
  %3942 = call ptr @__errno_location() #10
  store i32 %3941, ptr %3942, align 4, !tbaa !11
  %3943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3944 = load i32, ptr @test_count, align 4, !tbaa !11
  %3945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3946 = load i32, ptr %3945, align 4, !tbaa !11
  %3947 = call ptr @s2n_strerror(i32 noundef %3946, ptr noundef @.str.52)
  %3948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3949 = load i32, ptr %3948, align 4, !tbaa !11
  %3950 = call ptr @s2n_strerror_debug(i32 noundef %3949, ptr noundef @.str.52)
  %3951 = call ptr @__errno_location() #10
  %3952 = load i32, ptr %3951, align 4, !tbaa !11
  %3953 = call ptr @strerror(i32 noundef %3952) #9
  %3954 = call ptr @__errno_location() #10
  %3955 = load i32, ptr %3954, align 4, !tbaa !11
  %3956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3943, ptr noundef @.str.49, i32 noundef %3944, ptr noundef @.str.118, ptr noundef @.str.51, i32 noundef 226, ptr noundef %3947, ptr noundef %3950, ptr noundef %3953, i32 noundef %3955) #9
  br label %3974

3957:                                             ; preds = %3935, %3928
  %3958 = load i32, ptr %73, align 4, !tbaa !11
  %3959 = call ptr @__errno_location() #10
  store i32 %3958, ptr %3959, align 4, !tbaa !11
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = load i32, ptr @test_count, align 4, !tbaa !11
  %3962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3963 = load i32, ptr %3962, align 4, !tbaa !11
  %3964 = call ptr @s2n_strerror(i32 noundef %3963, ptr noundef @.str.52)
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !11
  %3967 = call ptr @s2n_strerror_debug(i32 noundef %3966, ptr noundef @.str.52)
  %3968 = call ptr @__errno_location() #10
  %3969 = load i32, ptr %3968, align 4, !tbaa !11
  %3970 = call ptr @strerror(i32 noundef %3969) #9
  %3971 = call ptr @__errno_location() #10
  %3972 = load i32, ptr %3971, align 4, !tbaa !11
  %3973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef @.str.53, i32 noundef %3961, ptr noundef @.str.118, ptr noundef @.str.51, i32 noundef 226, ptr noundef %3964, ptr noundef %3967, ptr noundef %3970, i32 noundef %3972) #9
  br label %3974

3974:                                             ; preds = %3957, %3940
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  call void @exit(i32 noundef 1) #11
  unreachable

3977:                                             ; No predecessors!
  br label %3978

3978:                                             ; preds = %3977
  br label %3979

3979:                                             ; preds = %3978, %3920
  br label %3980

3980:                                             ; preds = %3979
  br label %3981

3981:                                             ; preds = %3980
  br label %3982

3982:                                             ; preds = %3981
  %3983 = load i32, ptr @test_count, align 4, !tbaa !11
  %3984 = add nsw i32 %3983, 1
  store i32 %3984, ptr @test_count, align 4, !tbaa !11
  %3985 = load ptr, ptr %3, align 8, !tbaa !9
  %3986 = call i32 @s2n_handshake_read_io(ptr noundef %3985)
  %3987 = icmp eq i32 %3986, -1
  br i1 %3987, label %3988, label %4041

3988:                                             ; preds = %3982
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

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

3997:                                             ; preds = %3990
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = call i32 @fileno(ptr noundef %3998) #9
  %4000 = call i32 @isatty(i32 noundef %3999) #9
  %4001 = icmp ne i32 %4000, 0
  br i1 %4001, label %4002, label %4019

4002:                                             ; preds = %3997
  %4003 = load i32, ptr %74, align 4, !tbaa !11
  %4004 = call ptr @__errno_location() #10
  store i32 %4003, ptr %4004, align 4, !tbaa !11
  %4005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4006 = load i32, ptr @test_count, align 4, !tbaa !11
  %4007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4008 = load i32, ptr %4007, align 4, !tbaa !11
  %4009 = call ptr @s2n_strerror(i32 noundef %4008, ptr noundef @.str.52)
  %4010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4011 = load i32, ptr %4010, align 4, !tbaa !11
  %4012 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef @.str.52)
  %4013 = call ptr @__errno_location() #10
  %4014 = load i32, ptr %4013, align 4, !tbaa !11
  %4015 = call ptr @strerror(i32 noundef %4014) #9
  %4016 = call ptr @__errno_location() #10
  %4017 = load i32, ptr %4016, align 4, !tbaa !11
  %4018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4005, ptr noundef @.str.49, i32 noundef %4006, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 227, ptr noundef %4009, ptr noundef %4012, ptr noundef %4015, i32 noundef %4017) #9
  br label %4036

4019:                                             ; preds = %3997, %3990
  %4020 = load i32, ptr %74, align 4, !tbaa !11
  %4021 = call ptr @__errno_location() #10
  store i32 %4020, ptr %4021, align 4, !tbaa !11
  %4022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4023 = load i32, ptr @test_count, align 4, !tbaa !11
  %4024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4025 = load i32, ptr %4024, align 4, !tbaa !11
  %4026 = call ptr @s2n_strerror(i32 noundef %4025, ptr noundef @.str.52)
  %4027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4028 = load i32, ptr %4027, align 4, !tbaa !11
  %4029 = call ptr @s2n_strerror_debug(i32 noundef %4028, ptr noundef @.str.52)
  %4030 = call ptr @__errno_location() #10
  %4031 = load i32, ptr %4030, align 4, !tbaa !11
  %4032 = call ptr @strerror(i32 noundef %4031) #9
  %4033 = call ptr @__errno_location() #10
  %4034 = load i32, ptr %4033, align 4, !tbaa !11
  %4035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4022, ptr noundef @.str.53, i32 noundef %4023, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 227, ptr noundef %4026, ptr noundef %4029, ptr noundef %4032, i32 noundef %4034) #9
  br label %4036

4036:                                             ; preds = %4019, %4002
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %4037

4037:                                             ; preds = %4036
  br label %4038

4038:                                             ; preds = %4037
  call void @exit(i32 noundef 1) #11
  unreachable

4039:                                             ; No predecessors!
  br label %4040

4040:                                             ; preds = %4039
  br label %4041

4041:                                             ; preds = %4040, %3982
  br label %4042

4042:                                             ; preds = %4041
  br label %4043

4043:                                             ; preds = %4042
  br label %4044

4044:                                             ; preds = %4043
  %4045 = load i32, ptr @test_count, align 4, !tbaa !11
  %4046 = add nsw i32 %4045, 1
  store i32 %4046, ptr @test_count, align 4, !tbaa !11
  %4047 = load ptr, ptr %3, align 8, !tbaa !9
  %4048 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4047)
  %4049 = icmp eq i32 %4048, 17
  br i1 %4049, label %4103, label %4050

4050:                                             ; preds = %4044
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

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

4059:                                             ; preds = %4052
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = call i32 @fileno(ptr noundef %4060) #9
  %4062 = call i32 @isatty(i32 noundef %4061) #9
  %4063 = icmp ne i32 %4062, 0
  br i1 %4063, label %4064, label %4081

4064:                                             ; preds = %4059
  %4065 = load i32, ptr %75, align 4, !tbaa !11
  %4066 = call ptr @__errno_location() #10
  store i32 %4065, ptr %4066, align 4, !tbaa !11
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = load i32, ptr @test_count, align 4, !tbaa !11
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !11
  %4071 = call ptr @s2n_strerror(i32 noundef %4070, ptr noundef @.str.52)
  %4072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4073 = load i32, ptr %4072, align 4, !tbaa !11
  %4074 = call ptr @s2n_strerror_debug(i32 noundef %4073, ptr noundef @.str.52)
  %4075 = call ptr @__errno_location() #10
  %4076 = load i32, ptr %4075, align 4, !tbaa !11
  %4077 = call ptr @strerror(i32 noundef %4076) #9
  %4078 = call ptr @__errno_location() #10
  %4079 = load i32, ptr %4078, align 4, !tbaa !11
  %4080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4067, ptr noundef @.str.49, i32 noundef %4068, ptr noundef @.str.121, ptr noundef @.str.51, i32 noundef 230, ptr noundef %4071, ptr noundef %4074, ptr noundef %4077, i32 noundef %4079) #9
  br label %4098

4081:                                             ; preds = %4059, %4052
  %4082 = load i32, ptr %75, align 4, !tbaa !11
  %4083 = call ptr @__errno_location() #10
  store i32 %4082, ptr %4083, align 4, !tbaa !11
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = load i32, ptr @test_count, align 4, !tbaa !11
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !11
  %4088 = call ptr @s2n_strerror(i32 noundef %4087, ptr noundef @.str.52)
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !11
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef @.str.52)
  %4092 = call ptr @__errno_location() #10
  %4093 = load i32, ptr %4092, align 4, !tbaa !11
  %4094 = call ptr @strerror(i32 noundef %4093) #9
  %4095 = call ptr @__errno_location() #10
  %4096 = load i32, ptr %4095, align 4, !tbaa !11
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef @.str.53, i32 noundef %4085, ptr noundef @.str.121, ptr noundef @.str.51, i32 noundef 230, ptr noundef %4088, ptr noundef %4091, ptr noundef %4094, i32 noundef %4096) #9
  br label %4098

4098:                                             ; preds = %4081, %4064
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099
  call void @exit(i32 noundef 1) #11
  unreachable

4101:                                             ; No predecessors!
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

4103:                                             ; preds = %4102, %4044
  br label %4104

4104:                                             ; preds = %4103
  br label %4105

4105:                                             ; preds = %4104
  br label %4106

4106:                                             ; preds = %4105
  %4107 = load i32, ptr @test_count, align 4, !tbaa !11
  %4108 = add nsw i32 %4107, 1
  store i32 %4108, ptr @test_count, align 4, !tbaa !11
  %4109 = load ptr, ptr %3, align 8, !tbaa !9
  %4110 = call i32 @s2n_handshake_read_io(ptr noundef %4109)
  %4111 = icmp eq i32 %4110, -1
  br i1 %4111, label %4112, label %4165

4112:                                             ; preds = %4106
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

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

4121:                                             ; preds = %4114
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = call i32 @fileno(ptr noundef %4122) #9
  %4124 = call i32 @isatty(i32 noundef %4123) #9
  %4125 = icmp ne i32 %4124, 0
  br i1 %4125, label %4126, label %4143

4126:                                             ; preds = %4121
  %4127 = load i32, ptr %76, align 4, !tbaa !11
  %4128 = call ptr @__errno_location() #10
  store i32 %4127, ptr %4128, align 4, !tbaa !11
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !11
  %4131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4132 = load i32, ptr %4131, align 4, !tbaa !11
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef @.str.52)
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !11
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef @.str.52)
  %4137 = call ptr @__errno_location() #10
  %4138 = load i32, ptr %4137, align 4, !tbaa !11
  %4139 = call ptr @strerror(i32 noundef %4138) #9
  %4140 = call ptr @__errno_location() #10
  %4141 = load i32, ptr %4140, align 4, !tbaa !11
  %4142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef @.str.49, i32 noundef %4130, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 231, ptr noundef %4133, ptr noundef %4136, ptr noundef %4139, i32 noundef %4141) #9
  br label %4160

4143:                                             ; preds = %4121, %4114
  %4144 = load i32, ptr %76, align 4, !tbaa !11
  %4145 = call ptr @__errno_location() #10
  store i32 %4144, ptr %4145, align 4, !tbaa !11
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = load i32, ptr @test_count, align 4, !tbaa !11
  %4148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4149 = load i32, ptr %4148, align 4, !tbaa !11
  %4150 = call ptr @s2n_strerror(i32 noundef %4149, ptr noundef @.str.52)
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !11
  %4153 = call ptr @s2n_strerror_debug(i32 noundef %4152, ptr noundef @.str.52)
  %4154 = call ptr @__errno_location() #10
  %4155 = load i32, ptr %4154, align 4, !tbaa !11
  %4156 = call ptr @strerror(i32 noundef %4155) #9
  %4157 = call ptr @__errno_location() #10
  %4158 = load i32, ptr %4157, align 4, !tbaa !11
  %4159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4146, ptr noundef @.str.53, i32 noundef %4147, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 231, ptr noundef %4150, ptr noundef %4153, ptr noundef %4156, i32 noundef %4158) #9
  br label %4160

4160:                                             ; preds = %4143, %4126
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

4162:                                             ; preds = %4161
  call void @exit(i32 noundef 1) #11
  unreachable

4163:                                             ; No predecessors!
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

4165:                                             ; preds = %4164, %4106
  br label %4166

4166:                                             ; preds = %4165
  br label %4167

4167:                                             ; preds = %4166
  br label %4168

4168:                                             ; preds = %4167
  %4169 = load i32, ptr @test_count, align 4, !tbaa !11
  %4170 = add nsw i32 %4169, 1
  store i32 %4170, ptr @test_count, align 4, !tbaa !11
  %4171 = load ptr, ptr %3, align 8, !tbaa !9
  %4172 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4171)
  %4173 = icmp eq i32 %4172, 15
  br i1 %4173, label %4227, label %4174

4174:                                             ; preds = %4168
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

4176:                                             ; preds = %4175
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %4177 = call ptr @__errno_location() #10
  %4178 = load i32, ptr %4177, align 4, !tbaa !11
  store i32 %4178, ptr %77, align 4, !tbaa !11
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = call i32 @s2n_print_stacktrace(ptr noundef %4179)
  %4181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4182 = trunc i8 %4181 to i1
  br i1 %4182, label %4183, label %4205

4183:                                             ; preds = %4176
  %4184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4185 = call i32 @fileno(ptr noundef %4184) #9
  %4186 = call i32 @isatty(i32 noundef %4185) #9
  %4187 = icmp ne i32 %4186, 0
  br i1 %4187, label %4188, label %4205

4188:                                             ; preds = %4183
  %4189 = load i32, ptr %77, align 4, !tbaa !11
  %4190 = call ptr @__errno_location() #10
  store i32 %4189, ptr %4190, align 4, !tbaa !11
  %4191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4192 = load i32, ptr @test_count, align 4, !tbaa !11
  %4193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4194 = load i32, ptr %4193, align 4, !tbaa !11
  %4195 = call ptr @s2n_strerror(i32 noundef %4194, ptr noundef @.str.52)
  %4196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4197 = load i32, ptr %4196, align 4, !tbaa !11
  %4198 = call ptr @s2n_strerror_debug(i32 noundef %4197, ptr noundef @.str.52)
  %4199 = call ptr @__errno_location() #10
  %4200 = load i32, ptr %4199, align 4, !tbaa !11
  %4201 = call ptr @strerror(i32 noundef %4200) #9
  %4202 = call ptr @__errno_location() #10
  %4203 = load i32, ptr %4202, align 4, !tbaa !11
  %4204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4191, ptr noundef @.str.49, i32 noundef %4192, ptr noundef @.str.122, ptr noundef @.str.51, i32 noundef 234, ptr noundef %4195, ptr noundef %4198, ptr noundef %4201, i32 noundef %4203) #9
  br label %4222

4205:                                             ; preds = %4183, %4176
  %4206 = load i32, ptr %77, align 4, !tbaa !11
  %4207 = call ptr @__errno_location() #10
  store i32 %4206, ptr %4207, align 4, !tbaa !11
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = load i32, ptr @test_count, align 4, !tbaa !11
  %4210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4211 = load i32, ptr %4210, align 4, !tbaa !11
  %4212 = call ptr @s2n_strerror(i32 noundef %4211, ptr noundef @.str.52)
  %4213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4214 = load i32, ptr %4213, align 4, !tbaa !11
  %4215 = call ptr @s2n_strerror_debug(i32 noundef %4214, ptr noundef @.str.52)
  %4216 = call ptr @__errno_location() #10
  %4217 = load i32, ptr %4216, align 4, !tbaa !11
  %4218 = call ptr @strerror(i32 noundef %4217) #9
  %4219 = call ptr @__errno_location() #10
  %4220 = load i32, ptr %4219, align 4, !tbaa !11
  %4221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4208, ptr noundef @.str.53, i32 noundef %4209, ptr noundef @.str.122, ptr noundef @.str.51, i32 noundef 234, ptr noundef %4212, ptr noundef %4215, ptr noundef %4218, i32 noundef %4220) #9
  br label %4222

4222:                                             ; preds = %4205, %4188
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %4223

4223:                                             ; preds = %4222
  br label %4224

4224:                                             ; preds = %4223
  call void @exit(i32 noundef 1) #11
  unreachable

4225:                                             ; No predecessors!
  br label %4226

4226:                                             ; preds = %4225
  br label %4227

4227:                                             ; preds = %4226, %4168
  br label %4228

4228:                                             ; preds = %4227
  br label %4229

4229:                                             ; preds = %4228
  br label %4230

4230:                                             ; preds = %4229
  %4231 = load i32, ptr @test_count, align 4, !tbaa !11
  %4232 = add nsw i32 %4231, 1
  store i32 %4232, ptr @test_count, align 4, !tbaa !11
  %4233 = load ptr, ptr %3, align 8, !tbaa !9
  %4234 = call i32 @s2n_handshake_read_io(ptr noundef %4233)
  %4235 = icmp eq i32 %4234, -1
  br i1 %4235, label %4236, label %4289

4236:                                             ; preds = %4230
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

4238:                                             ; preds = %4237
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %4239 = call ptr @__errno_location() #10
  %4240 = load i32, ptr %4239, align 4, !tbaa !11
  store i32 %4240, ptr %78, align 4, !tbaa !11
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = call i32 @s2n_print_stacktrace(ptr noundef %4241)
  %4243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4244 = trunc i8 %4243 to i1
  br i1 %4244, label %4245, label %4267

4245:                                             ; preds = %4238
  %4246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4247 = call i32 @fileno(ptr noundef %4246) #9
  %4248 = call i32 @isatty(i32 noundef %4247) #9
  %4249 = icmp ne i32 %4248, 0
  br i1 %4249, label %4250, label %4267

4250:                                             ; preds = %4245
  %4251 = load i32, ptr %78, align 4, !tbaa !11
  %4252 = call ptr @__errno_location() #10
  store i32 %4251, ptr %4252, align 4, !tbaa !11
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = load i32, ptr @test_count, align 4, !tbaa !11
  %4255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4256 = load i32, ptr %4255, align 4, !tbaa !11
  %4257 = call ptr @s2n_strerror(i32 noundef %4256, ptr noundef @.str.52)
  %4258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4259 = load i32, ptr %4258, align 4, !tbaa !11
  %4260 = call ptr @s2n_strerror_debug(i32 noundef %4259, ptr noundef @.str.52)
  %4261 = call ptr @__errno_location() #10
  %4262 = load i32, ptr %4261, align 4, !tbaa !11
  %4263 = call ptr @strerror(i32 noundef %4262) #9
  %4264 = call ptr @__errno_location() #10
  %4265 = load i32, ptr %4264, align 4, !tbaa !11
  %4266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4253, ptr noundef @.str.49, i32 noundef %4254, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 235, ptr noundef %4257, ptr noundef %4260, ptr noundef %4263, i32 noundef %4265) #9
  br label %4284

4267:                                             ; preds = %4245, %4238
  %4268 = load i32, ptr %78, align 4, !tbaa !11
  %4269 = call ptr @__errno_location() #10
  store i32 %4268, ptr %4269, align 4, !tbaa !11
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !11
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !11
  %4274 = call ptr @s2n_strerror(i32 noundef %4273, ptr noundef @.str.52)
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !11
  %4277 = call ptr @s2n_strerror_debug(i32 noundef %4276, ptr noundef @.str.52)
  %4278 = call ptr @__errno_location() #10
  %4279 = load i32, ptr %4278, align 4, !tbaa !11
  %4280 = call ptr @strerror(i32 noundef %4279) #9
  %4281 = call ptr @__errno_location() #10
  %4282 = load i32, ptr %4281, align 4, !tbaa !11
  %4283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef @.str.53, i32 noundef %4271, ptr noundef @.str.116, ptr noundef @.str.51, i32 noundef 235, ptr noundef %4274, ptr noundef %4277, ptr noundef %4280, i32 noundef %4282) #9
  br label %4284

4284:                                             ; preds = %4267, %4250
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %4285

4285:                                             ; preds = %4284
  br label %4286

4286:                                             ; preds = %4285
  call void @exit(i32 noundef 1) #11
  unreachable

4287:                                             ; No predecessors!
  br label %4288

4288:                                             ; preds = %4287
  br label %4289

4289:                                             ; preds = %4288, %4230
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

4292:                                             ; preds = %4291
  %4293 = load i32, ptr @test_count, align 4, !tbaa !11
  %4294 = add nsw i32 %4293, 1
  store i32 %4294, ptr @test_count, align 4, !tbaa !11
  %4295 = load ptr, ptr %3, align 8, !tbaa !9
  %4296 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4295)
  %4297 = icmp eq i32 %4296, 11
  br i1 %4297, label %4351, label %4298

4298:                                             ; preds = %4292
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %4301 = call ptr @__errno_location() #10
  %4302 = load i32, ptr %4301, align 4, !tbaa !11
  store i32 %4302, ptr %79, align 4, !tbaa !11
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @s2n_print_stacktrace(ptr noundef %4303)
  %4305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4306 = trunc i8 %4305 to i1
  br i1 %4306, label %4307, label %4329

4307:                                             ; preds = %4300
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = call i32 @fileno(ptr noundef %4308) #9
  %4310 = call i32 @isatty(i32 noundef %4309) #9
  %4311 = icmp ne i32 %4310, 0
  br i1 %4311, label %4312, label %4329

4312:                                             ; preds = %4307
  %4313 = load i32, ptr %79, align 4, !tbaa !11
  %4314 = call ptr @__errno_location() #10
  store i32 %4313, ptr %4314, align 4, !tbaa !11
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = load i32, ptr @test_count, align 4, !tbaa !11
  %4317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4318 = load i32, ptr %4317, align 4, !tbaa !11
  %4319 = call ptr @s2n_strerror(i32 noundef %4318, ptr noundef @.str.52)
  %4320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4321 = load i32, ptr %4320, align 4, !tbaa !11
  %4322 = call ptr @s2n_strerror_debug(i32 noundef %4321, ptr noundef @.str.52)
  %4323 = call ptr @__errno_location() #10
  %4324 = load i32, ptr %4323, align 4, !tbaa !11
  %4325 = call ptr @strerror(i32 noundef %4324) #9
  %4326 = call ptr @__errno_location() #10
  %4327 = load i32, ptr %4326, align 4, !tbaa !11
  %4328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4315, ptr noundef @.str.49, i32 noundef %4316, ptr noundef @.str.123, ptr noundef @.str.51, i32 noundef 238, ptr noundef %4319, ptr noundef %4322, ptr noundef %4325, i32 noundef %4327) #9
  br label %4346

4329:                                             ; preds = %4307, %4300
  %4330 = load i32, ptr %79, align 4, !tbaa !11
  %4331 = call ptr @__errno_location() #10
  store i32 %4330, ptr %4331, align 4, !tbaa !11
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = load i32, ptr @test_count, align 4, !tbaa !11
  %4334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4335 = load i32, ptr %4334, align 4, !tbaa !11
  %4336 = call ptr @s2n_strerror(i32 noundef %4335, ptr noundef @.str.52)
  %4337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4338 = load i32, ptr %4337, align 4, !tbaa !11
  %4339 = call ptr @s2n_strerror_debug(i32 noundef %4338, ptr noundef @.str.52)
  %4340 = call ptr @__errno_location() #10
  %4341 = load i32, ptr %4340, align 4, !tbaa !11
  %4342 = call ptr @strerror(i32 noundef %4341) #9
  %4343 = call ptr @__errno_location() #10
  %4344 = load i32, ptr %4343, align 4, !tbaa !11
  %4345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4332, ptr noundef @.str.53, i32 noundef %4333, ptr noundef @.str.123, ptr noundef @.str.51, i32 noundef 238, ptr noundef %4336, ptr noundef %4339, ptr noundef %4342, i32 noundef %4344) #9
  br label %4346

4346:                                             ; preds = %4329, %4312
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347
  call void @exit(i32 noundef 1) #11
  unreachable

4349:                                             ; No predecessors!
  br label %4350

4350:                                             ; preds = %4349
  br label %4351

4351:                                             ; preds = %4350, %4292
  br label %4352

4352:                                             ; preds = %4351
  br label %4353

4353:                                             ; preds = %4352
  br label %4354

4354:                                             ; preds = %4353
  %4355 = load i32, ptr @test_count, align 4, !tbaa !11
  %4356 = add nsw i32 %4355, 1
  store i32 %4356, ptr @test_count, align 4, !tbaa !11
  %4357 = load ptr, ptr %3, align 8, !tbaa !9
  %4358 = call i32 @s2n_handshake_write_io(ptr noundef %4357)
  %4359 = icmp eq i32 %4358, -1
  br i1 %4359, label %4360, label %4413

4360:                                             ; preds = %4354
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %4363 = call ptr @__errno_location() #10
  %4364 = load i32, ptr %4363, align 4, !tbaa !11
  store i32 %4364, ptr %80, align 4, !tbaa !11
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365)
  %4367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4368 = trunc i8 %4367 to i1
  br i1 %4368, label %4369, label %4391

4369:                                             ; preds = %4362
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = call i32 @fileno(ptr noundef %4370) #9
  %4372 = call i32 @isatty(i32 noundef %4371) #9
  %4373 = icmp ne i32 %4372, 0
  br i1 %4373, label %4374, label %4391

4374:                                             ; preds = %4369
  %4375 = load i32, ptr %80, align 4, !tbaa !11
  %4376 = call ptr @__errno_location() #10
  store i32 %4375, ptr %4376, align 4, !tbaa !11
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = load i32, ptr @test_count, align 4, !tbaa !11
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4380 = load i32, ptr %4379, align 4, !tbaa !11
  %4381 = call ptr @s2n_strerror(i32 noundef %4380, ptr noundef @.str.52)
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !11
  %4384 = call ptr @s2n_strerror_debug(i32 noundef %4383, ptr noundef @.str.52)
  %4385 = call ptr @__errno_location() #10
  %4386 = load i32, ptr %4385, align 4, !tbaa !11
  %4387 = call ptr @strerror(i32 noundef %4386) #9
  %4388 = call ptr @__errno_location() #10
  %4389 = load i32, ptr %4388, align 4, !tbaa !11
  %4390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4377, ptr noundef @.str.49, i32 noundef %4378, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 239, ptr noundef %4381, ptr noundef %4384, ptr noundef %4387, i32 noundef %4389) #9
  br label %4408

4391:                                             ; preds = %4369, %4362
  %4392 = load i32, ptr %80, align 4, !tbaa !11
  %4393 = call ptr @__errno_location() #10
  store i32 %4392, ptr %4393, align 4, !tbaa !11
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !11
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !11
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef @.str.52)
  %4399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4400 = load i32, ptr %4399, align 4, !tbaa !11
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef @.str.52)
  %4402 = call ptr @__errno_location() #10
  %4403 = load i32, ptr %4402, align 4, !tbaa !11
  %4404 = call ptr @strerror(i32 noundef %4403) #9
  %4405 = call ptr @__errno_location() #10
  %4406 = load i32, ptr %4405, align 4, !tbaa !11
  %4407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef @.str.53, i32 noundef %4395, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 239, ptr noundef %4398, ptr noundef %4401, ptr noundef %4404, i32 noundef %4406) #9
  br label %4408

4408:                                             ; preds = %4391, %4374
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  call void @exit(i32 noundef 1) #11
  unreachable

4411:                                             ; No predecessors!
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412, %4354
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

4415:                                             ; preds = %4414
  br label %4416

4416:                                             ; preds = %4415
  %4417 = load i32, ptr @test_count, align 4, !tbaa !11
  %4418 = add nsw i32 %4417, 1
  store i32 %4418, ptr @test_count, align 4, !tbaa !11
  %4419 = load ptr, ptr %3, align 8, !tbaa !9
  %4420 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4419)
  %4421 = icmp eq i32 %4420, 8
  br i1 %4421, label %4475, label %4422

4422:                                             ; preds = %4416
  br label %4423

4423:                                             ; preds = %4422
  br label %4424

4424:                                             ; preds = %4423
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %4425 = call ptr @__errno_location() #10
  %4426 = load i32, ptr %4425, align 4, !tbaa !11
  store i32 %4426, ptr %81, align 4, !tbaa !11
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = call i32 @s2n_print_stacktrace(ptr noundef %4427)
  %4429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4430 = trunc i8 %4429 to i1
  br i1 %4430, label %4431, label %4453

4431:                                             ; preds = %4424
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = call i32 @fileno(ptr noundef %4432) #9
  %4434 = call i32 @isatty(i32 noundef %4433) #9
  %4435 = icmp ne i32 %4434, 0
  br i1 %4435, label %4436, label %4453

4436:                                             ; preds = %4431
  %4437 = load i32, ptr %81, align 4, !tbaa !11
  %4438 = call ptr @__errno_location() #10
  store i32 %4437, ptr %4438, align 4, !tbaa !11
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = load i32, ptr @test_count, align 4, !tbaa !11
  %4441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4442 = load i32, ptr %4441, align 4, !tbaa !11
  %4443 = call ptr @s2n_strerror(i32 noundef %4442, ptr noundef @.str.52)
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !11
  %4446 = call ptr @s2n_strerror_debug(i32 noundef %4445, ptr noundef @.str.52)
  %4447 = call ptr @__errno_location() #10
  %4448 = load i32, ptr %4447, align 4, !tbaa !11
  %4449 = call ptr @strerror(i32 noundef %4448) #9
  %4450 = call ptr @__errno_location() #10
  %4451 = load i32, ptr %4450, align 4, !tbaa !11
  %4452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4439, ptr noundef @.str.49, i32 noundef %4440, ptr noundef @.str.124, ptr noundef @.str.51, i32 noundef 242, ptr noundef %4443, ptr noundef %4446, ptr noundef %4449, i32 noundef %4451) #9
  br label %4470

4453:                                             ; preds = %4431, %4424
  %4454 = load i32, ptr %81, align 4, !tbaa !11
  %4455 = call ptr @__errno_location() #10
  store i32 %4454, ptr %4455, align 4, !tbaa !11
  %4456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4457 = load i32, ptr @test_count, align 4, !tbaa !11
  %4458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4459 = load i32, ptr %4458, align 4, !tbaa !11
  %4460 = call ptr @s2n_strerror(i32 noundef %4459, ptr noundef @.str.52)
  %4461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4462 = load i32, ptr %4461, align 4, !tbaa !11
  %4463 = call ptr @s2n_strerror_debug(i32 noundef %4462, ptr noundef @.str.52)
  %4464 = call ptr @__errno_location() #10
  %4465 = load i32, ptr %4464, align 4, !tbaa !11
  %4466 = call ptr @strerror(i32 noundef %4465) #9
  %4467 = call ptr @__errno_location() #10
  %4468 = load i32, ptr %4467, align 4, !tbaa !11
  %4469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4456, ptr noundef @.str.53, i32 noundef %4457, ptr noundef @.str.124, ptr noundef @.str.51, i32 noundef 242, ptr noundef %4460, ptr noundef %4463, ptr noundef %4466, i32 noundef %4468) #9
  br label %4470

4470:                                             ; preds = %4453, %4436
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471
  call void @exit(i32 noundef 1) #11
  unreachable

4473:                                             ; No predecessors!
  br label %4474

4474:                                             ; preds = %4473
  br label %4475

4475:                                             ; preds = %4474, %4416
  br label %4476

4476:                                             ; preds = %4475
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

4478:                                             ; preds = %4477
  %4479 = load i32, ptr @test_count, align 4, !tbaa !11
  %4480 = add nsw i32 %4479, 1
  store i32 %4480, ptr @test_count, align 4, !tbaa !11
  %4481 = load ptr, ptr %3, align 8, !tbaa !9
  %4482 = call i32 @s2n_handshake_write_io(ptr noundef %4481)
  %4483 = icmp eq i32 %4482, -1
  br i1 %4483, label %4484, label %4537

4484:                                             ; preds = %4478
  br label %4485

4485:                                             ; preds = %4484
  br label %4486

4486:                                             ; preds = %4485
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %4487 = call ptr @__errno_location() #10
  %4488 = load i32, ptr %4487, align 4, !tbaa !11
  store i32 %4488, ptr %82, align 4, !tbaa !11
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = call i32 @s2n_print_stacktrace(ptr noundef %4489)
  %4491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4492 = trunc i8 %4491 to i1
  br i1 %4492, label %4493, label %4515

4493:                                             ; preds = %4486
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = call i32 @fileno(ptr noundef %4494) #9
  %4496 = call i32 @isatty(i32 noundef %4495) #9
  %4497 = icmp ne i32 %4496, 0
  br i1 %4497, label %4498, label %4515

4498:                                             ; preds = %4493
  %4499 = load i32, ptr %82, align 4, !tbaa !11
  %4500 = call ptr @__errno_location() #10
  store i32 %4499, ptr %4500, align 4, !tbaa !11
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = load i32, ptr @test_count, align 4, !tbaa !11
  %4503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4504 = load i32, ptr %4503, align 4, !tbaa !11
  %4505 = call ptr @s2n_strerror(i32 noundef %4504, ptr noundef @.str.52)
  %4506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4507 = load i32, ptr %4506, align 4, !tbaa !11
  %4508 = call ptr @s2n_strerror_debug(i32 noundef %4507, ptr noundef @.str.52)
  %4509 = call ptr @__errno_location() #10
  %4510 = load i32, ptr %4509, align 4, !tbaa !11
  %4511 = call ptr @strerror(i32 noundef %4510) #9
  %4512 = call ptr @__errno_location() #10
  %4513 = load i32, ptr %4512, align 4, !tbaa !11
  %4514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4501, ptr noundef @.str.49, i32 noundef %4502, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 243, ptr noundef %4505, ptr noundef %4508, ptr noundef %4511, i32 noundef %4513) #9
  br label %4532

4515:                                             ; preds = %4493, %4486
  %4516 = load i32, ptr %82, align 4, !tbaa !11
  %4517 = call ptr @__errno_location() #10
  store i32 %4516, ptr %4517, align 4, !tbaa !11
  %4518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4519 = load i32, ptr @test_count, align 4, !tbaa !11
  %4520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4521 = load i32, ptr %4520, align 4, !tbaa !11
  %4522 = call ptr @s2n_strerror(i32 noundef %4521, ptr noundef @.str.52)
  %4523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4524 = load i32, ptr %4523, align 4, !tbaa !11
  %4525 = call ptr @s2n_strerror_debug(i32 noundef %4524, ptr noundef @.str.52)
  %4526 = call ptr @__errno_location() #10
  %4527 = load i32, ptr %4526, align 4, !tbaa !11
  %4528 = call ptr @strerror(i32 noundef %4527) #9
  %4529 = call ptr @__errno_location() #10
  %4530 = load i32, ptr %4529, align 4, !tbaa !11
  %4531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4518, ptr noundef @.str.53, i32 noundef %4519, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 243, ptr noundef %4522, ptr noundef %4525, ptr noundef %4528, i32 noundef %4530) #9
  br label %4532

4532:                                             ; preds = %4515, %4498
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533
  call void @exit(i32 noundef 1) #11
  unreachable

4535:                                             ; No predecessors!
  br label %4536

4536:                                             ; preds = %4535
  br label %4537

4537:                                             ; preds = %4536, %4478
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

4539:                                             ; preds = %4538
  %4540 = load i8, ptr %2, align 1, !tbaa !5, !range !13, !noundef !14
  %4541 = trunc i8 %4540 to i1
  br i1 %4541, label %4542, label %4607

4542:                                             ; preds = %4539
  br label %4543

4543:                                             ; preds = %4542
  %4544 = load i32, ptr @test_count, align 4, !tbaa !11
  %4545 = add nsw i32 %4544, 1
  store i32 %4545, ptr @test_count, align 4, !tbaa !11
  %4546 = load ptr, ptr %3, align 8, !tbaa !9
  %4547 = getelementptr inbounds %struct.s2n_connection, ptr %4546, i32 0, i32 52
  %4548 = getelementptr inbounds %struct.s2n_handshake, ptr %4547, i32 0, i32 6
  %4549 = load i32, ptr %4548, align 4, !tbaa !43
  %4550 = icmp eq i32 %4549, 47
  br i1 %4550, label %4604, label %4551

4551:                                             ; preds = %4543
  br label %4552

4552:                                             ; preds = %4551
  br label %4553

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

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

4565:                                             ; preds = %4560
  %4566 = load i32, ptr %83, align 4, !tbaa !11
  %4567 = call ptr @__errno_location() #10
  store i32 %4566, ptr %4567, align 4, !tbaa !11
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = load i32, ptr @test_count, align 4, !tbaa !11
  %4570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4571 = load i32, ptr %4570, align 4, !tbaa !11
  %4572 = call ptr @s2n_strerror(i32 noundef %4571, ptr noundef @.str.52)
  %4573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4574 = load i32, ptr %4573, align 4, !tbaa !11
  %4575 = call ptr @s2n_strerror_debug(i32 noundef %4574, ptr noundef @.str.52)
  %4576 = call ptr @__errno_location() #10
  %4577 = load i32, ptr %4576, align 4, !tbaa !11
  %4578 = call ptr @strerror(i32 noundef %4577) #9
  %4579 = call ptr @__errno_location() #10
  %4580 = load i32, ptr %4579, align 4, !tbaa !11
  %4581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4568, ptr noundef @.str.49, i32 noundef %4569, ptr noundef @.str.125, ptr noundef @.str.51, i32 noundef 246, ptr noundef %4572, ptr noundef %4575, ptr noundef %4578, i32 noundef %4580) #9
  br label %4599

4582:                                             ; preds = %4560, %4553
  %4583 = load i32, ptr %83, align 4, !tbaa !11
  %4584 = call ptr @__errno_location() #10
  store i32 %4583, ptr %4584, align 4, !tbaa !11
  %4585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4586 = load i32, ptr @test_count, align 4, !tbaa !11
  %4587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4588 = load i32, ptr %4587, align 4, !tbaa !11
  %4589 = call ptr @s2n_strerror(i32 noundef %4588, ptr noundef @.str.52)
  %4590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4591 = load i32, ptr %4590, align 4, !tbaa !11
  %4592 = call ptr @s2n_strerror_debug(i32 noundef %4591, ptr noundef @.str.52)
  %4593 = call ptr @__errno_location() #10
  %4594 = load i32, ptr %4593, align 4, !tbaa !11
  %4595 = call ptr @strerror(i32 noundef %4594) #9
  %4596 = call ptr @__errno_location() #10
  %4597 = load i32, ptr %4596, align 4, !tbaa !11
  %4598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4585, ptr noundef @.str.53, i32 noundef %4586, ptr noundef @.str.125, ptr noundef @.str.51, i32 noundef 246, ptr noundef %4589, ptr noundef %4592, ptr noundef %4595, i32 noundef %4597) #9
  br label %4599

4599:                                             ; preds = %4582, %4565
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

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

4602:                                             ; No predecessors!
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603, %4543
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

4606:                                             ; preds = %4605
  br label %4796

4607:                                             ; preds = %4539
  br label %4608

4608:                                             ; preds = %4607
  %4609 = load i32, ptr @test_count, align 4, !tbaa !11
  %4610 = add nsw i32 %4609, 1
  store i32 %4610, ptr @test_count, align 4, !tbaa !11
  %4611 = load ptr, ptr %3, align 8, !tbaa !9
  %4612 = getelementptr inbounds %struct.s2n_connection, ptr %4611, i32 0, i32 52
  %4613 = getelementptr inbounds %struct.s2n_handshake, ptr %4612, i32 0, i32 6
  %4614 = load i32, ptr %4613, align 4, !tbaa !43
  %4615 = icmp eq i32 %4614, 39
  br i1 %4615, label %4669, label %4616

4616:                                             ; preds = %4608
  br label %4617

4617:                                             ; preds = %4616
  br label %4618

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

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

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

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

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

4665:                                             ; preds = %4664
  br label %4666

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

4667:                                             ; No predecessors!
  br label %4668

4668:                                             ; preds = %4667
  br label %4669

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

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  %4673 = load i32, ptr @test_count, align 4, !tbaa !11
  %4674 = add nsw i32 %4673, 1
  store i32 %4674, ptr @test_count, align 4, !tbaa !11
  %4675 = load ptr, ptr %3, align 8, !tbaa !9
  %4676 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4675)
  %4677 = icmp eq i32 %4676, 10
  br i1 %4677, label %4731, label %4678

4678:                                             ; preds = %4672
  br label %4679

4679:                                             ; preds = %4678
  br label %4680

4680:                                             ; preds = %4679
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %4681 = call ptr @__errno_location() #10
  %4682 = load i32, ptr %4681, align 4, !tbaa !11
  store i32 %4682, ptr %85, align 4, !tbaa !11
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = call i32 @s2n_print_stacktrace(ptr noundef %4683)
  %4685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4686 = trunc i8 %4685 to i1
  br i1 %4686, label %4687, label %4709

4687:                                             ; preds = %4680
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = call i32 @fileno(ptr noundef %4688) #9
  %4690 = call i32 @isatty(i32 noundef %4689) #9
  %4691 = icmp ne i32 %4690, 0
  br i1 %4691, label %4692, label %4709

4692:                                             ; preds = %4687
  %4693 = load i32, ptr %85, align 4, !tbaa !11
  %4694 = call ptr @__errno_location() #10
  store i32 %4693, ptr %4694, align 4, !tbaa !11
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = load i32, ptr @test_count, align 4, !tbaa !11
  %4697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4698 = load i32, ptr %4697, align 4, !tbaa !11
  %4699 = call ptr @s2n_strerror(i32 noundef %4698, ptr noundef @.str.52)
  %4700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4701 = load i32, ptr %4700, align 4, !tbaa !11
  %4702 = call ptr @s2n_strerror_debug(i32 noundef %4701, ptr noundef @.str.52)
  %4703 = call ptr @__errno_location() #10
  %4704 = load i32, ptr %4703, align 4, !tbaa !11
  %4705 = call ptr @strerror(i32 noundef %4704) #9
  %4706 = call ptr @__errno_location() #10
  %4707 = load i32, ptr %4706, align 4, !tbaa !11
  %4708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4695, ptr noundef @.str.49, i32 noundef %4696, ptr noundef @.str.126, ptr noundef @.str.51, i32 noundef 251, ptr noundef %4699, ptr noundef %4702, ptr noundef %4705, i32 noundef %4707) #9
  br label %4726

4709:                                             ; preds = %4687, %4680
  %4710 = load i32, ptr %85, align 4, !tbaa !11
  %4711 = call ptr @__errno_location() #10
  store i32 %4710, ptr %4711, align 4, !tbaa !11
  %4712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4713 = load i32, ptr @test_count, align 4, !tbaa !11
  %4714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4715 = load i32, ptr %4714, align 4, !tbaa !11
  %4716 = call ptr @s2n_strerror(i32 noundef %4715, ptr noundef @.str.52)
  %4717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4718 = load i32, ptr %4717, align 4, !tbaa !11
  %4719 = call ptr @s2n_strerror_debug(i32 noundef %4718, ptr noundef @.str.52)
  %4720 = call ptr @__errno_location() #10
  %4721 = load i32, ptr %4720, align 4, !tbaa !11
  %4722 = call ptr @strerror(i32 noundef %4721) #9
  %4723 = call ptr @__errno_location() #10
  %4724 = load i32, ptr %4723, align 4, !tbaa !11
  %4725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4712, ptr noundef @.str.53, i32 noundef %4713, ptr noundef @.str.126, ptr noundef @.str.51, i32 noundef 251, ptr noundef %4716, ptr noundef %4719, ptr noundef %4722, i32 noundef %4724) #9
  br label %4726

4726:                                             ; preds = %4709, %4692
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %4727

4727:                                             ; preds = %4726
  br label %4728

4728:                                             ; preds = %4727
  call void @exit(i32 noundef 1) #11
  unreachable

4729:                                             ; No predecessors!
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

4731:                                             ; preds = %4730, %4672
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

4734:                                             ; preds = %4733
  %4735 = load i32, ptr @test_count, align 4, !tbaa !11
  %4736 = add nsw i32 %4735, 1
  store i32 %4736, ptr @test_count, align 4, !tbaa !11
  %4737 = load ptr, ptr %3, align 8, !tbaa !9
  %4738 = call i32 @s2n_handshake_write_io(ptr noundef %4737)
  %4739 = icmp eq i32 %4738, -1
  br i1 %4739, label %4740, label %4793

4740:                                             ; preds = %4734
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %4743 = call ptr @__errno_location() #10
  %4744 = load i32, ptr %4743, align 4, !tbaa !11
  store i32 %4744, ptr %86, align 4, !tbaa !11
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @s2n_print_stacktrace(ptr noundef %4745)
  %4747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4748 = trunc i8 %4747 to i1
  br i1 %4748, label %4749, label %4771

4749:                                             ; preds = %4742
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = call i32 @fileno(ptr noundef %4750) #9
  %4752 = call i32 @isatty(i32 noundef %4751) #9
  %4753 = icmp ne i32 %4752, 0
  br i1 %4753, label %4754, label %4771

4754:                                             ; preds = %4749
  %4755 = load i32, ptr %86, align 4, !tbaa !11
  %4756 = call ptr @__errno_location() #10
  store i32 %4755, ptr %4756, align 4, !tbaa !11
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = load i32, ptr @test_count, align 4, !tbaa !11
  %4759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4760 = load i32, ptr %4759, align 4, !tbaa !11
  %4761 = call ptr @s2n_strerror(i32 noundef %4760, ptr noundef @.str.52)
  %4762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4763 = load i32, ptr %4762, align 4, !tbaa !11
  %4764 = call ptr @s2n_strerror_debug(i32 noundef %4763, ptr noundef @.str.52)
  %4765 = call ptr @__errno_location() #10
  %4766 = load i32, ptr %4765, align 4, !tbaa !11
  %4767 = call ptr @strerror(i32 noundef %4766) #9
  %4768 = call ptr @__errno_location() #10
  %4769 = load i32, ptr %4768, align 4, !tbaa !11
  %4770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4757, ptr noundef @.str.49, i32 noundef %4758, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 252, ptr noundef %4761, ptr noundef %4764, ptr noundef %4767, i32 noundef %4769) #9
  br label %4788

4771:                                             ; preds = %4749, %4742
  %4772 = load i32, ptr %86, align 4, !tbaa !11
  %4773 = call ptr @__errno_location() #10
  store i32 %4772, ptr %4773, align 4, !tbaa !11
  %4774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4775 = load i32, ptr @test_count, align 4, !tbaa !11
  %4776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4777 = load i32, ptr %4776, align 4, !tbaa !11
  %4778 = call ptr @s2n_strerror(i32 noundef %4777, ptr noundef @.str.52)
  %4779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4780 = load i32, ptr %4779, align 4, !tbaa !11
  %4781 = call ptr @s2n_strerror_debug(i32 noundef %4780, ptr noundef @.str.52)
  %4782 = call ptr @__errno_location() #10
  %4783 = load i32, ptr %4782, align 4, !tbaa !11
  %4784 = call ptr @strerror(i32 noundef %4783) #9
  %4785 = call ptr @__errno_location() #10
  %4786 = load i32, ptr %4785, align 4, !tbaa !11
  %4787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4774, ptr noundef @.str.53, i32 noundef %4775, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 252, ptr noundef %4778, ptr noundef %4781, ptr noundef %4784, i32 noundef %4786) #9
  br label %4788

4788:                                             ; preds = %4771, %4754
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %4789

4789:                                             ; preds = %4788
  br label %4790

4790:                                             ; preds = %4789
  call void @exit(i32 noundef 1) #11
  unreachable

4791:                                             ; No predecessors!
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792, %4734
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795, %4606
  br label %4797

4797:                                             ; preds = %4796
  %4798 = load i32, ptr @test_count, align 4, !tbaa !11
  %4799 = add nsw i32 %4798, 1
  store i32 %4799, ptr @test_count, align 4, !tbaa !11
  %4800 = load ptr, ptr %3, align 8, !tbaa !9
  %4801 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4800)
  %4802 = icmp eq i32 %4801, 13
  br i1 %4802, label %4856, label %4803

4803:                                             ; preds = %4797
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %4806 = call ptr @__errno_location() #10
  %4807 = load i32, ptr %4806, align 4, !tbaa !11
  store i32 %4807, ptr %87, align 4, !tbaa !11
  %4808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4809 = call i32 @s2n_print_stacktrace(ptr noundef %4808)
  %4810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4811 = trunc i8 %4810 to i1
  br i1 %4811, label %4812, label %4834

4812:                                             ; preds = %4805
  %4813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4814 = call i32 @fileno(ptr noundef %4813) #9
  %4815 = call i32 @isatty(i32 noundef %4814) #9
  %4816 = icmp ne i32 %4815, 0
  br i1 %4816, label %4817, label %4834

4817:                                             ; preds = %4812
  %4818 = load i32, ptr %87, align 4, !tbaa !11
  %4819 = call ptr @__errno_location() #10
  store i32 %4818, ptr %4819, align 4, !tbaa !11
  %4820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4821 = load i32, ptr @test_count, align 4, !tbaa !11
  %4822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4823 = load i32, ptr %4822, align 4, !tbaa !11
  %4824 = call ptr @s2n_strerror(i32 noundef %4823, ptr noundef @.str.52)
  %4825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4826 = load i32, ptr %4825, align 4, !tbaa !11
  %4827 = call ptr @s2n_strerror_debug(i32 noundef %4826, ptr noundef @.str.52)
  %4828 = call ptr @__errno_location() #10
  %4829 = load i32, ptr %4828, align 4, !tbaa !11
  %4830 = call ptr @strerror(i32 noundef %4829) #9
  %4831 = call ptr @__errno_location() #10
  %4832 = load i32, ptr %4831, align 4, !tbaa !11
  %4833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4820, ptr noundef @.str.49, i32 noundef %4821, ptr noundef @.str.127, ptr noundef @.str.51, i32 noundef 256, ptr noundef %4824, ptr noundef %4827, ptr noundef %4830, i32 noundef %4832) #9
  br label %4851

4834:                                             ; preds = %4812, %4805
  %4835 = load i32, ptr %87, align 4, !tbaa !11
  %4836 = call ptr @__errno_location() #10
  store i32 %4835, ptr %4836, align 4, !tbaa !11
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = load i32, ptr @test_count, align 4, !tbaa !11
  %4839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4840 = load i32, ptr %4839, align 4, !tbaa !11
  %4841 = call ptr @s2n_strerror(i32 noundef %4840, ptr noundef @.str.52)
  %4842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4843 = load i32, ptr %4842, align 4, !tbaa !11
  %4844 = call ptr @s2n_strerror_debug(i32 noundef %4843, ptr noundef @.str.52)
  %4845 = call ptr @__errno_location() #10
  %4846 = load i32, ptr %4845, align 4, !tbaa !11
  %4847 = call ptr @strerror(i32 noundef %4846) #9
  %4848 = call ptr @__errno_location() #10
  %4849 = load i32, ptr %4848, align 4, !tbaa !11
  %4850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4837, ptr noundef @.str.53, i32 noundef %4838, ptr noundef @.str.127, ptr noundef @.str.51, i32 noundef 256, ptr noundef %4841, ptr noundef %4844, ptr noundef %4847, i32 noundef %4849) #9
  br label %4851

4851:                                             ; preds = %4834, %4817
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852
  call void @exit(i32 noundef 1) #11
  unreachable

4854:                                             ; No predecessors!
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

4856:                                             ; preds = %4855, %4797
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858
  %4860 = load i32, ptr @test_count, align 4, !tbaa !11
  %4861 = add nsw i32 %4860, 1
  store i32 %4861, ptr @test_count, align 4, !tbaa !11
  %4862 = load ptr, ptr %3, align 8, !tbaa !9
  %4863 = call i32 @s2n_handshake_write_io(ptr noundef %4862)
  %4864 = icmp eq i32 %4863, -1
  br i1 %4864, label %4865, label %4918

4865:                                             ; preds = %4859
  br label %4866

4866:                                             ; preds = %4865
  br label %4867

4867:                                             ; preds = %4866
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %4868 = call ptr @__errno_location() #10
  %4869 = load i32, ptr %4868, align 4, !tbaa !11
  store i32 %4869, ptr %88, align 4, !tbaa !11
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = call i32 @s2n_print_stacktrace(ptr noundef %4870)
  %4872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4873 = trunc i8 %4872 to i1
  br i1 %4873, label %4874, label %4896

4874:                                             ; preds = %4867
  %4875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4876 = call i32 @fileno(ptr noundef %4875) #9
  %4877 = call i32 @isatty(i32 noundef %4876) #9
  %4878 = icmp ne i32 %4877, 0
  br i1 %4878, label %4879, label %4896

4879:                                             ; preds = %4874
  %4880 = load i32, ptr %88, align 4, !tbaa !11
  %4881 = call ptr @__errno_location() #10
  store i32 %4880, ptr %4881, align 4, !tbaa !11
  %4882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4883 = load i32, ptr @test_count, align 4, !tbaa !11
  %4884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4885 = load i32, ptr %4884, align 4, !tbaa !11
  %4886 = call ptr @s2n_strerror(i32 noundef %4885, ptr noundef @.str.52)
  %4887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4888 = load i32, ptr %4887, align 4, !tbaa !11
  %4889 = call ptr @s2n_strerror_debug(i32 noundef %4888, ptr noundef @.str.52)
  %4890 = call ptr @__errno_location() #10
  %4891 = load i32, ptr %4890, align 4, !tbaa !11
  %4892 = call ptr @strerror(i32 noundef %4891) #9
  %4893 = call ptr @__errno_location() #10
  %4894 = load i32, ptr %4893, align 4, !tbaa !11
  %4895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4882, ptr noundef @.str.49, i32 noundef %4883, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 257, ptr noundef %4886, ptr noundef %4889, ptr noundef %4892, i32 noundef %4894) #9
  br label %4913

4896:                                             ; preds = %4874, %4867
  %4897 = load i32, ptr %88, align 4, !tbaa !11
  %4898 = call ptr @__errno_location() #10
  store i32 %4897, ptr %4898, align 4, !tbaa !11
  %4899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4900 = load i32, ptr @test_count, align 4, !tbaa !11
  %4901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4902 = load i32, ptr %4901, align 4, !tbaa !11
  %4903 = call ptr @s2n_strerror(i32 noundef %4902, ptr noundef @.str.52)
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !11
  %4906 = call ptr @s2n_strerror_debug(i32 noundef %4905, ptr noundef @.str.52)
  %4907 = call ptr @__errno_location() #10
  %4908 = load i32, ptr %4907, align 4, !tbaa !11
  %4909 = call ptr @strerror(i32 noundef %4908) #9
  %4910 = call ptr @__errno_location() #10
  %4911 = load i32, ptr %4910, align 4, !tbaa !11
  %4912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4899, ptr noundef @.str.53, i32 noundef %4900, ptr noundef @.str.98, ptr noundef @.str.51, i32 noundef 257, ptr noundef %4903, ptr noundef %4906, ptr noundef %4909, i32 noundef %4911) #9
  br label %4913

4913:                                             ; preds = %4896, %4879
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %4914

4914:                                             ; preds = %4913
  br label %4915

4915:                                             ; preds = %4914
  call void @exit(i32 noundef 1) #11
  unreachable

4916:                                             ; No predecessors!
  br label %4917

4917:                                             ; preds = %4916
  br label %4918

4918:                                             ; preds = %4917, %4859
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

4921:                                             ; preds = %4920
  %4922 = load i32, ptr @test_count, align 4, !tbaa !11
  %4923 = add nsw i32 %4922, 1
  store i32 %4923, ptr @test_count, align 4, !tbaa !11
  %4924 = load ptr, ptr %4, align 8, !tbaa !9
  %4925 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4924)
  %4926 = icmp eq i32 %4925, 8
  br i1 %4926, label %4980, label %4927

4927:                                             ; preds = %4921
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %4930 = call ptr @__errno_location() #10
  %4931 = load i32, ptr %4930, align 4, !tbaa !11
  store i32 %4931, ptr %89, align 4, !tbaa !11
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = call i32 @s2n_print_stacktrace(ptr noundef %4932)
  %4934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4935 = trunc i8 %4934 to i1
  br i1 %4935, label %4936, label %4958

4936:                                             ; preds = %4929
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = call i32 @fileno(ptr noundef %4937) #9
  %4939 = call i32 @isatty(i32 noundef %4938) #9
  %4940 = icmp ne i32 %4939, 0
  br i1 %4940, label %4941, label %4958

4941:                                             ; preds = %4936
  %4942 = load i32, ptr %89, align 4, !tbaa !11
  %4943 = call ptr @__errno_location() #10
  store i32 %4942, ptr %4943, align 4, !tbaa !11
  %4944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4945 = load i32, ptr @test_count, align 4, !tbaa !11
  %4946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4947 = load i32, ptr %4946, align 4, !tbaa !11
  %4948 = call ptr @s2n_strerror(i32 noundef %4947, ptr noundef @.str.52)
  %4949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4950 = load i32, ptr %4949, align 4, !tbaa !11
  %4951 = call ptr @s2n_strerror_debug(i32 noundef %4950, ptr noundef @.str.52)
  %4952 = call ptr @__errno_location() #10
  %4953 = load i32, ptr %4952, align 4, !tbaa !11
  %4954 = call ptr @strerror(i32 noundef %4953) #9
  %4955 = call ptr @__errno_location() #10
  %4956 = load i32, ptr %4955, align 4, !tbaa !11
  %4957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4944, ptr noundef @.str.49, i32 noundef %4945, ptr noundef @.str.128, ptr noundef @.str.51, i32 noundef 261, ptr noundef %4948, ptr noundef %4951, ptr noundef %4954, i32 noundef %4956) #9
  br label %4975

4958:                                             ; preds = %4936, %4929
  %4959 = load i32, ptr %89, align 4, !tbaa !11
  %4960 = call ptr @__errno_location() #10
  store i32 %4959, ptr %4960, align 4, !tbaa !11
  %4961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4962 = load i32, ptr @test_count, align 4, !tbaa !11
  %4963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4964 = load i32, ptr %4963, align 4, !tbaa !11
  %4965 = call ptr @s2n_strerror(i32 noundef %4964, ptr noundef @.str.52)
  %4966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4967 = load i32, ptr %4966, align 4, !tbaa !11
  %4968 = call ptr @s2n_strerror_debug(i32 noundef %4967, ptr noundef @.str.52)
  %4969 = call ptr @__errno_location() #10
  %4970 = load i32, ptr %4969, align 4, !tbaa !11
  %4971 = call ptr @strerror(i32 noundef %4970) #9
  %4972 = call ptr @__errno_location() #10
  %4973 = load i32, ptr %4972, align 4, !tbaa !11
  %4974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4961, ptr noundef @.str.53, i32 noundef %4962, ptr noundef @.str.128, ptr noundef @.str.51, i32 noundef 261, ptr noundef %4965, ptr noundef %4968, ptr noundef %4971, i32 noundef %4973) #9
  br label %4975

4975:                                             ; preds = %4958, %4941
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  call void @exit(i32 noundef 1) #11
  unreachable

4978:                                             ; No predecessors!
  br label %4979

4979:                                             ; preds = %4978
  br label %4980

4980:                                             ; preds = %4979, %4921
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981
  br label %4983

4983:                                             ; preds = %4982
  %4984 = load i32, ptr @test_count, align 4, !tbaa !11
  %4985 = add nsw i32 %4984, 1
  store i32 %4985, ptr @test_count, align 4, !tbaa !11
  %4986 = load ptr, ptr %4, align 8, !tbaa !9
  %4987 = call i32 @s2n_handshake_read_io(ptr noundef %4986)
  %4988 = icmp eq i32 %4987, -1
  br i1 %4988, label %4989, label %5042

4989:                                             ; preds = %4983
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

4991:                                             ; preds = %4990
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %4992 = call ptr @__errno_location() #10
  %4993 = load i32, ptr %4992, align 4, !tbaa !11
  store i32 %4993, ptr %90, align 4, !tbaa !11
  %4994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4995 = call i32 @s2n_print_stacktrace(ptr noundef %4994)
  %4996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %4997 = trunc i8 %4996 to i1
  br i1 %4997, label %4998, label %5020

4998:                                             ; preds = %4991
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = call i32 @fileno(ptr noundef %4999) #9
  %5001 = call i32 @isatty(i32 noundef %5000) #9
  %5002 = icmp ne i32 %5001, 0
  br i1 %5002, label %5003, label %5020

5003:                                             ; preds = %4998
  %5004 = load i32, ptr %90, align 4, !tbaa !11
  %5005 = call ptr @__errno_location() #10
  store i32 %5004, ptr %5005, align 4, !tbaa !11
  %5006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5007 = load i32, ptr @test_count, align 4, !tbaa !11
  %5008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5009 = load i32, ptr %5008, align 4, !tbaa !11
  %5010 = call ptr @s2n_strerror(i32 noundef %5009, ptr noundef @.str.52)
  %5011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5012 = load i32, ptr %5011, align 4, !tbaa !11
  %5013 = call ptr @s2n_strerror_debug(i32 noundef %5012, ptr noundef @.str.52)
  %5014 = call ptr @__errno_location() #10
  %5015 = load i32, ptr %5014, align 4, !tbaa !11
  %5016 = call ptr @strerror(i32 noundef %5015) #9
  %5017 = call ptr @__errno_location() #10
  %5018 = load i32, ptr %5017, align 4, !tbaa !11
  %5019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5006, ptr noundef @.str.49, i32 noundef %5007, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 262, ptr noundef %5010, ptr noundef %5013, ptr noundef %5016, i32 noundef %5018) #9
  br label %5037

5020:                                             ; preds = %4998, %4991
  %5021 = load i32, ptr %90, align 4, !tbaa !11
  %5022 = call ptr @__errno_location() #10
  store i32 %5021, ptr %5022, align 4, !tbaa !11
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = load i32, ptr @test_count, align 4, !tbaa !11
  %5025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5026 = load i32, ptr %5025, align 4, !tbaa !11
  %5027 = call ptr @s2n_strerror(i32 noundef %5026, ptr noundef @.str.52)
  %5028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5029 = load i32, ptr %5028, align 4, !tbaa !11
  %5030 = call ptr @s2n_strerror_debug(i32 noundef %5029, ptr noundef @.str.52)
  %5031 = call ptr @__errno_location() #10
  %5032 = load i32, ptr %5031, align 4, !tbaa !11
  %5033 = call ptr @strerror(i32 noundef %5032) #9
  %5034 = call ptr @__errno_location() #10
  %5035 = load i32, ptr %5034, align 4, !tbaa !11
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5023, ptr noundef @.str.53, i32 noundef %5024, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 262, ptr noundef %5027, ptr noundef %5030, ptr noundef %5033, i32 noundef %5035) #9
  br label %5037

5037:                                             ; preds = %5020, %5003
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038
  call void @exit(i32 noundef 1) #11
  unreachable

5040:                                             ; No predecessors!
  br label %5041

5041:                                             ; preds = %5040
  br label %5042

5042:                                             ; preds = %5041, %4983
  br label %5043

5043:                                             ; preds = %5042
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

5045:                                             ; preds = %5044
  %5046 = load i32, ptr @test_count, align 4, !tbaa !11
  %5047 = add nsw i32 %5046, 1
  store i32 %5047, ptr @test_count, align 4, !tbaa !11
  %5048 = load ptr, ptr %4, align 8, !tbaa !9
  %5049 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5048)
  %5050 = icmp eq i32 %5049, 8
  br i1 %5050, label %5104, label %5051

5051:                                             ; preds = %5045
  br label %5052

5052:                                             ; preds = %5051
  br label %5053

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

5060:                                             ; preds = %5053
  %5061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5062 = call i32 @fileno(ptr noundef %5061) #9
  %5063 = call i32 @isatty(i32 noundef %5062) #9
  %5064 = icmp ne i32 %5063, 0
  br i1 %5064, label %5065, label %5082

5065:                                             ; preds = %5060
  %5066 = load i32, ptr %91, align 4, !tbaa !11
  %5067 = call ptr @__errno_location() #10
  store i32 %5066, ptr %5067, align 4, !tbaa !11
  %5068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5069 = load i32, ptr @test_count, align 4, !tbaa !11
  %5070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5071 = load i32, ptr %5070, align 4, !tbaa !11
  %5072 = call ptr @s2n_strerror(i32 noundef %5071, ptr noundef @.str.52)
  %5073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5074 = load i32, ptr %5073, align 4, !tbaa !11
  %5075 = call ptr @s2n_strerror_debug(i32 noundef %5074, ptr noundef @.str.52)
  %5076 = call ptr @__errno_location() #10
  %5077 = load i32, ptr %5076, align 4, !tbaa !11
  %5078 = call ptr @strerror(i32 noundef %5077) #9
  %5079 = call ptr @__errno_location() #10
  %5080 = load i32, ptr %5079, align 4, !tbaa !11
  %5081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5068, ptr noundef @.str.49, i32 noundef %5069, ptr noundef @.str.128, ptr noundef @.str.51, i32 noundef 265, ptr noundef %5072, ptr noundef %5075, ptr noundef %5078, i32 noundef %5080) #9
  br label %5099

5082:                                             ; preds = %5060, %5053
  %5083 = load i32, ptr %91, align 4, !tbaa !11
  %5084 = call ptr @__errno_location() #10
  store i32 %5083, ptr %5084, align 4, !tbaa !11
  %5085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5086 = load i32, ptr @test_count, align 4, !tbaa !11
  %5087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5088 = load i32, ptr %5087, align 4, !tbaa !11
  %5089 = call ptr @s2n_strerror(i32 noundef %5088, ptr noundef @.str.52)
  %5090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5091 = load i32, ptr %5090, align 4, !tbaa !11
  %5092 = call ptr @s2n_strerror_debug(i32 noundef %5091, ptr noundef @.str.52)
  %5093 = call ptr @__errno_location() #10
  %5094 = load i32, ptr %5093, align 4, !tbaa !11
  %5095 = call ptr @strerror(i32 noundef %5094) #9
  %5096 = call ptr @__errno_location() #10
  %5097 = load i32, ptr %5096, align 4, !tbaa !11
  %5098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5085, ptr noundef @.str.53, i32 noundef %5086, ptr noundef @.str.128, ptr noundef @.str.51, i32 noundef 265, ptr noundef %5089, ptr noundef %5092, ptr noundef %5095, i32 noundef %5097) #9
  br label %5099

5099:                                             ; preds = %5082, %5065
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %5100

5100:                                             ; preds = %5099
  br label %5101

5101:                                             ; preds = %5100
  call void @exit(i32 noundef 1) #11
  unreachable

5102:                                             ; No predecessors!
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

5104:                                             ; preds = %5103, %5045
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

5106:                                             ; preds = %5105
  br label %5107

5107:                                             ; preds = %5106
  %5108 = load i32, ptr @test_count, align 4, !tbaa !11
  %5109 = add nsw i32 %5108, 1
  store i32 %5109, ptr @test_count, align 4, !tbaa !11
  %5110 = load ptr, ptr %4, align 8, !tbaa !9
  %5111 = call i32 @s2n_handshake_read_io(ptr noundef %5110)
  %5112 = icmp eq i32 %5111, -1
  br i1 %5112, label %5113, label %5166

5113:                                             ; preds = %5107
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %5116 = call ptr @__errno_location() #10
  %5117 = load i32, ptr %5116, align 4, !tbaa !11
  store i32 %5117, ptr %92, align 4, !tbaa !11
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = call i32 @s2n_print_stacktrace(ptr noundef %5118)
  %5120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5121 = trunc i8 %5120 to i1
  br i1 %5121, label %5122, label %5144

5122:                                             ; preds = %5115
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = call i32 @fileno(ptr noundef %5123) #9
  %5125 = call i32 @isatty(i32 noundef %5124) #9
  %5126 = icmp ne i32 %5125, 0
  br i1 %5126, label %5127, label %5144

5127:                                             ; preds = %5122
  %5128 = load i32, ptr %92, align 4, !tbaa !11
  %5129 = call ptr @__errno_location() #10
  store i32 %5128, ptr %5129, align 4, !tbaa !11
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = load i32, ptr @test_count, align 4, !tbaa !11
  %5132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5133 = load i32, ptr %5132, align 4, !tbaa !11
  %5134 = call ptr @s2n_strerror(i32 noundef %5133, ptr noundef @.str.52)
  %5135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5136 = load i32, ptr %5135, align 4, !tbaa !11
  %5137 = call ptr @s2n_strerror_debug(i32 noundef %5136, ptr noundef @.str.52)
  %5138 = call ptr @__errno_location() #10
  %5139 = load i32, ptr %5138, align 4, !tbaa !11
  %5140 = call ptr @strerror(i32 noundef %5139) #9
  %5141 = call ptr @__errno_location() #10
  %5142 = load i32, ptr %5141, align 4, !tbaa !11
  %5143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5130, ptr noundef @.str.49, i32 noundef %5131, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 266, ptr noundef %5134, ptr noundef %5137, ptr noundef %5140, i32 noundef %5142) #9
  br label %5161

5144:                                             ; preds = %5122, %5115
  %5145 = load i32, ptr %92, align 4, !tbaa !11
  %5146 = call ptr @__errno_location() #10
  store i32 %5145, ptr %5146, align 4, !tbaa !11
  %5147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5148 = load i32, ptr @test_count, align 4, !tbaa !11
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !11
  %5151 = call ptr @s2n_strerror(i32 noundef %5150, ptr noundef @.str.52)
  %5152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5153 = load i32, ptr %5152, align 4, !tbaa !11
  %5154 = call ptr @s2n_strerror_debug(i32 noundef %5153, ptr noundef @.str.52)
  %5155 = call ptr @__errno_location() #10
  %5156 = load i32, ptr %5155, align 4, !tbaa !11
  %5157 = call ptr @strerror(i32 noundef %5156) #9
  %5158 = call ptr @__errno_location() #10
  %5159 = load i32, ptr %5158, align 4, !tbaa !11
  %5160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5147, ptr noundef @.str.53, i32 noundef %5148, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 266, ptr noundef %5151, ptr noundef %5154, ptr noundef %5157, i32 noundef %5159) #9
  br label %5161

5161:                                             ; preds = %5144, %5127
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

5163:                                             ; preds = %5162
  call void @exit(i32 noundef 1) #11
  unreachable

5164:                                             ; No predecessors!
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

5166:                                             ; preds = %5165, %5107
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167
  %5169 = load i8, ptr %2, align 1, !tbaa !5, !range !13, !noundef !14
  %5170 = trunc i8 %5169 to i1
  br i1 %5170, label %5171, label %5236

5171:                                             ; preds = %5168
  br label %5172

5172:                                             ; preds = %5171
  %5173 = load i32, ptr @test_count, align 4, !tbaa !11
  %5174 = add nsw i32 %5173, 1
  store i32 %5174, ptr @test_count, align 4, !tbaa !11
  %5175 = load ptr, ptr %4, align 8, !tbaa !9
  %5176 = getelementptr inbounds %struct.s2n_connection, ptr %5175, i32 0, i32 52
  %5177 = getelementptr inbounds %struct.s2n_handshake, ptr %5176, i32 0, i32 6
  %5178 = load i32, ptr %5177, align 4, !tbaa !43
  %5179 = icmp eq i32 %5178, 47
  br i1 %5179, label %5233, label %5180

5180:                                             ; preds = %5172
  br label %5181

5181:                                             ; preds = %5180
  br label %5182

5182:                                             ; preds = %5181
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %5183 = call ptr @__errno_location() #10
  %5184 = load i32, ptr %5183, align 4, !tbaa !11
  store i32 %5184, ptr %93, align 4, !tbaa !11
  %5185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5186 = call i32 @s2n_print_stacktrace(ptr noundef %5185)
  %5187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5188 = trunc i8 %5187 to i1
  br i1 %5188, label %5189, label %5211

5189:                                             ; preds = %5182
  %5190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5191 = call i32 @fileno(ptr noundef %5190) #9
  %5192 = call i32 @isatty(i32 noundef %5191) #9
  %5193 = icmp ne i32 %5192, 0
  br i1 %5193, label %5194, label %5211

5194:                                             ; preds = %5189
  %5195 = load i32, ptr %93, align 4, !tbaa !11
  %5196 = call ptr @__errno_location() #10
  store i32 %5195, ptr %5196, align 4, !tbaa !11
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = load i32, ptr @test_count, align 4, !tbaa !11
  %5199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5200 = load i32, ptr %5199, align 4, !tbaa !11
  %5201 = call ptr @s2n_strerror(i32 noundef %5200, ptr noundef @.str.52)
  %5202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5203 = load i32, ptr %5202, align 4, !tbaa !11
  %5204 = call ptr @s2n_strerror_debug(i32 noundef %5203, ptr noundef @.str.52)
  %5205 = call ptr @__errno_location() #10
  %5206 = load i32, ptr %5205, align 4, !tbaa !11
  %5207 = call ptr @strerror(i32 noundef %5206) #9
  %5208 = call ptr @__errno_location() #10
  %5209 = load i32, ptr %5208, align 4, !tbaa !11
  %5210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5197, ptr noundef @.str.49, i32 noundef %5198, ptr noundef @.str.129, ptr noundef @.str.51, i32 noundef 269, ptr noundef %5201, ptr noundef %5204, ptr noundef %5207, i32 noundef %5209) #9
  br label %5228

5211:                                             ; preds = %5189, %5182
  %5212 = load i32, ptr %93, align 4, !tbaa !11
  %5213 = call ptr @__errno_location() #10
  store i32 %5212, ptr %5213, align 4, !tbaa !11
  %5214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5215 = load i32, ptr @test_count, align 4, !tbaa !11
  %5216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5217 = load i32, ptr %5216, align 4, !tbaa !11
  %5218 = call ptr @s2n_strerror(i32 noundef %5217, ptr noundef @.str.52)
  %5219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5220 = load i32, ptr %5219, align 4, !tbaa !11
  %5221 = call ptr @s2n_strerror_debug(i32 noundef %5220, ptr noundef @.str.52)
  %5222 = call ptr @__errno_location() #10
  %5223 = load i32, ptr %5222, align 4, !tbaa !11
  %5224 = call ptr @strerror(i32 noundef %5223) #9
  %5225 = call ptr @__errno_location() #10
  %5226 = load i32, ptr %5225, align 4, !tbaa !11
  %5227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5214, ptr noundef @.str.53, i32 noundef %5215, ptr noundef @.str.129, ptr noundef @.str.51, i32 noundef 269, ptr noundef %5218, ptr noundef %5221, ptr noundef %5224, i32 noundef %5226) #9
  br label %5228

5228:                                             ; preds = %5211, %5194
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %5229

5229:                                             ; preds = %5228
  br label %5230

5230:                                             ; preds = %5229
  call void @exit(i32 noundef 1) #11
  unreachable

5231:                                             ; No predecessors!
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

5233:                                             ; preds = %5232, %5172
  br label %5234

5234:                                             ; preds = %5233
  br label %5235

5235:                                             ; preds = %5234
  br label %5425

5236:                                             ; preds = %5168
  br label %5237

5237:                                             ; preds = %5236
  %5238 = load i32, ptr @test_count, align 4, !tbaa !11
  %5239 = add nsw i32 %5238, 1
  store i32 %5239, ptr @test_count, align 4, !tbaa !11
  %5240 = load ptr, ptr %4, align 8, !tbaa !9
  %5241 = getelementptr inbounds %struct.s2n_connection, ptr %5240, i32 0, i32 52
  %5242 = getelementptr inbounds %struct.s2n_handshake, ptr %5241, i32 0, i32 6
  %5243 = load i32, ptr %5242, align 4, !tbaa !43
  %5244 = icmp eq i32 %5243, 39
  br i1 %5244, label %5298, label %5245

5245:                                             ; preds = %5237
  br label %5246

5246:                                             ; preds = %5245
  br label %5247

5247:                                             ; preds = %5246
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %5248 = call ptr @__errno_location() #10
  %5249 = load i32, ptr %5248, align 4, !tbaa !11
  store i32 %5249, ptr %94, align 4, !tbaa !11
  %5250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5251 = call i32 @s2n_print_stacktrace(ptr noundef %5250)
  %5252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5253 = trunc i8 %5252 to i1
  br i1 %5253, label %5254, label %5276

5254:                                             ; preds = %5247
  %5255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5256 = call i32 @fileno(ptr noundef %5255) #9
  %5257 = call i32 @isatty(i32 noundef %5256) #9
  %5258 = icmp ne i32 %5257, 0
  br i1 %5258, label %5259, label %5276

5259:                                             ; preds = %5254
  %5260 = load i32, ptr %94, align 4, !tbaa !11
  %5261 = call ptr @__errno_location() #10
  store i32 %5260, ptr %5261, align 4, !tbaa !11
  %5262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5263 = load i32, ptr @test_count, align 4, !tbaa !11
  %5264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5265 = load i32, ptr %5264, align 4, !tbaa !11
  %5266 = call ptr @s2n_strerror(i32 noundef %5265, ptr noundef @.str.52)
  %5267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5268 = load i32, ptr %5267, align 4, !tbaa !11
  %5269 = call ptr @s2n_strerror_debug(i32 noundef %5268, ptr noundef @.str.52)
  %5270 = call ptr @__errno_location() #10
  %5271 = load i32, ptr %5270, align 4, !tbaa !11
  %5272 = call ptr @strerror(i32 noundef %5271) #9
  %5273 = call ptr @__errno_location() #10
  %5274 = load i32, ptr %5273, align 4, !tbaa !11
  %5275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5262, ptr noundef @.str.49, i32 noundef %5263, ptr noundef @.str.105, ptr noundef @.str.51, i32 noundef 271, ptr noundef %5266, ptr noundef %5269, ptr noundef %5272, i32 noundef %5274) #9
  br label %5293

5276:                                             ; preds = %5254, %5247
  %5277 = load i32, ptr %94, align 4, !tbaa !11
  %5278 = call ptr @__errno_location() #10
  store i32 %5277, ptr %5278, align 4, !tbaa !11
  %5279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5280 = load i32, ptr @test_count, align 4, !tbaa !11
  %5281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5282 = load i32, ptr %5281, align 4, !tbaa !11
  %5283 = call ptr @s2n_strerror(i32 noundef %5282, ptr noundef @.str.52)
  %5284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5285 = load i32, ptr %5284, align 4, !tbaa !11
  %5286 = call ptr @s2n_strerror_debug(i32 noundef %5285, ptr noundef @.str.52)
  %5287 = call ptr @__errno_location() #10
  %5288 = load i32, ptr %5287, align 4, !tbaa !11
  %5289 = call ptr @strerror(i32 noundef %5288) #9
  %5290 = call ptr @__errno_location() #10
  %5291 = load i32, ptr %5290, align 4, !tbaa !11
  %5292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5279, ptr noundef @.str.53, i32 noundef %5280, ptr noundef @.str.105, ptr noundef @.str.51, i32 noundef 271, ptr noundef %5283, ptr noundef %5286, ptr noundef %5289, i32 noundef %5291) #9
  br label %5293

5293:                                             ; preds = %5276, %5259
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %5294

5294:                                             ; preds = %5293
  br label %5295

5295:                                             ; preds = %5294
  call void @exit(i32 noundef 1) #11
  unreachable

5296:                                             ; No predecessors!
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297, %5237
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300
  %5302 = load i32, ptr @test_count, align 4, !tbaa !11
  %5303 = add nsw i32 %5302, 1
  store i32 %5303, ptr @test_count, align 4, !tbaa !11
  %5304 = load ptr, ptr %4, align 8, !tbaa !9
  %5305 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5304)
  %5306 = icmp eq i32 %5305, 10
  br i1 %5306, label %5360, label %5307

5307:                                             ; preds = %5301
  br label %5308

5308:                                             ; preds = %5307
  br label %5309

5309:                                             ; preds = %5308
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %5310 = call ptr @__errno_location() #10
  %5311 = load i32, ptr %5310, align 4, !tbaa !11
  store i32 %5311, ptr %95, align 4, !tbaa !11
  %5312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5313 = call i32 @s2n_print_stacktrace(ptr noundef %5312)
  %5314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5315 = trunc i8 %5314 to i1
  br i1 %5315, label %5316, label %5338

5316:                                             ; preds = %5309
  %5317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5318 = call i32 @fileno(ptr noundef %5317) #9
  %5319 = call i32 @isatty(i32 noundef %5318) #9
  %5320 = icmp ne i32 %5319, 0
  br i1 %5320, label %5321, label %5338

5321:                                             ; preds = %5316
  %5322 = load i32, ptr %95, align 4, !tbaa !11
  %5323 = call ptr @__errno_location() #10
  store i32 %5322, ptr %5323, align 4, !tbaa !11
  %5324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5325 = load i32, ptr @test_count, align 4, !tbaa !11
  %5326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5327 = load i32, ptr %5326, align 4, !tbaa !11
  %5328 = call ptr @s2n_strerror(i32 noundef %5327, ptr noundef @.str.52)
  %5329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5330 = load i32, ptr %5329, align 4, !tbaa !11
  %5331 = call ptr @s2n_strerror_debug(i32 noundef %5330, ptr noundef @.str.52)
  %5332 = call ptr @__errno_location() #10
  %5333 = load i32, ptr %5332, align 4, !tbaa !11
  %5334 = call ptr @strerror(i32 noundef %5333) #9
  %5335 = call ptr @__errno_location() #10
  %5336 = load i32, ptr %5335, align 4, !tbaa !11
  %5337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5324, ptr noundef @.str.49, i32 noundef %5325, ptr noundef @.str.130, ptr noundef @.str.51, i32 noundef 274, ptr noundef %5328, ptr noundef %5331, ptr noundef %5334, i32 noundef %5336) #9
  br label %5355

5338:                                             ; preds = %5316, %5309
  %5339 = load i32, ptr %95, align 4, !tbaa !11
  %5340 = call ptr @__errno_location() #10
  store i32 %5339, ptr %5340, align 4, !tbaa !11
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = load i32, ptr @test_count, align 4, !tbaa !11
  %5343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5344 = load i32, ptr %5343, align 4, !tbaa !11
  %5345 = call ptr @s2n_strerror(i32 noundef %5344, ptr noundef @.str.52)
  %5346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5347 = load i32, ptr %5346, align 4, !tbaa !11
  %5348 = call ptr @s2n_strerror_debug(i32 noundef %5347, ptr noundef @.str.52)
  %5349 = call ptr @__errno_location() #10
  %5350 = load i32, ptr %5349, align 4, !tbaa !11
  %5351 = call ptr @strerror(i32 noundef %5350) #9
  %5352 = call ptr @__errno_location() #10
  %5353 = load i32, ptr %5352, align 4, !tbaa !11
  %5354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5341, ptr noundef @.str.53, i32 noundef %5342, ptr noundef @.str.130, ptr noundef @.str.51, i32 noundef 274, ptr noundef %5345, ptr noundef %5348, ptr noundef %5351, i32 noundef %5353) #9
  br label %5355

5355:                                             ; preds = %5338, %5321
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %5356

5356:                                             ; preds = %5355
  br label %5357

5357:                                             ; preds = %5356
  call void @exit(i32 noundef 1) #11
  unreachable

5358:                                             ; No predecessors!
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

5360:                                             ; preds = %5359, %5301
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362
  %5364 = load i32, ptr @test_count, align 4, !tbaa !11
  %5365 = add nsw i32 %5364, 1
  store i32 %5365, ptr @test_count, align 4, !tbaa !11
  %5366 = load ptr, ptr %4, align 8, !tbaa !9
  %5367 = call i32 @s2n_handshake_read_io(ptr noundef %5366)
  %5368 = icmp eq i32 %5367, -1
  br i1 %5368, label %5369, label %5422

5369:                                             ; preds = %5363
  br label %5370

5370:                                             ; preds = %5369
  br label %5371

5371:                                             ; preds = %5370
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %5372 = call ptr @__errno_location() #10
  %5373 = load i32, ptr %5372, align 4, !tbaa !11
  store i32 %5373, ptr %96, align 4, !tbaa !11
  %5374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5375 = call i32 @s2n_print_stacktrace(ptr noundef %5374)
  %5376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5377 = trunc i8 %5376 to i1
  br i1 %5377, label %5378, label %5400

5378:                                             ; preds = %5371
  %5379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5380 = call i32 @fileno(ptr noundef %5379) #9
  %5381 = call i32 @isatty(i32 noundef %5380) #9
  %5382 = icmp ne i32 %5381, 0
  br i1 %5382, label %5383, label %5400

5383:                                             ; preds = %5378
  %5384 = load i32, ptr %96, align 4, !tbaa !11
  %5385 = call ptr @__errno_location() #10
  store i32 %5384, ptr %5385, align 4, !tbaa !11
  %5386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5387 = load i32, ptr @test_count, align 4, !tbaa !11
  %5388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5389 = load i32, ptr %5388, align 4, !tbaa !11
  %5390 = call ptr @s2n_strerror(i32 noundef %5389, ptr noundef @.str.52)
  %5391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5392 = load i32, ptr %5391, align 4, !tbaa !11
  %5393 = call ptr @s2n_strerror_debug(i32 noundef %5392, ptr noundef @.str.52)
  %5394 = call ptr @__errno_location() #10
  %5395 = load i32, ptr %5394, align 4, !tbaa !11
  %5396 = call ptr @strerror(i32 noundef %5395) #9
  %5397 = call ptr @__errno_location() #10
  %5398 = load i32, ptr %5397, align 4, !tbaa !11
  %5399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5386, ptr noundef @.str.49, i32 noundef %5387, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 275, ptr noundef %5390, ptr noundef %5393, ptr noundef %5396, i32 noundef %5398) #9
  br label %5417

5400:                                             ; preds = %5378, %5371
  %5401 = load i32, ptr %96, align 4, !tbaa !11
  %5402 = call ptr @__errno_location() #10
  store i32 %5401, ptr %5402, align 4, !tbaa !11
  %5403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5404 = load i32, ptr @test_count, align 4, !tbaa !11
  %5405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5406 = load i32, ptr %5405, align 4, !tbaa !11
  %5407 = call ptr @s2n_strerror(i32 noundef %5406, ptr noundef @.str.52)
  %5408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5409 = load i32, ptr %5408, align 4, !tbaa !11
  %5410 = call ptr @s2n_strerror_debug(i32 noundef %5409, ptr noundef @.str.52)
  %5411 = call ptr @__errno_location() #10
  %5412 = load i32, ptr %5411, align 4, !tbaa !11
  %5413 = call ptr @strerror(i32 noundef %5412) #9
  %5414 = call ptr @__errno_location() #10
  %5415 = load i32, ptr %5414, align 4, !tbaa !11
  %5416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5403, ptr noundef @.str.53, i32 noundef %5404, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 275, ptr noundef %5407, ptr noundef %5410, ptr noundef %5413, i32 noundef %5415) #9
  br label %5417

5417:                                             ; preds = %5400, %5383
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %5418

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  call void @exit(i32 noundef 1) #11
  unreachable

5420:                                             ; No predecessors!
  br label %5421

5421:                                             ; preds = %5420
  br label %5422

5422:                                             ; preds = %5421, %5363
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424, %5235
  br label %5426

5426:                                             ; preds = %5425
  %5427 = load i32, ptr @test_count, align 4, !tbaa !11
  %5428 = add nsw i32 %5427, 1
  store i32 %5428, ptr @test_count, align 4, !tbaa !11
  %5429 = load ptr, ptr %4, align 8, !tbaa !9
  %5430 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5429)
  %5431 = icmp eq i32 %5430, 13
  br i1 %5431, label %5485, label %5432

5432:                                             ; preds = %5426
  br label %5433

5433:                                             ; preds = %5432
  br label %5434

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

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

5446:                                             ; preds = %5441
  %5447 = load i32, ptr %97, align 4, !tbaa !11
  %5448 = call ptr @__errno_location() #10
  store i32 %5447, ptr %5448, align 4, !tbaa !11
  %5449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5450 = load i32, ptr @test_count, align 4, !tbaa !11
  %5451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5452 = load i32, ptr %5451, align 4, !tbaa !11
  %5453 = call ptr @s2n_strerror(i32 noundef %5452, ptr noundef @.str.52)
  %5454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5455 = load i32, ptr %5454, align 4, !tbaa !11
  %5456 = call ptr @s2n_strerror_debug(i32 noundef %5455, ptr noundef @.str.52)
  %5457 = call ptr @__errno_location() #10
  %5458 = load i32, ptr %5457, align 4, !tbaa !11
  %5459 = call ptr @strerror(i32 noundef %5458) #9
  %5460 = call ptr @__errno_location() #10
  %5461 = load i32, ptr %5460, align 4, !tbaa !11
  %5462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5449, ptr noundef @.str.49, i32 noundef %5450, ptr noundef @.str.131, ptr noundef @.str.51, i32 noundef 279, ptr noundef %5453, ptr noundef %5456, ptr noundef %5459, i32 noundef %5461) #9
  br label %5480

5463:                                             ; preds = %5441, %5434
  %5464 = load i32, ptr %97, align 4, !tbaa !11
  %5465 = call ptr @__errno_location() #10
  store i32 %5464, ptr %5465, align 4, !tbaa !11
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = load i32, ptr @test_count, align 4, !tbaa !11
  %5468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5469 = load i32, ptr %5468, align 4, !tbaa !11
  %5470 = call ptr @s2n_strerror(i32 noundef %5469, ptr noundef @.str.52)
  %5471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5472 = load i32, ptr %5471, align 4, !tbaa !11
  %5473 = call ptr @s2n_strerror_debug(i32 noundef %5472, ptr noundef @.str.52)
  %5474 = call ptr @__errno_location() #10
  %5475 = load i32, ptr %5474, align 4, !tbaa !11
  %5476 = call ptr @strerror(i32 noundef %5475) #9
  %5477 = call ptr @__errno_location() #10
  %5478 = load i32, ptr %5477, align 4, !tbaa !11
  %5479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5466, ptr noundef @.str.53, i32 noundef %5467, ptr noundef @.str.131, ptr noundef @.str.51, i32 noundef 279, ptr noundef %5470, ptr noundef %5473, ptr noundef %5476, i32 noundef %5478) #9
  br label %5480

5480:                                             ; preds = %5463, %5446
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %5481

5481:                                             ; preds = %5480
  br label %5482

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

5483:                                             ; No predecessors!
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

5485:                                             ; preds = %5484, %5426
  br label %5486

5486:                                             ; preds = %5485
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  %5489 = load i32, ptr @test_count, align 4, !tbaa !11
  %5490 = add nsw i32 %5489, 1
  store i32 %5490, ptr @test_count, align 4, !tbaa !11
  %5491 = load ptr, ptr %4, align 8, !tbaa !9
  %5492 = call i32 @s2n_handshake_read_io(ptr noundef %5491)
  %5493 = icmp eq i32 %5492, -1
  br i1 %5493, label %5494, label %5547

5494:                                             ; preds = %5488
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %5497 = call ptr @__errno_location() #10
  %5498 = load i32, ptr %5497, align 4, !tbaa !11
  store i32 %5498, ptr %98, align 4, !tbaa !11
  %5499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5500 = call i32 @s2n_print_stacktrace(ptr noundef %5499)
  %5501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5502 = trunc i8 %5501 to i1
  br i1 %5502, label %5503, label %5525

5503:                                             ; preds = %5496
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = call i32 @fileno(ptr noundef %5504) #9
  %5506 = call i32 @isatty(i32 noundef %5505) #9
  %5507 = icmp ne i32 %5506, 0
  br i1 %5507, label %5508, label %5525

5508:                                             ; preds = %5503
  %5509 = load i32, ptr %98, align 4, !tbaa !11
  %5510 = call ptr @__errno_location() #10
  store i32 %5509, ptr %5510, align 4, !tbaa !11
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = load i32, ptr @test_count, align 4, !tbaa !11
  %5513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5514 = load i32, ptr %5513, align 4, !tbaa !11
  %5515 = call ptr @s2n_strerror(i32 noundef %5514, ptr noundef @.str.52)
  %5516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5517 = load i32, ptr %5516, align 4, !tbaa !11
  %5518 = call ptr @s2n_strerror_debug(i32 noundef %5517, ptr noundef @.str.52)
  %5519 = call ptr @__errno_location() #10
  %5520 = load i32, ptr %5519, align 4, !tbaa !11
  %5521 = call ptr @strerror(i32 noundef %5520) #9
  %5522 = call ptr @__errno_location() #10
  %5523 = load i32, ptr %5522, align 4, !tbaa !11
  %5524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5511, ptr noundef @.str.49, i32 noundef %5512, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 280, ptr noundef %5515, ptr noundef %5518, ptr noundef %5521, i32 noundef %5523) #9
  br label %5542

5525:                                             ; preds = %5503, %5496
  %5526 = load i32, ptr %98, align 4, !tbaa !11
  %5527 = call ptr @__errno_location() #10
  store i32 %5526, ptr %5527, align 4, !tbaa !11
  %5528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5529 = load i32, ptr @test_count, align 4, !tbaa !11
  %5530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5531 = load i32, ptr %5530, align 4, !tbaa !11
  %5532 = call ptr @s2n_strerror(i32 noundef %5531, ptr noundef @.str.52)
  %5533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5534 = load i32, ptr %5533, align 4, !tbaa !11
  %5535 = call ptr @s2n_strerror_debug(i32 noundef %5534, ptr noundef @.str.52)
  %5536 = call ptr @__errno_location() #10
  %5537 = load i32, ptr %5536, align 4, !tbaa !11
  %5538 = call ptr @strerror(i32 noundef %5537) #9
  %5539 = call ptr @__errno_location() #10
  %5540 = load i32, ptr %5539, align 4, !tbaa !11
  %5541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5528, ptr noundef @.str.53, i32 noundef %5529, ptr noundef @.str.103, ptr noundef @.str.51, i32 noundef 280, ptr noundef %5532, ptr noundef %5535, ptr noundef %5538, i32 noundef %5540) #9
  br label %5542

5542:                                             ; preds = %5525, %5508
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  call void @exit(i32 noundef 1) #11
  unreachable

5545:                                             ; No predecessors!
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

5547:                                             ; preds = %5546, %5488
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

5549:                                             ; preds = %5548
  br label %5550

5550:                                             ; preds = %5549
  %5551 = load i32, ptr @test_count, align 4, !tbaa !11
  %5552 = add nsw i32 %5551, 1
  store i32 %5552, ptr @test_count, align 4, !tbaa !11
  %5553 = load ptr, ptr %3, align 8, !tbaa !9
  %5554 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5553)
  %5555 = icmp eq i32 %5554, 20
  br i1 %5555, label %5609, label %5556

5556:                                             ; preds = %5550
  br label %5557

5557:                                             ; preds = %5556
  br label %5558

5558:                                             ; preds = %5557
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %5559 = call ptr @__errno_location() #10
  %5560 = load i32, ptr %5559, align 4, !tbaa !11
  store i32 %5560, ptr %99, align 4, !tbaa !11
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = call i32 @s2n_print_stacktrace(ptr noundef %5561)
  %5563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5564 = trunc i8 %5563 to i1
  br i1 %5564, label %5565, label %5587

5565:                                             ; preds = %5558
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = call i32 @fileno(ptr noundef %5566) #9
  %5568 = call i32 @isatty(i32 noundef %5567) #9
  %5569 = icmp ne i32 %5568, 0
  br i1 %5569, label %5570, label %5587

5570:                                             ; preds = %5565
  %5571 = load i32, ptr %99, align 4, !tbaa !11
  %5572 = call ptr @__errno_location() #10
  store i32 %5571, ptr %5572, align 4, !tbaa !11
  %5573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5574 = load i32, ptr @test_count, align 4, !tbaa !11
  %5575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5576 = load i32, ptr %5575, align 4, !tbaa !11
  %5577 = call ptr @s2n_strerror(i32 noundef %5576, ptr noundef @.str.52)
  %5578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5579 = load i32, ptr %5578, align 4, !tbaa !11
  %5580 = call ptr @s2n_strerror_debug(i32 noundef %5579, ptr noundef @.str.52)
  %5581 = call ptr @__errno_location() #10
  %5582 = load i32, ptr %5581, align 4, !tbaa !11
  %5583 = call ptr @strerror(i32 noundef %5582) #9
  %5584 = call ptr @__errno_location() #10
  %5585 = load i32, ptr %5584, align 4, !tbaa !11
  %5586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5573, ptr noundef @.str.49, i32 noundef %5574, ptr noundef @.str.132, ptr noundef @.str.51, i32 noundef 282, ptr noundef %5577, ptr noundef %5580, ptr noundef %5583, i32 noundef %5585) #9
  br label %5604

5587:                                             ; preds = %5565, %5558
  %5588 = load i32, ptr %99, align 4, !tbaa !11
  %5589 = call ptr @__errno_location() #10
  store i32 %5588, ptr %5589, align 4, !tbaa !11
  %5590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5591 = load i32, ptr @test_count, align 4, !tbaa !11
  %5592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5593 = load i32, ptr %5592, align 4, !tbaa !11
  %5594 = call ptr @s2n_strerror(i32 noundef %5593, ptr noundef @.str.52)
  %5595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5596 = load i32, ptr %5595, align 4, !tbaa !11
  %5597 = call ptr @s2n_strerror_debug(i32 noundef %5596, ptr noundef @.str.52)
  %5598 = call ptr @__errno_location() #10
  %5599 = load i32, ptr %5598, align 4, !tbaa !11
  %5600 = call ptr @strerror(i32 noundef %5599) #9
  %5601 = call ptr @__errno_location() #10
  %5602 = load i32, ptr %5601, align 4, !tbaa !11
  %5603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5590, ptr noundef @.str.53, i32 noundef %5591, ptr noundef @.str.132, ptr noundef @.str.51, i32 noundef 282, ptr noundef %5594, ptr noundef %5597, ptr noundef %5600, i32 noundef %5602) #9
  br label %5604

5604:                                             ; preds = %5587, %5570
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  call void @exit(i32 noundef 1) #11
  unreachable

5607:                                             ; No predecessors!
  br label %5608

5608:                                             ; preds = %5607
  br label %5609

5609:                                             ; preds = %5608, %5550
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

5611:                                             ; preds = %5610
  br label %5612

5612:                                             ; preds = %5611
  %5613 = load i32, ptr @test_count, align 4, !tbaa !11
  %5614 = add nsw i32 %5613, 1
  store i32 %5614, ptr @test_count, align 4, !tbaa !11
  %5615 = load ptr, ptr %4, align 8, !tbaa !9
  %5616 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5615)
  %5617 = icmp eq i32 %5616, 20
  br i1 %5617, label %5671, label %5618

5618:                                             ; preds = %5612
  br label %5619

5619:                                             ; preds = %5618
  br label %5620

5620:                                             ; preds = %5619
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %5621 = call ptr @__errno_location() #10
  %5622 = load i32, ptr %5621, align 4, !tbaa !11
  store i32 %5622, ptr %100, align 4, !tbaa !11
  %5623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5624 = call i32 @s2n_print_stacktrace(ptr noundef %5623)
  %5625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5626 = trunc i8 %5625 to i1
  br i1 %5626, label %5627, label %5649

5627:                                             ; preds = %5620
  %5628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5629 = call i32 @fileno(ptr noundef %5628) #9
  %5630 = call i32 @isatty(i32 noundef %5629) #9
  %5631 = icmp ne i32 %5630, 0
  br i1 %5631, label %5632, label %5649

5632:                                             ; preds = %5627
  %5633 = load i32, ptr %100, align 4, !tbaa !11
  %5634 = call ptr @__errno_location() #10
  store i32 %5633, ptr %5634, align 4, !tbaa !11
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = load i32, ptr @test_count, align 4, !tbaa !11
  %5637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5638 = load i32, ptr %5637, align 4, !tbaa !11
  %5639 = call ptr @s2n_strerror(i32 noundef %5638, ptr noundef @.str.52)
  %5640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5641 = load i32, ptr %5640, align 4, !tbaa !11
  %5642 = call ptr @s2n_strerror_debug(i32 noundef %5641, ptr noundef @.str.52)
  %5643 = call ptr @__errno_location() #10
  %5644 = load i32, ptr %5643, align 4, !tbaa !11
  %5645 = call ptr @strerror(i32 noundef %5644) #9
  %5646 = call ptr @__errno_location() #10
  %5647 = load i32, ptr %5646, align 4, !tbaa !11
  %5648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5635, ptr noundef @.str.49, i32 noundef %5636, ptr noundef @.str.133, ptr noundef @.str.51, i32 noundef 283, ptr noundef %5639, ptr noundef %5642, ptr noundef %5645, i32 noundef %5647) #9
  br label %5666

5649:                                             ; preds = %5627, %5620
  %5650 = load i32, ptr %100, align 4, !tbaa !11
  %5651 = call ptr @__errno_location() #10
  store i32 %5650, ptr %5651, align 4, !tbaa !11
  %5652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5653 = load i32, ptr @test_count, align 4, !tbaa !11
  %5654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5655 = load i32, ptr %5654, align 4, !tbaa !11
  %5656 = call ptr @s2n_strerror(i32 noundef %5655, ptr noundef @.str.52)
  %5657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5658 = load i32, ptr %5657, align 4, !tbaa !11
  %5659 = call ptr @s2n_strerror_debug(i32 noundef %5658, ptr noundef @.str.52)
  %5660 = call ptr @__errno_location() #10
  %5661 = load i32, ptr %5660, align 4, !tbaa !11
  %5662 = call ptr @strerror(i32 noundef %5661) #9
  %5663 = call ptr @__errno_location() #10
  %5664 = load i32, ptr %5663, align 4, !tbaa !11
  %5665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5652, ptr noundef @.str.53, i32 noundef %5653, ptr noundef @.str.133, ptr noundef @.str.51, i32 noundef 283, ptr noundef %5656, ptr noundef %5659, ptr noundef %5662, i32 noundef %5664) #9
  br label %5666

5666:                                             ; preds = %5649, %5632
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %5667

5667:                                             ; preds = %5666
  br label %5668

5668:                                             ; preds = %5667
  call void @exit(i32 noundef 1) #11
  unreachable

5669:                                             ; No predecessors!
  br label %5670

5670:                                             ; preds = %5669
  br label %5671

5671:                                             ; preds = %5670, %5612
  br label %5672

5672:                                             ; preds = %5671
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  %5675 = load i32, ptr @test_count, align 4, !tbaa !11
  %5676 = add nsw i32 %5675, 1
  store i32 %5676, ptr @test_count, align 4, !tbaa !11
  %5677 = call i32 @s2n_stuffer_free(ptr noundef %31)
  %5678 = icmp eq i32 %5677, -1
  br i1 %5678, label %5679, label %5732

5679:                                             ; preds = %5674
  br label %5680

5680:                                             ; preds = %5679
  br label %5681

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

5688:                                             ; preds = %5681
  %5689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5690 = call i32 @fileno(ptr noundef %5689) #9
  %5691 = call i32 @isatty(i32 noundef %5690) #9
  %5692 = icmp ne i32 %5691, 0
  br i1 %5692, label %5693, label %5710

5693:                                             ; preds = %5688
  %5694 = load i32, ptr %101, align 4, !tbaa !11
  %5695 = call ptr @__errno_location() #10
  store i32 %5694, ptr %5695, align 4, !tbaa !11
  %5696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5697 = load i32, ptr @test_count, align 4, !tbaa !11
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !11
  %5700 = call ptr @s2n_strerror(i32 noundef %5699, ptr noundef @.str.52)
  %5701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5702 = load i32, ptr %5701, align 4, !tbaa !11
  %5703 = call ptr @s2n_strerror_debug(i32 noundef %5702, ptr noundef @.str.52)
  %5704 = call ptr @__errno_location() #10
  %5705 = load i32, ptr %5704, align 4, !tbaa !11
  %5706 = call ptr @strerror(i32 noundef %5705) #9
  %5707 = call ptr @__errno_location() #10
  %5708 = load i32, ptr %5707, align 4, !tbaa !11
  %5709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5696, ptr noundef @.str.49, i32 noundef %5697, ptr noundef @.str.134, ptr noundef @.str.51, i32 noundef 286, ptr noundef %5700, ptr noundef %5703, ptr noundef %5706, i32 noundef %5708) #9
  br label %5727

5710:                                             ; preds = %5688, %5681
  %5711 = load i32, ptr %101, align 4, !tbaa !11
  %5712 = call ptr @__errno_location() #10
  store i32 %5711, ptr %5712, align 4, !tbaa !11
  %5713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5714 = load i32, ptr @test_count, align 4, !tbaa !11
  %5715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5716 = load i32, ptr %5715, align 4, !tbaa !11
  %5717 = call ptr @s2n_strerror(i32 noundef %5716, ptr noundef @.str.52)
  %5718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5719 = load i32, ptr %5718, align 4, !tbaa !11
  %5720 = call ptr @s2n_strerror_debug(i32 noundef %5719, ptr noundef @.str.52)
  %5721 = call ptr @__errno_location() #10
  %5722 = load i32, ptr %5721, align 4, !tbaa !11
  %5723 = call ptr @strerror(i32 noundef %5722) #9
  %5724 = call ptr @__errno_location() #10
  %5725 = load i32, ptr %5724, align 4, !tbaa !11
  %5726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5713, ptr noundef @.str.53, i32 noundef %5714, ptr noundef @.str.134, ptr noundef @.str.51, i32 noundef 286, ptr noundef %5717, ptr noundef %5720, ptr noundef %5723, i32 noundef %5725) #9
  br label %5727

5727:                                             ; preds = %5710, %5693
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

5729:                                             ; preds = %5728
  call void @exit(i32 noundef 1) #11
  unreachable

5730:                                             ; No predecessors!
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731, %5674
  br label %5733

5733:                                             ; preds = %5732
  br label %5734

5734:                                             ; preds = %5733
  br label %5735

5735:                                             ; preds = %5734
  %5736 = load i32, ptr @test_count, align 4, !tbaa !11
  %5737 = add nsw i32 %5736, 1
  store i32 %5737, ptr @test_count, align 4, !tbaa !11
  %5738 = call i32 @s2n_stuffer_free(ptr noundef %32)
  %5739 = icmp eq i32 %5738, -1
  br i1 %5739, label %5740, label %5793

5740:                                             ; preds = %5735
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

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

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

5754:                                             ; preds = %5749
  %5755 = load i32, ptr %102, align 4, !tbaa !11
  %5756 = call ptr @__errno_location() #10
  store i32 %5755, ptr %5756, align 4, !tbaa !11
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = load i32, ptr @test_count, align 4, !tbaa !11
  %5759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5760 = load i32, ptr %5759, align 4, !tbaa !11
  %5761 = call ptr @s2n_strerror(i32 noundef %5760, ptr noundef @.str.52)
  %5762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5763 = load i32, ptr %5762, align 4, !tbaa !11
  %5764 = call ptr @s2n_strerror_debug(i32 noundef %5763, ptr noundef @.str.52)
  %5765 = call ptr @__errno_location() #10
  %5766 = load i32, ptr %5765, align 4, !tbaa !11
  %5767 = call ptr @strerror(i32 noundef %5766) #9
  %5768 = call ptr @__errno_location() #10
  %5769 = load i32, ptr %5768, align 4, !tbaa !11
  %5770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5757, ptr noundef @.str.49, i32 noundef %5758, ptr noundef @.str.135, ptr noundef @.str.51, i32 noundef 287, ptr noundef %5761, ptr noundef %5764, ptr noundef %5767, i32 noundef %5769) #9
  br label %5788

5771:                                             ; preds = %5749, %5742
  %5772 = load i32, ptr %102, align 4, !tbaa !11
  %5773 = call ptr @__errno_location() #10
  store i32 %5772, ptr %5773, align 4, !tbaa !11
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !11
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !11
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef @.str.52)
  %5779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5780 = load i32, ptr %5779, align 4, !tbaa !11
  %5781 = call ptr @s2n_strerror_debug(i32 noundef %5780, ptr noundef @.str.52)
  %5782 = call ptr @__errno_location() #10
  %5783 = load i32, ptr %5782, align 4, !tbaa !11
  %5784 = call ptr @strerror(i32 noundef %5783) #9
  %5785 = call ptr @__errno_location() #10
  %5786 = load i32, ptr %5785, align 4, !tbaa !11
  %5787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef @.str.53, i32 noundef %5775, ptr noundef @.str.135, ptr noundef @.str.51, i32 noundef 287, ptr noundef %5778, ptr noundef %5781, ptr noundef %5784, i32 noundef %5786) #9
  br label %5788

5788:                                             ; preds = %5771, %5754
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %5789

5789:                                             ; preds = %5788
  br label %5790

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

5791:                                             ; No predecessors!
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792, %5735
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  br label %5796

5796:                                             ; preds = %5795
  %5797 = load i32, ptr @test_count, align 4, !tbaa !11
  %5798 = add nsw i32 %5797, 1
  store i32 %5798, ptr @test_count, align 4, !tbaa !11
  %5799 = load ptr, ptr %3, align 8, !tbaa !9
  %5800 = call i32 @s2n_connection_free(ptr noundef %5799)
  %5801 = icmp eq i32 %5800, -1
  br i1 %5801, label %5802, label %5855

5802:                                             ; preds = %5796
  br label %5803

5803:                                             ; preds = %5802
  br label %5804

5804:                                             ; preds = %5803
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %5805 = call ptr @__errno_location() #10
  %5806 = load i32, ptr %5805, align 4, !tbaa !11
  store i32 %5806, ptr %103, align 4, !tbaa !11
  %5807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5808 = call i32 @s2n_print_stacktrace(ptr noundef %5807)
  %5809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5810 = trunc i8 %5809 to i1
  br i1 %5810, label %5811, label %5833

5811:                                             ; preds = %5804
  %5812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5813 = call i32 @fileno(ptr noundef %5812) #9
  %5814 = call i32 @isatty(i32 noundef %5813) #9
  %5815 = icmp ne i32 %5814, 0
  br i1 %5815, label %5816, label %5833

5816:                                             ; preds = %5811
  %5817 = load i32, ptr %103, align 4, !tbaa !11
  %5818 = call ptr @__errno_location() #10
  store i32 %5817, ptr %5818, align 4, !tbaa !11
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = load i32, ptr @test_count, align 4, !tbaa !11
  %5821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5822 = load i32, ptr %5821, align 4, !tbaa !11
  %5823 = call ptr @s2n_strerror(i32 noundef %5822, ptr noundef @.str.52)
  %5824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5825 = load i32, ptr %5824, align 4, !tbaa !11
  %5826 = call ptr @s2n_strerror_debug(i32 noundef %5825, ptr noundef @.str.52)
  %5827 = call ptr @__errno_location() #10
  %5828 = load i32, ptr %5827, align 4, !tbaa !11
  %5829 = call ptr @strerror(i32 noundef %5828) #9
  %5830 = call ptr @__errno_location() #10
  %5831 = load i32, ptr %5830, align 4, !tbaa !11
  %5832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5819, ptr noundef @.str.49, i32 noundef %5820, ptr noundef @.str.72, ptr noundef @.str.51, i32 noundef 289, ptr noundef %5823, ptr noundef %5826, ptr noundef %5829, i32 noundef %5831) #9
  br label %5850

5833:                                             ; preds = %5811, %5804
  %5834 = load i32, ptr %103, align 4, !tbaa !11
  %5835 = call ptr @__errno_location() #10
  store i32 %5834, ptr %5835, align 4, !tbaa !11
  %5836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5837 = load i32, ptr @test_count, align 4, !tbaa !11
  %5838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5839 = load i32, ptr %5838, align 4, !tbaa !11
  %5840 = call ptr @s2n_strerror(i32 noundef %5839, ptr noundef @.str.52)
  %5841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5842 = load i32, ptr %5841, align 4, !tbaa !11
  %5843 = call ptr @s2n_strerror_debug(i32 noundef %5842, ptr noundef @.str.52)
  %5844 = call ptr @__errno_location() #10
  %5845 = load i32, ptr %5844, align 4, !tbaa !11
  %5846 = call ptr @strerror(i32 noundef %5845) #9
  %5847 = call ptr @__errno_location() #10
  %5848 = load i32, ptr %5847, align 4, !tbaa !11
  %5849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5836, ptr noundef @.str.53, i32 noundef %5837, ptr noundef @.str.72, ptr noundef @.str.51, i32 noundef 289, ptr noundef %5840, ptr noundef %5843, ptr noundef %5846, i32 noundef %5848) #9
  br label %5850

5850:                                             ; preds = %5833, %5816
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %5851

5851:                                             ; preds = %5850
  br label %5852

5852:                                             ; preds = %5851
  call void @exit(i32 noundef 1) #11
  unreachable

5853:                                             ; No predecessors!
  br label %5854

5854:                                             ; preds = %5853
  br label %5855

5855:                                             ; preds = %5854, %5796
  br label %5856

5856:                                             ; preds = %5855
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

5858:                                             ; preds = %5857
  %5859 = load i32, ptr @test_count, align 4, !tbaa !11
  %5860 = add nsw i32 %5859, 1
  store i32 %5860, ptr @test_count, align 4, !tbaa !11
  %5861 = load ptr, ptr %4, align 8, !tbaa !9
  %5862 = call i32 @s2n_connection_free(ptr noundef %5861)
  %5863 = icmp eq i32 %5862, -1
  br i1 %5863, label %5864, label %5917

5864:                                             ; preds = %5858
  br label %5865

5865:                                             ; preds = %5864
  br label %5866

5866:                                             ; preds = %5865
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  %5867 = call ptr @__errno_location() #10
  %5868 = load i32, ptr %5867, align 4, !tbaa !11
  store i32 %5868, ptr %104, align 4, !tbaa !11
  %5869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5870 = call i32 @s2n_print_stacktrace(ptr noundef %5869)
  %5871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5872 = trunc i8 %5871 to i1
  br i1 %5872, label %5873, label %5895

5873:                                             ; preds = %5866
  %5874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5875 = call i32 @fileno(ptr noundef %5874) #9
  %5876 = call i32 @isatty(i32 noundef %5875) #9
  %5877 = icmp ne i32 %5876, 0
  br i1 %5877, label %5878, label %5895

5878:                                             ; preds = %5873
  %5879 = load i32, ptr %104, align 4, !tbaa !11
  %5880 = call ptr @__errno_location() #10
  store i32 %5879, ptr %5880, align 4, !tbaa !11
  %5881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5882 = load i32, ptr @test_count, align 4, !tbaa !11
  %5883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5884 = load i32, ptr %5883, align 4, !tbaa !11
  %5885 = call ptr @s2n_strerror(i32 noundef %5884, ptr noundef @.str.52)
  %5886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5887 = load i32, ptr %5886, align 4, !tbaa !11
  %5888 = call ptr @s2n_strerror_debug(i32 noundef %5887, ptr noundef @.str.52)
  %5889 = call ptr @__errno_location() #10
  %5890 = load i32, ptr %5889, align 4, !tbaa !11
  %5891 = call ptr @strerror(i32 noundef %5890) #9
  %5892 = call ptr @__errno_location() #10
  %5893 = load i32, ptr %5892, align 4, !tbaa !11
  %5894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5881, ptr noundef @.str.49, i32 noundef %5882, ptr noundef @.str.71, ptr noundef @.str.51, i32 noundef 290, ptr noundef %5885, ptr noundef %5888, ptr noundef %5891, i32 noundef %5893) #9
  br label %5912

5895:                                             ; preds = %5873, %5866
  %5896 = load i32, ptr %104, align 4, !tbaa !11
  %5897 = call ptr @__errno_location() #10
  store i32 %5896, ptr %5897, align 4, !tbaa !11
  %5898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5899 = load i32, ptr @test_count, align 4, !tbaa !11
  %5900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5901 = load i32, ptr %5900, align 4, !tbaa !11
  %5902 = call ptr @s2n_strerror(i32 noundef %5901, ptr noundef @.str.52)
  %5903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5904 = load i32, ptr %5903, align 4, !tbaa !11
  %5905 = call ptr @s2n_strerror_debug(i32 noundef %5904, ptr noundef @.str.52)
  %5906 = call ptr @__errno_location() #10
  %5907 = load i32, ptr %5906, align 4, !tbaa !11
  %5908 = call ptr @strerror(i32 noundef %5907) #9
  %5909 = call ptr @__errno_location() #10
  %5910 = load i32, ptr %5909, align 4, !tbaa !11
  %5911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5898, ptr noundef @.str.53, i32 noundef %5899, ptr noundef @.str.71, ptr noundef @.str.51, i32 noundef 290, ptr noundef %5902, ptr noundef %5905, ptr noundef %5908, i32 noundef %5910) #9
  br label %5912

5912:                                             ; preds = %5895, %5878
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %5913

5913:                                             ; preds = %5912
  br label %5914

5914:                                             ; preds = %5913
  call void @exit(i32 noundef 1) #11
  unreachable

5915:                                             ; No predecessors!
  br label %5916

5916:                                             ; preds = %5915
  br label %5917

5917:                                             ; preds = %5916, %5858
  br label %5918

5918:                                             ; preds = %5917
  br label %5919

5919:                                             ; preds = %5918
  br label %5920

5920:                                             ; preds = %5919
  %5921 = load i32, ptr @test_count, align 4, !tbaa !11
  %5922 = add nsw i32 %5921, 1
  store i32 %5922, ptr @test_count, align 4, !tbaa !11
  %5923 = load ptr, ptr %18, align 8, !tbaa !9
  %5924 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %5923)
  %5925 = icmp eq i32 %5924, -1
  br i1 %5925, label %5926, label %5979

5926:                                             ; preds = %5920
  br label %5927

5927:                                             ; preds = %5926
  br label %5928

5928:                                             ; preds = %5927
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %5929 = call ptr @__errno_location() #10
  %5930 = load i32, ptr %5929, align 4, !tbaa !11
  store i32 %5930, ptr %105, align 4, !tbaa !11
  %5931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5932 = call i32 @s2n_print_stacktrace(ptr noundef %5931)
  %5933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5934 = trunc i8 %5933 to i1
  br i1 %5934, label %5935, label %5957

5935:                                             ; preds = %5928
  %5936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5937 = call i32 @fileno(ptr noundef %5936) #9
  %5938 = call i32 @isatty(i32 noundef %5937) #9
  %5939 = icmp ne i32 %5938, 0
  br i1 %5939, label %5940, label %5957

5940:                                             ; preds = %5935
  %5941 = load i32, ptr %105, align 4, !tbaa !11
  %5942 = call ptr @__errno_location() #10
  store i32 %5941, ptr %5942, align 4, !tbaa !11
  %5943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5944 = load i32, ptr @test_count, align 4, !tbaa !11
  %5945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5946 = load i32, ptr %5945, align 4, !tbaa !11
  %5947 = call ptr @s2n_strerror(i32 noundef %5946, ptr noundef @.str.52)
  %5948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5949 = load i32, ptr %5948, align 4, !tbaa !11
  %5950 = call ptr @s2n_strerror_debug(i32 noundef %5949, ptr noundef @.str.52)
  %5951 = call ptr @__errno_location() #10
  %5952 = load i32, ptr %5951, align 4, !tbaa !11
  %5953 = call ptr @strerror(i32 noundef %5952) #9
  %5954 = call ptr @__errno_location() #10
  %5955 = load i32, ptr %5954, align 4, !tbaa !11
  %5956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5943, ptr noundef @.str.49, i32 noundef %5944, ptr noundef @.str.136, ptr noundef @.str.51, i32 noundef 292, ptr noundef %5947, ptr noundef %5950, ptr noundef %5953, i32 noundef %5955) #9
  br label %5974

5957:                                             ; preds = %5935, %5928
  %5958 = load i32, ptr %105, align 4, !tbaa !11
  %5959 = call ptr @__errno_location() #10
  store i32 %5958, ptr %5959, align 4, !tbaa !11
  %5960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5961 = load i32, ptr @test_count, align 4, !tbaa !11
  %5962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5963 = load i32, ptr %5962, align 4, !tbaa !11
  %5964 = call ptr @s2n_strerror(i32 noundef %5963, ptr noundef @.str.52)
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !11
  %5967 = call ptr @s2n_strerror_debug(i32 noundef %5966, ptr noundef @.str.52)
  %5968 = call ptr @__errno_location() #10
  %5969 = load i32, ptr %5968, align 4, !tbaa !11
  %5970 = call ptr @strerror(i32 noundef %5969) #9
  %5971 = call ptr @__errno_location() #10
  %5972 = load i32, ptr %5971, align 4, !tbaa !11
  %5973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5960, ptr noundef @.str.53, i32 noundef %5961, ptr noundef @.str.136, ptr noundef @.str.51, i32 noundef 292, ptr noundef %5964, ptr noundef %5967, ptr noundef %5970, i32 noundef %5972) #9
  br label %5974

5974:                                             ; preds = %5957, %5940
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %5975

5975:                                             ; preds = %5974
  br label %5976

5976:                                             ; preds = %5975
  call void @exit(i32 noundef 1) #11
  unreachable

5977:                                             ; No predecessors!
  br label %5978

5978:                                             ; preds = %5977
  br label %5979

5979:                                             ; preds = %5978, %5920
  br label %5980

5980:                                             ; preds = %5979
  br label %5981

5981:                                             ; preds = %5980
  br label %5982

5982:                                             ; preds = %5981
  %5983 = load i32, ptr @test_count, align 4, !tbaa !11
  %5984 = add nsw i32 %5983, 1
  store i32 %5984, ptr @test_count, align 4, !tbaa !11
  %5985 = load ptr, ptr %5, align 8, !tbaa !9
  %5986 = call i32 @s2n_config_free(ptr noundef %5985)
  %5987 = icmp eq i32 %5986, -1
  br i1 %5987, label %5988, label %6041

5988:                                             ; preds = %5982
  br label %5989

5989:                                             ; preds = %5988
  br label %5990

5990:                                             ; preds = %5989
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %5991 = call ptr @__errno_location() #10
  %5992 = load i32, ptr %5991, align 4, !tbaa !11
  store i32 %5992, ptr %106, align 4, !tbaa !11
  %5993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5994 = call i32 @s2n_print_stacktrace(ptr noundef %5993)
  %5995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !5, !range !13, !noundef !14
  %5996 = trunc i8 %5995 to i1
  br i1 %5996, label %5997, label %6019

5997:                                             ; preds = %5990
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = call i32 @fileno(ptr noundef %5998) #9
  %6000 = call i32 @isatty(i32 noundef %5999) #9
  %6001 = icmp ne i32 %6000, 0
  br i1 %6001, label %6002, label %6019

6002:                                             ; preds = %5997
  %6003 = load i32, ptr %106, align 4, !tbaa !11
  %6004 = call ptr @__errno_location() #10
  store i32 %6003, ptr %6004, align 4, !tbaa !11
  %6005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6006 = load i32, ptr @test_count, align 4, !tbaa !11
  %6007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6008 = load i32, ptr %6007, align 4, !tbaa !11
  %6009 = call ptr @s2n_strerror(i32 noundef %6008, ptr noundef @.str.52)
  %6010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6011 = load i32, ptr %6010, align 4, !tbaa !11
  %6012 = call ptr @s2n_strerror_debug(i32 noundef %6011, ptr noundef @.str.52)
  %6013 = call ptr @__errno_location() #10
  %6014 = load i32, ptr %6013, align 4, !tbaa !11
  %6015 = call ptr @strerror(i32 noundef %6014) #9
  %6016 = call ptr @__errno_location() #10
  %6017 = load i32, ptr %6016, align 4, !tbaa !11
  %6018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6005, ptr noundef @.str.49, i32 noundef %6006, ptr noundef @.str.137, ptr noundef @.str.51, i32 noundef 293, ptr noundef %6009, ptr noundef %6012, ptr noundef %6015, i32 noundef %6017) #9
  br label %6036

6019:                                             ; preds = %5997, %5990
  %6020 = load i32, ptr %106, align 4, !tbaa !11
  %6021 = call ptr @__errno_location() #10
  store i32 %6020, ptr %6021, align 4, !tbaa !11
  %6022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6023 = load i32, ptr @test_count, align 4, !tbaa !11
  %6024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6025 = load i32, ptr %6024, align 4, !tbaa !11
  %6026 = call ptr @s2n_strerror(i32 noundef %6025, ptr noundef @.str.52)
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !11
  %6029 = call ptr @s2n_strerror_debug(i32 noundef %6028, ptr noundef @.str.52)
  %6030 = call ptr @__errno_location() #10
  %6031 = load i32, ptr %6030, align 4, !tbaa !11
  %6032 = call ptr @strerror(i32 noundef %6031) #9
  %6033 = call ptr @__errno_location() #10
  %6034 = load i32, ptr %6033, align 4, !tbaa !11
  %6035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6022, ptr noundef @.str.53, i32 noundef %6023, ptr noundef @.str.137, ptr noundef @.str.51, i32 noundef 293, ptr noundef %6026, ptr noundef %6029, ptr noundef %6032, i32 noundef %6034) #9
  br label %6036

6036:                                             ; preds = %6019, %6002
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037
  call void @exit(i32 noundef 1) #11
  unreachable

6039:                                             ; No predecessors!
  br label %6040

6040:                                             ; preds = %6039
  br label %6041

6041:                                             ; preds = %6040, %5982
  br label %6042

6042:                                             ; preds = %6041
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

6044:                                             ; preds = %6043
  %6045 = load i32, ptr @test_count, align 4, !tbaa !11
  %6046 = add nsw i32 %6045, 1
  store i32 %6046, ptr @test_count, align 4, !tbaa !11
  %6047 = load ptr, ptr %6, align 8, !tbaa !9
  %6048 = call i32 @s2n_config_free(ptr noundef %6047)
  %6049 = icmp eq i32 %6048, -1
  br i1 %6049, label %6050, label %6103

6050:                                             ; preds = %6044
  br label %6051

6051:                                             ; preds = %6050
  br label %6052

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

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

6064:                                             ; preds = %6059
  %6065 = load i32, ptr %107, align 4, !tbaa !11
  %6066 = call ptr @__errno_location() #10
  store i32 %6065, ptr %6066, align 4, !tbaa !11
  %6067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6068 = load i32, ptr @test_count, align 4, !tbaa !11
  %6069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6070 = load i32, ptr %6069, align 4, !tbaa !11
  %6071 = call ptr @s2n_strerror(i32 noundef %6070, ptr noundef @.str.52)
  %6072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6073 = load i32, ptr %6072, align 4, !tbaa !11
  %6074 = call ptr @s2n_strerror_debug(i32 noundef %6073, ptr noundef @.str.52)
  %6075 = call ptr @__errno_location() #10
  %6076 = load i32, ptr %6075, align 4, !tbaa !11
  %6077 = call ptr @strerror(i32 noundef %6076) #9
  %6078 = call ptr @__errno_location() #10
  %6079 = load i32, ptr %6078, align 4, !tbaa !11
  %6080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6067, ptr noundef @.str.49, i32 noundef %6068, ptr noundef @.str.138, ptr noundef @.str.51, i32 noundef 294, ptr noundef %6071, ptr noundef %6074, ptr noundef %6077, i32 noundef %6079) #9
  br label %6098

6081:                                             ; preds = %6059, %6052
  %6082 = load i32, ptr %107, align 4, !tbaa !11
  %6083 = call ptr @__errno_location() #10
  store i32 %6082, ptr %6083, align 4, !tbaa !11
  %6084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6085 = load i32, ptr @test_count, align 4, !tbaa !11
  %6086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6087 = load i32, ptr %6086, align 4, !tbaa !11
  %6088 = call ptr @s2n_strerror(i32 noundef %6087, ptr noundef @.str.52)
  %6089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6090 = load i32, ptr %6089, align 4, !tbaa !11
  %6091 = call ptr @s2n_strerror_debug(i32 noundef %6090, ptr noundef @.str.52)
  %6092 = call ptr @__errno_location() #10
  %6093 = load i32, ptr %6092, align 4, !tbaa !11
  %6094 = call ptr @strerror(i32 noundef %6093) #9
  %6095 = call ptr @__errno_location() #10
  %6096 = load i32, ptr %6095, align 4, !tbaa !11
  %6097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6084, ptr noundef @.str.53, i32 noundef %6085, ptr noundef @.str.138, ptr noundef @.str.51, i32 noundef 294, ptr noundef %6088, ptr noundef %6091, ptr noundef %6094, i32 noundef %6096) #9
  br label %6098

6098:                                             ; preds = %6081, %6064
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %6099

6099:                                             ; preds = %6098
  br label %6100

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

6101:                                             ; No predecessors!
  br label %6102

6102:                                             ; preds = %6101
  br label %6103

6103:                                             ; preds = %6102, %6044
  br label %6104

6104:                                             ; preds = %6103
  br label %6105

6105:                                             ; preds = %6104
  %6106 = load ptr, ptr %13, align 8, !tbaa !9
  call void @free(ptr noundef %6106) #9
  %6107 = load ptr, ptr %12, align 8, !tbaa !9
  call void @free(ptr noundef %6107) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  ret i32 0
}

declare ptr @s2n_config_new() #5

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #5

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #5

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #8

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #5

declare ptr @s2n_cert_chain_and_key_new() #5

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #5

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #5

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #5

declare i32 @s2n_config_free(ptr noundef) #5

; Function Attrs: nounwind
declare void @free(ptr noundef) #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind allocsize(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 #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { nounwind allocsize(0) }

!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 = !{!"_Bool", !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 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 3720}
!16 = !{!"s2n_connection", !12, i64 0, !12, i64 0, !12, i64 0, !12, i64 0, !12, i64 0, !12, i64 0, !12, i64 0, !12, i64 0, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, 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, !12, i64 148, !12, 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, !12, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !12, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !6, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !12, 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, !12, i64 2784, !25, i64 2792, !12, 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, !12, i64 3780, !25, i64 3784, !12, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !6, i64 4080, !6, i64 4081, !6, i64 4082, !31, i64 4084, !31, i64 4086, !12, i64 4088, !12, i64 4092, !25, i64 4096, !12, 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, !12, 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, !6, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !12, i64 8, !12, i64 12, !12, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !12, 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", !12, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !12, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !12, i64 24, !12, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 36, !12, i64 36}
!33 = !{!"", !12, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !12, i64 156, !12, i64 160, !12, i64 164, !12, i64 168, !35, i64 176, !12, i64 184, !12, i64 184, !12, i64 184, !12, i64 184, !12, 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, !12, i64 802, !12, i64 802, !12, i64 802, !12, i64 802, !12, i64 802, !12, i64 802, !12, 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, !12, i64 32, !10, i64 40, !39, i64 48, !6, i64 52}
!39 = !{!"s2n_cert_validation_info", !12, i64 0, !12, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !12, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !7, i64 220}
!43 = !{!16, !12, i64 2172}


; 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, 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
@stderr = external local_unnamed_addr global ptr, align 8
@.str.49 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [59 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: 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) #3

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_write_io(ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_read_io(ptr noundef) local_unnamed_addr #0

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #5

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #5

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

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

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

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

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

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

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

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @s2n_test_client_auth_message_by_message(i1 noundef zeroext %0) local_unnamed_addr #0 {
  %2 = alloca %struct.s2n_stuffer, align 8
  %3 = alloca %struct.s2n_stuffer, align 8
  %4 = load i32, ptr @test_count, align 4, !tbaa !5
  %5 = add nsw i32 %4, 1
  store i32 %5, ptr @test_count, align 4, !tbaa !5
  %6 = tail call ptr @s2n_config_new() #11
  %7 = icmp eq ptr %6, null
  br i1 %7, label %8, label %32

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

15:                                               ; preds = %8
  %16 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17 = tail call i32 @fileno(ptr noundef %16) #11
  %18 = tail call i32 @isatty(i32 noundef %17) #11
  %.not391 = icmp eq i32 %18, 0
  br i1 %.not391, label %19, label %20

19:                                               ; preds = %15, %8
  br label %20

20:                                               ; preds = %15, %19
  %.str.53.sink = phi ptr [ @.str.53, %19 ], [ @.str.49, %15 ]
  store i32 %10, ptr %9, align 4, !tbaa !5
  %21 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22 = load i32, ptr @test_count, align 4, !tbaa !5
  %23 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24 = load i32, ptr %23, align 4, !tbaa !5
  %25 = tail call ptr @s2n_strerror(i32 noundef %24, ptr noundef nonnull @.str.52) #11
  %26 = load i32, ptr %23, align 4, !tbaa !5
  %27 = tail call ptr @s2n_strerror_debug(i32 noundef %26, ptr noundef nonnull @.str.52) #11
  %28 = load i32, ptr %9, align 4, !tbaa !5
  %29 = tail call ptr @strerror(i32 noundef %28) #11
  %30 = load i32, ptr %9, align 4, !tbaa !5
  %31 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21, ptr noundef nonnull %.str.53.sink, i32 noundef %22, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.51, i32 noundef 108, ptr noundef %25, ptr noundef %27, ptr noundef %29, i32 noundef %30) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

32:                                               ; preds = %1
  %33 = load i32, ptr @test_count, align 4, !tbaa !5
  %34 = add nsw i32 %33, 1
  store i32 %34, ptr @test_count, align 4, !tbaa !5
  %35 = tail call ptr @s2n_config_new() #11
  %36 = icmp eq ptr %35, null
  br i1 %36, label %37, label %61

37:                                               ; preds = %32
  %38 = tail call ptr @__errno_location() #12
  %39 = load i32, ptr %38, align 4, !tbaa !5
  %40 = load ptr, ptr @stderr, align 8, !tbaa !9
  %41 = tail call i32 @s2n_print_stacktrace(ptr noundef %40) #11
  %42 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %43 = trunc nuw i8 %42 to i1
  br i1 %43, label %44, label %48

44:                                               ; preds = %37
  %45 = load ptr, ptr @stderr, align 8, !tbaa !9
  %46 = tail call i32 @fileno(ptr noundef %45) #11
  %47 = tail call i32 @isatty(i32 noundef %46) #11
  %.not390 = icmp eq i32 %47, 0
  br i1 %.not390, label %48, label %49

48:                                               ; preds = %44, %37
  br label %49

49:                                               ; preds = %44, %48
  %.str.53.sink404 = phi ptr [ @.str.53, %48 ], [ @.str.49, %44 ]
  store i32 %39, ptr %38, align 4, !tbaa !5
  %50 = load ptr, ptr @stderr, align 8, !tbaa !9
  %51 = load i32, ptr @test_count, align 4, !tbaa !5
  %52 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %53 = load i32, ptr %52, align 4, !tbaa !5
  %54 = tail call ptr @s2n_strerror(i32 noundef %53, ptr noundef nonnull @.str.52) #11
  %55 = load i32, ptr %52, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror_debug(i32 noundef %55, ptr noundef nonnull @.str.52) #11
  %57 = load i32, ptr %38, align 4, !tbaa !5
  %58 = tail call ptr @strerror(i32 noundef %57) #11
  %59 = load i32, ptr %38, align 4, !tbaa !5
  %60 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %50, ptr noundef nonnull %.str.53.sink404, i32 noundef %51, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.51, i32 noundef 109, ptr noundef %54, ptr noundef %56, ptr noundef %58, i32 noundef %59) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

61:                                               ; preds = %32
  %62 = load i32, ptr @test_count, align 4, !tbaa !5
  %63 = add nsw i32 %62, 1
  store i32 %63, ptr @test_count, align 4, !tbaa !5
  %64 = tail call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %35) #11
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

66:                                               ; preds = %61
  %67 = tail call ptr @__errno_location() #12
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = tail call i32 @s2n_print_stacktrace(ptr noundef %69) #11
  %71 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %72 = trunc nuw i8 %71 to i1
  br i1 %72, label %73, label %77

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #11
  %76 = tail call i32 @isatty(i32 noundef %75) #11
  %.not389 = icmp eq i32 %76, 0
  br i1 %.not389, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

78:                                               ; preds = %73, %77
  %.str.53.sink415 = phi ptr [ @.str.53, %77 ], [ @.str.49, %73 ]
  store i32 %68, ptr %67, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror(i32 noundef %82, ptr noundef nonnull @.str.52) #11
  %84 = load i32, ptr %81, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror_debug(i32 noundef %84, ptr noundef nonnull @.str.52) #11
  %86 = load i32, ptr %67, align 4, !tbaa !5
  %87 = tail call ptr @strerror(i32 noundef %86) #11
  %88 = load i32, ptr %67, align 4, !tbaa !5
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull %.str.53.sink415, i32 noundef %80, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.51, i32 noundef 110, ptr noundef %83, ptr noundef %85, ptr noundef %87, i32 noundef %88) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

90:                                               ; preds = %61
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr @test_count, align 4, !tbaa !5
  %93 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %6, ptr noundef nonnull @.str.77) #11
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %90
  %96 = tail call ptr @__errno_location() #12
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #11
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #11
  %105 = tail call i32 @isatty(i32 noundef %104) #11
  %.not388 = icmp eq i32 %105, 0
  br i1 %.not388, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.53.sink426 = phi ptr [ @.str.53, %106 ], [ @.str.49, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.52) #11
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.52) #11
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #11
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.53.sink426, i32 noundef %109, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.51, i32 noundef 111, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

119:                                              ; preds = %90
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %35, ptr noundef nonnull @.str.77) #11
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #12
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #11
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #11
  %134 = tail call i32 @isatty(i32 noundef %133) #11
  %.not387 = icmp eq i32 %134, 0
  br i1 %.not387, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.53.sink437 = phi ptr [ @.str.53, %135 ], [ @.str.49, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.52) #11
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.52) #11
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #11
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.53.sink437, i32 noundef %138, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.51, i32 noundef 112, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

148:                                              ; preds = %119
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %152 = icmp eq ptr %151, null
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #12
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = tail call i32 @s2n_print_stacktrace(ptr noundef %156) #11
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = tail call i32 @fileno(ptr noundef %161) #11
  %163 = tail call i32 @isatty(i32 noundef %162) #11
  %.not386 = icmp eq i32 %163, 0
  br i1 %.not386, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.53.sink448 = phi ptr [ @.str.53, %164 ], [ @.str.49, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = tail call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.52) #11
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = tail call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.52) #11
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = tail call ptr @strerror(i32 noundef %173) #11
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.53.sink448, i32 noundef %167, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.51, i32 noundef 116, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

177:                                              ; preds = %148
  %178 = add nsw i32 %149, 2
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %180 = icmp eq ptr %179, null
  br i1 %180, label %181, label %205

181:                                              ; preds = %177
  %182 = tail call ptr @__errno_location() #12
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = tail call i32 @s2n_print_stacktrace(ptr noundef %184) #11
  %186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %187 = trunc nuw i8 %186 to i1
  br i1 %187, label %188, label %192

188:                                              ; preds = %181
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = tail call i32 @fileno(ptr noundef %189) #11
  %191 = tail call i32 @isatty(i32 noundef %190) #11
  %.not385 = icmp eq i32 %191, 0
  br i1 %.not385, label %192, label %193

192:                                              ; preds = %188, %181
  br label %193

193:                                              ; preds = %188, %192
  %.str.53.sink459 = phi ptr [ @.str.53, %192 ], [ @.str.49, %188 ]
  store i32 %183, ptr %182, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.52) #11
  %199 = load i32, ptr %196, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.52) #11
  %201 = load i32, ptr %182, align 4, !tbaa !5
  %202 = tail call ptr @strerror(i32 noundef %201) #11
  %203 = load i32, ptr %182, align 4, !tbaa !5
  %204 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef nonnull %.str.53.sink459, i32 noundef %195, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.51, i32 noundef 117, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

205:                                              ; preds = %177
  %206 = add nsw i32 %149, 3
  store i32 %206, ptr @test_count, align 4, !tbaa !5
  %207 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.82, ptr noundef nonnull %151, i64 noundef 12000) #11
  %208 = icmp eq i32 %207, -1
  br i1 %208, label %209, label %233

209:                                              ; preds = %205
  %210 = tail call ptr @__errno_location() #12
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = tail call i32 @s2n_print_stacktrace(ptr noundef %212) #11
  %214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %215 = trunc nuw i8 %214 to i1
  br i1 %215, label %216, label %220

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = tail call i32 @fileno(ptr noundef %217) #11
  %219 = tail call i32 @isatty(i32 noundef %218) #11
  %.not384 = icmp eq i32 %219, 0
  br i1 %.not384, label %220, label %221

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.53.sink470 = phi ptr [ @.str.53, %220 ], [ @.str.49, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %224 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror(i32 noundef %225, ptr noundef nonnull @.str.52) #11
  %227 = load i32, ptr %224, align 4, !tbaa !5
  %228 = tail call ptr @s2n_strerror_debug(i32 noundef %227, ptr noundef nonnull @.str.52) #11
  %229 = load i32, ptr %210, align 4, !tbaa !5
  %230 = tail call ptr @strerror(i32 noundef %229) #11
  %231 = load i32, ptr %210, align 4, !tbaa !5
  %232 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.53.sink470, i32 noundef %223, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.51, i32 noundef 119, ptr noundef %226, ptr noundef %228, ptr noundef %230, i32 noundef %231) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

233:                                              ; preds = %205
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  %236 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.84, ptr noundef nonnull %179, i64 noundef 12000) #11
  %237 = icmp eq i32 %236, -1
  br i1 %237, label %238, label %262

238:                                              ; preds = %233
  %239 = tail call ptr @__errno_location() #12
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = tail call i32 @s2n_print_stacktrace(ptr noundef %241) #11
  %243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %244 = trunc nuw i8 %243 to i1
  br i1 %244, label %245, label %249

245:                                              ; preds = %238
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = tail call i32 @fileno(ptr noundef %246) #11
  %248 = tail call i32 @isatty(i32 noundef %247) #11
  %.not383 = icmp eq i32 %248, 0
  br i1 %.not383, label %249, label %250

249:                                              ; preds = %245, %238
  br label %250

250:                                              ; preds = %245, %249
  %.str.53.sink481 = phi ptr [ @.str.53, %249 ], [ @.str.49, %245 ]
  store i32 %240, ptr %239, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = tail call ptr @s2n_strerror(i32 noundef %254, ptr noundef nonnull @.str.52) #11
  %256 = load i32, ptr %253, align 4, !tbaa !5
  %257 = tail call ptr @s2n_strerror_debug(i32 noundef %256, ptr noundef nonnull @.str.52) #11
  %258 = load i32, ptr %239, align 4, !tbaa !5
  %259 = tail call ptr @strerror(i32 noundef %258) #11
  %260 = load i32, ptr %239, align 4, !tbaa !5
  %261 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull %.str.53.sink481, i32 noundef %252, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.51, i32 noundef 120, ptr noundef %255, ptr noundef %257, ptr noundef %259, i32 noundef %260) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

262:                                              ; preds = %233
  %263 = load i32, ptr @test_count, align 4, !tbaa !5
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr @test_count, align 4, !tbaa !5
  %265 = tail call ptr @s2n_cert_chain_and_key_new() #11
  %266 = icmp eq ptr %265, null
  br i1 %266, label %267, label %291

267:                                              ; preds = %262
  %268 = tail call ptr @__errno_location() #12
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = tail call i32 @s2n_print_stacktrace(ptr noundef %270) #11
  %272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %273 = trunc nuw i8 %272 to i1
  br i1 %273, label %274, label %278

274:                                              ; preds = %267
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = tail call i32 @fileno(ptr noundef %275) #11
  %277 = tail call i32 @isatty(i32 noundef %276) #11
  %.not382 = icmp eq i32 %277, 0
  br i1 %.not382, label %278, label %279

278:                                              ; preds = %274, %267
  br label %279

279:                                              ; preds = %274, %278
  %.str.53.sink492 = phi ptr [ @.str.53, %278 ], [ @.str.49, %274 ]
  store i32 %269, ptr %268, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = tail call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.52) #11
  %285 = load i32, ptr %282, align 4, !tbaa !5
  %286 = tail call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.52) #11
  %287 = load i32, ptr %268, align 4, !tbaa !5
  %288 = tail call ptr @strerror(i32 noundef %287) #11
  %289 = load i32, ptr %268, align 4, !tbaa !5
  %290 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef nonnull %.str.53.sink492, i32 noundef %281, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.51, i32 noundef 123, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

291:                                              ; preds = %262
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr @test_count, align 4, !tbaa !5
  %294 = tail call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %265, ptr noundef nonnull %151, ptr noundef nonnull %179) #11
  %295 = icmp eq i32 %294, -1
  br i1 %295, label %296, label %320

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

303:                                              ; preds = %296
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = tail call i32 @fileno(ptr noundef %304) #11
  %306 = tail call i32 @isatty(i32 noundef %305) #11
  %.not381 = icmp eq i32 %306, 0
  br i1 %.not381, label %307, label %308

307:                                              ; preds = %303, %296
  br label %308

308:                                              ; preds = %303, %307
  %.str.53.sink503 = phi ptr [ @.str.53, %307 ], [ @.str.49, %303 ]
  store i32 %298, ptr %297, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = tail call ptr @s2n_strerror(i32 noundef %312, ptr noundef nonnull @.str.52) #11
  %314 = load i32, ptr %311, align 4, !tbaa !5
  %315 = tail call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef nonnull @.str.52) #11
  %316 = load i32, ptr %297, align 4, !tbaa !5
  %317 = tail call ptr @strerror(i32 noundef %316) #11
  %318 = load i32, ptr %297, align 4, !tbaa !5
  %319 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.53.sink503, i32 noundef %310, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.51, i32 noundef 124, ptr noundef %313, ptr noundef %315, ptr noundef %317, i32 noundef %318) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

320:                                              ; preds = %291
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = tail call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %6, ptr noundef nonnull %265) #11
  %324 = icmp eq i32 %323, -1
  br i1 %324, label %325, label %349

325:                                              ; preds = %320
  %326 = tail call ptr @__errno_location() #12
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = tail call i32 @s2n_print_stacktrace(ptr noundef %328) #11
  %330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %331 = trunc nuw i8 %330 to i1
  br i1 %331, label %332, label %336

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

336:                                              ; preds = %332, %325
  br label %337

337:                                              ; preds = %332, %336
  %.str.53.sink514 = phi ptr [ @.str.53, %336 ], [ @.str.49, %332 ]
  store i32 %327, ptr %326, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = tail call ptr @s2n_strerror(i32 noundef %341, ptr noundef nonnull @.str.52) #11
  %343 = load i32, ptr %340, align 4, !tbaa !5
  %344 = tail call ptr @s2n_strerror_debug(i32 noundef %343, ptr noundef nonnull @.str.52) #11
  %345 = load i32, ptr %326, align 4, !tbaa !5
  %346 = tail call ptr @strerror(i32 noundef %345) #11
  %347 = load i32, ptr %326, align 4, !tbaa !5
  %348 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef nonnull %.str.53.sink514, i32 noundef %339, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.51, i32 noundef 125, ptr noundef %342, ptr noundef %344, ptr noundef %346, i32 noundef %347) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

349:                                              ; preds = %320
  br i1 %0, label %379, label %350

350:                                              ; preds = %349
  %351 = load i32, ptr @test_count, align 4, !tbaa !5
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr @test_count, align 4, !tbaa !5
  %353 = tail call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %35, ptr noundef nonnull %265) #11
  %354 = icmp eq i32 %353, -1
  br i1 %354, label %355, label %379

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

362:                                              ; preds = %355
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = tail call i32 @fileno(ptr noundef %363) #11
  %365 = tail call i32 @isatty(i32 noundef %364) #11
  %.not = icmp eq i32 %365, 0
  br i1 %.not, label %366, label %367

366:                                              ; preds = %362, %355
  br label %367

367:                                              ; preds = %362, %366
  %.str.53.sink525 = phi ptr [ @.str.53, %366 ], [ @.str.49, %362 ]
  store i32 %357, ptr %356, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = tail call ptr @s2n_strerror(i32 noundef %371, ptr noundef nonnull @.str.52) #11
  %373 = load i32, ptr %370, align 4, !tbaa !5
  %374 = tail call ptr @s2n_strerror_debug(i32 noundef %373, ptr noundef nonnull @.str.52) #11
  %375 = load i32, ptr %356, align 4, !tbaa !5
  %376 = tail call ptr @strerror(i32 noundef %375) #11
  %377 = load i32, ptr %356, align 4, !tbaa !5
  %378 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef nonnull %.str.53.sink525, i32 noundef %369, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.51, i32 noundef 127, ptr noundef %372, ptr noundef %374, ptr noundef %376, i32 noundef %377) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

379:                                              ; preds = %349, %350
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr @test_count, align 4, !tbaa !5
  %382 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %383 = icmp eq ptr %382, null
  br i1 %383, label %384, label %408

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

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

395:                                              ; preds = %391, %384
  br label %396

396:                                              ; preds = %391, %395
  %.str.53.sink536 = phi ptr [ @.str.53, %395 ], [ @.str.49, %391 ]
  store i32 %386, ptr %385, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = tail call ptr @s2n_strerror(i32 noundef %400, ptr noundef nonnull @.str.52) #11
  %402 = load i32, ptr %399, align 4, !tbaa !5
  %403 = tail call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef nonnull @.str.52) #11
  %404 = load i32, ptr %385, align 4, !tbaa !5
  %405 = tail call ptr @strerror(i32 noundef %404) #11
  %406 = load i32, ptr %385, align 4, !tbaa !5
  %407 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef nonnull %.str.53.sink536, i32 noundef %398, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.51, i32 noundef 130, ptr noundef %401, ptr noundef %403, ptr noundef %405, i32 noundef %406) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

408:                                              ; preds = %379
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr @test_count, align 4, !tbaa !5
  %411 = tail call ptr @s2n_connection_new(i32 noundef 0) #11
  %412 = icmp eq ptr %411, null
  br i1 %412, label %413, label %437

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

420:                                              ; preds = %413
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = tail call i32 @fileno(ptr noundef %421) #11
  %423 = tail call i32 @isatty(i32 noundef %422) #11
  %.not378 = icmp eq i32 %423, 0
  br i1 %.not378, label %424, label %425

424:                                              ; preds = %420, %413
  br label %425

425:                                              ; preds = %420, %424
  %.str.53.sink547 = phi ptr [ @.str.53, %424 ], [ @.str.49, %420 ]
  store i32 %415, ptr %414, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = tail call ptr @s2n_strerror(i32 noundef %429, ptr noundef nonnull @.str.52) #11
  %431 = load i32, ptr %428, align 4, !tbaa !5
  %432 = tail call ptr @s2n_strerror_debug(i32 noundef %431, ptr noundef nonnull @.str.52) #11
  %433 = load i32, ptr %414, align 4, !tbaa !5
  %434 = tail call ptr @strerror(i32 noundef %433) #11
  %435 = load i32, ptr %414, align 4, !tbaa !5
  %436 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef nonnull %.str.53.sink547, i32 noundef %427, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.51, i32 noundef 131, ptr noundef %430, ptr noundef %432, ptr noundef %434, i32 noundef %435) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

437:                                              ; preds = %408
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  store i32 %439, ptr @test_count, align 4, !tbaa !5
  %440 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %411, ptr noundef nonnull %6) #11
  %441 = icmp eq i32 %440, -1
  br i1 %441, label %442, label %466

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

449:                                              ; preds = %442
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = tail call i32 @fileno(ptr noundef %450) #11
  %452 = tail call i32 @isatty(i32 noundef %451) #11
  %.not377 = icmp eq i32 %452, 0
  br i1 %.not377, label %453, label %454

453:                                              ; preds = %449, %442
  br label %454

454:                                              ; preds = %449, %453
  %.str.53.sink558 = phi ptr [ @.str.53, %453 ], [ @.str.49, %449 ]
  store i32 %444, ptr %443, align 4, !tbaa !5
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = tail call ptr @s2n_strerror(i32 noundef %458, ptr noundef nonnull @.str.52) #11
  %460 = load i32, ptr %457, align 4, !tbaa !5
  %461 = tail call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef nonnull @.str.52) #11
  %462 = load i32, ptr %443, align 4, !tbaa !5
  %463 = tail call ptr @strerror(i32 noundef %462) #11
  %464 = load i32, ptr %443, align 4, !tbaa !5
  %465 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %455, ptr noundef nonnull %.str.53.sink558, i32 noundef %456, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.51, i32 noundef 132, ptr noundef %459, ptr noundef %461, ptr noundef %463, i32 noundef %464) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

466:                                              ; preds = %437
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr @test_count, align 4, !tbaa !5
  %469 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %382, ptr noundef nonnull %35) #11
  %470 = icmp eq i32 %469, -1
  br i1 %470, label %471, label %495

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

478:                                              ; preds = %471
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = tail call i32 @fileno(ptr noundef %479) #11
  %481 = tail call i32 @isatty(i32 noundef %480) #11
  %.not376 = icmp eq i32 %481, 0
  br i1 %.not376, label %482, label %483

482:                                              ; preds = %478, %471
  br label %483

483:                                              ; preds = %478, %482
  %.str.53.sink569 = phi ptr [ @.str.53, %482 ], [ @.str.49, %478 ]
  store i32 %473, ptr %472, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = tail call ptr @s2n_strerror(i32 noundef %487, ptr noundef nonnull @.str.52) #11
  %489 = load i32, ptr %486, align 4, !tbaa !5
  %490 = tail call ptr @s2n_strerror_debug(i32 noundef %489, ptr noundef nonnull @.str.52) #11
  %491 = load i32, ptr %472, align 4, !tbaa !5
  %492 = tail call ptr @strerror(i32 noundef %491) #11
  %493 = load i32, ptr %472, align 4, !tbaa !5
  %494 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %484, ptr noundef nonnull %.str.53.sink569, i32 noundef %485, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.51, i32 noundef 133, ptr noundef %488, ptr noundef %490, ptr noundef %492, i32 noundef %493) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

495:                                              ; preds = %466
  %496 = load i32, ptr @test_count, align 4, !tbaa !5
  %497 = add nsw i32 %496, 1
  store i32 %497, ptr @test_count, align 4, !tbaa !5
  br i1 %0, label %498, label %554

498:                                              ; preds = %495
  %499 = tail call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %411, i32 noundef 2) #11
  %500 = icmp eq i32 %499, -1
  br i1 %500, label %501, label %525

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

508:                                              ; preds = %501
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = tail call i32 @fileno(ptr noundef %509) #11
  %511 = tail call i32 @isatty(i32 noundef %510) #11
  %.not375 = icmp eq i32 %511, 0
  br i1 %.not375, label %512, label %513

512:                                              ; preds = %508, %501
  br label %513

513:                                              ; preds = %508, %512
  %.str.53.sink580 = phi ptr [ @.str.53, %512 ], [ @.str.49, %508 ]
  store i32 %503, ptr %502, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = tail call ptr @s2n_strerror(i32 noundef %517, ptr noundef nonnull @.str.52) #11
  %519 = load i32, ptr %516, align 4, !tbaa !5
  %520 = tail call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef nonnull @.str.52) #11
  %521 = load i32, ptr %502, align 4, !tbaa !5
  %522 = tail call ptr @strerror(i32 noundef %521) #11
  %523 = load i32, ptr %502, align 4, !tbaa !5
  %524 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef nonnull %.str.53.sink580, i32 noundef %515, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.51, i32 noundef 135, ptr noundef %518, ptr noundef %520, ptr noundef %522, i32 noundef %523) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

525:                                              ; preds = %498
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = tail call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %382, i32 noundef 2) #11
  %529 = icmp eq i32 %528, -1
  br i1 %529, label %530, label %613

530:                                              ; preds = %525
  %531 = tail call ptr @__errno_location() #12
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = tail call i32 @s2n_print_stacktrace(ptr noundef %533) #11
  %535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %536 = trunc nuw i8 %535 to i1
  br i1 %536, label %537, label %541

537:                                              ; preds = %530
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = tail call i32 @fileno(ptr noundef %538) #11
  %540 = tail call i32 @isatty(i32 noundef %539) #11
  %.not374 = icmp eq i32 %540, 0
  br i1 %.not374, label %541, label %542

541:                                              ; preds = %537, %530
  br label %542

542:                                              ; preds = %537, %541
  %.str.53.sink591 = phi ptr [ @.str.53, %541 ], [ @.str.49, %537 ]
  store i32 %532, ptr %531, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = tail call ptr @s2n_strerror(i32 noundef %546, ptr noundef nonnull @.str.52) #11
  %548 = load i32, ptr %545, align 4, !tbaa !5
  %549 = tail call ptr @s2n_strerror_debug(i32 noundef %548, ptr noundef nonnull @.str.52) #11
  %550 = load i32, ptr %531, align 4, !tbaa !5
  %551 = tail call ptr @strerror(i32 noundef %550) #11
  %552 = load i32, ptr %531, align 4, !tbaa !5
  %553 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef nonnull %.str.53.sink591, i32 noundef %544, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.51, i32 noundef 136, ptr noundef %547, ptr noundef %549, ptr noundef %551, i32 noundef %552) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

554:                                              ; preds = %495
  %555 = tail call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %411, i32 noundef 1) #11
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %581

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

564:                                              ; preds = %557
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = tail call i32 @fileno(ptr noundef %565) #11
  %567 = tail call i32 @isatty(i32 noundef %566) #11
  %.not298 = icmp eq i32 %567, 0
  br i1 %.not298, label %568, label %569

568:                                              ; preds = %564, %557
  br label %569

569:                                              ; preds = %564, %568
  %.str.53.sink602 = phi ptr [ @.str.53, %568 ], [ @.str.49, %564 ]
  store i32 %559, ptr %558, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = tail call ptr @s2n_strerror(i32 noundef %573, ptr noundef nonnull @.str.52) #11
  %575 = load i32, ptr %572, align 4, !tbaa !5
  %576 = tail call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef nonnull @.str.52) #11
  %577 = load i32, ptr %558, align 4, !tbaa !5
  %578 = tail call ptr @strerror(i32 noundef %577) #11
  %579 = load i32, ptr %558, align 4, !tbaa !5
  %580 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef nonnull %.str.53.sink602, i32 noundef %571, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.51, i32 noundef 138, ptr noundef %574, ptr noundef %576, ptr noundef %578, i32 noundef %579) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

581:                                              ; preds = %554
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = tail call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %382, i32 noundef 1) #11
  %585 = icmp eq i32 %584, -1
  br i1 %585, label %586, label %610

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

593:                                              ; preds = %586
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = tail call i32 @fileno(ptr noundef %594) #11
  %596 = tail call i32 @isatty(i32 noundef %595) #11
  %.not297 = icmp eq i32 %596, 0
  br i1 %.not297, label %597, label %598

597:                                              ; preds = %593, %586
  br label %598

598:                                              ; preds = %593, %597
  %.str.53.sink613 = phi ptr [ @.str.53, %597 ], [ @.str.49, %593 ]
  store i32 %588, ptr %587, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = tail call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.52) #11
  %604 = load i32, ptr %601, align 4, !tbaa !5
  %605 = tail call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.52) #11
  %606 = load i32, ptr %587, align 4, !tbaa !5
  %607 = tail call ptr @strerror(i32 noundef %606) #11
  %608 = load i32, ptr %587, align 4, !tbaa !5
  %609 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.53.sink613, i32 noundef %600, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.51, i32 noundef 139, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

610:                                              ; preds = %581
  %611 = getelementptr inbounds i8, ptr %382, i64 3720
  store i8 1, ptr %611, align 8, !tbaa !15
  %612 = getelementptr inbounds i8, ptr %411, i64 3720
  store i8 1, ptr %612, align 8, !tbaa !15
  br label %613

613:                                              ; preds = %525, %610
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %2) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %2, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %2, i32 noundef 0) #11
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %618, label %642

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

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

629:                                              ; preds = %625, %618
  br label %630

630:                                              ; preds = %625, %629
  %.str.53.sink624 = phi ptr [ @.str.53, %629 ], [ @.str.49, %625 ]
  store i32 %620, ptr %619, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %634, ptr noundef nonnull @.str.52) #11
  %636 = load i32, ptr %633, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror_debug(i32 noundef %636, ptr noundef nonnull @.str.52) #11
  %638 = load i32, ptr %619, align 4, !tbaa !5
  %639 = call ptr @strerror(i32 noundef %638) #11
  %640 = load i32, ptr %619, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %631, ptr noundef nonnull %.str.53.sink624, i32 noundef %632, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.51, i32 noundef 147, ptr noundef %635, ptr noundef %637, ptr noundef %639, i32 noundef %640) #13
  call void @exit(i32 noundef 1) #14
  unreachable

642:                                              ; preds = %613
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr @test_count, align 4, !tbaa !5
  %645 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #11
  %646 = icmp eq i32 %645, -1
  br i1 %646, label %647, label %671

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

654:                                              ; preds = %647
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @fileno(ptr noundef %655) #11
  %657 = call i32 @isatty(i32 noundef %656) #11
  %.not372 = icmp eq i32 %657, 0
  br i1 %.not372, label %658, label %659

658:                                              ; preds = %654, %647
  br label %659

659:                                              ; preds = %654, %658
  %.str.53.sink635 = phi ptr [ @.str.53, %658 ], [ @.str.49, %654 ]
  store i32 %649, ptr %648, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef nonnull @.str.52) #11
  %665 = load i32, ptr %662, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %665, ptr noundef nonnull @.str.52) #11
  %667 = load i32, ptr %648, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #11
  %669 = load i32, ptr %648, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef nonnull %.str.53.sink635, i32 noundef %661, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.51, i32 noundef 148, ptr noundef %664, ptr noundef %666, ptr noundef %668, i32 noundef %669) #13
  call void @exit(i32 noundef 1) #14
  unreachable

671:                                              ; preds = %642
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull %382) #11
  %675 = icmp eq i32 %674, -1
  br i1 %675, label %676, label %700

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

683:                                              ; preds = %676
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @fileno(ptr noundef %684) #11
  %686 = call i32 @isatty(i32 noundef %685) #11
  %.not371 = icmp eq i32 %686, 0
  br i1 %.not371, label %687, label %688

687:                                              ; preds = %683, %676
  br label %688

688:                                              ; preds = %683, %687
  %.str.53.sink646 = phi ptr [ @.str.53, %687 ], [ @.str.49, %683 ]
  store i32 %678, ptr %677, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef nonnull @.str.52) #11
  %694 = load i32, ptr %691, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror_debug(i32 noundef %694, ptr noundef nonnull @.str.52) #11
  %696 = load i32, ptr %677, align 4, !tbaa !5
  %697 = call ptr @strerror(i32 noundef %696) #11
  %698 = load i32, ptr %677, align 4, !tbaa !5
  %699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef nonnull %.str.53.sink646, i32 noundef %690, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.51, i32 noundef 150, ptr noundef %693, ptr noundef %695, ptr noundef %697, i32 noundef %698) #13
  call void @exit(i32 noundef 1) #14
  unreachable

700:                                              ; preds = %671
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr @test_count, align 4, !tbaa !5
  %703 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %411) #11
  %704 = icmp eq i32 %703, -1
  br i1 %704, label %705, label %729

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

712:                                              ; preds = %705
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #11
  %715 = call i32 @isatty(i32 noundef %714) #11
  %.not370 = icmp eq i32 %715, 0
  br i1 %.not370, label %716, label %717

716:                                              ; preds = %712, %705
  br label %717

717:                                              ; preds = %712, %716
  %.str.53.sink657 = phi ptr [ @.str.53, %716 ], [ @.str.49, %712 ]
  store i32 %707, ptr %706, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror(i32 noundef %721, ptr noundef nonnull @.str.52) #11
  %723 = load i32, ptr %720, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror_debug(i32 noundef %723, ptr noundef nonnull @.str.52) #11
  %725 = load i32, ptr %706, align 4, !tbaa !5
  %726 = call ptr @strerror(i32 noundef %725) #11
  %727 = load i32, ptr %706, align 4, !tbaa !5
  %728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %718, ptr noundef nonnull %.str.53.sink657, i32 noundef %719, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.51, i32 noundef 151, ptr noundef %722, ptr noundef %724, ptr noundef %726, i32 noundef %727) #13
  call void @exit(i32 noundef 1) #14
  unreachable

729:                                              ; preds = %700
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = add nsw i32 %730, 1
  store i32 %731, ptr @test_count, align 4, !tbaa !5
  %732 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %382, ptr noundef nonnull @.str.94) #11
  %733 = icmp eq i32 %732, -1
  br i1 %733, label %734, label %758

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

741:                                              ; preds = %734
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @fileno(ptr noundef %742) #11
  %744 = call i32 @isatty(i32 noundef %743) #11
  %.not369 = icmp eq i32 %744, 0
  br i1 %.not369, label %745, label %746

745:                                              ; preds = %741, %734
  br label %746

746:                                              ; preds = %741, %745
  %.str.53.sink668 = phi ptr [ @.str.53, %745 ], [ @.str.49, %741 ]
  store i32 %736, ptr %735, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror(i32 noundef %750, ptr noundef nonnull @.str.52) #11
  %752 = load i32, ptr %749, align 4, !tbaa !5
  %753 = call ptr @s2n_strerror_debug(i32 noundef %752, ptr noundef nonnull @.str.52) #11
  %754 = load i32, ptr %735, align 4, !tbaa !5
  %755 = call ptr @strerror(i32 noundef %754) #11
  %756 = load i32, ptr %735, align 4, !tbaa !5
  %757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef nonnull %.str.53.sink668, i32 noundef %748, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.51, i32 noundef 153, ptr noundef %751, ptr noundef %753, ptr noundef %755, i32 noundef %756) #13
  call void @exit(i32 noundef 1) #14
  unreachable

758:                                              ; preds = %729
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %760 = add nsw i32 %759, 1
  store i32 %760, ptr @test_count, align 4, !tbaa !5
  %761 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %411, ptr noundef nonnull @.str.94) #11
  %762 = icmp eq i32 %761, -1
  br i1 %762, label %763, label %787

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

770:                                              ; preds = %763
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = call i32 @fileno(ptr noundef %771) #11
  %773 = call i32 @isatty(i32 noundef %772) #11
  %.not368 = icmp eq i32 %773, 0
  br i1 %.not368, label %774, label %775

774:                                              ; preds = %770, %763
  br label %775

775:                                              ; preds = %770, %774
  %.str.53.sink679 = phi ptr [ @.str.53, %774 ], [ @.str.49, %770 ]
  store i32 %765, ptr %764, align 4, !tbaa !5
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = load i32, ptr @test_count, align 4, !tbaa !5
  %778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror(i32 noundef %779, ptr noundef nonnull @.str.52) #11
  %781 = load i32, ptr %778, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror_debug(i32 noundef %781, ptr noundef nonnull @.str.52) #11
  %783 = load i32, ptr %764, align 4, !tbaa !5
  %784 = call ptr @strerror(i32 noundef %783) #11
  %785 = load i32, ptr %764, align 4, !tbaa !5
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %776, ptr noundef nonnull %.str.53.sink679, i32 noundef %777, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.51, i32 noundef 154, ptr noundef %780, ptr noundef %782, ptr noundef %784, i32 noundef %785) #13
  call void @exit(i32 noundef 1) #14
  unreachable

787:                                              ; preds = %758
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr @test_count, align 4, !tbaa !5
  %790 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %791 = icmp eq i32 %790, 0
  br i1 %791, label %816, label %792

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

799:                                              ; preds = %792
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @fileno(ptr noundef %800) #11
  %802 = call i32 @isatty(i32 noundef %801) #11
  %.not299 = icmp eq i32 %802, 0
  br i1 %.not299, label %803, label %804

803:                                              ; preds = %799, %792
  br label %804

804:                                              ; preds = %799, %803
  %.str.53.sink690 = phi ptr [ @.str.53, %803 ], [ @.str.49, %799 ]
  store i32 %794, ptr %793, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call ptr @s2n_strerror(i32 noundef %808, ptr noundef nonnull @.str.52) #11
  %810 = load i32, ptr %807, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef nonnull @.str.52) #11
  %812 = load i32, ptr %793, align 4, !tbaa !5
  %813 = call ptr @strerror(i32 noundef %812) #11
  %814 = load i32, ptr %793, align 4, !tbaa !5
  %815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef nonnull %.str.53.sink690, i32 noundef %806, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.51, i32 noundef 157, ptr noundef %809, ptr noundef %811, ptr noundef %813, i32 noundef %814) #13
  call void @exit(i32 noundef 1) #14
  unreachable

816:                                              ; preds = %787
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = add nsw i32 %817, 1
  store i32 %818, ptr @test_count, align 4, !tbaa !5
  %819 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %382)
  %820 = icmp eq i32 %819, -1
  br i1 %820, label %821, label %845

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

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

832:                                              ; preds = %828, %821
  br label %833

833:                                              ; preds = %828, %832
  %.str.53.sink701 = phi ptr [ @.str.53, %832 ], [ @.str.49, %828 ]
  store i32 %823, ptr %822, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror(i32 noundef %837, ptr noundef nonnull @.str.52) #11
  %839 = load i32, ptr %836, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror_debug(i32 noundef %839, ptr noundef nonnull @.str.52) #11
  %841 = load i32, ptr %822, align 4, !tbaa !5
  %842 = call ptr @strerror(i32 noundef %841) #11
  %843 = load i32, ptr %822, align 4, !tbaa !5
  %844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %834, ptr noundef nonnull %.str.53.sink701, i32 noundef %835, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.51, i32 noundef 158, ptr noundef %838, ptr noundef %840, ptr noundef %842, i32 noundef %843) #13
  call void @exit(i32 noundef 1) #14
  unreachable

845:                                              ; preds = %816
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = add nsw i32 %846, 1
  store i32 %847, ptr @test_count, align 4, !tbaa !5
  %848 = getelementptr inbounds i8, ptr %382, i64 220
  %849 = load i8, ptr %848, align 4, !tbaa !42
  %850 = icmp eq i8 %849, 34
  br i1 %850, label %875, label %851

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

858:                                              ; preds = %851
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @fileno(ptr noundef %859) #11
  %861 = call i32 @isatty(i32 noundef %860) #11
  %.not300 = icmp eq i32 %861, 0
  br i1 %.not300, label %862, label %863

862:                                              ; preds = %858, %851
  br label %863

863:                                              ; preds = %858, %862
  %.str.53.sink712 = phi ptr [ @.str.53, %862 ], [ @.str.49, %858 ]
  store i32 %853, ptr %852, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror(i32 noundef %867, ptr noundef nonnull @.str.52) #11
  %869 = load i32, ptr %866, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef nonnull @.str.52) #11
  %871 = load i32, ptr %852, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #11
  %873 = load i32, ptr %852, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %864, ptr noundef nonnull %.str.53.sink712, i32 noundef %865, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.51, i32 noundef 160, ptr noundef %868, ptr noundef %870, ptr noundef %872, i32 noundef %873) #13
  call void @exit(i32 noundef 1) #14
  unreachable

875:                                              ; preds = %845
  %876 = add nsw i32 %846, 2
  store i32 %876, ptr @test_count, align 4, !tbaa !5
  %877 = getelementptr inbounds i8, ptr %411, i64 220
  %878 = load i8, ptr %877, align 4, !tbaa !42
  %879 = icmp eq i8 %878, 0
  br i1 %879, label %904, label %880

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

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

891:                                              ; preds = %887, %880
  br label %892

892:                                              ; preds = %887, %891
  %.str.53.sink723 = phi ptr [ @.str.53, %891 ], [ @.str.49, %887 ]
  store i32 %882, ptr %881, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.52) #11
  %898 = load i32, ptr %895, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.52) #11
  %900 = load i32, ptr %881, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #11
  %902 = load i32, ptr %881, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef nonnull %.str.53.sink723, i32 noundef %894, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.51, i32 noundef 161, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #13
  call void @exit(i32 noundef 1) #14
  unreachable

904:                                              ; preds = %875
  %905 = add nsw i32 %846, 3
  store i32 %905, ptr @test_count, align 4, !tbaa !5
  %906 = getelementptr inbounds i8, ptr %411, i64 2172
  %907 = load i32, ptr %906, align 4, !tbaa !43
  %908 = icmp eq i32 %907, 0
  br i1 %908, label %933, label %909

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

916:                                              ; preds = %909
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = call i32 @fileno(ptr noundef %917) #11
  %919 = call i32 @isatty(i32 noundef %918) #11
  %.not302 = icmp eq i32 %919, 0
  br i1 %.not302, label %920, label %921

920:                                              ; preds = %916, %909
  br label %921

921:                                              ; preds = %916, %920
  %.str.53.sink734 = phi ptr [ @.str.53, %920 ], [ @.str.49, %916 ]
  store i32 %911, ptr %910, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef nonnull @.str.52) #11
  %927 = load i32, ptr %924, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.52) #11
  %929 = load i32, ptr %910, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #11
  %931 = load i32, ptr %910, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef nonnull %.str.53.sink734, i32 noundef %923, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.51, i32 noundef 163, ptr noundef %926, ptr noundef %928, ptr noundef %930, i32 noundef %931) #13
  call void @exit(i32 noundef 1) #14
  unreachable

933:                                              ; preds = %904
  %934 = add nsw i32 %846, 4
  store i32 %934, ptr @test_count, align 4, !tbaa !5
  %935 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %936 = icmp eq i32 %935, 0
  br i1 %936, label %961, label %937

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

944:                                              ; preds = %937
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @fileno(ptr noundef %945) #11
  %947 = call i32 @isatty(i32 noundef %946) #11
  %.not303 = icmp eq i32 %947, 0
  br i1 %.not303, label %948, label %949

948:                                              ; preds = %944, %937
  br label %949

949:                                              ; preds = %944, %948
  %.str.53.sink745 = phi ptr [ @.str.53, %948 ], [ @.str.49, %944 ]
  store i32 %939, ptr %938, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @s2n_strerror(i32 noundef %953, ptr noundef nonnull @.str.52) #11
  %955 = load i32, ptr %952, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror_debug(i32 noundef %955, ptr noundef nonnull @.str.52) #11
  %957 = load i32, ptr %938, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #11
  %959 = load i32, ptr %938, align 4, !tbaa !5
  %960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef nonnull %.str.53.sink745, i32 noundef %951, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.51, i32 noundef 166, ptr noundef %954, ptr noundef %956, ptr noundef %958, i32 noundef %959) #13
  call void @exit(i32 noundef 1) #14
  unreachable

961:                                              ; preds = %933
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = add nsw i32 %962, 1
  store i32 %963, ptr @test_count, align 4, !tbaa !5
  %964 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %411)
  %965 = icmp eq i32 %964, -1
  br i1 %965, label %966, label %990

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

973:                                              ; preds = %966
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @fileno(ptr noundef %974) #11
  %976 = call i32 @isatty(i32 noundef %975) #11
  %.not366 = icmp eq i32 %976, 0
  br i1 %.not366, label %977, label %978

977:                                              ; preds = %973, %966
  br label %978

978:                                              ; preds = %973, %977
  %.str.53.sink756 = phi ptr [ @.str.53, %977 ], [ @.str.49, %973 ]
  store i32 %968, ptr %967, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror(i32 noundef %982, ptr noundef nonnull @.str.52) #11
  %984 = load i32, ptr %981, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror_debug(i32 noundef %984, ptr noundef nonnull @.str.52) #11
  %986 = load i32, ptr %967, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #11
  %988 = load i32, ptr %967, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %979, ptr noundef nonnull %.str.53.sink756, i32 noundef %980, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.51, i32 noundef 167, ptr noundef %983, ptr noundef %985, ptr noundef %987, i32 noundef %988) #13
  call void @exit(i32 noundef 1) #14
  unreachable

990:                                              ; preds = %961
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %993 = load i8, ptr %877, align 4, !tbaa !42
  %994 = icmp eq i8 %993, 34
  br i1 %994, label %1019, label %995

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

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

1006:                                             ; preds = %1002, %995
  br label %1007

1007:                                             ; preds = %1002, %1006
  %.str.53.sink767 = phi ptr [ @.str.53, %1006 ], [ @.str.49, %1002 ]
  store i32 %997, ptr %996, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror(i32 noundef %1011, ptr noundef nonnull @.str.52) #11
  %1013 = load i32, ptr %1010, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef nonnull @.str.52) #11
  %1015 = load i32, ptr %996, align 4, !tbaa !5
  %1016 = call ptr @strerror(i32 noundef %1015) #11
  %1017 = load i32, ptr %996, align 4, !tbaa !5
  %1018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1008, ptr noundef nonnull %.str.53.sink767, i32 noundef %1009, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.51, i32 noundef 169, ptr noundef %1012, ptr noundef %1014, ptr noundef %1016, i32 noundef %1017) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1019:                                             ; preds = %990
  %1020 = add nsw i32 %991, 2
  store i32 %1020, ptr @test_count, align 4, !tbaa !5
  %1021 = load i32, ptr %906, align 4, !tbaa !43
  %1022 = icmp eq i32 %1021, 39
  br i1 %1022, label %1047, label %1023

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

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

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

1035:                                             ; preds = %1030, %1034
  %.str.53.sink778 = phi ptr [ @.str.53, %1034 ], [ @.str.49, %1030 ]
  store i32 %1025, ptr %1024, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef nonnull @.str.52) #11
  %1041 = load i32, ptr %1038, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror_debug(i32 noundef %1041, ptr noundef nonnull @.str.52) #11
  %1043 = load i32, ptr %1024, align 4, !tbaa !5
  %1044 = call ptr @strerror(i32 noundef %1043) #11
  %1045 = load i32, ptr %1024, align 4, !tbaa !5
  %1046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1036, ptr noundef nonnull %.str.53.sink778, i32 noundef %1037, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.51, i32 noundef 170, ptr noundef %1040, ptr noundef %1042, ptr noundef %1044, i32 noundef %1045) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1047:                                             ; preds = %1019
  %1048 = add nsw i32 %991, 3
  store i32 %1048, ptr @test_count, align 4, !tbaa !5
  %1049 = call i32 @s2n_conn_set_handshake_type(ptr noundef nonnull %411)
  %1050 = icmp eq i32 %1049, -1
  br i1 %1050, label %1051, label %1075

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

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

1062:                                             ; preds = %1058, %1051
  br label %1063

1063:                                             ; preds = %1058, %1062
  %.str.53.sink789 = phi ptr [ @.str.53, %1062 ], [ @.str.49, %1058 ]
  store i32 %1053, ptr %1052, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror(i32 noundef %1067, ptr noundef nonnull @.str.52) #11
  %1069 = load i32, ptr %1066, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror_debug(i32 noundef %1069, ptr noundef nonnull @.str.52) #11
  %1071 = load i32, ptr %1052, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #11
  %1073 = load i32, ptr %1052, align 4, !tbaa !5
  %1074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1064, ptr noundef nonnull %.str.53.sink789, i32 noundef %1065, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.51, i32 noundef 172, ptr noundef %1068, ptr noundef %1070, ptr noundef %1072, i32 noundef %1073) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1075:                                             ; preds = %1047
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1079 = icmp eq i32 %1078, 1
  br i1 %1079, label %1104, label %1080

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

1087:                                             ; preds = %1080
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = call i32 @fileno(ptr noundef %1088) #11
  %1090 = call i32 @isatty(i32 noundef %1089) #11
  %.not306 = icmp eq i32 %1090, 0
  br i1 %.not306, label %1091, label %1092

1091:                                             ; preds = %1087, %1080
  br label %1092

1092:                                             ; preds = %1087, %1091
  %.str.53.sink800 = phi ptr [ @.str.53, %1091 ], [ @.str.49, %1087 ]
  store i32 %1082, ptr %1081, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror(i32 noundef %1096, ptr noundef nonnull @.str.52) #11
  %1098 = load i32, ptr %1095, align 4, !tbaa !5
  %1099 = call ptr @s2n_strerror_debug(i32 noundef %1098, ptr noundef nonnull @.str.52) #11
  %1100 = load i32, ptr %1081, align 4, !tbaa !5
  %1101 = call ptr @strerror(i32 noundef %1100) #11
  %1102 = load i32, ptr %1081, align 4, !tbaa !5
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef nonnull %.str.53.sink800, i32 noundef %1094, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.51, i32 noundef 175, ptr noundef %1097, ptr noundef %1099, ptr noundef %1101, i32 noundef %1102) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1104:                                             ; preds = %1075
  %1105 = load i32, ptr @test_count, align 4, !tbaa !5
  %1106 = add nsw i32 %1105, 1
  store i32 %1106, ptr @test_count, align 4, !tbaa !5
  %1107 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1108 = icmp eq i32 %1107, -1
  br i1 %1108, label %1109, label %1133

1109:                                             ; preds = %1104
  %1110 = tail call ptr @__errno_location() #12
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @s2n_print_stacktrace(ptr noundef %1112) #11
  %1114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1115 = trunc nuw i8 %1114 to i1
  br i1 %1115, label %1116, label %1120

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

1120:                                             ; preds = %1116, %1109
  br label %1121

1121:                                             ; preds = %1116, %1120
  %.str.53.sink811 = phi ptr [ @.str.53, %1120 ], [ @.str.49, %1116 ]
  store i32 %1111, ptr %1110, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef nonnull @.str.52) #11
  %1127 = load i32, ptr %1124, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef nonnull @.str.52) #11
  %1129 = load i32, ptr %1110, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #11
  %1131 = load i32, ptr %1110, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef nonnull %.str.53.sink811, i32 noundef %1123, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 176, ptr noundef %1126, ptr noundef %1128, ptr noundef %1130, i32 noundef %1131) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1133:                                             ; preds = %1104
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = add nsw i32 %1134, 1
  store i32 %1135, ptr @test_count, align 4, !tbaa !5
  %1136 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1137 = icmp eq i32 %1136, 14
  br i1 %1137, label %1162, label %1138

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

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

1149:                                             ; preds = %1145, %1138
  br label %1150

1150:                                             ; preds = %1145, %1149
  %.str.53.sink822 = phi ptr [ @.str.53, %1149 ], [ @.str.49, %1145 ]
  store i32 %1140, ptr %1139, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef nonnull @.str.52) #11
  %1156 = load i32, ptr %1153, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef nonnull @.str.52) #11
  %1158 = load i32, ptr %1139, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #11
  %1160 = load i32, ptr %1139, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1151, ptr noundef nonnull %.str.53.sink822, i32 noundef %1152, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.51, i32 noundef 179, ptr noundef %1155, ptr noundef %1157, ptr noundef %1159, i32 noundef %1160) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1162:                                             ; preds = %1133
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr @test_count, align 4, !tbaa !5
  %1165 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1166 = icmp eq i32 %1165, -1
  br i1 %1166, label %1167, label %1191

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

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

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

1179:                                             ; preds = %1174, %1178
  %.str.53.sink833 = phi ptr [ @.str.53, %1178 ], [ @.str.49, %1174 ]
  store i32 %1169, ptr %1168, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror(i32 noundef %1183, ptr noundef nonnull @.str.52) #11
  %1185 = load i32, ptr %1182, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror_debug(i32 noundef %1185, ptr noundef nonnull @.str.52) #11
  %1187 = load i32, ptr %1168, align 4, !tbaa !5
  %1188 = call ptr @strerror(i32 noundef %1187) #11
  %1189 = load i32, ptr %1168, align 4, !tbaa !5
  %1190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef nonnull %.str.53.sink833, i32 noundef %1181, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 180, ptr noundef %1184, ptr noundef %1186, ptr noundef %1188, i32 noundef %1189) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1191:                                             ; preds = %1162
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1195 = icmp eq i32 %1194, 16
  br i1 %1195, label %1220, label %1196

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

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #11
  %1206 = call i32 @isatty(i32 noundef %1205) #11
  %.not308 = icmp eq i32 %1206, 0
  br i1 %.not308, label %1207, label %1208

1207:                                             ; preds = %1203, %1196
  br label %1208

1208:                                             ; preds = %1203, %1207
  %.str.53.sink844 = phi ptr [ @.str.53, %1207 ], [ @.str.49, %1203 ]
  store i32 %1198, ptr %1197, 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 nonnull @.str.52) #11
  %1214 = load i32, ptr %1211, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef nonnull @.str.52) #11
  %1216 = load i32, ptr %1197, align 4, !tbaa !5
  %1217 = call ptr @strerror(i32 noundef %1216) #11
  %1218 = load i32, ptr %1197, align 4, !tbaa !5
  %1219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef nonnull %.str.53.sink844, i32 noundef %1210, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.51, i32 noundef 183, ptr noundef %1213, ptr noundef %1215, ptr noundef %1217, i32 noundef %1218) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1220:                                             ; preds = %1191
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr @test_count, align 4, !tbaa !5
  %1223 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1224 = icmp eq i32 %1223, -1
  br i1 %1224, label %1225, label %1249

1225:                                             ; preds = %1220
  %1226 = tail call ptr @__errno_location() #12
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228) #11
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1236

1232:                                             ; preds = %1225
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #11
  %1235 = call i32 @isatty(i32 noundef %1234) #11
  %.not362 = icmp eq i32 %1235, 0
  br i1 %.not362, label %1236, label %1237

1236:                                             ; preds = %1232, %1225
  br label %1237

1237:                                             ; preds = %1232, %1236
  %.str.53.sink855 = phi ptr [ @.str.53, %1236 ], [ @.str.49, %1232 ]
  store i32 %1227, ptr %1226, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.52) #11
  %1243 = load i32, ptr %1240, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.52) #11
  %1245 = load i32, ptr %1226, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #11
  %1247 = load i32, ptr %1226, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull %.str.53.sink855, i32 noundef %1239, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 184, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1249:                                             ; preds = %1220
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr @test_count, align 4, !tbaa !5
  %1252 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1253 = icmp eq i32 %1252, 6
  br i1 %1253, label %1278, label %1254

1254:                                             ; preds = %1249
  %1255 = tail call ptr @__errno_location() #12
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @s2n_print_stacktrace(ptr noundef %1257) #11
  %1259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1260 = trunc nuw i8 %1259 to i1
  br i1 %1260, label %1261, label %1265

1261:                                             ; preds = %1254
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 @fileno(ptr noundef %1262) #11
  %1264 = call i32 @isatty(i32 noundef %1263) #11
  %.not309 = icmp eq i32 %1264, 0
  br i1 %.not309, label %1265, label %1266

1265:                                             ; preds = %1261, %1254
  br label %1266

1266:                                             ; preds = %1261, %1265
  %.str.53.sink866 = phi ptr [ @.str.53, %1265 ], [ @.str.49, %1261 ]
  store i32 %1256, ptr %1255, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef nonnull @.str.52) #11
  %1272 = load i32, ptr %1269, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef nonnull @.str.52) #11
  %1274 = load i32, ptr %1255, align 4, !tbaa !5
  %1275 = call ptr @strerror(i32 noundef %1274) #11
  %1276 = load i32, ptr %1255, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef nonnull %.str.53.sink866, i32 noundef %1268, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.51, i32 noundef 187, ptr noundef %1271, ptr noundef %1273, ptr noundef %1275, i32 noundef %1276) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1278:                                             ; preds = %1249
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr @test_count, align 4, !tbaa !5
  %1281 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1282 = icmp eq i32 %1281, -1
  br i1 %1282, label %1283, label %1307

1283:                                             ; preds = %1278
  %1284 = tail call ptr @__errno_location() #12
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @s2n_print_stacktrace(ptr noundef %1286) #11
  %1288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1289 = trunc nuw i8 %1288 to i1
  br i1 %1289, label %1290, label %1294

1290:                                             ; preds = %1283
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @fileno(ptr noundef %1291) #11
  %1293 = call i32 @isatty(i32 noundef %1292) #11
  %.not361 = icmp eq i32 %1293, 0
  br i1 %.not361, label %1294, label %1295

1294:                                             ; preds = %1290, %1283
  br label %1295

1295:                                             ; preds = %1290, %1294
  %.str.53.sink877 = phi ptr [ @.str.53, %1294 ], [ @.str.49, %1290 ]
  store i32 %1285, ptr %1284, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef nonnull @.str.52) #11
  %1301 = load i32, ptr %1298, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef nonnull @.str.52) #11
  %1303 = load i32, ptr %1284, align 4, !tbaa !5
  %1304 = call ptr @strerror(i32 noundef %1303) #11
  %1305 = load i32, ptr %1284, align 4, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef nonnull %.str.53.sink877, i32 noundef %1297, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 188, ptr noundef %1300, ptr noundef %1302, ptr noundef %1304, i32 noundef %1305) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1307:                                             ; preds = %1278
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr @test_count, align 4, !tbaa !5
  %1310 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1311 = icmp eq i32 %1310, 2
  br i1 %1311, label %1336, label %1312

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

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

1323:                                             ; preds = %1319, %1312
  br label %1324

1324:                                             ; preds = %1319, %1323
  %.str.53.sink888 = phi ptr [ @.str.53, %1323 ], [ @.str.49, %1319 ]
  store i32 %1314, ptr %1313, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror(i32 noundef %1328, ptr noundef nonnull @.str.52) #11
  %1330 = load i32, ptr %1327, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef nonnull @.str.52) #11
  %1332 = load i32, ptr %1313, align 4, !tbaa !5
  %1333 = call ptr @strerror(i32 noundef %1332) #11
  %1334 = load i32, ptr %1313, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1325, ptr noundef nonnull %.str.53.sink888, i32 noundef %1326, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.51, i32 noundef 191, ptr noundef %1329, ptr noundef %1331, ptr noundef %1333, i32 noundef %1334) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1336:                                             ; preds = %1307
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = add nsw i32 %1337, 1
  store i32 %1338, ptr @test_count, align 4, !tbaa !5
  %1339 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1365

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

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

1352:                                             ; preds = %1348, %1341
  br label %1353

1353:                                             ; preds = %1348, %1352
  %.str.53.sink899 = phi ptr [ @.str.53, %1352 ], [ @.str.49, %1348 ]
  store i32 %1343, ptr %1342, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef nonnull @.str.52) #11
  %1359 = load i32, ptr %1356, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef nonnull @.str.52) #11
  %1361 = load i32, ptr %1342, align 4, !tbaa !5
  %1362 = call ptr @strerror(i32 noundef %1361) #11
  %1363 = load i32, ptr %1342, align 4, !tbaa !5
  %1364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1354, ptr noundef nonnull %.str.53.sink899, i32 noundef %1355, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 192, ptr noundef %1358, ptr noundef %1360, ptr noundef %1362, i32 noundef %1363) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1365:                                             ; preds = %1336
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1369 = icmp eq i32 %1368, 17
  br i1 %1369, label %1394, label %1370

1370:                                             ; preds = %1365
  %1371 = tail call ptr @__errno_location() #12
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @s2n_print_stacktrace(ptr noundef %1373) #11
  %1375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1376 = trunc nuw i8 %1375 to i1
  br i1 %1376, label %1377, label %1381

1377:                                             ; preds = %1370
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @fileno(ptr noundef %1378) #11
  %1380 = call i32 @isatty(i32 noundef %1379) #11
  %.not311 = icmp eq i32 %1380, 0
  br i1 %.not311, label %1381, label %1382

1381:                                             ; preds = %1377, %1370
  br label %1382

1382:                                             ; preds = %1377, %1381
  %.str.53.sink910 = phi ptr [ @.str.53, %1381 ], [ @.str.49, %1377 ]
  store i32 %1372, ptr %1371, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef nonnull @.str.52) #11
  %1388 = load i32, ptr %1385, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef nonnull @.str.52) #11
  %1390 = load i32, ptr %1371, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #11
  %1392 = load i32, ptr %1371, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef nonnull %.str.53.sink910, i32 noundef %1384, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.51, i32 noundef 195, ptr noundef %1387, ptr noundef %1389, ptr noundef %1391, i32 noundef %1392) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1394:                                             ; preds = %1365
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr @test_count, align 4, !tbaa !5
  %1397 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1398 = icmp eq i32 %1397, -1
  br i1 %1398, label %1399, label %1423

1399:                                             ; preds = %1394
  %1400 = tail call ptr @__errno_location() #12
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @s2n_print_stacktrace(ptr noundef %1402) #11
  %1404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1405 = trunc nuw i8 %1404 to i1
  br i1 %1405, label %1406, label %1410

1406:                                             ; preds = %1399
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @fileno(ptr noundef %1407) #11
  %1409 = call i32 @isatty(i32 noundef %1408) #11
  %.not359 = icmp eq i32 %1409, 0
  br i1 %.not359, label %1410, label %1411

1410:                                             ; preds = %1406, %1399
  br label %1411

1411:                                             ; preds = %1406, %1410
  %.str.53.sink921 = phi ptr [ @.str.53, %1410 ], [ @.str.49, %1406 ]
  store i32 %1401, ptr %1400, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef nonnull @.str.52) #11
  %1417 = load i32, ptr %1414, align 4, !tbaa !5
  %1418 = call ptr @s2n_strerror_debug(i32 noundef %1417, ptr noundef nonnull @.str.52) #11
  %1419 = load i32, ptr %1400, align 4, !tbaa !5
  %1420 = call ptr @strerror(i32 noundef %1419) #11
  %1421 = load i32, ptr %1400, align 4, !tbaa !5
  %1422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef nonnull %.str.53.sink921, i32 noundef %1413, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 196, ptr noundef %1416, ptr noundef %1418, ptr noundef %1420, i32 noundef %1421) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1423:                                             ; preds = %1394
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = add nsw i32 %1424, 1
  store i32 %1425, ptr @test_count, align 4, !tbaa !5
  %1426 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %1427 = icmp eq i32 %1426, 15
  br i1 %1427, label %1452, label %1428

1428:                                             ; preds = %1423
  %1429 = tail call ptr @__errno_location() #12
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431) #11
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1434 = trunc nuw i8 %1433 to i1
  br i1 %1434, label %1435, label %1439

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

1439:                                             ; preds = %1435, %1428
  br label %1440

1440:                                             ; preds = %1435, %1439
  %.str.53.sink932 = phi ptr [ @.str.53, %1439 ], [ @.str.49, %1435 ]
  store i32 %1430, ptr %1429, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef nonnull @.str.52) #11
  %1446 = load i32, ptr %1443, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror_debug(i32 noundef %1446, ptr noundef nonnull @.str.52) #11
  %1448 = load i32, ptr %1429, align 4, !tbaa !5
  %1449 = call ptr @strerror(i32 noundef %1448) #11
  %1450 = load i32, ptr %1429, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef nonnull %.str.53.sink932, i32 noundef %1442, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.51, i32 noundef 199, ptr noundef %1445, ptr noundef %1447, ptr noundef %1449, i32 noundef %1450) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1452:                                             ; preds = %1423
  %1453 = load i32, ptr @test_count, align 4, !tbaa !5
  %1454 = add nsw i32 %1453, 1
  store i32 %1454, ptr @test_count, align 4, !tbaa !5
  %1455 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %411)
  %1456 = icmp eq i32 %1455, -1
  br i1 %1456, label %1457, label %1481

1457:                                             ; preds = %1452
  %1458 = tail call ptr @__errno_location() #12
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = call i32 @s2n_print_stacktrace(ptr noundef %1460) #11
  %1462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1463 = trunc nuw i8 %1462 to i1
  br i1 %1463, label %1464, label %1468

1464:                                             ; preds = %1457
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = call i32 @fileno(ptr noundef %1465) #11
  %1467 = call i32 @isatty(i32 noundef %1466) #11
  %.not358 = icmp eq i32 %1467, 0
  br i1 %.not358, label %1468, label %1469

1468:                                             ; preds = %1464, %1457
  br label %1469

1469:                                             ; preds = %1464, %1468
  %.str.53.sink943 = phi ptr [ @.str.53, %1468 ], [ @.str.49, %1464 ]
  store i32 %1459, ptr %1458, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror(i32 noundef %1473, ptr noundef nonnull @.str.52) #11
  %1475 = load i32, ptr %1472, align 4, !tbaa !5
  %1476 = call ptr @s2n_strerror_debug(i32 noundef %1475, ptr noundef nonnull @.str.52) #11
  %1477 = load i32, ptr %1458, align 4, !tbaa !5
  %1478 = call ptr @strerror(i32 noundef %1477) #11
  %1479 = load i32, ptr %1458, align 4, !tbaa !5
  %1480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1470, ptr noundef nonnull %.str.53.sink943, i32 noundef %1471, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.51, i32 noundef 200, ptr noundef %1474, ptr noundef %1476, ptr noundef %1478, i32 noundef %1479) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1481:                                             ; preds = %1452
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = add nsw i32 %1482, 1
  store i32 %1483, ptr @test_count, align 4, !tbaa !5
  %1484 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1485 = icmp eq i32 %1484, 1
  br i1 %1485, label %1510, label %1486

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

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

1497:                                             ; preds = %1493, %1486
  br label %1498

1498:                                             ; preds = %1493, %1497
  %.str.53.sink954 = phi ptr [ @.str.53, %1497 ], [ @.str.49, %1493 ]
  store i32 %1488, ptr %1487, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror(i32 noundef %1502, ptr noundef nonnull @.str.52) #11
  %1504 = load i32, ptr %1501, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror_debug(i32 noundef %1504, ptr noundef nonnull @.str.52) #11
  %1506 = load i32, ptr %1487, align 4, !tbaa !5
  %1507 = call ptr @strerror(i32 noundef %1506) #11
  %1508 = load i32, ptr %1487, align 4, !tbaa !5
  %1509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1499, ptr noundef nonnull %.str.53.sink954, i32 noundef %1500, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.51, i32 noundef 203, ptr noundef %1503, ptr noundef %1505, ptr noundef %1507, i32 noundef %1508) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1510:                                             ; preds = %1481
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = add nsw i32 %1511, 1
  store i32 %1512, ptr @test_count, align 4, !tbaa !5
  %1513 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1514 = icmp eq i32 %1513, -1
  br i1 %1514, label %1515, label %1539

1515:                                             ; preds = %1510
  %1516 = tail call ptr @__errno_location() #12
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = call i32 @s2n_print_stacktrace(ptr noundef %1518) #11
  %1520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1521 = trunc nuw i8 %1520 to i1
  br i1 %1521, label %1522, label %1526

1522:                                             ; preds = %1515
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = call i32 @fileno(ptr noundef %1523) #11
  %1525 = call i32 @isatty(i32 noundef %1524) #11
  %.not357 = icmp eq i32 %1525, 0
  br i1 %.not357, label %1526, label %1527

1526:                                             ; preds = %1522, %1515
  br label %1527

1527:                                             ; preds = %1522, %1526
  %.str.53.sink965 = phi ptr [ @.str.53, %1526 ], [ @.str.49, %1522 ]
  store i32 %1517, ptr %1516, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = load i32, ptr @test_count, align 4, !tbaa !5
  %1530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror(i32 noundef %1531, ptr noundef nonnull @.str.52) #11
  %1533 = load i32, ptr %1530, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror_debug(i32 noundef %1533, ptr noundef nonnull @.str.52) #11
  %1535 = load i32, ptr %1516, align 4, !tbaa !5
  %1536 = call ptr @strerror(i32 noundef %1535) #11
  %1537 = load i32, ptr %1516, align 4, !tbaa !5
  %1538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1528, ptr noundef nonnull %.str.53.sink965, i32 noundef %1529, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 204, ptr noundef %1532, ptr noundef %1534, ptr noundef %1536, i32 noundef %1537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1539:                                             ; preds = %1510
  %1540 = load i32, ptr @test_count, align 4, !tbaa !5
  %1541 = add nsw i32 %1540, 1
  store i32 %1541, ptr @test_count, align 4, !tbaa !5
  %1542 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1543 = icmp eq i32 %1542, 16
  br i1 %1543, label %1568, label %1544

1544:                                             ; preds = %1539
  %1545 = tail call ptr @__errno_location() #12
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @s2n_print_stacktrace(ptr noundef %1547) #11
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc nuw i8 %1549 to i1
  br i1 %1550, label %1551, label %1555

1551:                                             ; preds = %1544
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #11
  %1554 = call i32 @isatty(i32 noundef %1553) #11
  %.not314 = icmp eq i32 %1554, 0
  br i1 %.not314, label %1555, label %1556

1555:                                             ; preds = %1551, %1544
  br label %1556

1556:                                             ; preds = %1551, %1555
  %.str.53.sink976 = phi ptr [ @.str.53, %1555 ], [ @.str.49, %1551 ]
  store i32 %1546, ptr %1545, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror(i32 noundef %1560, ptr noundef nonnull @.str.52) #11
  %1562 = load i32, ptr %1559, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror_debug(i32 noundef %1562, ptr noundef nonnull @.str.52) #11
  %1564 = load i32, ptr %1545, align 4, !tbaa !5
  %1565 = call ptr @strerror(i32 noundef %1564) #11
  %1566 = load i32, ptr %1545, align 4, !tbaa !5
  %1567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef nonnull %.str.53.sink976, i32 noundef %1558, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.51, i32 noundef 208, ptr noundef %1561, ptr noundef %1563, ptr noundef %1565, i32 noundef %1566) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1568:                                             ; preds = %1539
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = add nsw i32 %1569, 1
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1572 = icmp eq i32 %1571, -1
  br i1 %1572, label %1573, label %1597

1573:                                             ; preds = %1568
  %1574 = tail call ptr @__errno_location() #12
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @s2n_print_stacktrace(ptr noundef %1576) #11
  %1578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1579 = trunc nuw i8 %1578 to i1
  br i1 %1579, label %1580, label %1584

1580:                                             ; preds = %1573
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @fileno(ptr noundef %1581) #11
  %1583 = call i32 @isatty(i32 noundef %1582) #11
  %.not356 = icmp eq i32 %1583, 0
  br i1 %.not356, label %1584, label %1585

1584:                                             ; preds = %1580, %1573
  br label %1585

1585:                                             ; preds = %1580, %1584
  %.str.53.sink987 = phi ptr [ @.str.53, %1584 ], [ @.str.49, %1580 ]
  store i32 %1575, ptr %1574, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef nonnull @.str.52) #11
  %1591 = load i32, ptr %1588, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror_debug(i32 noundef %1591, ptr noundef nonnull @.str.52) #11
  %1593 = load i32, ptr %1574, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #11
  %1595 = load i32, ptr %1574, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1586, ptr noundef nonnull %.str.53.sink987, i32 noundef %1587, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 209, ptr noundef %1590, ptr noundef %1592, ptr noundef %1594, i32 noundef %1595) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1597:                                             ; preds = %1568
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = add nsw i32 %1598, 1
  store i32 %1599, ptr @test_count, align 4, !tbaa !5
  %1600 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1601 = icmp eq i32 %1600, 16
  br i1 %1601, label %1626, label %1602

1602:                                             ; preds = %1597
  %1603 = tail call ptr @__errno_location() #12
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = call i32 @s2n_print_stacktrace(ptr noundef %1605) #11
  %1607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1608 = trunc nuw i8 %1607 to i1
  br i1 %1608, label %1609, label %1613

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

1613:                                             ; preds = %1609, %1602
  br label %1614

1614:                                             ; preds = %1609, %1613
  %.str.53.sink998 = phi ptr [ @.str.53, %1613 ], [ @.str.49, %1609 ]
  store i32 %1604, ptr %1603, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror(i32 noundef %1618, ptr noundef nonnull @.str.52) #11
  %1620 = load i32, ptr %1617, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef nonnull @.str.52) #11
  %1622 = load i32, ptr %1603, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #11
  %1624 = load i32, ptr %1603, align 4, !tbaa !5
  %1625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1615, ptr noundef nonnull %.str.53.sink998, i32 noundef %1616, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.51, i32 noundef 212, ptr noundef %1619, ptr noundef %1621, ptr noundef %1623, i32 noundef %1624) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1626:                                             ; preds = %1597
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = add nsw i32 %1627, 1
  store i32 %1628, ptr @test_count, align 4, !tbaa !5
  %1629 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1630 = icmp eq i32 %1629, -1
  br i1 %1630, label %1631, label %1655

1631:                                             ; preds = %1626
  %1632 = tail call ptr @__errno_location() #12
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @s2n_print_stacktrace(ptr noundef %1634) #11
  %1636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1637 = trunc nuw i8 %1636 to i1
  br i1 %1637, label %1638, label %1642

1638:                                             ; preds = %1631
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = call i32 @fileno(ptr noundef %1639) #11
  %1641 = call i32 @isatty(i32 noundef %1640) #11
  %.not355 = icmp eq i32 %1641, 0
  br i1 %.not355, label %1642, label %1643

1642:                                             ; preds = %1638, %1631
  br label %1643

1643:                                             ; preds = %1638, %1642
  %.str.53.sink1009 = phi ptr [ @.str.53, %1642 ], [ @.str.49, %1638 ]
  store i32 %1633, ptr %1632, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror(i32 noundef %1647, ptr noundef nonnull @.str.52) #11
  %1649 = load i32, ptr %1646, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror_debug(i32 noundef %1649, ptr noundef nonnull @.str.52) #11
  %1651 = load i32, ptr %1632, align 4, !tbaa !5
  %1652 = call ptr @strerror(i32 noundef %1651) #11
  %1653 = load i32, ptr %1632, align 4, !tbaa !5
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1644, ptr noundef nonnull %.str.53.sink1009, i32 noundef %1645, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 213, ptr noundef %1648, ptr noundef %1650, ptr noundef %1652, i32 noundef %1653) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1655:                                             ; preds = %1626
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  br i1 %0, label %1659, label %1685

1659:                                             ; preds = %1655
  %1660 = icmp eq i32 %1658, 2
  br i1 %1660, label %1711, label %1661

1661:                                             ; preds = %1659
  %1662 = tail call ptr @__errno_location() #12
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @s2n_print_stacktrace(ptr noundef %1664) #11
  %1666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1667 = trunc nuw i8 %1666 to i1
  br i1 %1667, label %1668, label %1672

1668:                                             ; preds = %1661
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @fileno(ptr noundef %1669) #11
  %1671 = call i32 @isatty(i32 noundef %1670) #11
  %.not317 = icmp eq i32 %1671, 0
  br i1 %.not317, label %1672, label %1673

1672:                                             ; preds = %1668, %1661
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.53.sink1020 = phi ptr [ @.str.53, %1672 ], [ @.str.49, %1668 ]
  store i32 %1663, ptr %1662, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror(i32 noundef %1677, ptr noundef nonnull @.str.52) #11
  %1679 = load i32, ptr %1676, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef nonnull @.str.52) #11
  %1681 = load i32, ptr %1662, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #11
  %1683 = load i32, ptr %1662, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.53.sink1020, i32 noundef %1675, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.51, i32 noundef 217, ptr noundef %1678, ptr noundef %1680, ptr noundef %1682, i32 noundef %1683) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1685:                                             ; preds = %1655
  %1686 = icmp eq i32 %1658, 6
  br i1 %1686, label %1711, label %1687

1687:                                             ; preds = %1685
  %1688 = tail call ptr @__errno_location() #12
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @s2n_print_stacktrace(ptr noundef %1690) #11
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc nuw i8 %1692 to i1
  br i1 %1693, label %1694, label %1698

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

1698:                                             ; preds = %1694, %1687
  br label %1699

1699:                                             ; preds = %1694, %1698
  %.str.53.sink1031 = phi ptr [ @.str.53, %1698 ], [ @.str.49, %1694 ]
  store i32 %1689, ptr %1688, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror(i32 noundef %1703, ptr noundef nonnull @.str.52) #11
  %1705 = load i32, ptr %1702, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef nonnull @.str.52) #11
  %1707 = load i32, ptr %1688, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #11
  %1709 = load i32, ptr %1688, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef nonnull %.str.53.sink1031, i32 noundef %1701, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.51, i32 noundef 219, ptr noundef %1704, ptr noundef %1706, ptr noundef %1708, i32 noundef %1709) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1711:                                             ; preds = %1659, %1685
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = add nsw i32 %1712, 1
  store i32 %1713, ptr @test_count, align 4, !tbaa !5
  %1714 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1715 = icmp eq i32 %1714, -1
  br i1 %1715, label %1716, label %1740

1716:                                             ; preds = %1711
  %1717 = tail call ptr @__errno_location() #12
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @s2n_print_stacktrace(ptr noundef %1719) #11
  %1721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1722 = trunc nuw i8 %1721 to i1
  br i1 %1722, label %1723, label %1727

1723:                                             ; preds = %1716
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @fileno(ptr noundef %1724) #11
  %1726 = call i32 @isatty(i32 noundef %1725) #11
  %.not354 = icmp eq i32 %1726, 0
  br i1 %.not354, label %1727, label %1728

1727:                                             ; preds = %1723, %1716
  br label %1728

1728:                                             ; preds = %1723, %1727
  %.str.53.sink1042 = phi ptr [ @.str.53, %1727 ], [ @.str.49, %1723 ]
  store i32 %1718, ptr %1717, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror(i32 noundef %1732, ptr noundef nonnull @.str.52) #11
  %1734 = load i32, ptr %1731, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror_debug(i32 noundef %1734, ptr noundef nonnull @.str.52) #11
  %1736 = load i32, ptr %1717, align 4, !tbaa !5
  %1737 = call ptr @strerror(i32 noundef %1736) #11
  %1738 = load i32, ptr %1717, align 4, !tbaa !5
  %1739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef nonnull %.str.53.sink1042, i32 noundef %1730, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 221, ptr noundef %1733, ptr noundef %1735, ptr noundef %1737, i32 noundef %1738) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1740:                                             ; preds = %1711
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = getelementptr inbounds i8, ptr %382, i64 2172
  %1744 = load i32, ptr %1743, align 4, !tbaa !43
  %1745 = icmp eq i32 %1744, 39
  br i1 %1745, label %1770, label %1746

1746:                                             ; preds = %1740
  %1747 = tail call ptr @__errno_location() #12
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @s2n_print_stacktrace(ptr noundef %1749) #11
  %1751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1752 = trunc nuw i8 %1751 to i1
  br i1 %1752, label %1753, label %1757

1753:                                             ; preds = %1746
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = call i32 @fileno(ptr noundef %1754) #11
  %1756 = call i32 @isatty(i32 noundef %1755) #11
  %.not318 = icmp eq i32 %1756, 0
  br i1 %.not318, label %1757, label %1758

1757:                                             ; preds = %1753, %1746
  br label %1758

1758:                                             ; preds = %1753, %1757
  %.str.53.sink1053 = phi ptr [ @.str.53, %1757 ], [ @.str.49, %1753 ]
  store i32 %1748, ptr %1747, align 4, !tbaa !5
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = load i32, ptr @test_count, align 4, !tbaa !5
  %1761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror(i32 noundef %1762, ptr noundef nonnull @.str.52) #11
  %1764 = load i32, ptr %1761, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror_debug(i32 noundef %1764, ptr noundef nonnull @.str.52) #11
  %1766 = load i32, ptr %1747, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #11
  %1768 = load i32, ptr %1747, align 4, !tbaa !5
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1759, ptr noundef nonnull %.str.53.sink1053, i32 noundef %1760, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.51, i32 noundef 223, ptr noundef %1763, ptr noundef %1765, ptr noundef %1767, i32 noundef %1768) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1770:                                             ; preds = %1740
  %1771 = add nsw i32 %1741, 2
  store i32 %1771, ptr @test_count, align 4, !tbaa !5
  %1772 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1773 = icmp eq i32 %1772, 2
  br i1 %1773, label %1798, label %1774

1774:                                             ; preds = %1770
  %1775 = tail call ptr @__errno_location() #12
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777) #11
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc nuw i8 %1779 to i1
  br i1 %1780, label %1781, label %1785

1781:                                             ; preds = %1774
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #11
  %1784 = call i32 @isatty(i32 noundef %1783) #11
  %.not319 = icmp eq i32 %1784, 0
  br i1 %.not319, label %1785, label %1786

1785:                                             ; preds = %1781, %1774
  br label %1786

1786:                                             ; preds = %1781, %1785
  %.str.53.sink1064 = phi ptr [ @.str.53, %1785 ], [ @.str.49, %1781 ]
  store i32 %1776, ptr %1775, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef nonnull @.str.52) #11
  %1792 = load i32, ptr %1789, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef nonnull @.str.52) #11
  %1794 = load i32, ptr %1775, align 4, !tbaa !5
  %1795 = call ptr @strerror(i32 noundef %1794) #11
  %1796 = load i32, ptr %1775, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef nonnull %.str.53.sink1064, i32 noundef %1788, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.51, i32 noundef 226, ptr noundef %1791, ptr noundef %1793, ptr noundef %1795, i32 noundef %1796) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1798:                                             ; preds = %1770
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = add nsw i32 %1799, 1
  store i32 %1800, ptr @test_count, align 4, !tbaa !5
  %1801 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1802 = icmp eq i32 %1801, -1
  br i1 %1802, label %1803, label %1827

1803:                                             ; preds = %1798
  %1804 = tail call ptr @__errno_location() #12
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806) #11
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc nuw i8 %1808 to i1
  br i1 %1809, label %1810, label %1814

1810:                                             ; preds = %1803
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #11
  %1813 = call i32 @isatty(i32 noundef %1812) #11
  %.not353 = icmp eq i32 %1813, 0
  br i1 %.not353, label %1814, label %1815

1814:                                             ; preds = %1810, %1803
  br label %1815

1815:                                             ; preds = %1810, %1814
  %.str.53.sink1075 = phi ptr [ @.str.53, %1814 ], [ @.str.49, %1810 ]
  store i32 %1805, ptr %1804, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror(i32 noundef %1819, ptr noundef nonnull @.str.52) #11
  %1821 = load i32, ptr %1818, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef nonnull @.str.52) #11
  %1823 = load i32, ptr %1804, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #11
  %1825 = load i32, ptr %1804, align 4, !tbaa !5
  %1826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1816, ptr noundef nonnull %.str.53.sink1075, i32 noundef %1817, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 227, ptr noundef %1820, ptr noundef %1822, ptr noundef %1824, i32 noundef %1825) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1827:                                             ; preds = %1798
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = add nsw i32 %1828, 1
  store i32 %1829, ptr @test_count, align 4, !tbaa !5
  %1830 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1831 = icmp eq i32 %1830, 17
  br i1 %1831, label %1856, label %1832

1832:                                             ; preds = %1827
  %1833 = tail call ptr @__errno_location() #12
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = call i32 @s2n_print_stacktrace(ptr noundef %1835) #11
  %1837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1838 = trunc nuw i8 %1837 to i1
  br i1 %1838, label %1839, label %1843

1839:                                             ; preds = %1832
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = call i32 @fileno(ptr noundef %1840) #11
  %1842 = call i32 @isatty(i32 noundef %1841) #11
  %.not320 = icmp eq i32 %1842, 0
  br i1 %.not320, label %1843, label %1844

1843:                                             ; preds = %1839, %1832
  br label %1844

1844:                                             ; preds = %1839, %1843
  %.str.53.sink1086 = phi ptr [ @.str.53, %1843 ], [ @.str.49, %1839 ]
  store i32 %1834, ptr %1833, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror(i32 noundef %1848, ptr noundef nonnull @.str.52) #11
  %1850 = load i32, ptr %1847, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef nonnull @.str.52) #11
  %1852 = load i32, ptr %1833, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #11
  %1854 = load i32, ptr %1833, align 4, !tbaa !5
  %1855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1845, ptr noundef nonnull %.str.53.sink1086, i32 noundef %1846, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.51, i32 noundef 230, ptr noundef %1849, ptr noundef %1851, ptr noundef %1853, i32 noundef %1854) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1856:                                             ; preds = %1827
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = add nsw i32 %1857, 1
  store i32 %1858, ptr @test_count, align 4, !tbaa !5
  %1859 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1860 = icmp eq i32 %1859, -1
  br i1 %1860, label %1861, label %1885

1861:                                             ; preds = %1856
  %1862 = tail call ptr @__errno_location() #12
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @s2n_print_stacktrace(ptr noundef %1864) #11
  %1866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1867 = trunc nuw i8 %1866 to i1
  br i1 %1867, label %1868, label %1872

1868:                                             ; preds = %1861
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #11
  %1871 = call i32 @isatty(i32 noundef %1870) #11
  %.not352 = icmp eq i32 %1871, 0
  br i1 %.not352, label %1872, label %1873

1872:                                             ; preds = %1868, %1861
  br label %1873

1873:                                             ; preds = %1868, %1872
  %.str.53.sink1097 = phi ptr [ @.str.53, %1872 ], [ @.str.49, %1868 ]
  store i32 %1863, ptr %1862, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror(i32 noundef %1877, ptr noundef nonnull @.str.52) #11
  %1879 = load i32, ptr %1876, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror_debug(i32 noundef %1879, ptr noundef nonnull @.str.52) #11
  %1881 = load i32, ptr %1862, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #11
  %1883 = load i32, ptr %1862, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1874, ptr noundef nonnull %.str.53.sink1097, i32 noundef %1875, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 231, ptr noundef %1878, ptr noundef %1880, ptr noundef %1882, i32 noundef %1883) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1885:                                             ; preds = %1856
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1889 = icmp eq i32 %1888, 15
  br i1 %1889, label %1914, label %1890

1890:                                             ; preds = %1885
  %1891 = tail call ptr @__errno_location() #12
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @s2n_print_stacktrace(ptr noundef %1893) #11
  %1895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1896 = trunc nuw i8 %1895 to i1
  br i1 %1896, label %1897, label %1901

1897:                                             ; preds = %1890
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @fileno(ptr noundef %1898) #11
  %1900 = call i32 @isatty(i32 noundef %1899) #11
  %.not321 = icmp eq i32 %1900, 0
  br i1 %.not321, label %1901, label %1902

1901:                                             ; preds = %1897, %1890
  br label %1902

1902:                                             ; preds = %1897, %1901
  %.str.53.sink1108 = phi ptr [ @.str.53, %1901 ], [ @.str.49, %1897 ]
  store i32 %1892, ptr %1891, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror(i32 noundef %1906, ptr noundef nonnull @.str.52) #11
  %1908 = load i32, ptr %1905, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef nonnull @.str.52) #11
  %1910 = load i32, ptr %1891, align 4, !tbaa !5
  %1911 = call ptr @strerror(i32 noundef %1910) #11
  %1912 = load i32, ptr %1891, align 4, !tbaa !5
  %1913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1903, ptr noundef nonnull %.str.53.sink1108, i32 noundef %1904, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.51, i32 noundef 234, ptr noundef %1907, ptr noundef %1909, ptr noundef %1911, i32 noundef %1912) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1914:                                             ; preds = %1885
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %382)
  %1918 = icmp eq i32 %1917, -1
  br i1 %1918, label %1919, label %1943

1919:                                             ; preds = %1914
  %1920 = tail call ptr @__errno_location() #12
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922) #11
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc nuw i8 %1924 to i1
  br i1 %1925, label %1926, label %1930

1926:                                             ; preds = %1919
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #11
  %1929 = call i32 @isatty(i32 noundef %1928) #11
  %.not351 = icmp eq i32 %1929, 0
  br i1 %.not351, label %1930, label %1931

1930:                                             ; preds = %1926, %1919
  br label %1931

1931:                                             ; preds = %1926, %1930
  %.str.53.sink1119 = phi ptr [ @.str.53, %1930 ], [ @.str.49, %1926 ]
  store i32 %1921, ptr %1920, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror(i32 noundef %1935, ptr noundef nonnull @.str.52) #11
  %1937 = load i32, ptr %1934, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef nonnull @.str.52) #11
  %1939 = load i32, ptr %1920, align 4, !tbaa !5
  %1940 = call ptr @strerror(i32 noundef %1939) #11
  %1941 = load i32, ptr %1920, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef nonnull %.str.53.sink1119, i32 noundef %1933, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.51, i32 noundef 235, ptr noundef %1936, ptr noundef %1938, ptr noundef %1940, i32 noundef %1941) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1943:                                             ; preds = %1914
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = add nsw i32 %1944, 1
  store i32 %1945, ptr @test_count, align 4, !tbaa !5
  %1946 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %1947 = icmp eq i32 %1946, 11
  br i1 %1947, label %1972, label %1948

1948:                                             ; preds = %1943
  %1949 = tail call ptr @__errno_location() #12
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @s2n_print_stacktrace(ptr noundef %1951) #11
  %1953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc nuw i8 %1953 to i1
  br i1 %1954, label %1955, label %1959

1955:                                             ; preds = %1948
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @fileno(ptr noundef %1956) #11
  %1958 = call i32 @isatty(i32 noundef %1957) #11
  %.not322 = icmp eq i32 %1958, 0
  br i1 %.not322, label %1959, label %1960

1959:                                             ; preds = %1955, %1948
  br label %1960

1960:                                             ; preds = %1955, %1959
  %.str.53.sink1130 = phi ptr [ @.str.53, %1959 ], [ @.str.49, %1955 ]
  store i32 %1950, ptr %1949, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = load i32, ptr @test_count, align 4, !tbaa !5
  %1963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror(i32 noundef %1964, ptr noundef nonnull @.str.52) #11
  %1966 = load i32, ptr %1963, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror_debug(i32 noundef %1966, ptr noundef nonnull @.str.52) #11
  %1968 = load i32, ptr %1949, align 4, !tbaa !5
  %1969 = call ptr @strerror(i32 noundef %1968) #11
  %1970 = load i32, ptr %1949, align 4, !tbaa !5
  %1971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1961, ptr noundef nonnull %.str.53.sink1130, i32 noundef %1962, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.51, i32 noundef 238, ptr noundef %1965, ptr noundef %1967, ptr noundef %1969, i32 noundef %1970) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1972:                                             ; preds = %1943
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = add nsw i32 %1973, 1
  store i32 %1974, ptr @test_count, align 4, !tbaa !5
  %1975 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %382)
  %1976 = icmp eq i32 %1975, -1
  br i1 %1976, label %1977, label %2001

1977:                                             ; preds = %1972
  %1978 = tail call ptr @__errno_location() #12
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @s2n_print_stacktrace(ptr noundef %1980) #11
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc nuw i8 %1982 to i1
  br i1 %1983, label %1984, label %1988

1984:                                             ; preds = %1977
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @fileno(ptr noundef %1985) #11
  %1987 = call i32 @isatty(i32 noundef %1986) #11
  %.not350 = icmp eq i32 %1987, 0
  br i1 %.not350, label %1988, label %1989

1988:                                             ; preds = %1984, %1977
  br label %1989

1989:                                             ; preds = %1984, %1988
  %.str.53.sink1141 = phi ptr [ @.str.53, %1988 ], [ @.str.49, %1984 ]
  store i32 %1979, ptr %1978, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror(i32 noundef %1993, ptr noundef nonnull @.str.52) #11
  %1995 = load i32, ptr %1992, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror_debug(i32 noundef %1995, ptr noundef nonnull @.str.52) #11
  %1997 = load i32, ptr %1978, align 4, !tbaa !5
  %1998 = call ptr @strerror(i32 noundef %1997) #11
  %1999 = load i32, ptr %1978, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1990, ptr noundef nonnull %.str.53.sink1141, i32 noundef %1991, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.51, i32 noundef 239, ptr noundef %1994, ptr noundef %1996, ptr noundef %1998, i32 noundef %1999) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2001:                                             ; preds = %1972
  %2002 = load i32, ptr @test_count, align 4, !tbaa !5
  %2003 = add nsw i32 %2002, 1
  store i32 %2003, ptr @test_count, align 4, !tbaa !5
  %2004 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %2005 = icmp eq i32 %2004, 8
  br i1 %2005, label %2030, label %2006

2006:                                             ; preds = %2001
  %2007 = tail call ptr @__errno_location() #12
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @s2n_print_stacktrace(ptr noundef %2009) #11
  %2011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2012 = trunc nuw i8 %2011 to i1
  br i1 %2012, label %2013, label %2017

2013:                                             ; preds = %2006
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @fileno(ptr noundef %2014) #11
  %2016 = call i32 @isatty(i32 noundef %2015) #11
  %.not323 = icmp eq i32 %2016, 0
  br i1 %.not323, label %2017, label %2018

2017:                                             ; preds = %2013, %2006
  br label %2018

2018:                                             ; preds = %2013, %2017
  %.str.53.sink1152 = phi ptr [ @.str.53, %2017 ], [ @.str.49, %2013 ]
  store i32 %2008, ptr %2007, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2022, ptr noundef nonnull @.str.52) #11
  %2024 = load i32, ptr %2021, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror_debug(i32 noundef %2024, ptr noundef nonnull @.str.52) #11
  %2026 = load i32, ptr %2007, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #11
  %2028 = load i32, ptr %2007, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2019, ptr noundef nonnull %.str.53.sink1152, i32 noundef %2020, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.51, i32 noundef 242, ptr noundef %2023, ptr noundef %2025, ptr noundef %2027, i32 noundef %2028) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2030:                                             ; preds = %2001
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = add nsw i32 %2031, 1
  store i32 %2032, ptr @test_count, align 4, !tbaa !5
  %2033 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %382)
  %2034 = icmp eq i32 %2033, -1
  br i1 %2034, label %2035, label %2059

2035:                                             ; preds = %2030
  %2036 = tail call ptr @__errno_location() #12
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @s2n_print_stacktrace(ptr noundef %2038) #11
  %2040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2041 = trunc nuw i8 %2040 to i1
  br i1 %2041, label %2042, label %2046

2042:                                             ; preds = %2035
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @fileno(ptr noundef %2043) #11
  %2045 = call i32 @isatty(i32 noundef %2044) #11
  %.not349 = icmp eq i32 %2045, 0
  br i1 %.not349, label %2046, label %2047

2046:                                             ; preds = %2042, %2035
  br label %2047

2047:                                             ; preds = %2042, %2046
  %.str.53.sink1163 = phi ptr [ @.str.53, %2046 ], [ @.str.49, %2042 ]
  store i32 %2037, ptr %2036, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror(i32 noundef %2051, ptr noundef nonnull @.str.52) #11
  %2053 = load i32, ptr %2050, align 4, !tbaa !5
  %2054 = call ptr @s2n_strerror_debug(i32 noundef %2053, ptr noundef nonnull @.str.52) #11
  %2055 = load i32, ptr %2036, align 4, !tbaa !5
  %2056 = call ptr @strerror(i32 noundef %2055) #11
  %2057 = load i32, ptr %2036, align 4, !tbaa !5
  %2058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2048, ptr noundef nonnull %.str.53.sink1163, i32 noundef %2049, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.51, i32 noundef 243, ptr noundef %2052, ptr noundef %2054, ptr noundef %2056, i32 noundef %2057) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2059:                                             ; preds = %2030
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = add nsw i32 %2060, 1
  store i32 %2061, ptr @test_count, align 4, !tbaa !5
  %2062 = load i32, ptr %1743, align 4, !tbaa !43
  br i1 %0, label %2063, label %2089

2063:                                             ; preds = %2059
  %2064 = icmp eq i32 %2062, 47
  br i1 %2064, label %2172, label %2065

2065:                                             ; preds = %2063
  %2066 = tail call ptr @__errno_location() #12
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2069 = call i32 @s2n_print_stacktrace(ptr noundef %2068) #11
  %2070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2071 = trunc nuw i8 %2070 to i1
  br i1 %2071, label %2072, label %2076

2072:                                             ; preds = %2065
  %2073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2074 = call i32 @fileno(ptr noundef %2073) #11
  %2075 = call i32 @isatty(i32 noundef %2074) #11
  %.not327 = icmp eq i32 %2075, 0
  br i1 %.not327, label %2076, label %2077

2076:                                             ; preds = %2072, %2065
  br label %2077

2077:                                             ; preds = %2072, %2076
  %.str.53.sink1174 = phi ptr [ @.str.53, %2076 ], [ @.str.49, %2072 ]
  store i32 %2067, ptr %2066, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef nonnull @.str.52) #11
  %2083 = load i32, ptr %2080, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef nonnull @.str.52) #11
  %2085 = load i32, ptr %2066, align 4, !tbaa !5
  %2086 = call ptr @strerror(i32 noundef %2085) #11
  %2087 = load i32, ptr %2066, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2078, ptr noundef nonnull %.str.53.sink1174, i32 noundef %2079, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.51, i32 noundef 246, ptr noundef %2082, ptr noundef %2084, ptr noundef %2086, i32 noundef %2087) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2089:                                             ; preds = %2059
  %2090 = icmp eq i32 %2062, 39
  br i1 %2090, label %2115, label %2091

2091:                                             ; preds = %2089
  %2092 = tail call ptr @__errno_location() #12
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @s2n_print_stacktrace(ptr noundef %2094) #11
  %2096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2097 = trunc nuw i8 %2096 to i1
  br i1 %2097, label %2098, label %2102

2098:                                             ; preds = %2091
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = call i32 @fileno(ptr noundef %2099) #11
  %2101 = call i32 @isatty(i32 noundef %2100) #11
  %.not324 = icmp eq i32 %2101, 0
  br i1 %.not324, label %2102, label %2103

2102:                                             ; preds = %2098, %2091
  br label %2103

2103:                                             ; preds = %2098, %2102
  %.str.53.sink1185 = phi ptr [ @.str.53, %2102 ], [ @.str.49, %2098 ]
  store i32 %2093, ptr %2092, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror(i32 noundef %2107, ptr noundef nonnull @.str.52) #11
  %2109 = load i32, ptr %2106, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef nonnull @.str.52) #11
  %2111 = load i32, ptr %2092, align 4, !tbaa !5
  %2112 = call ptr @strerror(i32 noundef %2111) #11
  %2113 = load i32, ptr %2092, align 4, !tbaa !5
  %2114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2104, ptr noundef nonnull %.str.53.sink1185, i32 noundef %2105, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.51, i32 noundef 248, ptr noundef %2108, ptr noundef %2110, ptr noundef %2112, i32 noundef %2113) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2115:                                             ; preds = %2089
  %2116 = add nsw i32 %2060, 2
  store i32 %2116, ptr @test_count, align 4, !tbaa !5
  %2117 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %2118 = icmp eq i32 %2117, 10
  br i1 %2118, label %2143, label %2119

2119:                                             ; preds = %2115
  %2120 = tail call ptr @__errno_location() #12
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = call i32 @s2n_print_stacktrace(ptr noundef %2122) #11
  %2124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2125 = trunc nuw i8 %2124 to i1
  br i1 %2125, label %2126, label %2130

2126:                                             ; preds = %2119
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @fileno(ptr noundef %2127) #11
  %2129 = call i32 @isatty(i32 noundef %2128) #11
  %.not325 = icmp eq i32 %2129, 0
  br i1 %.not325, label %2130, label %2131

2130:                                             ; preds = %2126, %2119
  br label %2131

2131:                                             ; preds = %2126, %2130
  %.str.53.sink1196 = phi ptr [ @.str.53, %2130 ], [ @.str.49, %2126 ]
  store i32 %2121, ptr %2120, align 4, !tbaa !5
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = load i32, ptr @test_count, align 4, !tbaa !5
  %2134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = call ptr @s2n_strerror(i32 noundef %2135, ptr noundef nonnull @.str.52) #11
  %2137 = load i32, ptr %2134, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef %2137, ptr noundef nonnull @.str.52) #11
  %2139 = load i32, ptr %2120, align 4, !tbaa !5
  %2140 = call ptr @strerror(i32 noundef %2139) #11
  %2141 = load i32, ptr %2120, align 4, !tbaa !5
  %2142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2132, ptr noundef nonnull %.str.53.sink1196, i32 noundef %2133, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.51, i32 noundef 251, ptr noundef %2136, ptr noundef %2138, ptr noundef %2140, i32 noundef %2141) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2143:                                             ; preds = %2115
  %2144 = load i32, ptr @test_count, align 4, !tbaa !5
  %2145 = add nsw i32 %2144, 1
  store i32 %2145, ptr @test_count, align 4, !tbaa !5
  %2146 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %382)
  %2147 = icmp eq i32 %2146, -1
  br i1 %2147, label %2148, label %._crit_edge

._crit_edge:                                      ; preds = %2143
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %2172

2148:                                             ; preds = %2143
  %2149 = tail call ptr @__errno_location() #12
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = call i32 @s2n_print_stacktrace(ptr noundef %2151) #11
  %2153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2154 = trunc nuw i8 %2153 to i1
  br i1 %2154, label %2155, label %2159

2155:                                             ; preds = %2148
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = call i32 @fileno(ptr noundef %2156) #11
  %2158 = call i32 @isatty(i32 noundef %2157) #11
  %.not326 = icmp eq i32 %2158, 0
  br i1 %.not326, label %2159, label %2160

2159:                                             ; preds = %2155, %2148
  br label %2160

2160:                                             ; preds = %2155, %2159
  %.str.53.sink1207 = phi ptr [ @.str.53, %2159 ], [ @.str.49, %2155 ]
  store i32 %2150, ptr %2149, align 4, !tbaa !5
  %2161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2162 = load i32, ptr @test_count, align 4, !tbaa !5
  %2163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror(i32 noundef %2164, ptr noundef nonnull @.str.52) #11
  %2166 = load i32, ptr %2163, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef nonnull @.str.52) #11
  %2168 = load i32, ptr %2149, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #11
  %2170 = load i32, ptr %2149, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2161, ptr noundef nonnull %.str.53.sink1207, i32 noundef %2162, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.51, i32 noundef 252, ptr noundef %2165, ptr noundef %2167, ptr noundef %2169, i32 noundef %2170) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2172:                                             ; preds = %._crit_edge, %2063
  %2173 = phi i32 [ %.pre, %._crit_edge ], [ %2061, %2063 ]
  %2174 = add nsw i32 %2173, 1
  store i32 %2174, ptr @test_count, align 4, !tbaa !5
  %2175 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %2176 = icmp eq i32 %2175, 13
  br i1 %2176, label %2201, label %2177

2177:                                             ; preds = %2172
  %2178 = tail call ptr @__errno_location() #12
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = call i32 @s2n_print_stacktrace(ptr noundef %2180) #11
  %2182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2183 = trunc nuw i8 %2182 to i1
  br i1 %2183, label %2184, label %2188

2184:                                             ; preds = %2177
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = call i32 @fileno(ptr noundef %2185) #11
  %2187 = call i32 @isatty(i32 noundef %2186) #11
  %.not328 = icmp eq i32 %2187, 0
  br i1 %.not328, label %2188, label %2189

2188:                                             ; preds = %2184, %2177
  br label %2189

2189:                                             ; preds = %2184, %2188
  %.str.53.sink1218 = phi ptr [ @.str.53, %2188 ], [ @.str.49, %2184 ]
  store i32 %2179, ptr %2178, align 4, !tbaa !5
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = load i32, ptr @test_count, align 4, !tbaa !5
  %2192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror(i32 noundef %2193, ptr noundef nonnull @.str.52) #11
  %2195 = load i32, ptr %2192, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef nonnull @.str.52) #11
  %2197 = load i32, ptr %2178, align 4, !tbaa !5
  %2198 = call ptr @strerror(i32 noundef %2197) #11
  %2199 = load i32, ptr %2178, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2190, ptr noundef nonnull %.str.53.sink1218, i32 noundef %2191, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.51, i32 noundef 256, ptr noundef %2194, ptr noundef %2196, ptr noundef %2198, i32 noundef %2199) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2201:                                             ; preds = %2172
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr @test_count, align 4, !tbaa !5
  %2204 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %382)
  %2205 = icmp eq i32 %2204, -1
  br i1 %2205, label %2206, label %2230

2206:                                             ; preds = %2201
  %2207 = tail call ptr @__errno_location() #12
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = call i32 @s2n_print_stacktrace(ptr noundef %2209) #11
  %2211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2212 = trunc nuw i8 %2211 to i1
  br i1 %2212, label %2213, label %2217

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

2217:                                             ; preds = %2213, %2206
  br label %2218

2218:                                             ; preds = %2213, %2217
  %.str.53.sink1229 = phi ptr [ @.str.53, %2217 ], [ @.str.49, %2213 ]
  store i32 %2208, ptr %2207, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror(i32 noundef %2222, ptr noundef nonnull @.str.52) #11
  %2224 = load i32, ptr %2221, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror_debug(i32 noundef %2224, ptr noundef nonnull @.str.52) #11
  %2226 = load i32, ptr %2207, align 4, !tbaa !5
  %2227 = call ptr @strerror(i32 noundef %2226) #11
  %2228 = load i32, ptr %2207, align 4, !tbaa !5
  %2229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2219, ptr noundef nonnull %.str.53.sink1229, i32 noundef %2220, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.51, i32 noundef 257, ptr noundef %2223, ptr noundef %2225, ptr noundef %2227, i32 noundef %2228) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2230:                                             ; preds = %2201
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = add nsw i32 %2231, 1
  store i32 %2232, ptr @test_count, align 4, !tbaa !5
  %2233 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %2234 = icmp eq i32 %2233, 8
  br i1 %2234, label %2259, label %2235

2235:                                             ; preds = %2230
  %2236 = tail call ptr @__errno_location() #12
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = call i32 @s2n_print_stacktrace(ptr noundef %2238) #11
  %2240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2241 = trunc nuw i8 %2240 to i1
  br i1 %2241, label %2242, label %2246

2242:                                             ; preds = %2235
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = call i32 @fileno(ptr noundef %2243) #11
  %2245 = call i32 @isatty(i32 noundef %2244) #11
  %.not329 = icmp eq i32 %2245, 0
  br i1 %.not329, label %2246, label %2247

2246:                                             ; preds = %2242, %2235
  br label %2247

2247:                                             ; preds = %2242, %2246
  %.str.53.sink1240 = phi ptr [ @.str.53, %2246 ], [ @.str.49, %2242 ]
  store i32 %2237, ptr %2236, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror(i32 noundef %2251, ptr noundef nonnull @.str.52) #11
  %2253 = load i32, ptr %2250, align 4, !tbaa !5
  %2254 = call ptr @s2n_strerror_debug(i32 noundef %2253, ptr noundef nonnull @.str.52) #11
  %2255 = load i32, ptr %2236, align 4, !tbaa !5
  %2256 = call ptr @strerror(i32 noundef %2255) #11
  %2257 = load i32, ptr %2236, align 4, !tbaa !5
  %2258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2248, ptr noundef nonnull %.str.53.sink1240, i32 noundef %2249, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.51, i32 noundef 261, ptr noundef %2252, ptr noundef %2254, ptr noundef %2256, i32 noundef %2257) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2259:                                             ; preds = %2230
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = add nsw i32 %2260, 1
  store i32 %2261, ptr @test_count, align 4, !tbaa !5
  %2262 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %411)
  %2263 = icmp eq i32 %2262, -1
  br i1 %2263, label %2264, label %2288

2264:                                             ; preds = %2259
  %2265 = tail call ptr @__errno_location() #12
  %2266 = load i32, ptr %2265, align 4, !tbaa !5
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2268 = call i32 @s2n_print_stacktrace(ptr noundef %2267) #11
  %2269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2270 = trunc nuw i8 %2269 to i1
  br i1 %2270, label %2271, label %2275

2271:                                             ; preds = %2264
  %2272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2273 = call i32 @fileno(ptr noundef %2272) #11
  %2274 = call i32 @isatty(i32 noundef %2273) #11
  %.not347 = icmp eq i32 %2274, 0
  br i1 %.not347, label %2275, label %2276

2275:                                             ; preds = %2271, %2264
  br label %2276

2276:                                             ; preds = %2271, %2275
  %.str.53.sink1251 = phi ptr [ @.str.53, %2275 ], [ @.str.49, %2271 ]
  store i32 %2266, ptr %2265, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef nonnull @.str.52) #11
  %2282 = load i32, ptr %2279, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror_debug(i32 noundef %2282, ptr noundef nonnull @.str.52) #11
  %2284 = load i32, ptr %2265, align 4, !tbaa !5
  %2285 = call ptr @strerror(i32 noundef %2284) #11
  %2286 = load i32, ptr %2265, align 4, !tbaa !5
  %2287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef nonnull %.str.53.sink1251, i32 noundef %2278, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.51, i32 noundef 262, ptr noundef %2281, ptr noundef %2283, ptr noundef %2285, i32 noundef %2286) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2288:                                             ; preds = %2259
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = add nsw i32 %2289, 1
  store i32 %2290, ptr @test_count, align 4, !tbaa !5
  %2291 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %2292 = icmp eq i32 %2291, 8
  br i1 %2292, label %2317, label %2293

2293:                                             ; preds = %2288
  %2294 = tail call ptr @__errno_location() #12
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = call i32 @s2n_print_stacktrace(ptr noundef %2296) #11
  %2298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2299 = trunc nuw i8 %2298 to i1
  br i1 %2299, label %2300, label %2304

2300:                                             ; preds = %2293
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = call i32 @fileno(ptr noundef %2301) #11
  %2303 = call i32 @isatty(i32 noundef %2302) #11
  %.not330 = icmp eq i32 %2303, 0
  br i1 %.not330, label %2304, label %2305

2304:                                             ; preds = %2300, %2293
  br label %2305

2305:                                             ; preds = %2300, %2304
  %.str.53.sink1262 = phi ptr [ @.str.53, %2304 ], [ @.str.49, %2300 ]
  store i32 %2295, ptr %2294, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = load i32, ptr @test_count, align 4, !tbaa !5
  %2308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror(i32 noundef %2309, ptr noundef nonnull @.str.52) #11
  %2311 = load i32, ptr %2308, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror_debug(i32 noundef %2311, ptr noundef nonnull @.str.52) #11
  %2313 = load i32, ptr %2294, align 4, !tbaa !5
  %2314 = call ptr @strerror(i32 noundef %2313) #11
  %2315 = load i32, ptr %2294, align 4, !tbaa !5
  %2316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2306, ptr noundef nonnull %.str.53.sink1262, i32 noundef %2307, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.51, i32 noundef 265, ptr noundef %2310, ptr noundef %2312, ptr noundef %2314, i32 noundef %2315) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2317:                                             ; preds = %2288
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = add nsw i32 %2318, 1
  store i32 %2319, ptr @test_count, align 4, !tbaa !5
  %2320 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %411)
  %2321 = icmp eq i32 %2320, -1
  br i1 %2321, label %2322, label %2346

2322:                                             ; preds = %2317
  %2323 = tail call ptr @__errno_location() #12
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = call i32 @s2n_print_stacktrace(ptr noundef %2325) #11
  %2327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2328 = trunc nuw i8 %2327 to i1
  br i1 %2328, label %2329, label %2333

2329:                                             ; preds = %2322
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = call i32 @fileno(ptr noundef %2330) #11
  %2332 = call i32 @isatty(i32 noundef %2331) #11
  %.not346 = icmp eq i32 %2332, 0
  br i1 %.not346, label %2333, label %2334

2333:                                             ; preds = %2329, %2322
  br label %2334

2334:                                             ; preds = %2329, %2333
  %.str.53.sink1273 = phi ptr [ @.str.53, %2333 ], [ @.str.49, %2329 ]
  store i32 %2324, ptr %2323, align 4, !tbaa !5
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2336 = load i32, ptr @test_count, align 4, !tbaa !5
  %2337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror(i32 noundef %2338, ptr noundef nonnull @.str.52) #11
  %2340 = load i32, ptr %2337, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror_debug(i32 noundef %2340, ptr noundef nonnull @.str.52) #11
  %2342 = load i32, ptr %2323, align 4, !tbaa !5
  %2343 = call ptr @strerror(i32 noundef %2342) #11
  %2344 = load i32, ptr %2323, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2335, ptr noundef nonnull %.str.53.sink1273, i32 noundef %2336, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.51, i32 noundef 266, ptr noundef %2339, ptr noundef %2341, ptr noundef %2343, i32 noundef %2344) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2346:                                             ; preds = %2317
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = add nsw i32 %2347, 1
  store i32 %2348, ptr @test_count, align 4, !tbaa !5
  %2349 = load i32, ptr %906, align 4, !tbaa !43
  br i1 %0, label %2350, label %2376

2350:                                             ; preds = %2346
  %2351 = icmp eq i32 %2349, 47
  br i1 %2351, label %2459, label %2352

2352:                                             ; preds = %2350
  %2353 = tail call ptr @__errno_location() #12
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @s2n_print_stacktrace(ptr noundef %2355) #11
  %2357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2358 = trunc nuw i8 %2357 to i1
  br i1 %2358, label %2359, label %2363

2359:                                             ; preds = %2352
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = call i32 @fileno(ptr noundef %2360) #11
  %2362 = call i32 @isatty(i32 noundef %2361) #11
  %.not334 = icmp eq i32 %2362, 0
  br i1 %.not334, label %2363, label %2364

2363:                                             ; preds = %2359, %2352
  br label %2364

2364:                                             ; preds = %2359, %2363
  %.str.53.sink1284 = phi ptr [ @.str.53, %2363 ], [ @.str.49, %2359 ]
  store i32 %2354, ptr %2353, align 4, !tbaa !5
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = load i32, ptr @test_count, align 4, !tbaa !5
  %2367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror(i32 noundef %2368, ptr noundef nonnull @.str.52) #11
  %2370 = load i32, ptr %2367, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror_debug(i32 noundef %2370, ptr noundef nonnull @.str.52) #11
  %2372 = load i32, ptr %2353, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #11
  %2374 = load i32, ptr %2353, align 4, !tbaa !5
  %2375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2365, ptr noundef nonnull %.str.53.sink1284, i32 noundef %2366, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.51, i32 noundef 269, ptr noundef %2369, ptr noundef %2371, ptr noundef %2373, i32 noundef %2374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2376:                                             ; preds = %2346
  %2377 = icmp eq i32 %2349, 39
  br i1 %2377, label %2402, label %2378

2378:                                             ; preds = %2376
  %2379 = tail call ptr @__errno_location() #12
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @s2n_print_stacktrace(ptr noundef %2381) #11
  %2383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2384 = trunc nuw i8 %2383 to i1
  br i1 %2384, label %2385, label %2389

2385:                                             ; preds = %2378
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @fileno(ptr noundef %2386) #11
  %2388 = call i32 @isatty(i32 noundef %2387) #11
  %.not331 = icmp eq i32 %2388, 0
  br i1 %.not331, label %2389, label %2390

2389:                                             ; preds = %2385, %2378
  br label %2390

2390:                                             ; preds = %2385, %2389
  %.str.53.sink1295 = phi ptr [ @.str.53, %2389 ], [ @.str.49, %2385 ]
  store i32 %2380, ptr %2379, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @s2n_strerror(i32 noundef %2394, ptr noundef nonnull @.str.52) #11
  %2396 = load i32, ptr %2393, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror_debug(i32 noundef %2396, ptr noundef nonnull @.str.52) #11
  %2398 = load i32, ptr %2379, align 4, !tbaa !5
  %2399 = call ptr @strerror(i32 noundef %2398) #11
  %2400 = load i32, ptr %2379, align 4, !tbaa !5
  %2401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2391, ptr noundef nonnull %.str.53.sink1295, i32 noundef %2392, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.51, i32 noundef 271, ptr noundef %2395, ptr noundef %2397, ptr noundef %2399, i32 noundef %2400) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2402:                                             ; preds = %2376
  %2403 = add nsw i32 %2347, 2
  store i32 %2403, ptr @test_count, align 4, !tbaa !5
  %2404 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %2405 = icmp eq i32 %2404, 10
  br i1 %2405, label %2430, label %2406

2406:                                             ; preds = %2402
  %2407 = tail call ptr @__errno_location() #12
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = call i32 @s2n_print_stacktrace(ptr noundef %2409) #11
  %2411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2412 = trunc nuw i8 %2411 to i1
  br i1 %2412, label %2413, label %2417

2413:                                             ; preds = %2406
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = call i32 @fileno(ptr noundef %2414) #11
  %2416 = call i32 @isatty(i32 noundef %2415) #11
  %.not332 = icmp eq i32 %2416, 0
  br i1 %.not332, label %2417, label %2418

2417:                                             ; preds = %2413, %2406
  br label %2418

2418:                                             ; preds = %2413, %2417
  %.str.53.sink1306 = phi ptr [ @.str.53, %2417 ], [ @.str.49, %2413 ]
  store i32 %2408, ptr %2407, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror(i32 noundef %2422, ptr noundef nonnull @.str.52) #11
  %2424 = load i32, ptr %2421, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror_debug(i32 noundef %2424, ptr noundef nonnull @.str.52) #11
  %2426 = load i32, ptr %2407, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #11
  %2428 = load i32, ptr %2407, align 4, !tbaa !5
  %2429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2419, ptr noundef nonnull %.str.53.sink1306, i32 noundef %2420, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.51, i32 noundef 274, ptr noundef %2423, ptr noundef %2425, ptr noundef %2427, i32 noundef %2428) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2430:                                             ; preds = %2402
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = add nsw i32 %2431, 1
  store i32 %2432, ptr @test_count, align 4, !tbaa !5
  %2433 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %411)
  %2434 = icmp eq i32 %2433, -1
  br i1 %2434, label %2435, label %._crit_edge392

._crit_edge392:                                   ; preds = %2430
  %.pre393 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %2459

2435:                                             ; preds = %2430
  %2436 = tail call ptr @__errno_location() #12
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = call i32 @s2n_print_stacktrace(ptr noundef %2438) #11
  %2440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2441 = trunc nuw i8 %2440 to i1
  br i1 %2441, label %2442, label %2446

2442:                                             ; preds = %2435
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @fileno(ptr noundef %2443) #11
  %2445 = call i32 @isatty(i32 noundef %2444) #11
  %.not333 = icmp eq i32 %2445, 0
  br i1 %.not333, label %2446, label %2447

2446:                                             ; preds = %2442, %2435
  br label %2447

2447:                                             ; preds = %2442, %2446
  %.str.53.sink1317 = phi ptr [ @.str.53, %2446 ], [ @.str.49, %2442 ]
  store i32 %2437, ptr %2436, align 4, !tbaa !5
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call ptr @s2n_strerror(i32 noundef %2451, ptr noundef nonnull @.str.52) #11
  %2453 = load i32, ptr %2450, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror_debug(i32 noundef %2453, ptr noundef nonnull @.str.52) #11
  %2455 = load i32, ptr %2436, align 4, !tbaa !5
  %2456 = call ptr @strerror(i32 noundef %2455) #11
  %2457 = load i32, ptr %2436, align 4, !tbaa !5
  %2458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2448, ptr noundef nonnull %.str.53.sink1317, i32 noundef %2449, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.51, i32 noundef 275, ptr noundef %2452, ptr noundef %2454, ptr noundef %2456, i32 noundef %2457) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2459:                                             ; preds = %._crit_edge392, %2350
  %2460 = phi i32 [ %.pre393, %._crit_edge392 ], [ %2348, %2350 ]
  %2461 = add nsw i32 %2460, 1
  store i32 %2461, ptr @test_count, align 4, !tbaa !5
  %2462 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %2463 = icmp eq i32 %2462, 13
  br i1 %2463, label %2488, label %2464

2464:                                             ; preds = %2459
  %2465 = tail call ptr @__errno_location() #12
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467) #11
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc nuw i8 %2469 to i1
  br i1 %2470, label %2471, label %2475

2471:                                             ; preds = %2464
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #11
  %2474 = call i32 @isatty(i32 noundef %2473) #11
  %.not335 = icmp eq i32 %2474, 0
  br i1 %.not335, label %2475, label %2476

2475:                                             ; preds = %2471, %2464
  br label %2476

2476:                                             ; preds = %2471, %2475
  %.str.53.sink1328 = phi ptr [ @.str.53, %2475 ], [ @.str.49, %2471 ]
  store i32 %2466, ptr %2465, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror(i32 noundef %2480, ptr noundef nonnull @.str.52) #11
  %2482 = load i32, ptr %2479, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror_debug(i32 noundef %2482, ptr noundef nonnull @.str.52) #11
  %2484 = load i32, ptr %2465, align 4, !tbaa !5
  %2485 = call ptr @strerror(i32 noundef %2484) #11
  %2486 = load i32, ptr %2465, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef nonnull %.str.53.sink1328, i32 noundef %2478, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.51, i32 noundef 279, ptr noundef %2481, ptr noundef %2483, ptr noundef %2485, i32 noundef %2486) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2488:                                             ; preds = %2459
  %2489 = load i32, ptr @test_count, align 4, !tbaa !5
  %2490 = add nsw i32 %2489, 1
  store i32 %2490, ptr @test_count, align 4, !tbaa !5
  %2491 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %411)
  %2492 = icmp eq i32 %2491, -1
  br i1 %2492, label %2493, label %2517

2493:                                             ; preds = %2488
  %2494 = tail call ptr @__errno_location() #12
  %2495 = load i32, ptr %2494, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = call i32 @s2n_print_stacktrace(ptr noundef %2496) #11
  %2498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2499 = trunc nuw i8 %2498 to i1
  br i1 %2499, label %2500, label %2504

2500:                                             ; preds = %2493
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @fileno(ptr noundef %2501) #11
  %2503 = call i32 @isatty(i32 noundef %2502) #11
  %.not345 = icmp eq i32 %2503, 0
  br i1 %.not345, label %2504, label %2505

2504:                                             ; preds = %2500, %2493
  br label %2505

2505:                                             ; preds = %2500, %2504
  %.str.53.sink1339 = phi ptr [ @.str.53, %2504 ], [ @.str.49, %2500 ]
  store i32 %2495, ptr %2494, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  %2510 = call ptr @s2n_strerror(i32 noundef %2509, ptr noundef nonnull @.str.52) #11
  %2511 = load i32, ptr %2508, align 4, !tbaa !5
  %2512 = call ptr @s2n_strerror_debug(i32 noundef %2511, ptr noundef nonnull @.str.52) #11
  %2513 = load i32, ptr %2494, align 4, !tbaa !5
  %2514 = call ptr @strerror(i32 noundef %2513) #11
  %2515 = load i32, ptr %2494, align 4, !tbaa !5
  %2516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef nonnull %.str.53.sink1339, i32 noundef %2507, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.51, i32 noundef 280, ptr noundef %2510, ptr noundef %2512, ptr noundef %2514, i32 noundef %2515) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2517:                                             ; preds = %2488
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = add nsw i32 %2518, 1
  store i32 %2519, ptr @test_count, align 4, !tbaa !5
  %2520 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %382)
  %2521 = icmp eq i32 %2520, 20
  br i1 %2521, label %2546, label %2522

2522:                                             ; preds = %2517
  %2523 = tail call ptr @__errno_location() #12
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = call i32 @s2n_print_stacktrace(ptr noundef %2525) #11
  %2527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2528 = trunc nuw i8 %2527 to i1
  br i1 %2528, label %2529, label %2533

2529:                                             ; preds = %2522
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = call i32 @fileno(ptr noundef %2530) #11
  %2532 = call i32 @isatty(i32 noundef %2531) #11
  %.not336 = icmp eq i32 %2532, 0
  br i1 %.not336, label %2533, label %2534

2533:                                             ; preds = %2529, %2522
  br label %2534

2534:                                             ; preds = %2529, %2533
  %.str.53.sink1350 = phi ptr [ @.str.53, %2533 ], [ @.str.49, %2529 ]
  store i32 %2524, ptr %2523, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror(i32 noundef %2538, ptr noundef nonnull @.str.52) #11
  %2540 = load i32, ptr %2537, align 4, !tbaa !5
  %2541 = call ptr @s2n_strerror_debug(i32 noundef %2540, ptr noundef nonnull @.str.52) #11
  %2542 = load i32, ptr %2523, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #11
  %2544 = load i32, ptr %2523, align 4, !tbaa !5
  %2545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2535, ptr noundef nonnull %.str.53.sink1350, i32 noundef %2536, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.51, i32 noundef 282, ptr noundef %2539, ptr noundef %2541, ptr noundef %2543, i32 noundef %2544) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2546:                                             ; preds = %2517
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = add nsw i32 %2547, 1
  store i32 %2548, ptr @test_count, align 4, !tbaa !5
  %2549 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %411)
  %2550 = icmp eq i32 %2549, 20
  br i1 %2550, label %2575, label %2551

2551:                                             ; preds = %2546
  %2552 = tail call ptr @__errno_location() #12
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = call i32 @s2n_print_stacktrace(ptr noundef %2554) #11
  %2556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2557 = trunc nuw i8 %2556 to i1
  br i1 %2557, label %2558, label %2562

2558:                                             ; preds = %2551
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2560 = call i32 @fileno(ptr noundef %2559) #11
  %2561 = call i32 @isatty(i32 noundef %2560) #11
  %.not337 = icmp eq i32 %2561, 0
  br i1 %.not337, label %2562, label %2563

2562:                                             ; preds = %2558, %2551
  br label %2563

2563:                                             ; preds = %2558, %2562
  %.str.53.sink1361 = phi ptr [ @.str.53, %2562 ], [ @.str.49, %2558 ]
  store i32 %2553, ptr %2552, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef nonnull @.str.52) #11
  %2569 = load i32, ptr %2566, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror_debug(i32 noundef %2569, ptr noundef nonnull @.str.52) #11
  %2571 = load i32, ptr %2552, align 4, !tbaa !5
  %2572 = call ptr @strerror(i32 noundef %2571) #11
  %2573 = load i32, ptr %2552, align 4, !tbaa !5
  %2574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2564, ptr noundef nonnull %.str.53.sink1361, i32 noundef %2565, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.51, i32 noundef 283, ptr noundef %2568, ptr noundef %2570, ptr noundef %2572, i32 noundef %2573) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2575:                                             ; preds = %2546
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = add nsw i32 %2576, 1
  store i32 %2577, ptr @test_count, align 4, !tbaa !5
  %2578 = call i32 @s2n_stuffer_free(ptr noundef nonnull %2) #11
  %2579 = icmp eq i32 %2578, -1
  br i1 %2579, label %2580, label %2604

2580:                                             ; preds = %2575
  %2581 = tail call ptr @__errno_location() #12
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583) #11
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc nuw i8 %2585 to i1
  br i1 %2586, label %2587, label %2591

2587:                                             ; preds = %2580
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #11
  %2590 = call i32 @isatty(i32 noundef %2589) #11
  %.not344 = icmp eq i32 %2590, 0
  br i1 %.not344, label %2591, label %2592

2591:                                             ; preds = %2587, %2580
  br label %2592

2592:                                             ; preds = %2587, %2591
  %.str.53.sink1372 = phi ptr [ @.str.53, %2591 ], [ @.str.49, %2587 ]
  store i32 %2582, ptr %2581, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef nonnull @.str.52) #11
  %2598 = load i32, ptr %2595, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror_debug(i32 noundef %2598, ptr noundef nonnull @.str.52) #11
  %2600 = load i32, ptr %2581, align 4, !tbaa !5
  %2601 = call ptr @strerror(i32 noundef %2600) #11
  %2602 = load i32, ptr %2581, align 4, !tbaa !5
  %2603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef nonnull %.str.53.sink1372, i32 noundef %2594, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.51, i32 noundef 286, ptr noundef %2597, ptr noundef %2599, ptr noundef %2601, i32 noundef %2602) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2604:                                             ; preds = %2575
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = add nsw i32 %2605, 1
  store i32 %2606, ptr @test_count, align 4, !tbaa !5
  %2607 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #11
  %2608 = icmp eq i32 %2607, -1
  br i1 %2608, label %2609, label %2633

2609:                                             ; preds = %2604
  %2610 = tail call ptr @__errno_location() #12
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @s2n_print_stacktrace(ptr noundef %2612) #11
  %2614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2615 = trunc nuw i8 %2614 to i1
  br i1 %2615, label %2616, label %2620

2616:                                             ; preds = %2609
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = call i32 @fileno(ptr noundef %2617) #11
  %2619 = call i32 @isatty(i32 noundef %2618) #11
  %.not343 = icmp eq i32 %2619, 0
  br i1 %.not343, label %2620, label %2621

2620:                                             ; preds = %2616, %2609
  br label %2621

2621:                                             ; preds = %2616, %2620
  %.str.53.sink1383 = phi ptr [ @.str.53, %2620 ], [ @.str.49, %2616 ]
  store i32 %2611, ptr %2610, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @s2n_strerror(i32 noundef %2625, ptr noundef nonnull @.str.52) #11
  %2627 = load i32, ptr %2624, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror_debug(i32 noundef %2627, ptr noundef nonnull @.str.52) #11
  %2629 = load i32, ptr %2610, align 4, !tbaa !5
  %2630 = call ptr @strerror(i32 noundef %2629) #11
  %2631 = load i32, ptr %2610, align 4, !tbaa !5
  %2632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2622, ptr noundef nonnull %.str.53.sink1383, i32 noundef %2623, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.51, i32 noundef 287, ptr noundef %2626, ptr noundef %2628, ptr noundef %2630, i32 noundef %2631) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2633:                                             ; preds = %2604
  %2634 = load i32, ptr @test_count, align 4, !tbaa !5
  %2635 = add nsw i32 %2634, 1
  store i32 %2635, ptr @test_count, align 4, !tbaa !5
  %2636 = call i32 @s2n_connection_free(ptr noundef nonnull %382) #11
  %2637 = icmp eq i32 %2636, -1
  br i1 %2637, label %2638, label %2662

2638:                                             ; preds = %2633
  %2639 = tail call ptr @__errno_location() #12
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @s2n_print_stacktrace(ptr noundef %2641) #11
  %2643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2644 = trunc nuw i8 %2643 to i1
  br i1 %2644, label %2645, label %2649

2645:                                             ; preds = %2638
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @fileno(ptr noundef %2646) #11
  %2648 = call i32 @isatty(i32 noundef %2647) #11
  %.not342 = icmp eq i32 %2648, 0
  br i1 %.not342, label %2649, label %2650

2649:                                             ; preds = %2645, %2638
  br label %2650

2650:                                             ; preds = %2645, %2649
  %.str.53.sink1394 = phi ptr [ @.str.53, %2649 ], [ @.str.49, %2645 ]
  store i32 %2640, ptr %2639, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef nonnull @.str.52) #11
  %2656 = load i32, ptr %2653, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef nonnull @.str.52) #11
  %2658 = load i32, ptr %2639, align 4, !tbaa !5
  %2659 = call ptr @strerror(i32 noundef %2658) #11
  %2660 = load i32, ptr %2639, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef nonnull %.str.53.sink1394, i32 noundef %2652, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.51, i32 noundef 289, ptr noundef %2655, ptr noundef %2657, ptr noundef %2659, i32 noundef %2660) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2662:                                             ; preds = %2633
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = add nsw i32 %2663, 1
  store i32 %2664, ptr @test_count, align 4, !tbaa !5
  %2665 = call i32 @s2n_connection_free(ptr noundef nonnull %411) #11
  %2666 = icmp eq i32 %2665, -1
  br i1 %2666, label %2667, label %2691

2667:                                             ; preds = %2662
  %2668 = tail call ptr @__errno_location() #12
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @s2n_print_stacktrace(ptr noundef %2670) #11
  %2672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2673 = trunc nuw i8 %2672 to i1
  br i1 %2673, label %2674, label %2678

2674:                                             ; preds = %2667
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = call i32 @fileno(ptr noundef %2675) #11
  %2677 = call i32 @isatty(i32 noundef %2676) #11
  %.not341 = icmp eq i32 %2677, 0
  br i1 %.not341, label %2678, label %2679

2678:                                             ; preds = %2674, %2667
  br label %2679

2679:                                             ; preds = %2674, %2678
  %.str.53.sink1405 = phi ptr [ @.str.53, %2678 ], [ @.str.49, %2674 ]
  store i32 %2669, ptr %2668, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef nonnull @.str.52) #11
  %2685 = load i32, ptr %2682, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror_debug(i32 noundef %2685, ptr noundef nonnull @.str.52) #11
  %2687 = load i32, ptr %2668, align 4, !tbaa !5
  %2688 = call ptr @strerror(i32 noundef %2687) #11
  %2689 = load i32, ptr %2668, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef nonnull %.str.53.sink1405, i32 noundef %2681, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.51, i32 noundef 290, ptr noundef %2684, ptr noundef %2686, ptr noundef %2688, i32 noundef %2689) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2691:                                             ; preds = %2662
  %2692 = load i32, ptr @test_count, align 4, !tbaa !5
  %2693 = add nsw i32 %2692, 1
  store i32 %2693, ptr @test_count, align 4, !tbaa !5
  %2694 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %265) #11
  %2695 = icmp eq i32 %2694, -1
  br i1 %2695, label %2696, label %2720

2696:                                             ; preds = %2691
  %2697 = tail call ptr @__errno_location() #12
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = call i32 @s2n_print_stacktrace(ptr noundef %2699) #11
  %2701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2702 = trunc nuw i8 %2701 to i1
  br i1 %2702, label %2703, label %2707

2703:                                             ; preds = %2696
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = call i32 @fileno(ptr noundef %2704) #11
  %2706 = call i32 @isatty(i32 noundef %2705) #11
  %.not340 = icmp eq i32 %2706, 0
  br i1 %.not340, label %2707, label %2708

2707:                                             ; preds = %2703, %2696
  br label %2708

2708:                                             ; preds = %2703, %2707
  %.str.53.sink1416 = phi ptr [ @.str.53, %2707 ], [ @.str.49, %2703 ]
  store i32 %2698, ptr %2697, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call ptr @s2n_strerror(i32 noundef %2712, ptr noundef nonnull @.str.52) #11
  %2714 = load i32, ptr %2711, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror_debug(i32 noundef %2714, ptr noundef nonnull @.str.52) #11
  %2716 = load i32, ptr %2697, align 4, !tbaa !5
  %2717 = call ptr @strerror(i32 noundef %2716) #11
  %2718 = load i32, ptr %2697, align 4, !tbaa !5
  %2719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2709, ptr noundef nonnull %.str.53.sink1416, i32 noundef %2710, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.51, i32 noundef 292, ptr noundef %2713, ptr noundef %2715, ptr noundef %2717, i32 noundef %2718) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2720:                                             ; preds = %2691
  %2721 = load i32, ptr @test_count, align 4, !tbaa !5
  %2722 = add nsw i32 %2721, 1
  store i32 %2722, ptr @test_count, align 4, !tbaa !5
  %2723 = call i32 @s2n_config_free(ptr noundef nonnull %6) #11
  %2724 = icmp eq i32 %2723, -1
  br i1 %2724, label %2725, label %2749

2725:                                             ; preds = %2720
  %2726 = tail call ptr @__errno_location() #12
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = call i32 @s2n_print_stacktrace(ptr noundef %2728) #11
  %2730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2731 = trunc nuw i8 %2730 to i1
  br i1 %2731, label %2732, label %2736

2732:                                             ; preds = %2725
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = call i32 @fileno(ptr noundef %2733) #11
  %2735 = call i32 @isatty(i32 noundef %2734) #11
  %.not339 = icmp eq i32 %2735, 0
  br i1 %.not339, label %2736, label %2737

2736:                                             ; preds = %2732, %2725
  br label %2737

2737:                                             ; preds = %2732, %2736
  %.str.53.sink1427 = phi ptr [ @.str.53, %2736 ], [ @.str.49, %2732 ]
  store i32 %2727, ptr %2726, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef nonnull @.str.52) #11
  %2743 = load i32, ptr %2740, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror_debug(i32 noundef %2743, ptr noundef nonnull @.str.52) #11
  %2745 = load i32, ptr %2726, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #11
  %2747 = load i32, ptr %2726, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef nonnull %.str.53.sink1427, i32 noundef %2739, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.51, i32 noundef 293, ptr noundef %2742, ptr noundef %2744, ptr noundef %2746, i32 noundef %2747) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2749:                                             ; preds = %2720
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = add nsw i32 %2750, 1
  store i32 %2751, ptr @test_count, align 4, !tbaa !5
  %2752 = call i32 @s2n_config_free(ptr noundef nonnull %35) #11
  %2753 = icmp eq i32 %2752, -1
  br i1 %2753, label %2754, label %2778

2754:                                             ; preds = %2749
  %2755 = tail call ptr @__errno_location() #12
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @s2n_print_stacktrace(ptr noundef %2757) #11
  %2759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2760 = trunc nuw i8 %2759 to i1
  br i1 %2760, label %2761, label %2765

2761:                                             ; preds = %2754
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #11
  %2764 = call i32 @isatty(i32 noundef %2763) #11
  %.not338 = icmp eq i32 %2764, 0
  br i1 %.not338, label %2765, label %2766

2765:                                             ; preds = %2761, %2754
  br label %2766

2766:                                             ; preds = %2761, %2765
  %.str.53.sink1438 = phi ptr [ @.str.53, %2765 ], [ @.str.49, %2761 ]
  store i32 %2756, ptr %2755, align 4, !tbaa !5
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror(i32 noundef %2770, ptr noundef nonnull @.str.52) #11
  %2772 = load i32, ptr %2769, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror_debug(i32 noundef %2772, ptr noundef nonnull @.str.52) #11
  %2774 = load i32, ptr %2755, align 4, !tbaa !5
  %2775 = call ptr @strerror(i32 noundef %2774) #11
  %2776 = load i32, ptr %2755, align 4, !tbaa !5
  %2777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2767, ptr noundef nonnull %.str.53.sink1438, i32 noundef %2768, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.51, i32 noundef 294, ptr noundef %2771, ptr noundef %2773, ptr noundef %2775, i32 noundef %2776) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2778:                                             ; preds = %2749
  call void @free(ptr noundef nonnull %179) #11
  call void @free(ptr noundef nonnull %151) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %2) #11
  ret i32 0
}

declare ptr @s2n_config_new() local_unnamed_addr #5

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #5

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #5

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #5

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) 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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind allocsize(0) }

!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 3720}
!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 220}
!43 = !{!16, !6, i64 2172}


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