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

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@tls13_zero_length_handshake_record_hex = external dso_local constant [11 x i8], align 1
@tls13_zero_length_alert_record_hex = external dso_local constant [11 x i8], align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [93 x i8], align 1
@stderr = external global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #6 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %struct.s2n_result, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_blob, align 8
  %19 = alloca i32, align 4
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i8, align 1
  %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 ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_stuffer, align 8
  %47 = alloca %struct.s2n_stuffer, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_blob, align 8
  %53 = alloca %struct.s2n_result, 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 ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_stuffer, align 8
  %72 = alloca %struct.s2n_stuffer, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca %struct.s2n_blob, align 8
  %78 = alloca %struct.s2n_result, 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
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %93

93:                                               ; preds = %2
  br label %94

94:                                               ; preds = %93
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %95 = load ptr, ptr @stdout, align 8, !tbaa !9
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef @.str.20, ptr noundef @.str.21) #9
  %97 = load ptr, ptr @stdout, align 8, !tbaa !9
  %98 = call i32 @fflush(ptr noundef %97)
  br label %99

99:                                               ; preds = %94
  %100 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %101 = icmp eq i32 %100, -1
  br i1 %101, label %102, label %153

102:                                              ; preds = %99
  br label %103

103:                                              ; preds = %102
  br label %104

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %105 = call ptr @__errno_location() #10
  %106 = load i32, ptr %105, align 4, !tbaa !5
  store i32 %106, ptr %6, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = call i32 @s2n_print_stacktrace(ptr noundef %107)
  %109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %110 = trunc i8 %109 to i1
  br i1 %110, label %111, label %133

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

116:                                              ; preds = %111
  %117 = load i32, ptr %6, align 4, !tbaa !5
  %118 = call ptr @__errno_location() #10
  store i32 %117, ptr %118, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = call ptr @s2n_strerror(i32 noundef %122, ptr noundef @.str.24)
  %124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call ptr @s2n_strerror_debug(i32 noundef %125, ptr noundef @.str.24)
  %127 = call ptr @__errno_location() #10
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = call ptr @strerror(i32 noundef %128) #9
  %130 = call ptr @__errno_location() #10
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef @.str.22, i32 noundef %120, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 42, ptr noundef %123, ptr noundef %126, ptr noundef %129, i32 noundef %131) #9
  br label %150

133:                                              ; preds = %111, %104
  %134 = load i32, ptr %6, align 4, !tbaa !5
  %135 = call ptr @__errno_location() #10
  store i32 %134, ptr %135, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = load i32, ptr @test_count, align 4, !tbaa !5
  %138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call ptr @s2n_strerror(i32 noundef %139, ptr noundef @.str.24)
  %141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef @.str.24)
  %144 = call ptr @__errno_location() #10
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call ptr @strerror(i32 noundef %145) #9
  %147 = call ptr @__errno_location() #10
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %136, ptr noundef @.str.25, i32 noundef %137, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 42, ptr noundef %140, ptr noundef %143, ptr noundef %146, i32 noundef %148) #9
  br label %150

150:                                              ; preds = %133, %116
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %151

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

152:                                              ; No predecessors!
  br label %153

153:                                              ; preds = %152, %99
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr @test_count, align 4, !tbaa !5
  %158 = call i32 @s2n_enable_atexit()
  %159 = icmp eq i32 %158, -1
  br i1 %159, label %160, label %211

160:                                              ; preds = %155
  br label %161

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %163 = call ptr @__errno_location() #10
  %164 = load i32, ptr %163, align 4, !tbaa !5
  store i32 %164, ptr %7, align 4, !tbaa !5
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = call i32 @s2n_print_stacktrace(ptr noundef %165)
  %167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %168 = trunc i8 %167 to i1
  br i1 %168, label %169, label %191

169:                                              ; preds = %162
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = call i32 @fileno(ptr noundef %170) #9
  %172 = call i32 @isatty(i32 noundef %171) #9
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %191

174:                                              ; preds = %169
  %175 = load i32, ptr %7, align 4, !tbaa !5
  %176 = call ptr @__errno_location() #10
  store i32 %175, ptr %176, align 4, !tbaa !5
  %177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call ptr @s2n_strerror(i32 noundef %180, ptr noundef @.str.24)
  %182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef @.str.24)
  %185 = call ptr @__errno_location() #10
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @strerror(i32 noundef %186) #9
  %188 = call ptr @__errno_location() #10
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef @.str.22, i32 noundef %178, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 42, ptr noundef %181, ptr noundef %184, ptr noundef %187, i32 noundef %189) #9
  br label %208

191:                                              ; preds = %169, %162
  %192 = load i32, ptr %7, align 4, !tbaa !5
  %193 = call ptr @__errno_location() #10
  store i32 %192, ptr %193, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror(i32 noundef %197, ptr noundef @.str.24)
  %199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef @.str.24)
  %202 = call ptr @__errno_location() #10
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @strerror(i32 noundef %203) #9
  %205 = call ptr @__errno_location() #10
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef @.str.25, i32 noundef %195, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 42, ptr noundef %198, ptr noundef %201, ptr noundef %204, i32 noundef %206) #9
  br label %208

208:                                              ; preds = %191, %174
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %209

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

210:                                              ; No predecessors!
  br label %211

211:                                              ; preds = %210, %155
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  br label %214

214:                                              ; preds = %213
  %215 = call i32 @s2n_init()
  %216 = icmp eq i32 %215, -1
  br i1 %216, label %217, label %268

217:                                              ; preds = %214
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %220 = call ptr @__errno_location() #10
  %221 = load i32, ptr %220, align 4, !tbaa !5
  store i32 %221, ptr %8, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = call i32 @s2n_print_stacktrace(ptr noundef %222)
  %224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %225 = trunc i8 %224 to i1
  br i1 %225, label %226, label %248

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

231:                                              ; preds = %226
  %232 = load i32, ptr %8, align 4, !tbaa !5
  %233 = call ptr @__errno_location() #10
  store i32 %232, ptr %233, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror(i32 noundef %237, ptr noundef @.str.24)
  %239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef @.str.24)
  %242 = call ptr @__errno_location() #10
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call ptr @strerror(i32 noundef %243) #9
  %245 = call ptr @__errno_location() #10
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %234, ptr noundef @.str.22, i32 noundef %235, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 42, ptr noundef %238, ptr noundef %241, ptr noundef %244, i32 noundef %246) #9
  br label %265

248:                                              ; preds = %226, %219
  %249 = load i32, ptr %8, align 4, !tbaa !5
  %250 = call ptr @__errno_location() #10
  store i32 %249, ptr %250, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror(i32 noundef %254, ptr noundef @.str.24)
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef @.str.24)
  %259 = call ptr @__errno_location() #10
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @strerror(i32 noundef %260) #9
  %262 = call ptr @__errno_location() #10
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef @.str.25, i32 noundef %252, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 42, ptr noundef %255, ptr noundef %258, ptr noundef %261, i32 noundef %263) #9
  br label %265

265:                                              ; preds = %248, %231
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %266

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

267:                                              ; No predecessors!
  br label %268

268:                                              ; preds = %267, %214
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr @test_count, align 4, !tbaa !5
  %274 = call i32 (...) @s2n_enable_tls13_in_test()
  %275 = icmp eq i32 %274, -1
  br i1 %275, label %276, label %327

276:                                              ; preds = %271
  br label %277

277:                                              ; preds = %276
  br label %278

278:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %279 = call ptr @__errno_location() #10
  %280 = load i32, ptr %279, align 4, !tbaa !5
  store i32 %280, ptr %9, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @s2n_print_stacktrace(ptr noundef %281)
  %283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %284 = trunc i8 %283 to i1
  br i1 %284, label %285, label %307

285:                                              ; preds = %278
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @fileno(ptr noundef %286) #9
  %288 = call i32 @isatty(i32 noundef %287) #9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %307

290:                                              ; preds = %285
  %291 = load i32, ptr %9, align 4, !tbaa !5
  %292 = call ptr @__errno_location() #10
  store i32 %291, ptr %292, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror(i32 noundef %296, ptr noundef @.str.24)
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef @.str.24)
  %301 = call ptr @__errno_location() #10
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #9
  %304 = call ptr @__errno_location() #10
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.22, i32 noundef %294, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 44, ptr noundef %297, ptr noundef %300, ptr noundef %303, i32 noundef %305) #9
  br label %324

307:                                              ; preds = %285, %278
  %308 = load i32, ptr %9, align 4, !tbaa !5
  %309 = call ptr @__errno_location() #10
  store i32 %308, ptr %309, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror(i32 noundef %313, ptr noundef @.str.24)
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef @.str.24)
  %318 = call ptr @__errno_location() #10
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @strerror(i32 noundef %319) #9
  %321 = call ptr @__errno_location() #10
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef @.str.25, i32 noundef %311, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 44, ptr noundef %314, ptr noundef %317, ptr noundef %320, i32 noundef %322) #9
  br label %324

324:                                              ; preds = %307, %290
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %325

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

326:                                              ; No predecessors!
  br label %327

327:                                              ; preds = %326, %271
  br label %328

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %329

329:                                              ; preds = %328
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr @test_count, align 4, !tbaa !5
  %332 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %332, ptr %10, align 8, !tbaa !9
  %333 = icmp eq ptr %332, null
  br i1 %333, label %334, label %387

334:                                              ; preds = %329
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %337 = call ptr @__errno_location() #10
  %338 = load i32, ptr %337, align 4, !tbaa !5
  store i32 %338, ptr %11, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339)
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc i8 %341 to i1
  br i1 %342, label %343, label %365

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #9
  %346 = call i32 @isatty(i32 noundef %345) #9
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %365

348:                                              ; preds = %343
  %349 = load i32, ptr %11, align 4, !tbaa !5
  %350 = call ptr @__errno_location() #10
  store i32 %349, ptr %350, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef @.str.24)
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef @.str.24)
  %359 = call ptr @__errno_location() #10
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #9
  %362 = call ptr @__errno_location() #10
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef @.str.22, i32 noundef %352, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 55, ptr noundef %355, ptr noundef %358, ptr noundef %361, i32 noundef %363) #9
  br label %382

365:                                              ; preds = %343, %336
  %366 = load i32, ptr %11, align 4, !tbaa !5
  %367 = call ptr @__errno_location() #10
  store i32 %366, ptr %367, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef @.str.24)
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef @.str.24)
  %376 = call ptr @__errno_location() #10
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #9
  %379 = call ptr @__errno_location() #10
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.25, i32 noundef %369, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 55, ptr noundef %372, ptr noundef %375, ptr noundef %378, i32 noundef %380) #9
  br label %382

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %383

383:                                              ; preds = %382
  br label %384

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

385:                                              ; No predecessors!
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386, %329
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  %390 = load ptr, ptr %10, align 8, !tbaa !9
  %391 = getelementptr inbounds %struct.s2n_connection, ptr %390, i32 0, i32 23
  store i8 34, ptr %391, align 4, !tbaa !15
  br label %392

392:                                              ; preds = %389
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = load ptr, ptr %10, align 8, !tbaa !9
  %396 = call i32 @s2n_connection_set_secrets(ptr noundef %395)
  %397 = getelementptr inbounds %struct.s2n_result, ptr %12, i32 0, i32 0
  store i32 %396, ptr %397, align 4
  %398 = getelementptr inbounds %struct.s2n_result, ptr %12, i32 0, i32 0
  %399 = load i32, ptr %398, align 4
  %400 = call zeroext i1 @s2n_result_is_ok(i32 %399)
  br i1 %400, label %454, label %401

401:                                              ; preds = %392
  br label %402

402:                                              ; preds = %401
  br label %403

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

410:                                              ; preds = %403
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @fileno(ptr noundef %411) #9
  %413 = call i32 @isatty(i32 noundef %412) #9
  %414 = icmp ne i32 %413, 0
  br i1 %414, label %415, label %432

415:                                              ; preds = %410
  %416 = load i32, ptr %13, align 4, !tbaa !5
  %417 = call ptr @__errno_location() #10
  store i32 %416, ptr %417, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = load i32, ptr @test_count, align 4, !tbaa !5
  %420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror(i32 noundef %421, ptr noundef @.str.24)
  %423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror_debug(i32 noundef %424, ptr noundef @.str.24)
  %426 = call ptr @__errno_location() #10
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @strerror(i32 noundef %427) #9
  %429 = call ptr @__errno_location() #10
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %418, ptr noundef @.str.22, i32 noundef %419, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 57, ptr noundef %422, ptr noundef %425, ptr noundef %428, i32 noundef %430) #9
  br label %449

432:                                              ; preds = %410, %403
  %433 = load i32, ptr %13, align 4, !tbaa !5
  %434 = call ptr @__errno_location() #10
  store i32 %433, ptr %434, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @s2n_strerror(i32 noundef %438, ptr noundef @.str.24)
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror_debug(i32 noundef %441, ptr noundef @.str.24)
  %443 = call ptr @__errno_location() #10
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @strerror(i32 noundef %444) #9
  %446 = call ptr @__errno_location() #10
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef @.str.25, i32 noundef %436, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 57, ptr noundef %439, ptr noundef %442, ptr noundef %445, i32 noundef %447) #9
  br label %449

449:                                              ; preds = %432, %415
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %450

450:                                              ; preds = %449
  br label %451

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

452:                                              ; No predecessors!
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453, %392
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %456
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %460, ptr %14, align 8, !tbaa !9
  %461 = icmp eq ptr %460, null
  br i1 %461, label %462, label %515

462:                                              ; preds = %457
  br label %463

463:                                              ; preds = %462
  br label %464

464:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %465 = call ptr @__errno_location() #10
  %466 = load i32, ptr %465, align 4, !tbaa !5
  store i32 %466, ptr %15, align 4, !tbaa !5
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = call i32 @s2n_print_stacktrace(ptr noundef %467)
  %469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %470 = trunc i8 %469 to i1
  br i1 %470, label %471, label %493

471:                                              ; preds = %464
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = call i32 @fileno(ptr noundef %472) #9
  %474 = call i32 @isatty(i32 noundef %473) #9
  %475 = icmp ne i32 %474, 0
  br i1 %475, label %476, label %493

476:                                              ; preds = %471
  %477 = load i32, ptr %15, align 4, !tbaa !5
  %478 = call ptr @__errno_location() #10
  store i32 %477, ptr %478, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror(i32 noundef %482, ptr noundef @.str.24)
  %484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef @.str.24)
  %487 = call ptr @__errno_location() #10
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @strerror(i32 noundef %488) #9
  %490 = call ptr @__errno_location() #10
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef @.str.22, i32 noundef %480, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 60, ptr noundef %483, ptr noundef %486, ptr noundef %489, i32 noundef %491) #9
  br label %510

493:                                              ; preds = %471, %464
  %494 = load i32, ptr %15, align 4, !tbaa !5
  %495 = call ptr @__errno_location() #10
  store i32 %494, ptr %495, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef @.str.24)
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef @.str.24)
  %504 = call ptr @__errno_location() #10
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @strerror(i32 noundef %505) #9
  %507 = call ptr @__errno_location() #10
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef @.str.25, i32 noundef %497, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 60, ptr noundef %500, ptr noundef %503, ptr noundef %506, i32 noundef %508) #9
  br label %510

510:                                              ; preds = %493, %476
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %511

511:                                              ; preds = %510
  br label %512

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

513:                                              ; No predecessors!
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514, %457
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516
  %518 = load ptr, ptr %14, align 8, !tbaa !9
  %519 = getelementptr inbounds %struct.s2n_connection, ptr %518, i32 0, i32 23
  store i8 34, ptr %519, align 4, !tbaa !15
  br label %520

520:                                              ; preds = %517
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = load ptr, ptr %14, align 8, !tbaa !9
  %524 = call i32 @s2n_connection_set_secrets(ptr noundef %523)
  %525 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %524, ptr %525, align 4
  %526 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %527 = load i32, ptr %526, align 4
  %528 = call zeroext i1 @s2n_result_is_ok(i32 %527)
  br i1 %528, label %582, label %529

529:                                              ; preds = %520
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %532 = call ptr @__errno_location() #10
  %533 = load i32, ptr %532, align 4, !tbaa !5
  store i32 %533, ptr %17, align 4, !tbaa !5
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = call i32 @s2n_print_stacktrace(ptr noundef %534)
  %536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %537 = trunc i8 %536 to i1
  br i1 %537, label %538, label %560

538:                                              ; preds = %531
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = call i32 @fileno(ptr noundef %539) #9
  %541 = call i32 @isatty(i32 noundef %540) #9
  %542 = icmp ne i32 %541, 0
  br i1 %542, label %543, label %560

543:                                              ; preds = %538
  %544 = load i32, ptr %17, align 4, !tbaa !5
  %545 = call ptr @__errno_location() #10
  store i32 %544, ptr %545, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef @.str.24)
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef @.str.24)
  %554 = call ptr @__errno_location() #10
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #9
  %557 = call ptr @__errno_location() #10
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef @.str.22, i32 noundef %547, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 62, ptr noundef %550, ptr noundef %553, ptr noundef %556, i32 noundef %558) #9
  br label %577

560:                                              ; preds = %538, %531
  %561 = load i32, ptr %17, align 4, !tbaa !5
  %562 = call ptr @__errno_location() #10
  store i32 %561, ptr %562, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror(i32 noundef %566, ptr noundef @.str.24)
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror_debug(i32 noundef %569, ptr noundef @.str.24)
  %571 = call ptr @__errno_location() #10
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @strerror(i32 noundef %572) #9
  %574 = call ptr @__errno_location() #10
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %563, ptr noundef @.str.25, i32 noundef %564, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 62, ptr noundef %567, ptr noundef %570, ptr noundef %573, i32 noundef %575) #9
  br label %577

577:                                              ; preds = %560, %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %578

578:                                              ; preds = %577
  br label %579

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

580:                                              ; No predecessors!
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581, %520
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #9
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %20) #9
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #9
  call void @llvm.memset.p0.i64(ptr align 8 %21, i8 0, i64 40, i1 false)
  br label %585

585:                                              ; preds = %584
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = add nsw i32 %586, 1
  store i32 %587, ptr @test_count, align 4, !tbaa !5
  %588 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %20, i32 noundef 0)
  %589 = icmp eq i32 %588, -1
  br i1 %589, label %590, label %643

590:                                              ; preds = %585
  br label %591

591:                                              ; preds = %590
  br label %592

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

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

604:                                              ; preds = %599
  %605 = load i32, ptr %22, align 4, !tbaa !5
  %606 = call ptr @__errno_location() #10
  store i32 %605, ptr %606, align 4, !tbaa !5
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = load i32, ptr @test_count, align 4, !tbaa !5
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror(i32 noundef %610, ptr noundef @.str.24)
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror_debug(i32 noundef %613, ptr noundef @.str.24)
  %615 = call ptr @__errno_location() #10
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #9
  %618 = call ptr @__errno_location() #10
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %607, ptr noundef @.str.22, i32 noundef %608, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 70, ptr noundef %611, ptr noundef %614, ptr noundef %617, i32 noundef %619) #9
  br label %638

621:                                              ; preds = %599, %592
  %622 = load i32, ptr %22, align 4, !tbaa !5
  %623 = call ptr @__errno_location() #10
  store i32 %622, ptr %623, align 4, !tbaa !5
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror(i32 noundef %627, ptr noundef @.str.24)
  %629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror_debug(i32 noundef %630, ptr noundef @.str.24)
  %632 = call ptr @__errno_location() #10
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @strerror(i32 noundef %633) #9
  %635 = call ptr @__errno_location() #10
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %624, ptr noundef @.str.25, i32 noundef %625, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 70, ptr noundef %628, ptr noundef %631, ptr noundef %634, i32 noundef %636) #9
  br label %638

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

639:                                              ; preds = %638
  br label %640

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

641:                                              ; No predecessors!
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642, %585
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr @test_count, align 4, !tbaa !5
  %649 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %21, i32 noundef 0)
  %650 = icmp eq i32 %649, -1
  br i1 %650, label %651, label %704

651:                                              ; preds = %646
  br label %652

652:                                              ; preds = %651
  br label %653

653:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %654 = call ptr @__errno_location() #10
  %655 = load i32, ptr %654, align 4, !tbaa !5
  store i32 %655, ptr %23, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @s2n_print_stacktrace(ptr noundef %656)
  %658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %659 = trunc i8 %658 to i1
  br i1 %659, label %660, label %682

660:                                              ; preds = %653
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @fileno(ptr noundef %661) #9
  %663 = call i32 @isatty(i32 noundef %662) #9
  %664 = icmp ne i32 %663, 0
  br i1 %664, label %665, label %682

665:                                              ; preds = %660
  %666 = load i32, ptr %23, align 4, !tbaa !5
  %667 = call ptr @__errno_location() #10
  store i32 %666, ptr %667, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef @.str.24)
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef @.str.24)
  %676 = call ptr @__errno_location() #10
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #9
  %679 = call ptr @__errno_location() #10
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef @.str.22, i32 noundef %669, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 71, ptr noundef %672, ptr noundef %675, ptr noundef %678, i32 noundef %680) #9
  br label %699

682:                                              ; preds = %660, %653
  %683 = load i32, ptr %23, align 4, !tbaa !5
  %684 = call ptr @__errno_location() #10
  store i32 %683, ptr %684, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef @.str.24)
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef @.str.24)
  %693 = call ptr @__errno_location() #10
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #9
  %696 = call ptr @__errno_location() #10
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.25, i32 noundef %686, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 71, ptr noundef %689, ptr noundef %692, ptr noundef %695, i32 noundef %697) #9
  br label %699

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

700:                                              ; preds = %699
  br label %701

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

702:                                              ; No predecessors!
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703, %646
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = load ptr, ptr %10, align 8, !tbaa !9
  %711 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %20, ptr noundef %21, ptr noundef %710)
  %712 = icmp eq i32 %711, -1
  br i1 %712, label %713, label %766

713:                                              ; preds = %707
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %716 = call ptr @__errno_location() #10
  %717 = load i32, ptr %716, align 4, !tbaa !5
  store i32 %717, ptr %24, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = call i32 @s2n_print_stacktrace(ptr noundef %718)
  %720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %721 = trunc i8 %720 to i1
  br i1 %721, label %722, label %744

722:                                              ; preds = %715
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @fileno(ptr noundef %723) #9
  %725 = call i32 @isatty(i32 noundef %724) #9
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %744

727:                                              ; preds = %722
  %728 = load i32, ptr %24, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #10
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror(i32 noundef %733, ptr noundef @.str.24)
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef @.str.24)
  %738 = call ptr @__errno_location() #10
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #9
  %741 = call ptr @__errno_location() #10
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str.22, i32 noundef %731, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 73, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #9
  br label %761

744:                                              ; preds = %722, %715
  %745 = load i32, ptr %24, align 4, !tbaa !5
  %746 = call ptr @__errno_location() #10
  store i32 %745, ptr %746, 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 @.str.24)
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef @.str.24)
  %755 = call ptr @__errno_location() #10
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #9
  %758 = call ptr @__errno_location() #10
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef @.str.25, i32 noundef %748, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 73, ptr noundef %751, ptr noundef %754, ptr noundef %757, i32 noundef %759) #9
  br label %761

761:                                              ; preds = %744, %727
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %762

762:                                              ; preds = %761
  br label %763

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

764:                                              ; No predecessors!
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765, %707
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = load ptr, ptr %14, align 8, !tbaa !9
  %773 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %21, ptr noundef %20, ptr noundef %772)
  %774 = icmp eq i32 %773, -1
  br i1 %774, label %775, label %828

775:                                              ; preds = %769
  br label %776

776:                                              ; preds = %775
  br label %777

777:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %778 = call ptr @__errno_location() #10
  %779 = load i32, ptr %778, align 4, !tbaa !5
  store i32 %779, ptr %25, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @s2n_print_stacktrace(ptr noundef %780)
  %782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %783 = trunc i8 %782 to i1
  br i1 %783, label %784, label %806

784:                                              ; preds = %777
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @fileno(ptr noundef %785) #9
  %787 = call i32 @isatty(i32 noundef %786) #9
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %789, label %806

789:                                              ; preds = %784
  %790 = load i32, ptr %25, align 4, !tbaa !5
  %791 = call ptr @__errno_location() #10
  store i32 %790, ptr %791, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror(i32 noundef %795, ptr noundef @.str.24)
  %797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef @.str.24)
  %800 = call ptr @__errno_location() #10
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #9
  %803 = call ptr @__errno_location() #10
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef @.str.22, i32 noundef %793, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 74, ptr noundef %796, ptr noundef %799, ptr noundef %802, i32 noundef %804) #9
  br label %823

806:                                              ; preds = %784, %777
  %807 = load i32, ptr %25, align 4, !tbaa !5
  %808 = call ptr @__errno_location() #10
  store i32 %807, ptr %808, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef @.str.24)
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror_debug(i32 noundef %815, ptr noundef @.str.24)
  %817 = call ptr @__errno_location() #10
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #9
  %820 = call ptr @__errno_location() #10
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef @.str.25, i32 noundef %810, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 74, ptr noundef %813, ptr noundef %816, ptr noundef %819, i32 noundef %821) #9
  br label %823

823:                                              ; preds = %806, %789
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %824

824:                                              ; preds = %823
  br label %825

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

826:                                              ; No predecessors!
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827, %769
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = load ptr, ptr %14, align 8, !tbaa !9
  %835 = call i32 @s2n_record_write(ptr noundef %834, i8 noundef zeroext 23, ptr noundef %18)
  %836 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %835, ptr %836, align 4
  %837 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %838 = load i32, ptr %837, align 4
  %839 = call zeroext i1 @s2n_result_is_ok(i32 %838)
  br i1 %839, label %893, label %840

840:                                              ; preds = %831
  br label %841

841:                                              ; preds = %840
  br label %842

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

849:                                              ; preds = %842
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @fileno(ptr noundef %850) #9
  %852 = call i32 @isatty(i32 noundef %851) #9
  %853 = icmp ne i32 %852, 0
  br i1 %853, label %854, label %871

854:                                              ; preds = %849
  %855 = load i32, ptr %27, align 4, !tbaa !5
  %856 = call ptr @__errno_location() #10
  store i32 %855, ptr %856, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror(i32 noundef %860, ptr noundef @.str.24)
  %862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef @.str.24)
  %865 = call ptr @__errno_location() #10
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @strerror(i32 noundef %866) #9
  %868 = call ptr @__errno_location() #10
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef @.str.22, i32 noundef %858, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 76, ptr noundef %861, ptr noundef %864, ptr noundef %867, i32 noundef %869) #9
  br label %888

871:                                              ; preds = %849, %842
  %872 = load i32, ptr %27, align 4, !tbaa !5
  %873 = call ptr @__errno_location() #10
  store i32 %872, ptr %873, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror(i32 noundef %877, ptr noundef @.str.24)
  %879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef @.str.24)
  %882 = call ptr @__errno_location() #10
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @strerror(i32 noundef %883) #9
  %885 = call ptr @__errno_location() #10
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %874, ptr noundef @.str.25, i32 noundef %875, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 76, ptr noundef %878, ptr noundef %881, ptr noundef %884, i32 noundef %886) #9
  br label %888

888:                                              ; preds = %871, %854
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %889

889:                                              ; preds = %888
  br label %890

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

891:                                              ; No predecessors!
  br label %892

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %892, %831
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = load ptr, ptr %14, align 8, !tbaa !9
  %900 = call i32 @s2n_flush(ptr noundef %899, ptr noundef %19)
  %901 = icmp eq i32 %900, -1
  br i1 %901, label %902, label %955

902:                                              ; preds = %896
  br label %903

903:                                              ; preds = %902
  br label %904

904:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %905 = call ptr @__errno_location() #10
  %906 = load i32, ptr %905, align 4, !tbaa !5
  store i32 %906, ptr %28, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @s2n_print_stacktrace(ptr noundef %907)
  %909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %910 = trunc i8 %909 to i1
  br i1 %910, label %911, label %933

911:                                              ; preds = %904
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = call i32 @fileno(ptr noundef %912) #9
  %914 = call i32 @isatty(i32 noundef %913) #9
  %915 = icmp ne i32 %914, 0
  br i1 %915, label %916, label %933

916:                                              ; preds = %911
  %917 = load i32, ptr %28, align 4, !tbaa !5
  %918 = call ptr @__errno_location() #10
  store i32 %917, ptr %918, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror(i32 noundef %922, ptr noundef @.str.24)
  %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_debug(i32 noundef %925, ptr noundef @.str.24)
  %927 = call ptr @__errno_location() #10
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @strerror(i32 noundef %928) #9
  %930 = call ptr @__errno_location() #10
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %919, ptr noundef @.str.22, i32 noundef %920, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 77, ptr noundef %923, ptr noundef %926, ptr noundef %929, i32 noundef %931) #9
  br label %950

933:                                              ; preds = %911, %904
  %934 = load i32, ptr %28, align 4, !tbaa !5
  %935 = call ptr @__errno_location() #10
  store i32 %934, ptr %935, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror(i32 noundef %939, ptr noundef @.str.24)
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef @.str.24)
  %944 = call ptr @__errno_location() #10
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @strerror(i32 noundef %945) #9
  %947 = call ptr @__errno_location() #10
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %936, ptr noundef @.str.25, i32 noundef %937, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 77, ptr noundef %940, ptr noundef %943, ptr noundef %946, i32 noundef %948) #9
  br label %950

950:                                              ; preds = %933, %916
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %951

951:                                              ; preds = %950
  br label %952

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

953:                                              ; No predecessors!
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954, %896
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = add nsw i32 %959, 1
  store i32 %960, ptr @test_count, align 4, !tbaa !5
  %961 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 2
  %962 = load i32, ptr %961, align 4, !tbaa !42
  %963 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 1
  %964 = load i32, ptr %963, align 8, !tbaa !43
  %965 = sub i32 %962, %964
  %966 = icmp ugt i32 %965, 0
  br i1 %966, label %1020, label %967

967:                                              ; preds = %958
  br label %968

968:                                              ; preds = %967
  br label %969

969:                                              ; preds = %968
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %970 = call ptr @__errno_location() #10
  %971 = load i32, ptr %970, align 4, !tbaa !5
  store i32 %971, ptr %29, align 4, !tbaa !5
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @s2n_print_stacktrace(ptr noundef %972)
  %974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %975 = trunc i8 %974 to i1
  br i1 %975, label %976, label %998

976:                                              ; preds = %969
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @fileno(ptr noundef %977) #9
  %979 = call i32 @isatty(i32 noundef %978) #9
  %980 = icmp ne i32 %979, 0
  br i1 %980, label %981, label %998

981:                                              ; preds = %976
  %982 = load i32, ptr %29, align 4, !tbaa !5
  %983 = call ptr @__errno_location() #10
  store i32 %982, ptr %983, align 4, !tbaa !5
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef @.str.24)
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror_debug(i32 noundef %990, ptr noundef @.str.24)
  %992 = call ptr @__errno_location() #10
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @strerror(i32 noundef %993) #9
  %995 = call ptr @__errno_location() #10
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %984, ptr noundef @.str.22, i32 noundef %985, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 78, ptr noundef %988, ptr noundef %991, ptr noundef %994, i32 noundef %996) #9
  br label %1015

998:                                              ; preds = %976, %969
  %999 = load i32, ptr %29, align 4, !tbaa !5
  %1000 = call ptr @__errno_location() #10
  store i32 %999, ptr %1000, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror(i32 noundef %1004, ptr noundef @.str.24)
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef @.str.24)
  %1009 = call ptr @__errno_location() #10
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @strerror(i32 noundef %1010) #9
  %1012 = call ptr @__errno_location() #10
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef @.str.25, i32 noundef %1002, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 78, ptr noundef %1005, ptr noundef %1008, ptr noundef %1011, i32 noundef %1013) #9
  br label %1015

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

1016:                                             ; preds = %1015
  br label %1017

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

1018:                                             ; No predecessors!
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019, %958
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = add nsw i32 %1024, 1
  store i32 %1025, ptr @test_count, align 4, !tbaa !5
  %1026 = load ptr, ptr %10, align 8, !tbaa !9
  %1027 = call i32 @s2n_record_write(ptr noundef %1026, i8 noundef zeroext 23, ptr noundef %18)
  %1028 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %1027, ptr %1028, align 4
  %1029 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %1030 = load i32, ptr %1029, align 4
  %1031 = call zeroext i1 @s2n_result_is_ok(i32 %1030)
  br i1 %1031, label %1085, label %1032

1032:                                             ; preds = %1023
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

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

1041:                                             ; preds = %1034
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @fileno(ptr noundef %1042) #9
  %1044 = call i32 @isatty(i32 noundef %1043) #9
  %1045 = icmp ne i32 %1044, 0
  br i1 %1045, label %1046, label %1063

1046:                                             ; preds = %1041
  %1047 = load i32, ptr %31, align 4, !tbaa !5
  %1048 = call ptr @__errno_location() #10
  store i32 %1047, ptr %1048, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef @.str.24)
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef @.str.24)
  %1057 = call ptr @__errno_location() #10
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #9
  %1060 = call ptr @__errno_location() #10
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef @.str.22, i32 noundef %1050, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 80, ptr noundef %1053, ptr noundef %1056, ptr noundef %1059, i32 noundef %1061) #9
  br label %1080

1063:                                             ; preds = %1041, %1034
  %1064 = load i32, ptr %31, align 4, !tbaa !5
  %1065 = call ptr @__errno_location() #10
  store i32 %1064, ptr %1065, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef @.str.24)
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror_debug(i32 noundef %1072, ptr noundef @.str.24)
  %1074 = call ptr @__errno_location() #10
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @strerror(i32 noundef %1075) #9
  %1077 = call ptr @__errno_location() #10
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1066, ptr noundef @.str.25, i32 noundef %1067, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 80, ptr noundef %1070, ptr noundef %1073, ptr noundef %1076, i32 noundef %1078) #9
  br label %1080

1080:                                             ; preds = %1063, %1046
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

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

1083:                                             ; No predecessors!
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084, %1023
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = load ptr, ptr %10, align 8, !tbaa !9
  %1092 = call i32 @s2n_flush(ptr noundef %1091, ptr noundef %19)
  %1093 = icmp eq i32 %1092, -1
  br i1 %1093, label %1094, label %1147

1094:                                             ; preds = %1088
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1097 = call ptr @__errno_location() #10
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  store i32 %1098, ptr %32, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @s2n_print_stacktrace(ptr noundef %1099)
  %1101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1102 = trunc i8 %1101 to i1
  br i1 %1102, label %1103, label %1125

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

1108:                                             ; preds = %1103
  %1109 = load i32, ptr %32, align 4, !tbaa !5
  %1110 = call ptr @__errno_location() #10
  store i32 %1109, ptr %1110, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror(i32 noundef %1114, ptr noundef @.str.24)
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef @.str.24)
  %1119 = call ptr @__errno_location() #10
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call ptr @strerror(i32 noundef %1120) #9
  %1122 = call ptr @__errno_location() #10
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef @.str.22, i32 noundef %1112, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 81, ptr noundef %1115, ptr noundef %1118, ptr noundef %1121, i32 noundef %1123) #9
  br label %1142

1125:                                             ; preds = %1103, %1096
  %1126 = load i32, ptr %32, align 4, !tbaa !5
  %1127 = call ptr @__errno_location() #10
  store i32 %1126, ptr %1127, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef @.str.24)
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror_debug(i32 noundef %1134, ptr noundef @.str.24)
  %1136 = call ptr @__errno_location() #10
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #9
  %1139 = call ptr @__errno_location() #10
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1128, ptr noundef @.str.25, i32 noundef %1129, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 81, ptr noundef %1132, ptr noundef %1135, ptr noundef %1138, i32 noundef %1140) #9
  br label %1142

1142:                                             ; preds = %1125, %1108
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

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

1145:                                             ; No predecessors!
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146, %1088
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = getelementptr inbounds %struct.s2n_stuffer, ptr %21, i32 0, i32 2
  %1154 = load i32, ptr %1153, align 4, !tbaa !42
  %1155 = getelementptr inbounds %struct.s2n_stuffer, ptr %21, i32 0, i32 1
  %1156 = load i32, ptr %1155, align 8, !tbaa !43
  %1157 = sub i32 %1154, %1156
  %1158 = icmp ugt i32 %1157, 0
  br i1 %1158, label %1212, label %1159

1159:                                             ; preds = %1150
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1162 = call ptr @__errno_location() #10
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  store i32 %1163, ptr %33, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @s2n_print_stacktrace(ptr noundef %1164)
  %1166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1168, label %1190

1168:                                             ; preds = %1161
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @fileno(ptr noundef %1169) #9
  %1171 = call i32 @isatty(i32 noundef %1170) #9
  %1172 = icmp ne i32 %1171, 0
  br i1 %1172, label %1173, label %1190

1173:                                             ; preds = %1168
  %1174 = load i32, ptr %33, align 4, !tbaa !5
  %1175 = call ptr @__errno_location() #10
  store i32 %1174, ptr %1175, align 4, !tbaa !5
  %1176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror(i32 noundef %1179, ptr noundef @.str.24)
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror_debug(i32 noundef %1182, ptr noundef @.str.24)
  %1184 = call ptr @__errno_location() #10
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #9
  %1187 = call ptr @__errno_location() #10
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1176, ptr noundef @.str.22, i32 noundef %1177, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 82, ptr noundef %1180, ptr noundef %1183, ptr noundef %1186, i32 noundef %1188) #9
  br label %1207

1190:                                             ; preds = %1168, %1161
  %1191 = load i32, ptr %33, align 4, !tbaa !5
  %1192 = call ptr @__errno_location() #10
  store i32 %1191, ptr %1192, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef @.str.24)
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror_debug(i32 noundef %1199, ptr noundef @.str.24)
  %1201 = call ptr @__errno_location() #10
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @strerror(i32 noundef %1202) #9
  %1204 = call ptr @__errno_location() #10
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef @.str.25, i32 noundef %1194, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 82, ptr noundef %1197, ptr noundef %1200, ptr noundef %1203, i32 noundef %1205) #9
  br label %1207

1207:                                             ; preds = %1190, %1173
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

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

1210:                                             ; No predecessors!
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211, %1150
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #9
  store i8 0, ptr %34, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %1215

1215:                                             ; preds = %1214
  %1216 = load i32, ptr @test_count, align 4, !tbaa !5
  %1217 = add nsw i32 %1216, 1
  store i32 %1217, ptr @test_count, align 4, !tbaa !5
  %1218 = load ptr, ptr %10, align 8, !tbaa !9
  %1219 = call i32 @s2n_read_full_record(ptr noundef %1218, ptr noundef %34, ptr noundef %35)
  %1220 = icmp eq i32 %1219, -1
  br i1 %1220, label %1221, label %1274

1221:                                             ; preds = %1215
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1224 = call ptr @__errno_location() #10
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  store i32 %1225, ptr %36, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 @s2n_print_stacktrace(ptr noundef %1226)
  %1228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1229 = trunc i8 %1228 to i1
  br i1 %1229, label %1230, label %1252

1230:                                             ; preds = %1223
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = call i32 @fileno(ptr noundef %1231) #9
  %1233 = call i32 @isatty(i32 noundef %1232) #9
  %1234 = icmp ne i32 %1233, 0
  br i1 %1234, label %1235, label %1252

1235:                                             ; preds = %1230
  %1236 = load i32, ptr %36, align 4, !tbaa !5
  %1237 = call ptr @__errno_location() #10
  store i32 %1236, ptr %1237, 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 @.str.24)
  %1243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror_debug(i32 noundef %1244, ptr noundef @.str.24)
  %1246 = call ptr @__errno_location() #10
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call ptr @strerror(i32 noundef %1247) #9
  %1249 = call ptr @__errno_location() #10
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef @.str.22, i32 noundef %1239, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 87, ptr noundef %1242, ptr noundef %1245, ptr noundef %1248, i32 noundef %1250) #9
  br label %1269

1252:                                             ; preds = %1230, %1223
  %1253 = load i32, ptr %36, align 4, !tbaa !5
  %1254 = call ptr @__errno_location() #10
  store i32 %1253, ptr %1254, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror(i32 noundef %1258, ptr noundef @.str.24)
  %1260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef @.str.24)
  %1263 = call ptr @__errno_location() #10
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @strerror(i32 noundef %1264) #9
  %1266 = call ptr @__errno_location() #10
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1255, ptr noundef @.str.25, i32 noundef %1256, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 87, ptr noundef %1259, ptr noundef %1262, ptr noundef %1265, i32 noundef %1267) #9
  br label %1269

1269:                                             ; preds = %1252, %1235
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

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

1272:                                             ; No predecessors!
  br label %1273

1273:                                             ; preds = %1272
  br label %1274

1274:                                             ; preds = %1273, %1215
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  br label %1277

1277:                                             ; preds = %1276
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = add nsw i32 %1278, 1
  store i32 %1279, ptr @test_count, align 4, !tbaa !5
  %1280 = load i8, ptr %34, align 1, !tbaa !44
  %1281 = zext i8 %1280 to i32
  %1282 = icmp eq i32 %1281, 23
  br i1 %1282, label %1336, label %1283

1283:                                             ; preds = %1277
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1286 = call ptr @__errno_location() #10
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  store i32 %1287, ptr %37, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @s2n_print_stacktrace(ptr noundef %1288)
  %1290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1291 = trunc i8 %1290 to i1
  br i1 %1291, label %1292, label %1314

1292:                                             ; preds = %1285
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @fileno(ptr noundef %1293) #9
  %1295 = call i32 @isatty(i32 noundef %1294) #9
  %1296 = icmp ne i32 %1295, 0
  br i1 %1296, label %1297, label %1314

1297:                                             ; preds = %1292
  %1298 = load i32, ptr %37, align 4, !tbaa !5
  %1299 = call ptr @__errno_location() #10
  store i32 %1298, ptr %1299, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror(i32 noundef %1303, ptr noundef @.str.24)
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef @.str.24)
  %1308 = call ptr @__errno_location() #10
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @strerror(i32 noundef %1309) #9
  %1311 = call ptr @__errno_location() #10
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1300, ptr noundef @.str.22, i32 noundef %1301, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 88, ptr noundef %1304, ptr noundef %1307, ptr noundef %1310, i32 noundef %1312) #9
  br label %1331

1314:                                             ; preds = %1292, %1285
  %1315 = load i32, ptr %37, align 4, !tbaa !5
  %1316 = call ptr @__errno_location() #10
  store i32 %1315, ptr %1316, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @s2n_strerror(i32 noundef %1320, ptr noundef @.str.24)
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef @.str.24)
  %1325 = call ptr @__errno_location() #10
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #9
  %1328 = call ptr @__errno_location() #10
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef @.str.25, i32 noundef %1318, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 88, ptr noundef %1321, ptr noundef %1324, ptr noundef %1327, i32 noundef %1329) #9
  br label %1331

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

1332:                                             ; preds = %1331
  br label %1333

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

1334:                                             ; No predecessors!
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335, %1277
  br label %1337

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337
  store i8 0, ptr %34, align 1, !tbaa !44
  br label %1339

1339:                                             ; preds = %1338
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr @test_count, align 4, !tbaa !5
  %1342 = load ptr, ptr %14, align 8, !tbaa !9
  %1343 = call i32 @s2n_read_full_record(ptr noundef %1342, ptr noundef %34, ptr noundef %35)
  %1344 = icmp eq i32 %1343, -1
  br i1 %1344, label %1345, label %1398

1345:                                             ; preds = %1339
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1348 = call ptr @__errno_location() #10
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  store i32 %1349, ptr %38, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @s2n_print_stacktrace(ptr noundef %1350)
  %1352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1353 = trunc i8 %1352 to i1
  br i1 %1353, label %1354, label %1376

1354:                                             ; preds = %1347
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @fileno(ptr noundef %1355) #9
  %1357 = call i32 @isatty(i32 noundef %1356) #9
  %1358 = icmp ne i32 %1357, 0
  br i1 %1358, label %1359, label %1376

1359:                                             ; preds = %1354
  %1360 = load i32, ptr %38, align 4, !tbaa !5
  %1361 = call ptr @__errno_location() #10
  store i32 %1360, ptr %1361, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef @.str.24)
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef @.str.24)
  %1370 = call ptr @__errno_location() #10
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #9
  %1373 = call ptr @__errno_location() #10
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef @.str.22, i32 noundef %1363, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 90, ptr noundef %1366, ptr noundef %1369, ptr noundef %1372, i32 noundef %1374) #9
  br label %1393

1376:                                             ; preds = %1354, %1347
  %1377 = load i32, ptr %38, align 4, !tbaa !5
  %1378 = call ptr @__errno_location() #10
  store i32 %1377, ptr %1378, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror(i32 noundef %1382, ptr noundef @.str.24)
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror_debug(i32 noundef %1385, ptr noundef @.str.24)
  %1387 = call ptr @__errno_location() #10
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #9
  %1390 = call ptr @__errno_location() #10
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1379, ptr noundef @.str.25, i32 noundef %1380, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 90, ptr noundef %1383, ptr noundef %1386, ptr noundef %1389, i32 noundef %1391) #9
  br label %1393

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

1394:                                             ; preds = %1393
  br label %1395

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

1396:                                             ; No predecessors!
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397, %1339
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 1
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = load i8, ptr %34, align 1, !tbaa !44
  %1405 = zext i8 %1404 to i32
  %1406 = icmp eq i32 %1405, 23
  br i1 %1406, label %1460, label %1407

1407:                                             ; preds = %1401
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

1409:                                             ; preds = %1408
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1410 = call ptr @__errno_location() #10
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  store i32 %1411, ptr %39, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412)
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc i8 %1414 to i1
  br i1 %1415, label %1416, label %1438

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

1421:                                             ; preds = %1416
  %1422 = load i32, ptr %39, align 4, !tbaa !5
  %1423 = call ptr @__errno_location() #10
  store i32 %1422, ptr %1423, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror(i32 noundef %1427, ptr noundef @.str.24)
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef @.str.24)
  %1432 = call ptr @__errno_location() #10
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #9
  %1435 = call ptr @__errno_location() #10
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef @.str.22, i32 noundef %1425, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1428, ptr noundef %1431, ptr noundef %1434, i32 noundef %1436) #9
  br label %1455

1438:                                             ; preds = %1416, %1409
  %1439 = load i32, ptr %39, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #10
  store i32 %1439, ptr %1440, 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 @.str.24)
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror_debug(i32 noundef %1447, ptr noundef @.str.24)
  %1449 = call ptr @__errno_location() #10
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #9
  %1452 = call ptr @__errno_location() #10
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef @.str.25, i32 noundef %1442, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #9
  br label %1455

1455:                                             ; preds = %1438, %1421
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

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

1458:                                             ; No predecessors!
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459, %1401
  br label %1461

1461:                                             ; preds = %1460
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr @test_count, align 4, !tbaa !5
  %1466 = load ptr, ptr %10, align 8, !tbaa !9
  %1467 = call i32 @s2n_connection_free(ptr noundef %1466)
  %1468 = icmp eq i32 %1467, -1
  br i1 %1468, label %1469, label %1522

1469:                                             ; preds = %1463
  br label %1470

1470:                                             ; preds = %1469
  br label %1471

1471:                                             ; preds = %1470
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1472 = call ptr @__errno_location() #10
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  store i32 %1473, ptr %40, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @s2n_print_stacktrace(ptr noundef %1474)
  %1476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1477 = trunc i8 %1476 to i1
  br i1 %1477, label %1478, label %1500

1478:                                             ; preds = %1471
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @fileno(ptr noundef %1479) #9
  %1481 = call i32 @isatty(i32 noundef %1480) #9
  %1482 = icmp ne i32 %1481, 0
  br i1 %1482, label %1483, label %1500

1483:                                             ; preds = %1478
  %1484 = load i32, ptr %40, align 4, !tbaa !5
  %1485 = call ptr @__errno_location() #10
  store i32 %1484, ptr %1485, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror(i32 noundef %1489, ptr noundef @.str.24)
  %1491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef @.str.24)
  %1494 = call ptr @__errno_location() #10
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call ptr @strerror(i32 noundef %1495) #9
  %1497 = call ptr @__errno_location() #10
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  %1499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef @.str.22, i32 noundef %1487, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1490, ptr noundef %1493, ptr noundef %1496, i32 noundef %1498) #9
  br label %1517

1500:                                             ; preds = %1478, %1471
  %1501 = load i32, ptr %40, align 4, !tbaa !5
  %1502 = call ptr @__errno_location() #10
  store i32 %1501, ptr %1502, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @s2n_strerror(i32 noundef %1506, ptr noundef @.str.24)
  %1508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror_debug(i32 noundef %1509, ptr noundef @.str.24)
  %1511 = call ptr @__errno_location() #10
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @strerror(i32 noundef %1512) #9
  %1514 = call ptr @__errno_location() #10
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef @.str.25, i32 noundef %1504, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1507, ptr noundef %1510, ptr noundef %1513, i32 noundef %1515) #9
  br label %1517

1517:                                             ; preds = %1500, %1483
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

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

1520:                                             ; No predecessors!
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521, %1463
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = add nsw i32 %1526, 1
  store i32 %1527, ptr @test_count, align 4, !tbaa !5
  %1528 = load ptr, ptr %14, align 8, !tbaa !9
  %1529 = call i32 @s2n_connection_free(ptr noundef %1528)
  %1530 = icmp eq i32 %1529, -1
  br i1 %1530, label %1531, label %1584

1531:                                             ; preds = %1525
  br label %1532

1532:                                             ; preds = %1531
  br label %1533

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

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

1545:                                             ; preds = %1540
  %1546 = load i32, ptr %41, align 4, !tbaa !5
  %1547 = call ptr @__errno_location() #10
  store i32 %1546, ptr %1547, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = load i32, ptr @test_count, align 4, !tbaa !5
  %1550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef @.str.24)
  %1553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror_debug(i32 noundef %1554, ptr noundef @.str.24)
  %1556 = call ptr @__errno_location() #10
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call ptr @strerror(i32 noundef %1557) #9
  %1559 = call ptr @__errno_location() #10
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1548, ptr noundef @.str.22, i32 noundef %1549, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 94, ptr noundef %1552, ptr noundef %1555, ptr noundef %1558, i32 noundef %1560) #9
  br label %1579

1562:                                             ; preds = %1540, %1533
  %1563 = load i32, ptr %41, align 4, !tbaa !5
  %1564 = call ptr @__errno_location() #10
  store i32 %1563, ptr %1564, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef @.str.24)
  %1570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror_debug(i32 noundef %1571, ptr noundef @.str.24)
  %1573 = call ptr @__errno_location() #10
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #9
  %1576 = call ptr @__errno_location() #10
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef @.str.25, i32 noundef %1566, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 94, ptr noundef %1569, ptr noundef %1572, ptr noundef %1575, i32 noundef %1577) #9
  br label %1579

1579:                                             ; preds = %1562, %1545
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

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

1582:                                             ; No predecessors!
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583, %1525
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #9
  %1587 = call i32 @s2n_stuffer_free(ptr noundef %21)
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #9
  %1588 = call i32 @s2n_stuffer_free(ptr noundef %20)
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  store ptr null, ptr %42, align 8, !tbaa !9
  br label %1589

1589:                                             ; preds = %1586
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = add nsw i32 %1590, 1
  store i32 %1591, ptr @test_count, align 4, !tbaa !5
  %1592 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1592, ptr %42, align 8, !tbaa !9
  %1593 = icmp eq ptr %1592, null
  br i1 %1593, label %1594, label %1647

1594:                                             ; preds = %1589
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

1596:                                             ; preds = %1595
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1597 = call ptr @__errno_location() #10
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  store i32 %1598, ptr %43, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @s2n_print_stacktrace(ptr noundef %1599)
  %1601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1602 = trunc i8 %1601 to i1
  br i1 %1602, label %1603, label %1625

1603:                                             ; preds = %1596
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @fileno(ptr noundef %1604) #9
  %1606 = call i32 @isatty(i32 noundef %1605) #9
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1625

1608:                                             ; preds = %1603
  %1609 = load i32, ptr %43, align 4, !tbaa !5
  %1610 = call ptr @__errno_location() #10
  store i32 %1609, ptr %1610, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror(i32 noundef %1614, ptr noundef @.str.24)
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror_debug(i32 noundef %1617, ptr noundef @.str.24)
  %1619 = call ptr @__errno_location() #10
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @strerror(i32 noundef %1620) #9
  %1622 = call ptr @__errno_location() #10
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1611, ptr noundef @.str.22, i32 noundef %1612, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 107, ptr noundef %1615, ptr noundef %1618, ptr noundef %1621, i32 noundef %1623) #9
  br label %1642

1625:                                             ; preds = %1603, %1596
  %1626 = load i32, ptr %43, align 4, !tbaa !5
  %1627 = call ptr @__errno_location() #10
  store i32 %1626, ptr %1627, align 4, !tbaa !5
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef @.str.24)
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef @.str.24)
  %1636 = call ptr @__errno_location() #10
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #9
  %1639 = call ptr @__errno_location() #10
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1628, ptr noundef @.str.25, i32 noundef %1629, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 107, ptr noundef %1632, ptr noundef %1635, ptr noundef %1638, i32 noundef %1640) #9
  br label %1642

1642:                                             ; preds = %1625, %1608
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

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

1645:                                             ; No predecessors!
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646, %1589
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  %1650 = load ptr, ptr %42, align 8, !tbaa !9
  %1651 = getelementptr inbounds %struct.s2n_connection, ptr %1650, i32 0, i32 23
  store i8 34, ptr %1651, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  store ptr null, ptr %44, align 8, !tbaa !9
  br label %1652

1652:                                             ; preds = %1649
  %1653 = load i32, ptr @test_count, align 4, !tbaa !5
  %1654 = add nsw i32 %1653, 1
  store i32 %1654, ptr @test_count, align 4, !tbaa !5
  %1655 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1655, ptr %44, align 8, !tbaa !9
  %1656 = icmp eq ptr %1655, null
  br i1 %1656, label %1657, label %1710

1657:                                             ; preds = %1652
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

1659:                                             ; preds = %1658
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %1660 = call ptr @__errno_location() #10
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  store i32 %1661, ptr %45, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @s2n_print_stacktrace(ptr noundef %1662)
  %1664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1665 = trunc i8 %1664 to i1
  br i1 %1665, label %1666, label %1688

1666:                                             ; preds = %1659
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @fileno(ptr noundef %1667) #9
  %1669 = call i32 @isatty(i32 noundef %1668) #9
  %1670 = icmp ne i32 %1669, 0
  br i1 %1670, label %1671, label %1688

1671:                                             ; preds = %1666
  %1672 = load i32, ptr %45, align 4, !tbaa !5
  %1673 = call ptr @__errno_location() #10
  store i32 %1672, ptr %1673, 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 @.str.24)
  %1679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror_debug(i32 noundef %1680, ptr noundef @.str.24)
  %1682 = call ptr @__errno_location() #10
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call ptr @strerror(i32 noundef %1683) #9
  %1685 = call ptr @__errno_location() #10
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef @.str.22, i32 noundef %1675, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 111, ptr noundef %1678, ptr noundef %1681, ptr noundef %1684, i32 noundef %1686) #9
  br label %1705

1688:                                             ; preds = %1666, %1659
  %1689 = load i32, ptr %45, align 4, !tbaa !5
  %1690 = call ptr @__errno_location() #10
  store i32 %1689, ptr %1690, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror(i32 noundef %1694, ptr noundef @.str.24)
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror_debug(i32 noundef %1697, ptr noundef @.str.24)
  %1699 = call ptr @__errno_location() #10
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @strerror(i32 noundef %1700) #9
  %1702 = call ptr @__errno_location() #10
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1691, ptr noundef @.str.25, i32 noundef %1692, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 111, ptr noundef %1695, ptr noundef %1698, ptr noundef %1701, i32 noundef %1703) #9
  br label %1705

1705:                                             ; preds = %1688, %1671
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

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

1708:                                             ; No predecessors!
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709, %1652
  br label %1711

1711:                                             ; preds = %1710
  br label %1712

1712:                                             ; preds = %1711
  %1713 = load ptr, ptr %44, align 8, !tbaa !9
  %1714 = getelementptr inbounds %struct.s2n_connection, ptr %1713, i32 0, i32 23
  store i8 34, ptr %1714, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %46) #9
  call void @llvm.memset.p0.i64(ptr align 8 %46, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %47) #9
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 40, i1 false)
  br label %1715

1715:                                             ; preds = %1712
  %1716 = load i32, ptr @test_count, align 4, !tbaa !5
  %1717 = add nsw i32 %1716, 1
  store i32 %1717, ptr @test_count, align 4, !tbaa !5
  %1718 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %46, i32 noundef 0)
  %1719 = icmp eq i32 %1718, -1
  br i1 %1719, label %1720, label %1773

1720:                                             ; preds = %1715
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

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

1729:                                             ; preds = %1722
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @fileno(ptr noundef %1730) #9
  %1732 = call i32 @isatty(i32 noundef %1731) #9
  %1733 = icmp ne i32 %1732, 0
  br i1 %1733, label %1734, label %1751

1734:                                             ; preds = %1729
  %1735 = load i32, ptr %48, align 4, !tbaa !5
  %1736 = call ptr @__errno_location() #10
  store i32 %1735, ptr %1736, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror(i32 noundef %1740, ptr noundef @.str.24)
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror_debug(i32 noundef %1743, ptr noundef @.str.24)
  %1745 = call ptr @__errno_location() #10
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #9
  %1748 = call ptr @__errno_location() #10
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef @.str.22, i32 noundef %1738, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 117, ptr noundef %1741, ptr noundef %1744, ptr noundef %1747, i32 noundef %1749) #9
  br label %1768

1751:                                             ; preds = %1729, %1722
  %1752 = load i32, ptr %48, align 4, !tbaa !5
  %1753 = call ptr @__errno_location() #10
  store i32 %1752, ptr %1753, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef @.str.24)
  %1759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror_debug(i32 noundef %1760, ptr noundef @.str.24)
  %1762 = call ptr @__errno_location() #10
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @strerror(i32 noundef %1763) #9
  %1765 = call ptr @__errno_location() #10
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1754, ptr noundef @.str.25, i32 noundef %1755, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 117, ptr noundef %1758, ptr noundef %1761, ptr noundef %1764, i32 noundef %1766) #9
  br label %1768

1768:                                             ; preds = %1751, %1734
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

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

1771:                                             ; No predecessors!
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772, %1715
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %47, i32 noundef 0)
  %1780 = icmp eq i32 %1779, -1
  br i1 %1780, label %1781, label %1834

1781:                                             ; preds = %1776
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %1784 = call ptr @__errno_location() #10
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  store i32 %1785, ptr %49, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = call i32 @s2n_print_stacktrace(ptr noundef %1786)
  %1788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1789 = trunc i8 %1788 to i1
  br i1 %1789, label %1790, label %1812

1790:                                             ; preds = %1783
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = call i32 @fileno(ptr noundef %1791) #9
  %1793 = call i32 @isatty(i32 noundef %1792) #9
  %1794 = icmp ne i32 %1793, 0
  br i1 %1794, label %1795, label %1812

1795:                                             ; preds = %1790
  %1796 = load i32, ptr %49, align 4, !tbaa !5
  %1797 = call ptr @__errno_location() #10
  store i32 %1796, ptr %1797, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror(i32 noundef %1801, ptr noundef @.str.24)
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef @.str.24)
  %1806 = call ptr @__errno_location() #10
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #9
  %1809 = call ptr @__errno_location() #10
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef @.str.22, i32 noundef %1799, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 118, ptr noundef %1802, ptr noundef %1805, ptr noundef %1808, i32 noundef %1810) #9
  br label %1829

1812:                                             ; preds = %1790, %1783
  %1813 = load i32, ptr %49, align 4, !tbaa !5
  %1814 = call ptr @__errno_location() #10
  store i32 %1813, ptr %1814, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef @.str.24)
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.24)
  %1823 = call ptr @__errno_location() #10
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #9
  %1826 = call ptr @__errno_location() #10
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef @.str.25, i32 noundef %1816, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 118, ptr noundef %1819, ptr noundef %1822, ptr noundef %1825, i32 noundef %1827) #9
  br label %1829

1829:                                             ; preds = %1812, %1795
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %1830

1830:                                             ; preds = %1829
  br label %1831

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

1832:                                             ; No predecessors!
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833, %1776
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = add nsw i32 %1838, 1
  store i32 %1839, ptr @test_count, align 4, !tbaa !5
  %1840 = load ptr, ptr %42, align 8, !tbaa !9
  %1841 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %46, ptr noundef %47, ptr noundef %1840)
  %1842 = icmp eq i32 %1841, -1
  br i1 %1842, label %1843, label %1896

1843:                                             ; preds = %1837
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %1846 = call ptr @__errno_location() #10
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  store i32 %1847, ptr %50, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = call i32 @s2n_print_stacktrace(ptr noundef %1848)
  %1850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1851 = trunc i8 %1850 to i1
  br i1 %1851, label %1852, label %1874

1852:                                             ; preds = %1845
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @fileno(ptr noundef %1853) #9
  %1855 = call i32 @isatty(i32 noundef %1854) #9
  %1856 = icmp ne i32 %1855, 0
  br i1 %1856, label %1857, label %1874

1857:                                             ; preds = %1852
  %1858 = load i32, ptr %50, align 4, !tbaa !5
  %1859 = call ptr @__errno_location() #10
  store i32 %1858, ptr %1859, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror(i32 noundef %1863, ptr noundef @.str.24)
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror_debug(i32 noundef %1866, ptr noundef @.str.24)
  %1868 = call ptr @__errno_location() #10
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @strerror(i32 noundef %1869) #9
  %1871 = call ptr @__errno_location() #10
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef @.str.22, i32 noundef %1861, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 120, ptr noundef %1864, ptr noundef %1867, ptr noundef %1870, i32 noundef %1872) #9
  br label %1891

1874:                                             ; preds = %1852, %1845
  %1875 = load i32, ptr %50, align 4, !tbaa !5
  %1876 = call ptr @__errno_location() #10
  store i32 %1875, ptr %1876, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror(i32 noundef %1880, ptr noundef @.str.24)
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef @.str.24)
  %1885 = call ptr @__errno_location() #10
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @strerror(i32 noundef %1886) #9
  %1888 = call ptr @__errno_location() #10
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1877, ptr noundef @.str.25, i32 noundef %1878, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 120, ptr noundef %1881, ptr noundef %1884, ptr noundef %1887, i32 noundef %1889) #9
  br label %1891

1891:                                             ; preds = %1874, %1857
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %1892

1892:                                             ; preds = %1891
  br label %1893

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

1894:                                             ; No predecessors!
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895, %1837
  br label %1897

1897:                                             ; preds = %1896
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = add nsw i32 %1900, 1
  store i32 %1901, ptr @test_count, align 4, !tbaa !5
  %1902 = load ptr, ptr %44, align 8, !tbaa !9
  %1903 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %47, ptr noundef %46, ptr noundef %1902)
  %1904 = icmp eq i32 %1903, -1
  br i1 %1904, label %1905, label %1958

1905:                                             ; preds = %1899
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

1907:                                             ; preds = %1906
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %1908 = call ptr @__errno_location() #10
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  store i32 %1909, ptr %51, align 4, !tbaa !5
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = call i32 @s2n_print_stacktrace(ptr noundef %1910)
  %1912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1913 = trunc i8 %1912 to i1
  br i1 %1913, label %1914, label %1936

1914:                                             ; preds = %1907
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = call i32 @fileno(ptr noundef %1915) #9
  %1917 = call i32 @isatty(i32 noundef %1916) #9
  %1918 = icmp ne i32 %1917, 0
  br i1 %1918, label %1919, label %1936

1919:                                             ; preds = %1914
  %1920 = load i32, ptr %51, align 4, !tbaa !5
  %1921 = call ptr @__errno_location() #10
  store i32 %1920, ptr %1921, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef @.str.24)
  %1927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef @.str.24)
  %1930 = call ptr @__errno_location() #10
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @strerror(i32 noundef %1931) #9
  %1933 = call ptr @__errno_location() #10
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1922, ptr noundef @.str.22, i32 noundef %1923, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 121, ptr noundef %1926, ptr noundef %1929, ptr noundef %1932, i32 noundef %1934) #9
  br label %1953

1936:                                             ; preds = %1914, %1907
  %1937 = load i32, ptr %51, align 4, !tbaa !5
  %1938 = call ptr @__errno_location() #10
  store i32 %1937, ptr %1938, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef @.str.24)
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef @.str.24)
  %1947 = call ptr @__errno_location() #10
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @strerror(i32 noundef %1948) #9
  %1950 = call ptr @__errno_location() #10
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1939, ptr noundef @.str.25, i32 noundef %1940, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 121, ptr noundef %1943, ptr noundef %1946, ptr noundef %1949, i32 noundef %1951) #9
  br label %1953

1953:                                             ; preds = %1936, %1919
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

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

1956:                                             ; No predecessors!
  br label %1957

1957:                                             ; preds = %1956
  br label %1958

1958:                                             ; preds = %1957, %1899
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 24, ptr %52) #9
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 24, i1 false)
  br label %1961

1961:                                             ; preds = %1960
  %1962 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %52, ptr noundef @tls13_zero_length_handshake_record_hex)
  %1963 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %1962, ptr %1963, align 4
  %1964 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  %1965 = load i32, ptr %1964, align 4
  %1966 = call zeroext i1 @s2n_result_is_ok(i32 %1965)
  br i1 %1966, label %1968, label %1967

1967:                                             ; preds = %1961
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %54, align 4
  br label %2751

1968:                                             ; preds = %1961
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = add nsw i32 %1972, 1
  store i32 %1973, ptr @test_count, align 4, !tbaa !5
  %1974 = getelementptr inbounds %struct.s2n_blob, ptr %52, i32 0, i32 0
  %1975 = load ptr, ptr %1974, align 8, !tbaa !45
  %1976 = getelementptr inbounds %struct.s2n_blob, ptr %52, i32 0, i32 1
  %1977 = load i32, ptr %1976, align 8, !tbaa !46
  %1978 = call i32 @s2n_stuffer_write_bytes(ptr noundef %46, ptr noundef %1975, i32 noundef %1977)
  %1979 = icmp eq i32 %1978, -1
  br i1 %1979, label %1980, label %2033

1980:                                             ; preds = %1971
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %1983 = call ptr @__errno_location() #10
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  store i32 %1984, ptr %55, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @s2n_print_stacktrace(ptr noundef %1985)
  %1987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1988 = trunc i8 %1987 to i1
  br i1 %1988, label %1989, label %2011

1989:                                             ; preds = %1982
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @fileno(ptr noundef %1990) #9
  %1992 = call i32 @isatty(i32 noundef %1991) #9
  %1993 = icmp ne i32 %1992, 0
  br i1 %1993, label %1994, label %2011

1994:                                             ; preds = %1989
  %1995 = load i32, ptr %55, align 4, !tbaa !5
  %1996 = call ptr @__errno_location() #10
  store i32 %1995, ptr %1996, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror(i32 noundef %2000, ptr noundef @.str.24)
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef @.str.24)
  %2005 = call ptr @__errno_location() #10
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @strerror(i32 noundef %2006) #9
  %2008 = call ptr @__errno_location() #10
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1997, ptr noundef @.str.22, i32 noundef %1998, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 124, ptr noundef %2001, ptr noundef %2004, ptr noundef %2007, i32 noundef %2009) #9
  br label %2028

2011:                                             ; preds = %1989, %1982
  %2012 = load i32, ptr %55, align 4, !tbaa !5
  %2013 = call ptr @__errno_location() #10
  store i32 %2012, ptr %2013, align 4, !tbaa !5
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror(i32 noundef %2017, ptr noundef @.str.24)
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror_debug(i32 noundef %2020, ptr noundef @.str.24)
  %2022 = call ptr @__errno_location() #10
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @strerror(i32 noundef %2023) #9
  %2025 = call ptr @__errno_location() #10
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2014, ptr noundef @.str.25, i32 noundef %2015, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 124, ptr noundef %2018, ptr noundef %2021, ptr noundef %2024, i32 noundef %2026) #9
  br label %2028

2028:                                             ; preds = %2011, %1994
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2029

2029:                                             ; preds = %2028
  br label %2030

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

2031:                                             ; No predecessors!
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

2033:                                             ; preds = %2032, %1971
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = getelementptr inbounds %struct.s2n_blob, ptr %52, i32 0, i32 0
  %2040 = load ptr, ptr %2039, align 8, !tbaa !45
  %2041 = getelementptr inbounds %struct.s2n_blob, ptr %52, i32 0, i32 1
  %2042 = load i32, ptr %2041, align 8, !tbaa !46
  %2043 = call i32 @s2n_stuffer_write_bytes(ptr noundef %47, ptr noundef %2040, i32 noundef %2042)
  %2044 = icmp eq i32 %2043, -1
  br i1 %2044, label %2045, label %2098

2045:                                             ; preds = %2036
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

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

2054:                                             ; preds = %2047
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #9
  %2057 = call i32 @isatty(i32 noundef %2056) #9
  %2058 = icmp ne i32 %2057, 0
  br i1 %2058, label %2059, label %2076

2059:                                             ; preds = %2054
  %2060 = load i32, ptr %56, align 4, !tbaa !5
  %2061 = call ptr @__errno_location() #10
  store i32 %2060, ptr %2061, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror(i32 noundef %2065, ptr noundef @.str.24)
  %2067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef @.str.24)
  %2070 = call ptr @__errno_location() #10
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call ptr @strerror(i32 noundef %2071) #9
  %2073 = call ptr @__errno_location() #10
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2062, ptr noundef @.str.22, i32 noundef %2063, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 125, ptr noundef %2066, ptr noundef %2069, ptr noundef %2072, i32 noundef %2074) #9
  br label %2093

2076:                                             ; preds = %2054, %2047
  %2077 = load i32, ptr %56, align 4, !tbaa !5
  %2078 = call ptr @__errno_location() #10
  store i32 %2077, ptr %2078, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef @.str.24)
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror_debug(i32 noundef %2085, ptr noundef @.str.24)
  %2087 = call ptr @__errno_location() #10
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #9
  %2090 = call ptr @__errno_location() #10
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef @.str.25, i32 noundef %2080, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 125, ptr noundef %2083, ptr noundef %2086, ptr noundef %2089, i32 noundef %2091) #9
  br label %2093

2093:                                             ; preds = %2076, %2059
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

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

2096:                                             ; No predecessors!
  br label %2097

2097:                                             ; preds = %2096
  br label %2098

2098:                                             ; preds = %2097, %2036
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = add nsw i32 %2102, 1
  store i32 %2103, ptr @test_count, align 4, !tbaa !5
  %2104 = getelementptr inbounds %struct.s2n_stuffer, ptr %46, i32 0, i32 2
  %2105 = load i32, ptr %2104, align 4, !tbaa !42
  %2106 = getelementptr inbounds %struct.s2n_stuffer, ptr %46, i32 0, i32 1
  %2107 = load i32, ptr %2106, align 8, !tbaa !43
  %2108 = sub i32 %2105, %2107
  %2109 = icmp eq i32 %2108, 5
  br i1 %2109, label %2163, label %2110

2110:                                             ; preds = %2101
  br label %2111

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2111
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2113 = call ptr @__errno_location() #10
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  store i32 %2114, ptr %57, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @s2n_print_stacktrace(ptr noundef %2115)
  %2117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2118 = trunc i8 %2117 to i1
  br i1 %2118, label %2119, label %2141

2119:                                             ; preds = %2112
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = call i32 @fileno(ptr noundef %2120) #9
  %2122 = call i32 @isatty(i32 noundef %2121) #9
  %2123 = icmp ne i32 %2122, 0
  br i1 %2123, label %2124, label %2141

2124:                                             ; preds = %2119
  %2125 = load i32, ptr %57, align 4, !tbaa !5
  %2126 = call ptr @__errno_location() #10
  store i32 %2125, ptr %2126, align 4, !tbaa !5
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2130 = load i32, ptr %2129, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror(i32 noundef %2130, ptr noundef @.str.24)
  %2132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror_debug(i32 noundef %2133, ptr noundef @.str.24)
  %2135 = call ptr @__errno_location() #10
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @strerror(i32 noundef %2136) #9
  %2138 = call ptr @__errno_location() #10
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2127, ptr noundef @.str.22, i32 noundef %2128, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 126, ptr noundef %2131, ptr noundef %2134, ptr noundef %2137, i32 noundef %2139) #9
  br label %2158

2141:                                             ; preds = %2119, %2112
  %2142 = load i32, ptr %57, align 4, !tbaa !5
  %2143 = call ptr @__errno_location() #10
  store i32 %2142, ptr %2143, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror(i32 noundef %2147, ptr noundef @.str.24)
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror_debug(i32 noundef %2150, ptr noundef @.str.24)
  %2152 = call ptr @__errno_location() #10
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @strerror(i32 noundef %2153) #9
  %2155 = call ptr @__errno_location() #10
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2144, ptr noundef @.str.25, i32 noundef %2145, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 126, ptr noundef %2148, ptr noundef %2151, ptr noundef %2154, i32 noundef %2156) #9
  br label %2158

2158:                                             ; preds = %2141, %2124
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2159

2159:                                             ; preds = %2158
  br label %2160

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

2161:                                             ; No predecessors!
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

2163:                                             ; preds = %2162, %2101
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = add nsw i32 %2167, 1
  store i32 %2168, ptr @test_count, align 4, !tbaa !5
  %2169 = getelementptr inbounds %struct.s2n_stuffer, ptr %47, i32 0, i32 2
  %2170 = load i32, ptr %2169, align 4, !tbaa !42
  %2171 = getelementptr inbounds %struct.s2n_stuffer, ptr %47, i32 0, i32 1
  %2172 = load i32, ptr %2171, align 8, !tbaa !43
  %2173 = sub i32 %2170, %2172
  %2174 = icmp eq i32 %2173, 5
  br i1 %2174, label %2228, label %2175

2175:                                             ; preds = %2166
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

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

2184:                                             ; preds = %2177
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = call i32 @fileno(ptr noundef %2185) #9
  %2187 = call i32 @isatty(i32 noundef %2186) #9
  %2188 = icmp ne i32 %2187, 0
  br i1 %2188, label %2189, label %2206

2189:                                             ; preds = %2184
  %2190 = load i32, ptr %58, align 4, !tbaa !5
  %2191 = call ptr @__errno_location() #10
  store i32 %2190, ptr %2191, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror(i32 noundef %2195, ptr noundef @.str.24)
  %2197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @s2n_strerror_debug(i32 noundef %2198, ptr noundef @.str.24)
  %2200 = call ptr @__errno_location() #10
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @strerror(i32 noundef %2201) #9
  %2203 = call ptr @__errno_location() #10
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2192, ptr noundef @.str.22, i32 noundef %2193, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 127, ptr noundef %2196, ptr noundef %2199, ptr noundef %2202, i32 noundef %2204) #9
  br label %2223

2206:                                             ; preds = %2184, %2177
  %2207 = load i32, ptr %58, align 4, !tbaa !5
  %2208 = call ptr @__errno_location() #10
  store i32 %2207, ptr %2208, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror(i32 noundef %2212, ptr noundef @.str.24)
  %2214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror_debug(i32 noundef %2215, ptr noundef @.str.24)
  %2217 = call ptr @__errno_location() #10
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @strerror(i32 noundef %2218) #9
  %2220 = call ptr @__errno_location() #10
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef @.str.25, i32 noundef %2210, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 127, ptr noundef %2213, ptr noundef %2216, ptr noundef %2219, i32 noundef %2221) #9
  br label %2223

2223:                                             ; preds = %2206, %2189
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

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

2226:                                             ; No predecessors!
  br label %2227

2227:                                             ; preds = %2226
  br label %2228

2228:                                             ; preds = %2227, %2166
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = add nsw i32 %2234, 1
  store i32 %2235, ptr @test_count, align 4, !tbaa !5
  %2236 = load ptr, ptr %42, align 8, !tbaa !9
  %2237 = call i32 @s2n_handshake_read_io(ptr noundef %2236)
  %2238 = icmp eq i32 %2237, -1
  br i1 %2238, label %2292, label %2239

2239:                                             ; preds = %2233
  br label %2240

2240:                                             ; preds = %2239
  br label %2241

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

2248:                                             ; preds = %2241
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @fileno(ptr noundef %2249) #9
  %2251 = call i32 @isatty(i32 noundef %2250) #9
  %2252 = icmp ne i32 %2251, 0
  br i1 %2252, label %2253, label %2270

2253:                                             ; preds = %2248
  %2254 = load i32, ptr %59, align 4, !tbaa !5
  %2255 = call ptr @__errno_location() #10
  store i32 %2254, ptr %2255, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror(i32 noundef %2259, ptr noundef @.str.24)
  %2261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror_debug(i32 noundef %2262, ptr noundef @.str.24)
  %2264 = call ptr @__errno_location() #10
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @strerror(i32 noundef %2265) #9
  %2267 = call ptr @__errno_location() #10
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2256, ptr noundef @.str.22, i32 noundef %2257, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2260, ptr noundef %2263, ptr noundef %2266, i32 noundef %2268) #9
  br label %2287

2270:                                             ; preds = %2248, %2241
  %2271 = load i32, ptr %59, align 4, !tbaa !5
  %2272 = call ptr @__errno_location() #10
  store i32 %2271, ptr %2272, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror(i32 noundef %2276, ptr noundef @.str.24)
  %2278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef @.str.24)
  %2281 = call ptr @__errno_location() #10
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #9
  %2284 = call ptr @__errno_location() #10
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2273, ptr noundef @.str.25, i32 noundef %2274, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2277, ptr noundef %2280, ptr noundef %2283, i32 noundef %2285) #9
  br label %2287

2287:                                             ; preds = %2270, %2253
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2288

2288:                                             ; preds = %2287
  br label %2289

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

2290:                                             ; No predecessors!
  br label %2291

2291:                                             ; preds = %2290
  br label %2292

2292:                                             ; preds = %2291, %2233
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

2295:                                             ; preds = %2294
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = add nsw i32 %2296, 1
  store i32 %2297, ptr @test_count, align 4, !tbaa !5
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = icmp eq i32 %2299, 335544322
  br i1 %2300, label %2354, label %2301

2301:                                             ; preds = %2295
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2304 = call ptr @__errno_location() #10
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  store i32 %2305, ptr %60, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = call i32 @s2n_print_stacktrace(ptr noundef %2306)
  %2308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2309 = trunc i8 %2308 to i1
  br i1 %2309, label %2310, label %2332

2310:                                             ; preds = %2303
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @fileno(ptr noundef %2311) #9
  %2313 = call i32 @isatty(i32 noundef %2312) #9
  %2314 = icmp ne i32 %2313, 0
  br i1 %2314, label %2315, label %2332

2315:                                             ; preds = %2310
  %2316 = load i32, ptr %60, align 4, !tbaa !5
  %2317 = call ptr @__errno_location() #10
  store i32 %2316, ptr %2317, align 4, !tbaa !5
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = load i32, ptr @test_count, align 4, !tbaa !5
  %2320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror(i32 noundef %2321, ptr noundef @.str.24)
  %2323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = call ptr @s2n_strerror_debug(i32 noundef %2324, ptr noundef @.str.24)
  %2326 = call ptr @__errno_location() #10
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #9
  %2329 = call ptr @__errno_location() #10
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2318, ptr noundef @.str.22, i32 noundef %2319, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2322, ptr noundef %2325, ptr noundef %2328, i32 noundef %2330) #9
  br label %2349

2332:                                             ; preds = %2310, %2303
  %2333 = load i32, ptr %60, align 4, !tbaa !5
  %2334 = call ptr @__errno_location() #10
  store i32 %2333, ptr %2334, 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 @.str.24)
  %2340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @s2n_strerror_debug(i32 noundef %2341, ptr noundef @.str.24)
  %2343 = call ptr @__errno_location() #10
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call ptr @strerror(i32 noundef %2344) #9
  %2346 = call ptr @__errno_location() #10
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2335, ptr noundef @.str.25, i32 noundef %2336, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2339, ptr noundef %2342, ptr noundef %2345, i32 noundef %2347) #9
  br label %2349

2349:                                             ; preds = %2332, %2315
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

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

2352:                                             ; No predecessors!
  br label %2353

2353:                                             ; preds = %2352
  br label %2354

2354:                                             ; preds = %2353, %2295
  br label %2355

2355:                                             ; preds = %2354
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

2357:                                             ; preds = %2356
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = add nsw i32 %2358, 1
  store i32 %2359, ptr @test_count, align 4, !tbaa !5
  %2360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call ptr @s2n_strerror_debug(i32 noundef %2361, ptr noundef @.str.24)
  %2363 = icmp eq ptr %2362, null
  br i1 %2363, label %2364, label %2417

2364:                                             ; preds = %2357
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2367 = call ptr @__errno_location() #10
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  store i32 %2368, ptr %61, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = call i32 @s2n_print_stacktrace(ptr noundef %2369)
  %2371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2372 = trunc i8 %2371 to i1
  br i1 %2372, label %2373, label %2395

2373:                                             ; preds = %2366
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = call i32 @fileno(ptr noundef %2374) #9
  %2376 = call i32 @isatty(i32 noundef %2375) #9
  %2377 = icmp ne i32 %2376, 0
  br i1 %2377, label %2378, label %2395

2378:                                             ; preds = %2373
  %2379 = load i32, ptr %61, align 4, !tbaa !5
  %2380 = call ptr @__errno_location() #10
  store i32 %2379, ptr %2380, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = load i32, ptr @test_count, align 4, !tbaa !5
  %2383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror(i32 noundef %2384, ptr noundef @.str.24)
  %2386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror_debug(i32 noundef %2387, ptr noundef @.str.24)
  %2389 = call ptr @__errno_location() #10
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call ptr @strerror(i32 noundef %2390) #9
  %2392 = call ptr @__errno_location() #10
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2381, ptr noundef @.str.22, i32 noundef %2382, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2385, ptr noundef %2388, ptr noundef %2391, i32 noundef %2393) #9
  br label %2412

2395:                                             ; preds = %2373, %2366
  %2396 = load i32, ptr %61, align 4, !tbaa !5
  %2397 = call ptr @__errno_location() #10
  store i32 %2396, ptr %2397, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror(i32 noundef %2401, ptr noundef @.str.24)
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror_debug(i32 noundef %2404, ptr noundef @.str.24)
  %2406 = call ptr @__errno_location() #10
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @strerror(i32 noundef %2407) #9
  %2409 = call ptr @__errno_location() #10
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef @.str.25, i32 noundef %2399, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2402, ptr noundef %2405, ptr noundef %2408, i32 noundef %2410) #9
  br label %2412

2412:                                             ; preds = %2395, %2378
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

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

2415:                                             ; No predecessors!
  br label %2416

2416:                                             ; preds = %2415
  br label %2417

2417:                                             ; preds = %2416, %2357
  br label %2418

2418:                                             ; preds = %2417
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

2422:                                             ; preds = %2421
  %2423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2423, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2424 = call ptr @__errno_location() #10
  store i32 0, ptr %2424, align 4, !tbaa !5
  br label %2425

2425:                                             ; preds = %2422
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = load ptr, ptr %44, align 8, !tbaa !9
  %2435 = call i32 @s2n_handshake_read_io(ptr noundef %2434)
  %2436 = icmp eq i32 %2435, -1
  br i1 %2436, label %2490, label %2437

2437:                                             ; preds = %2431
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2440 = call ptr @__errno_location() #10
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  store i32 %2441, ptr %62, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442)
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc i8 %2444 to i1
  br i1 %2445, label %2446, label %2468

2446:                                             ; preds = %2439
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @fileno(ptr noundef %2447) #9
  %2449 = call i32 @isatty(i32 noundef %2448) #9
  %2450 = icmp ne i32 %2449, 0
  br i1 %2450, label %2451, label %2468

2451:                                             ; preds = %2446
  %2452 = load i32, ptr %62, align 4, !tbaa !5
  %2453 = call ptr @__errno_location() #10
  store i32 %2452, ptr %2453, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef @.str.24)
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror_debug(i32 noundef %2460, ptr noundef @.str.24)
  %2462 = call ptr @__errno_location() #10
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #9
  %2465 = call ptr @__errno_location() #10
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef @.str.22, i32 noundef %2455, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2458, ptr noundef %2461, ptr noundef %2464, i32 noundef %2466) #9
  br label %2485

2468:                                             ; preds = %2446, %2439
  %2469 = load i32, ptr %62, align 4, !tbaa !5
  %2470 = call ptr @__errno_location() #10
  store i32 %2469, ptr %2470, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror(i32 noundef %2474, ptr noundef @.str.24)
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror_debug(i32 noundef %2477, ptr noundef @.str.24)
  %2479 = call ptr @__errno_location() #10
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @strerror(i32 noundef %2480) #9
  %2482 = call ptr @__errno_location() #10
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef @.str.25, i32 noundef %2472, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2475, ptr noundef %2478, ptr noundef %2481, i32 noundef %2483) #9
  br label %2485

2485:                                             ; preds = %2468, %2451
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

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

2488:                                             ; No predecessors!
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489, %2431
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

2493:                                             ; preds = %2492
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = add nsw i32 %2494, 1
  store i32 %2495, ptr @test_count, align 4, !tbaa !5
  %2496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = icmp eq i32 %2497, 335544322
  br i1 %2498, label %2552, label %2499

2499:                                             ; preds = %2493
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2502 = call ptr @__errno_location() #10
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  store i32 %2503, ptr %63, align 4, !tbaa !5
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = call i32 @s2n_print_stacktrace(ptr noundef %2504)
  %2506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2507 = trunc i8 %2506 to i1
  br i1 %2507, label %2508, label %2530

2508:                                             ; preds = %2501
  %2509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2510 = call i32 @fileno(ptr noundef %2509) #9
  %2511 = call i32 @isatty(i32 noundef %2510) #9
  %2512 = icmp ne i32 %2511, 0
  br i1 %2512, label %2513, label %2530

2513:                                             ; preds = %2508
  %2514 = load i32, ptr %63, align 4, !tbaa !5
  %2515 = call ptr @__errno_location() #10
  store i32 %2514, ptr %2515, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror(i32 noundef %2519, ptr noundef @.str.24)
  %2521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror_debug(i32 noundef %2522, ptr noundef @.str.24)
  %2524 = call ptr @__errno_location() #10
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @strerror(i32 noundef %2525) #9
  %2527 = call ptr @__errno_location() #10
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2516, ptr noundef @.str.22, i32 noundef %2517, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2520, ptr noundef %2523, ptr noundef %2526, i32 noundef %2528) #9
  br label %2547

2530:                                             ; preds = %2508, %2501
  %2531 = load i32, ptr %63, align 4, !tbaa !5
  %2532 = call ptr @__errno_location() #10
  store i32 %2531, ptr %2532, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef @.str.24)
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror_debug(i32 noundef %2539, ptr noundef @.str.24)
  %2541 = call ptr @__errno_location() #10
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #9
  %2544 = call ptr @__errno_location() #10
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef @.str.25, i32 noundef %2534, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2537, ptr noundef %2540, ptr noundef %2543, i32 noundef %2545) #9
  br label %2547

2547:                                             ; preds = %2530, %2513
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

2550:                                             ; No predecessors!
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551, %2493
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror_debug(i32 noundef %2559, ptr noundef @.str.24)
  %2561 = icmp eq ptr %2560, null
  br i1 %2561, label %2562, label %2615

2562:                                             ; preds = %2555
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %2565 = call ptr @__errno_location() #10
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  store i32 %2566, ptr %64, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = call i32 @s2n_print_stacktrace(ptr noundef %2567)
  %2569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2570 = trunc i8 %2569 to i1
  br i1 %2570, label %2571, label %2593

2571:                                             ; preds = %2564
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @fileno(ptr noundef %2572) #9
  %2574 = call i32 @isatty(i32 noundef %2573) #9
  %2575 = icmp ne i32 %2574, 0
  br i1 %2575, label %2576, label %2593

2576:                                             ; preds = %2571
  %2577 = load i32, ptr %64, align 4, !tbaa !5
  %2578 = call ptr @__errno_location() #10
  store i32 %2577, ptr %2578, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror(i32 noundef %2582, ptr noundef @.str.24)
  %2584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @s2n_strerror_debug(i32 noundef %2585, ptr noundef @.str.24)
  %2587 = call ptr @__errno_location() #10
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call ptr @strerror(i32 noundef %2588) #9
  %2590 = call ptr @__errno_location() #10
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2579, ptr noundef @.str.22, i32 noundef %2580, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2583, ptr noundef %2586, ptr noundef %2589, i32 noundef %2591) #9
  br label %2610

2593:                                             ; preds = %2571, %2564
  %2594 = load i32, ptr %64, align 4, !tbaa !5
  %2595 = call ptr @__errno_location() #10
  store i32 %2594, ptr %2595, align 4, !tbaa !5
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = load i32, ptr @test_count, align 4, !tbaa !5
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror(i32 noundef %2599, ptr noundef @.str.24)
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef @.str.24)
  %2604 = call ptr @__errno_location() #10
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @strerror(i32 noundef %2605) #9
  %2607 = call ptr @__errno_location() #10
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2596, ptr noundef @.str.25, i32 noundef %2597, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2600, ptr noundef %2603, ptr noundef %2606, i32 noundef %2608) #9
  br label %2610

2610:                                             ; preds = %2593, %2576
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

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

2613:                                             ; No predecessors!
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614, %2555
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  %2621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2621, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2622 = call ptr @__errno_location() #10
  store i32 0, ptr %2622, align 4, !tbaa !5
  br label %2623

2623:                                             ; preds = %2620
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  br label %2627

2627:                                             ; preds = %2626
  %2628 = load i32, ptr @test_count, align 4, !tbaa !5
  %2629 = add nsw i32 %2628, 1
  store i32 %2629, ptr @test_count, align 4, !tbaa !5
  %2630 = load ptr, ptr %42, align 8, !tbaa !9
  %2631 = call i32 @s2n_connection_free(ptr noundef %2630)
  %2632 = icmp eq i32 %2631, -1
  br i1 %2632, label %2633, label %2686

2633:                                             ; preds = %2627
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2636 = call ptr @__errno_location() #10
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  store i32 %2637, ptr %65, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = call i32 @s2n_print_stacktrace(ptr noundef %2638)
  %2640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2641 = trunc i8 %2640 to i1
  br i1 %2641, label %2642, label %2664

2642:                                             ; preds = %2635
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @fileno(ptr noundef %2643) #9
  %2645 = call i32 @isatty(i32 noundef %2644) #9
  %2646 = icmp ne i32 %2645, 0
  br i1 %2646, label %2647, label %2664

2647:                                             ; preds = %2642
  %2648 = load i32, ptr %65, align 4, !tbaa !5
  %2649 = call ptr @__errno_location() #10
  store i32 %2648, ptr %2649, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef @.str.24)
  %2655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef @.str.24)
  %2658 = call ptr @__errno_location() #10
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #9
  %2661 = call ptr @__errno_location() #10
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef @.str.22, i32 noundef %2651, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 132, ptr noundef %2654, ptr noundef %2657, ptr noundef %2660, i32 noundef %2662) #9
  br label %2681

2664:                                             ; preds = %2642, %2635
  %2665 = load i32, ptr %65, align 4, !tbaa !5
  %2666 = call ptr @__errno_location() #10
  store i32 %2665, ptr %2666, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef @.str.24)
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror_debug(i32 noundef %2673, ptr noundef @.str.24)
  %2675 = call ptr @__errno_location() #10
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @strerror(i32 noundef %2676) #9
  %2678 = call ptr @__errno_location() #10
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef @.str.25, i32 noundef %2668, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 132, ptr noundef %2671, ptr noundef %2674, ptr noundef %2677, i32 noundef %2679) #9
  br label %2681

2681:                                             ; preds = %2664, %2647
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

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

2684:                                             ; No predecessors!
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685, %2627
  br label %2687

2687:                                             ; preds = %2686
  br label %2688

2688:                                             ; preds = %2687
  br label %2689

2689:                                             ; preds = %2688
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = add nsw i32 %2690, 1
  store i32 %2691, ptr @test_count, align 4, !tbaa !5
  %2692 = load ptr, ptr %44, align 8, !tbaa !9
  %2693 = call i32 @s2n_connection_free(ptr noundef %2692)
  %2694 = icmp eq i32 %2693, -1
  br i1 %2694, label %2695, label %2748

2695:                                             ; preds = %2689
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2698 = call ptr @__errno_location() #10
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  store i32 %2699, ptr %66, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @s2n_print_stacktrace(ptr noundef %2700)
  %2702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2703 = trunc i8 %2702 to i1
  br i1 %2703, label %2704, label %2726

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @fileno(ptr noundef %2705) #9
  %2707 = call i32 @isatty(i32 noundef %2706) #9
  %2708 = icmp ne i32 %2707, 0
  br i1 %2708, label %2709, label %2726

2709:                                             ; preds = %2704
  %2710 = load i32, ptr %66, align 4, !tbaa !5
  %2711 = call ptr @__errno_location() #10
  store i32 %2710, ptr %2711, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef @.str.24)
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror_debug(i32 noundef %2718, ptr noundef @.str.24)
  %2720 = call ptr @__errno_location() #10
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #9
  %2723 = call ptr @__errno_location() #10
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef @.str.22, i32 noundef %2713, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 133, ptr noundef %2716, ptr noundef %2719, ptr noundef %2722, i32 noundef %2724) #9
  br label %2743

2726:                                             ; preds = %2704, %2697
  %2727 = load i32, ptr %66, align 4, !tbaa !5
  %2728 = call ptr @__errno_location() #10
  store i32 %2727, ptr %2728, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef @.str.24)
  %2734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror_debug(i32 noundef %2735, ptr noundef @.str.24)
  %2737 = call ptr @__errno_location() #10
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #9
  %2740 = call ptr @__errno_location() #10
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2729, ptr noundef @.str.25, i32 noundef %2730, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 133, ptr noundef %2733, ptr noundef %2736, ptr noundef %2739, i32 noundef %2741) #9
  br label %2743

2743:                                             ; preds = %2726, %2709
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

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

2746:                                             ; No predecessors!
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747, %2689
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749
  store i32 0, ptr %54, align 4
  br label %2751

2751:                                             ; preds = %2750, %1967
  %2752 = call i32 @s2n_free(ptr noundef %52)
  call void @llvm.lifetime.end.p0(i64 24, ptr %52) #9
  %2753 = call i32 @s2n_stuffer_free(ptr noundef %47)
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #9
  %2754 = call i32 @s2n_stuffer_free(ptr noundef %46)
  call void @llvm.lifetime.end.p0(i64 40, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  %2755 = load i32, ptr %54, align 4
  switch i32 %2755, label %4073 [
    i32 0, label %2756
    i32 1, label %4071
  ]

2756:                                             ; preds = %2751
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  store ptr null, ptr %67, align 8, !tbaa !9
  br label %2757

2757:                                             ; preds = %2756
  %2758 = load i32, ptr @test_count, align 4, !tbaa !5
  %2759 = add nsw i32 %2758, 1
  store i32 %2759, ptr @test_count, align 4, !tbaa !5
  %2760 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2760, ptr %67, align 8, !tbaa !9
  %2761 = icmp eq ptr %2760, null
  br i1 %2761, label %2762, label %2815

2762:                                             ; preds = %2757
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

2764:                                             ; preds = %2763
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %2765 = call ptr @__errno_location() #10
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  store i32 %2766, ptr %68, align 4, !tbaa !5
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = call i32 @s2n_print_stacktrace(ptr noundef %2767)
  %2769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2770 = trunc i8 %2769 to i1
  br i1 %2770, label %2771, label %2793

2771:                                             ; preds = %2764
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = call i32 @fileno(ptr noundef %2772) #9
  %2774 = call i32 @isatty(i32 noundef %2773) #9
  %2775 = icmp ne i32 %2774, 0
  br i1 %2775, label %2776, label %2793

2776:                                             ; preds = %2771
  %2777 = load i32, ptr %68, align 4, !tbaa !5
  %2778 = call ptr @__errno_location() #10
  store i32 %2777, ptr %2778, align 4, !tbaa !5
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = load i32, ptr @test_count, align 4, !tbaa !5
  %2781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @s2n_strerror(i32 noundef %2782, ptr noundef @.str.24)
  %2784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror_debug(i32 noundef %2785, ptr noundef @.str.24)
  %2787 = call ptr @__errno_location() #10
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @strerror(i32 noundef %2788) #9
  %2790 = call ptr @__errno_location() #10
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2779, ptr noundef @.str.22, i32 noundef %2780, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 146, ptr noundef %2783, ptr noundef %2786, ptr noundef %2789, i32 noundef %2791) #9
  br label %2810

2793:                                             ; preds = %2771, %2764
  %2794 = load i32, ptr %68, align 4, !tbaa !5
  %2795 = call ptr @__errno_location() #10
  store i32 %2794, ptr %2795, align 4, !tbaa !5
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror(i32 noundef %2799, ptr noundef @.str.24)
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror_debug(i32 noundef %2802, ptr noundef @.str.24)
  %2804 = call ptr @__errno_location() #10
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @strerror(i32 noundef %2805) #9
  %2807 = call ptr @__errno_location() #10
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2796, ptr noundef @.str.25, i32 noundef %2797, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 146, ptr noundef %2800, ptr noundef %2803, ptr noundef %2806, i32 noundef %2808) #9
  br label %2810

2810:                                             ; preds = %2793, %2776
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

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

2813:                                             ; No predecessors!
  br label %2814

2814:                                             ; preds = %2813
  br label %2815

2815:                                             ; preds = %2814, %2757
  br label %2816

2816:                                             ; preds = %2815
  br label %2817

2817:                                             ; preds = %2816
  %2818 = load ptr, ptr %67, align 8, !tbaa !9
  %2819 = getelementptr inbounds %struct.s2n_connection, ptr %2818, i32 0, i32 23
  store i8 34, ptr %2819, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  store ptr null, ptr %69, align 8, !tbaa !9
  br label %2820

2820:                                             ; preds = %2817
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = add nsw i32 %2821, 1
  store i32 %2822, ptr @test_count, align 4, !tbaa !5
  %2823 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2823, ptr %69, align 8, !tbaa !9
  %2824 = icmp eq ptr %2823, null
  br i1 %2824, label %2825, label %2878

2825:                                             ; preds = %2820
  br label %2826

2826:                                             ; preds = %2825
  br label %2827

2827:                                             ; preds = %2826
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %2828 = call ptr @__errno_location() #10
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  store i32 %2829, ptr %70, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @s2n_print_stacktrace(ptr noundef %2830)
  %2832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2833 = trunc i8 %2832 to i1
  br i1 %2833, label %2834, label %2856

2834:                                             ; preds = %2827
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = call i32 @fileno(ptr noundef %2835) #9
  %2837 = call i32 @isatty(i32 noundef %2836) #9
  %2838 = icmp ne i32 %2837, 0
  br i1 %2838, label %2839, label %2856

2839:                                             ; preds = %2834
  %2840 = load i32, ptr %70, align 4, !tbaa !5
  %2841 = call ptr @__errno_location() #10
  store i32 %2840, ptr %2841, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @s2n_strerror(i32 noundef %2845, ptr noundef @.str.24)
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef @.str.24)
  %2850 = call ptr @__errno_location() #10
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @strerror(i32 noundef %2851) #9
  %2853 = call ptr @__errno_location() #10
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2842, ptr noundef @.str.22, i32 noundef %2843, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 150, ptr noundef %2846, ptr noundef %2849, ptr noundef %2852, i32 noundef %2854) #9
  br label %2873

2856:                                             ; preds = %2834, %2827
  %2857 = load i32, ptr %70, align 4, !tbaa !5
  %2858 = call ptr @__errno_location() #10
  store i32 %2857, ptr %2858, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call ptr @s2n_strerror(i32 noundef %2862, ptr noundef @.str.24)
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror_debug(i32 noundef %2865, ptr noundef @.str.24)
  %2867 = call ptr @__errno_location() #10
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @strerror(i32 noundef %2868) #9
  %2870 = call ptr @__errno_location() #10
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2859, ptr noundef @.str.25, i32 noundef %2860, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 150, ptr noundef %2863, ptr noundef %2866, ptr noundef %2869, i32 noundef %2871) #9
  br label %2873

2873:                                             ; preds = %2856, %2839
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %2874

2874:                                             ; preds = %2873
  br label %2875

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

2876:                                             ; No predecessors!
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877, %2820
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879
  %2881 = load ptr, ptr %69, align 8, !tbaa !9
  %2882 = getelementptr inbounds %struct.s2n_connection, ptr %2881, i32 0, i32 23
  store i8 34, ptr %2882, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %71) #9
  call void @llvm.memset.p0.i64(ptr align 8 %71, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %72) #9
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 40, i1 false)
  br label %2883

2883:                                             ; preds = %2880
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = add nsw i32 %2884, 1
  store i32 %2885, ptr @test_count, align 4, !tbaa !5
  %2886 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %71, i32 noundef 0)
  %2887 = icmp eq i32 %2886, -1
  br i1 %2887, label %2888, label %2941

2888:                                             ; preds = %2883
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

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

2897:                                             ; preds = %2890
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @fileno(ptr noundef %2898) #9
  %2900 = call i32 @isatty(i32 noundef %2899) #9
  %2901 = icmp ne i32 %2900, 0
  br i1 %2901, label %2902, label %2919

2902:                                             ; preds = %2897
  %2903 = load i32, ptr %73, align 4, !tbaa !5
  %2904 = call ptr @__errno_location() #10
  store i32 %2903, ptr %2904, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = load i32, ptr @test_count, align 4, !tbaa !5
  %2907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror(i32 noundef %2908, ptr noundef @.str.24)
  %2910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @s2n_strerror_debug(i32 noundef %2911, ptr noundef @.str.24)
  %2913 = call ptr @__errno_location() #10
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @strerror(i32 noundef %2914) #9
  %2916 = call ptr @__errno_location() #10
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2905, ptr noundef @.str.22, i32 noundef %2906, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 156, ptr noundef %2909, ptr noundef %2912, ptr noundef %2915, i32 noundef %2917) #9
  br label %2936

2919:                                             ; preds = %2897, %2890
  %2920 = load i32, ptr %73, align 4, !tbaa !5
  %2921 = call ptr @__errno_location() #10
  store i32 %2920, ptr %2921, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror(i32 noundef %2925, ptr noundef @.str.24)
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef @.str.24)
  %2930 = call ptr @__errno_location() #10
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @strerror(i32 noundef %2931) #9
  %2933 = call ptr @__errno_location() #10
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2922, ptr noundef @.str.25, i32 noundef %2923, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 156, ptr noundef %2926, ptr noundef %2929, ptr noundef %2932, i32 noundef %2934) #9
  br label %2936

2936:                                             ; preds = %2919, %2902
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

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

2939:                                             ; No predecessors!
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

2941:                                             ; preds = %2940, %2883
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

2944:                                             ; preds = %2943
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = add nsw i32 %2945, 1
  store i32 %2946, ptr @test_count, align 4, !tbaa !5
  %2947 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %72, i32 noundef 0)
  %2948 = icmp eq i32 %2947, -1
  br i1 %2948, label %2949, label %3002

2949:                                             ; preds = %2944
  br label %2950

2950:                                             ; preds = %2949
  br label %2951

2951:                                             ; preds = %2950
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %2952 = call ptr @__errno_location() #10
  %2953 = load i32, ptr %2952, align 4, !tbaa !5
  store i32 %2953, ptr %74, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @s2n_print_stacktrace(ptr noundef %2954)
  %2956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2957 = trunc i8 %2956 to i1
  br i1 %2957, label %2958, label %2980

2958:                                             ; preds = %2951
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = call i32 @fileno(ptr noundef %2959) #9
  %2961 = call i32 @isatty(i32 noundef %2960) #9
  %2962 = icmp ne i32 %2961, 0
  br i1 %2962, label %2963, label %2980

2963:                                             ; preds = %2958
  %2964 = load i32, ptr %74, align 4, !tbaa !5
  %2965 = call ptr @__errno_location() #10
  store i32 %2964, ptr %2965, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = load i32, ptr @test_count, align 4, !tbaa !5
  %2968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @s2n_strerror(i32 noundef %2969, ptr noundef @.str.24)
  %2971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror_debug(i32 noundef %2972, ptr noundef @.str.24)
  %2974 = call ptr @__errno_location() #10
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @strerror(i32 noundef %2975) #9
  %2977 = call ptr @__errno_location() #10
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2966, ptr noundef @.str.22, i32 noundef %2967, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 157, ptr noundef %2970, ptr noundef %2973, ptr noundef %2976, i32 noundef %2978) #9
  br label %2997

2980:                                             ; preds = %2958, %2951
  %2981 = load i32, ptr %74, align 4, !tbaa !5
  %2982 = call ptr @__errno_location() #10
  store i32 %2981, ptr %2982, align 4, !tbaa !5
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = load i32, ptr @test_count, align 4, !tbaa !5
  %2985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @s2n_strerror(i32 noundef %2986, ptr noundef @.str.24)
  %2988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror_debug(i32 noundef %2989, ptr noundef @.str.24)
  %2991 = call ptr @__errno_location() #10
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @strerror(i32 noundef %2992) #9
  %2994 = call ptr @__errno_location() #10
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2983, ptr noundef @.str.25, i32 noundef %2984, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 157, ptr noundef %2987, ptr noundef %2990, ptr noundef %2993, i32 noundef %2995) #9
  br label %2997

2997:                                             ; preds = %2980, %2963
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %2998

2998:                                             ; preds = %2997
  br label %2999

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

3000:                                             ; No predecessors!
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

3002:                                             ; preds = %3001, %2944
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = add nsw i32 %3006, 1
  store i32 %3007, ptr @test_count, align 4, !tbaa !5
  %3008 = load ptr, ptr %67, align 8, !tbaa !9
  %3009 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %71, ptr noundef %72, ptr noundef %3008)
  %3010 = icmp eq i32 %3009, -1
  br i1 %3010, label %3011, label %3064

3011:                                             ; preds = %3005
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3014 = call ptr @__errno_location() #10
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  store i32 %3015, ptr %75, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @s2n_print_stacktrace(ptr noundef %3016)
  %3018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3019 = trunc i8 %3018 to i1
  br i1 %3019, label %3020, label %3042

3020:                                             ; preds = %3013
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #9
  %3023 = call i32 @isatty(i32 noundef %3022) #9
  %3024 = icmp ne i32 %3023, 0
  br i1 %3024, label %3025, label %3042

3025:                                             ; preds = %3020
  %3026 = load i32, ptr %75, align 4, !tbaa !5
  %3027 = call ptr @__errno_location() #10
  store i32 %3026, ptr %3027, align 4, !tbaa !5
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = load i32, ptr @test_count, align 4, !tbaa !5
  %3030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror(i32 noundef %3031, ptr noundef @.str.24)
  %3033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror_debug(i32 noundef %3034, ptr noundef @.str.24)
  %3036 = call ptr @__errno_location() #10
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call ptr @strerror(i32 noundef %3037) #9
  %3039 = call ptr @__errno_location() #10
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3028, ptr noundef @.str.22, i32 noundef %3029, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 159, ptr noundef %3032, ptr noundef %3035, ptr noundef %3038, i32 noundef %3040) #9
  br label %3059

3042:                                             ; preds = %3020, %3013
  %3043 = load i32, ptr %75, align 4, !tbaa !5
  %3044 = call ptr @__errno_location() #10
  store i32 %3043, ptr %3044, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = load i32, ptr @test_count, align 4, !tbaa !5
  %3047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @s2n_strerror(i32 noundef %3048, ptr noundef @.str.24)
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror_debug(i32 noundef %3051, ptr noundef @.str.24)
  %3053 = call ptr @__errno_location() #10
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @strerror(i32 noundef %3054) #9
  %3056 = call ptr @__errno_location() #10
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3045, ptr noundef @.str.25, i32 noundef %3046, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 159, ptr noundef %3049, ptr noundef %3052, ptr noundef %3055, i32 noundef %3057) #9
  br label %3059

3059:                                             ; preds = %3042, %3025
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3060

3060:                                             ; preds = %3059
  br label %3061

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

3062:                                             ; No predecessors!
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063, %3005
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

3067:                                             ; preds = %3066
  %3068 = load i32, ptr @test_count, align 4, !tbaa !5
  %3069 = add nsw i32 %3068, 1
  store i32 %3069, ptr @test_count, align 4, !tbaa !5
  %3070 = load ptr, ptr %69, align 8, !tbaa !9
  %3071 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %72, ptr noundef %71, ptr noundef %3070)
  %3072 = icmp eq i32 %3071, -1
  br i1 %3072, label %3073, label %3126

3073:                                             ; preds = %3067
  br label %3074

3074:                                             ; preds = %3073
  br label %3075

3075:                                             ; preds = %3074
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3076 = call ptr @__errno_location() #10
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  store i32 %3077, ptr %76, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @s2n_print_stacktrace(ptr noundef %3078)
  %3080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3081 = trunc i8 %3080 to i1
  br i1 %3081, label %3082, label %3104

3082:                                             ; preds = %3075
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @fileno(ptr noundef %3083) #9
  %3085 = call i32 @isatty(i32 noundef %3084) #9
  %3086 = icmp ne i32 %3085, 0
  br i1 %3086, label %3087, label %3104

3087:                                             ; preds = %3082
  %3088 = load i32, ptr %76, align 4, !tbaa !5
  %3089 = call ptr @__errno_location() #10
  store i32 %3088, ptr %3089, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror(i32 noundef %3093, ptr noundef @.str.24)
  %3095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @s2n_strerror_debug(i32 noundef %3096, ptr noundef @.str.24)
  %3098 = call ptr @__errno_location() #10
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #9
  %3101 = call ptr @__errno_location() #10
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef @.str.22, i32 noundef %3091, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 160, ptr noundef %3094, ptr noundef %3097, ptr noundef %3100, i32 noundef %3102) #9
  br label %3121

3104:                                             ; preds = %3082, %3075
  %3105 = load i32, ptr %76, align 4, !tbaa !5
  %3106 = call ptr @__errno_location() #10
  store i32 %3105, ptr %3106, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = load i32, ptr @test_count, align 4, !tbaa !5
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror(i32 noundef %3110, ptr noundef @.str.24)
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror_debug(i32 noundef %3113, ptr noundef @.str.24)
  %3115 = call ptr @__errno_location() #10
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @strerror(i32 noundef %3116) #9
  %3118 = call ptr @__errno_location() #10
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3107, ptr noundef @.str.25, i32 noundef %3108, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 160, ptr noundef %3111, ptr noundef %3114, ptr noundef %3117, i32 noundef %3119) #9
  br label %3121

3121:                                             ; preds = %3104, %3087
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

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

3124:                                             ; No predecessors!
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125, %3067
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #9
  call void @llvm.memset.p0.i64(ptr align 8 %77, i8 0, i64 24, i1 false)
  br label %3129

3129:                                             ; preds = %3128
  %3130 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %77, ptr noundef @tls13_zero_length_alert_record_hex)
  %3131 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %3130, ptr %3131, align 4
  %3132 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %3133 = load i32, ptr %3132, align 4
  %3134 = call zeroext i1 @s2n_result_is_ok(i32 %3133)
  br i1 %3134, label %3136, label %3135

3135:                                             ; preds = %3129
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %54, align 4
  br label %3919

3136:                                             ; preds = %3129
  br label %3137

3137:                                             ; preds = %3136
  br label %3138

3138:                                             ; preds = %3137
  br label %3139

3139:                                             ; preds = %3138
  %3140 = load i32, ptr @test_count, align 4, !tbaa !5
  %3141 = add nsw i32 %3140, 1
  store i32 %3141, ptr @test_count, align 4, !tbaa !5
  %3142 = getelementptr inbounds %struct.s2n_blob, ptr %77, i32 0, i32 0
  %3143 = load ptr, ptr %3142, align 8, !tbaa !45
  %3144 = getelementptr inbounds %struct.s2n_blob, ptr %77, i32 0, i32 1
  %3145 = load i32, ptr %3144, align 8, !tbaa !46
  %3146 = call i32 @s2n_stuffer_write_bytes(ptr noundef %71, ptr noundef %3143, i32 noundef %3145)
  %3147 = icmp eq i32 %3146, -1
  br i1 %3147, label %3148, label %3201

3148:                                             ; preds = %3139
  br label %3149

3149:                                             ; preds = %3148
  br label %3150

3150:                                             ; preds = %3149
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3151 = call ptr @__errno_location() #10
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  store i32 %3152, ptr %79, align 4, !tbaa !5
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @s2n_print_stacktrace(ptr noundef %3153)
  %3155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3156 = trunc i8 %3155 to i1
  br i1 %3156, label %3157, label %3179

3157:                                             ; preds = %3150
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @fileno(ptr noundef %3158) #9
  %3160 = call i32 @isatty(i32 noundef %3159) #9
  %3161 = icmp ne i32 %3160, 0
  br i1 %3161, label %3162, label %3179

3162:                                             ; preds = %3157
  %3163 = load i32, ptr %79, align 4, !tbaa !5
  %3164 = call ptr @__errno_location() #10
  store i32 %3163, ptr %3164, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = load i32, ptr @test_count, align 4, !tbaa !5
  %3167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call ptr @s2n_strerror(i32 noundef %3168, ptr noundef @.str.24)
  %3170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call ptr @s2n_strerror_debug(i32 noundef %3171, ptr noundef @.str.24)
  %3173 = call ptr @__errno_location() #10
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  %3175 = call ptr @strerror(i32 noundef %3174) #9
  %3176 = call ptr @__errno_location() #10
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3165, ptr noundef @.str.22, i32 noundef %3166, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 163, ptr noundef %3169, ptr noundef %3172, ptr noundef %3175, i32 noundef %3177) #9
  br label %3196

3179:                                             ; preds = %3157, %3150
  %3180 = load i32, ptr %79, align 4, !tbaa !5
  %3181 = call ptr @__errno_location() #10
  store i32 %3180, ptr %3181, align 4, !tbaa !5
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3183 = load i32, ptr @test_count, align 4, !tbaa !5
  %3184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror(i32 noundef %3185, ptr noundef @.str.24)
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror_debug(i32 noundef %3188, ptr noundef @.str.24)
  %3190 = call ptr @__errno_location() #10
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @strerror(i32 noundef %3191) #9
  %3193 = call ptr @__errno_location() #10
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3182, ptr noundef @.str.25, i32 noundef %3183, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 163, ptr noundef %3186, ptr noundef %3189, ptr noundef %3192, i32 noundef %3194) #9
  br label %3196

3196:                                             ; preds = %3179, %3162
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3197

3197:                                             ; preds = %3196
  br label %3198

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

3199:                                             ; No predecessors!
  br label %3200

3200:                                             ; preds = %3199
  br label %3201

3201:                                             ; preds = %3200, %3139
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

3204:                                             ; preds = %3203
  %3205 = load i32, ptr @test_count, align 4, !tbaa !5
  %3206 = add nsw i32 %3205, 1
  store i32 %3206, ptr @test_count, align 4, !tbaa !5
  %3207 = getelementptr inbounds %struct.s2n_blob, ptr %77, i32 0, i32 0
  %3208 = load ptr, ptr %3207, align 8, !tbaa !45
  %3209 = getelementptr inbounds %struct.s2n_blob, ptr %77, i32 0, i32 1
  %3210 = load i32, ptr %3209, align 8, !tbaa !46
  %3211 = call i32 @s2n_stuffer_write_bytes(ptr noundef %72, ptr noundef %3208, i32 noundef %3210)
  %3212 = icmp eq i32 %3211, -1
  br i1 %3212, label %3213, label %3266

3213:                                             ; preds = %3204
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

3215:                                             ; preds = %3214
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3216 = call ptr @__errno_location() #10
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  store i32 %3217, ptr %80, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = call i32 @s2n_print_stacktrace(ptr noundef %3218)
  %3220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3221 = trunc i8 %3220 to i1
  br i1 %3221, label %3222, label %3244

3222:                                             ; preds = %3215
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @fileno(ptr noundef %3223) #9
  %3225 = call i32 @isatty(i32 noundef %3224) #9
  %3226 = icmp ne i32 %3225, 0
  br i1 %3226, label %3227, label %3244

3227:                                             ; preds = %3222
  %3228 = load i32, ptr %80, align 4, !tbaa !5
  %3229 = call ptr @__errno_location() #10
  store i32 %3228, ptr %3229, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = load i32, ptr @test_count, align 4, !tbaa !5
  %3232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call ptr @s2n_strerror(i32 noundef %3233, ptr noundef @.str.24)
  %3235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call ptr @s2n_strerror_debug(i32 noundef %3236, ptr noundef @.str.24)
  %3238 = call ptr @__errno_location() #10
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call ptr @strerror(i32 noundef %3239) #9
  %3241 = call ptr @__errno_location() #10
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3230, ptr noundef @.str.22, i32 noundef %3231, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 164, ptr noundef %3234, ptr noundef %3237, ptr noundef %3240, i32 noundef %3242) #9
  br label %3261

3244:                                             ; preds = %3222, %3215
  %3245 = load i32, ptr %80, align 4, !tbaa !5
  %3246 = call ptr @__errno_location() #10
  store i32 %3245, ptr %3246, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @s2n_strerror(i32 noundef %3250, ptr noundef @.str.24)
  %3252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call ptr @s2n_strerror_debug(i32 noundef %3253, ptr noundef @.str.24)
  %3255 = call ptr @__errno_location() #10
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @strerror(i32 noundef %3256) #9
  %3258 = call ptr @__errno_location() #10
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3247, ptr noundef @.str.25, i32 noundef %3248, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 164, ptr noundef %3251, ptr noundef %3254, ptr noundef %3257, i32 noundef %3259) #9
  br label %3261

3261:                                             ; preds = %3244, %3227
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

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

3264:                                             ; No predecessors!
  br label %3265

3265:                                             ; preds = %3264
  br label %3266

3266:                                             ; preds = %3265, %3204
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267
  br label %3269

3269:                                             ; preds = %3268
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = add nsw i32 %3270, 1
  store i32 %3271, ptr @test_count, align 4, !tbaa !5
  %3272 = getelementptr inbounds %struct.s2n_stuffer, ptr %71, i32 0, i32 2
  %3273 = load i32, ptr %3272, align 4, !tbaa !42
  %3274 = getelementptr inbounds %struct.s2n_stuffer, ptr %71, i32 0, i32 1
  %3275 = load i32, ptr %3274, align 8, !tbaa !43
  %3276 = sub i32 %3273, %3275
  %3277 = icmp eq i32 %3276, 5
  br i1 %3277, label %3331, label %3278

3278:                                             ; preds = %3269
  br label %3279

3279:                                             ; preds = %3278
  br label %3280

3280:                                             ; preds = %3279
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3281 = call ptr @__errno_location() #10
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  store i32 %3282, ptr %81, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = call i32 @s2n_print_stacktrace(ptr noundef %3283)
  %3285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3286 = trunc i8 %3285 to i1
  br i1 %3286, label %3287, label %3309

3287:                                             ; preds = %3280
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @fileno(ptr noundef %3288) #9
  %3290 = call i32 @isatty(i32 noundef %3289) #9
  %3291 = icmp ne i32 %3290, 0
  br i1 %3291, label %3292, label %3309

3292:                                             ; preds = %3287
  %3293 = load i32, ptr %81, align 4, !tbaa !5
  %3294 = call ptr @__errno_location() #10
  store i32 %3293, ptr %3294, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %3297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror(i32 noundef %3298, ptr noundef @.str.24)
  %3300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3301 = load i32, ptr %3300, align 4, !tbaa !5
  %3302 = call ptr @s2n_strerror_debug(i32 noundef %3301, ptr noundef @.str.24)
  %3303 = call ptr @__errno_location() #10
  %3304 = load i32, ptr %3303, align 4, !tbaa !5
  %3305 = call ptr @strerror(i32 noundef %3304) #9
  %3306 = call ptr @__errno_location() #10
  %3307 = load i32, ptr %3306, align 4, !tbaa !5
  %3308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3295, ptr noundef @.str.22, i32 noundef %3296, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 165, ptr noundef %3299, ptr noundef %3302, ptr noundef %3305, i32 noundef %3307) #9
  br label %3326

3309:                                             ; preds = %3287, %3280
  %3310 = load i32, ptr %81, align 4, !tbaa !5
  %3311 = call ptr @__errno_location() #10
  store i32 %3310, ptr %3311, align 4, !tbaa !5
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = load i32, ptr @test_count, align 4, !tbaa !5
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror(i32 noundef %3315, ptr noundef @.str.24)
  %3317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call ptr @s2n_strerror_debug(i32 noundef %3318, ptr noundef @.str.24)
  %3320 = call ptr @__errno_location() #10
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call ptr @strerror(i32 noundef %3321) #9
  %3323 = call ptr @__errno_location() #10
  %3324 = load i32, ptr %3323, align 4, !tbaa !5
  %3325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3312, ptr noundef @.str.25, i32 noundef %3313, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 165, ptr noundef %3316, ptr noundef %3319, ptr noundef %3322, i32 noundef %3324) #9
  br label %3326

3326:                                             ; preds = %3309, %3292
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

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

3329:                                             ; No predecessors!
  br label %3330

3330:                                             ; preds = %3329
  br label %3331

3331:                                             ; preds = %3330, %3269
  br label %3332

3332:                                             ; preds = %3331
  br label %3333

3333:                                             ; preds = %3332
  br label %3334

3334:                                             ; preds = %3333
  %3335 = load i32, ptr @test_count, align 4, !tbaa !5
  %3336 = add nsw i32 %3335, 1
  store i32 %3336, ptr @test_count, align 4, !tbaa !5
  %3337 = getelementptr inbounds %struct.s2n_stuffer, ptr %72, i32 0, i32 2
  %3338 = load i32, ptr %3337, align 4, !tbaa !42
  %3339 = getelementptr inbounds %struct.s2n_stuffer, ptr %72, i32 0, i32 1
  %3340 = load i32, ptr %3339, align 8, !tbaa !43
  %3341 = sub i32 %3338, %3340
  %3342 = icmp eq i32 %3341, 5
  br i1 %3342, label %3396, label %3343

3343:                                             ; preds = %3334
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3346 = call ptr @__errno_location() #10
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  store i32 %3347, ptr %82, align 4, !tbaa !5
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @s2n_print_stacktrace(ptr noundef %3348)
  %3350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3351 = trunc i8 %3350 to i1
  br i1 %3351, label %3352, label %3374

3352:                                             ; preds = %3345
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = call i32 @fileno(ptr noundef %3353) #9
  %3355 = call i32 @isatty(i32 noundef %3354) #9
  %3356 = icmp ne i32 %3355, 0
  br i1 %3356, label %3357, label %3374

3357:                                             ; preds = %3352
  %3358 = load i32, ptr %82, align 4, !tbaa !5
  %3359 = call ptr @__errno_location() #10
  store i32 %3358, ptr %3359, align 4, !tbaa !5
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = load i32, ptr @test_count, align 4, !tbaa !5
  %3362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror(i32 noundef %3363, ptr noundef @.str.24)
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror_debug(i32 noundef %3366, ptr noundef @.str.24)
  %3368 = call ptr @__errno_location() #10
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @strerror(i32 noundef %3369) #9
  %3371 = call ptr @__errno_location() #10
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3360, ptr noundef @.str.22, i32 noundef %3361, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 166, ptr noundef %3364, ptr noundef %3367, ptr noundef %3370, i32 noundef %3372) #9
  br label %3391

3374:                                             ; preds = %3352, %3345
  %3375 = load i32, ptr %82, align 4, !tbaa !5
  %3376 = call ptr @__errno_location() #10
  store i32 %3375, ptr %3376, align 4, !tbaa !5
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = load i32, ptr @test_count, align 4, !tbaa !5
  %3379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror(i32 noundef %3380, ptr noundef @.str.24)
  %3382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @s2n_strerror_debug(i32 noundef %3383, ptr noundef @.str.24)
  %3385 = call ptr @__errno_location() #10
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call ptr @strerror(i32 noundef %3386) #9
  %3388 = call ptr @__errno_location() #10
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3377, ptr noundef @.str.25, i32 noundef %3378, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 166, ptr noundef %3381, ptr noundef %3384, ptr noundef %3387, i32 noundef %3389) #9
  br label %3391

3391:                                             ; preds = %3374, %3357
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

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

3394:                                             ; No predecessors!
  br label %3395

3395:                                             ; preds = %3394
  br label %3396

3396:                                             ; preds = %3395, %3334
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  br label %3401

3401:                                             ; preds = %3400
  %3402 = load i32, ptr @test_count, align 4, !tbaa !5
  %3403 = add nsw i32 %3402, 1
  store i32 %3403, ptr @test_count, align 4, !tbaa !5
  %3404 = load ptr, ptr %67, align 8, !tbaa !9
  %3405 = call i32 @s2n_handshake_read_io(ptr noundef %3404)
  %3406 = icmp eq i32 %3405, -1
  br i1 %3406, label %3460, label %3407

3407:                                             ; preds = %3401
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3410 = call ptr @__errno_location() #10
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  store i32 %3411, ptr %83, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = call i32 @s2n_print_stacktrace(ptr noundef %3412)
  %3414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3415 = trunc i8 %3414 to i1
  br i1 %3415, label %3416, label %3438

3416:                                             ; preds = %3409
  %3417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3418 = call i32 @fileno(ptr noundef %3417) #9
  %3419 = call i32 @isatty(i32 noundef %3418) #9
  %3420 = icmp ne i32 %3419, 0
  br i1 %3420, label %3421, label %3438

3421:                                             ; preds = %3416
  %3422 = load i32, ptr %83, align 4, !tbaa !5
  %3423 = call ptr @__errno_location() #10
  store i32 %3422, ptr %3423, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef @.str.24)
  %3429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @s2n_strerror_debug(i32 noundef %3430, ptr noundef @.str.24)
  %3432 = call ptr @__errno_location() #10
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @strerror(i32 noundef %3433) #9
  %3435 = call ptr @__errno_location() #10
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3424, ptr noundef @.str.22, i32 noundef %3425, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 168, ptr noundef %3428, ptr noundef %3431, ptr noundef %3434, i32 noundef %3436) #9
  br label %3455

3438:                                             ; preds = %3416, %3409
  %3439 = load i32, ptr %83, align 4, !tbaa !5
  %3440 = call ptr @__errno_location() #10
  store i32 %3439, ptr %3440, align 4, !tbaa !5
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = load i32, ptr @test_count, align 4, !tbaa !5
  %3443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef @.str.24)
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror_debug(i32 noundef %3447, ptr noundef @.str.24)
  %3449 = call ptr @__errno_location() #10
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @strerror(i32 noundef %3450) #9
  %3452 = call ptr @__errno_location() #10
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3441, ptr noundef @.str.25, i32 noundef %3442, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 168, ptr noundef %3445, ptr noundef %3448, ptr noundef %3451, i32 noundef %3453) #9
  br label %3455

3455:                                             ; preds = %3438, %3421
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

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

3458:                                             ; No predecessors!
  br label %3459

3459:                                             ; preds = %3458
  br label %3460

3460:                                             ; preds = %3459, %3401
  br label %3461

3461:                                             ; preds = %3460
  br label %3462

3462:                                             ; preds = %3461
  br label %3463

3463:                                             ; preds = %3462
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = add nsw i32 %3464, 1
  store i32 %3465, ptr @test_count, align 4, !tbaa !5
  %3466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = icmp eq i32 %3467, 335544322
  br i1 %3468, label %3522, label %3469

3469:                                             ; preds = %3463
  br label %3470

3470:                                             ; preds = %3469
  br label %3471

3471:                                             ; preds = %3470
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %3472 = call ptr @__errno_location() #10
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  store i32 %3473, ptr %84, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @s2n_print_stacktrace(ptr noundef %3474)
  %3476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3477 = trunc i8 %3476 to i1
  br i1 %3477, label %3478, label %3500

3478:                                             ; preds = %3471
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = call i32 @fileno(ptr noundef %3479) #9
  %3481 = call i32 @isatty(i32 noundef %3480) #9
  %3482 = icmp ne i32 %3481, 0
  br i1 %3482, label %3483, label %3500

3483:                                             ; preds = %3478
  %3484 = load i32, ptr %84, align 4, !tbaa !5
  %3485 = call ptr @__errno_location() #10
  store i32 %3484, ptr %3485, align 4, !tbaa !5
  %3486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3487 = load i32, ptr @test_count, align 4, !tbaa !5
  %3488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call ptr @s2n_strerror(i32 noundef %3489, ptr noundef @.str.24)
  %3491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror_debug(i32 noundef %3492, ptr noundef @.str.24)
  %3494 = call ptr @__errno_location() #10
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call ptr @strerror(i32 noundef %3495) #9
  %3497 = call ptr @__errno_location() #10
  %3498 = load i32, ptr %3497, align 4, !tbaa !5
  %3499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3486, ptr noundef @.str.22, i32 noundef %3487, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 168, ptr noundef %3490, ptr noundef %3493, ptr noundef %3496, i32 noundef %3498) #9
  br label %3517

3500:                                             ; preds = %3478, %3471
  %3501 = load i32, ptr %84, align 4, !tbaa !5
  %3502 = call ptr @__errno_location() #10
  store i32 %3501, ptr %3502, align 4, !tbaa !5
  %3503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3504 = load i32, ptr @test_count, align 4, !tbaa !5
  %3505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @s2n_strerror(i32 noundef %3506, ptr noundef @.str.24)
  %3508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call ptr @s2n_strerror_debug(i32 noundef %3509, ptr noundef @.str.24)
  %3511 = call ptr @__errno_location() #10
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @strerror(i32 noundef %3512) #9
  %3514 = call ptr @__errno_location() #10
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3503, ptr noundef @.str.25, i32 noundef %3504, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 168, ptr noundef %3507, ptr noundef %3510, ptr noundef %3513, i32 noundef %3515) #9
  br label %3517

3517:                                             ; preds = %3500, %3483
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3518

3518:                                             ; preds = %3517
  br label %3519

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

3520:                                             ; No predecessors!
  br label %3521

3521:                                             ; preds = %3520
  br label %3522

3522:                                             ; preds = %3521, %3463
  br label %3523

3523:                                             ; preds = %3522
  br label %3524

3524:                                             ; preds = %3523
  br label %3525

3525:                                             ; preds = %3524
  %3526 = load i32, ptr @test_count, align 4, !tbaa !5
  %3527 = add nsw i32 %3526, 1
  store i32 %3527, ptr @test_count, align 4, !tbaa !5
  %3528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror_debug(i32 noundef %3529, ptr noundef @.str.24)
  %3531 = icmp eq ptr %3530, null
  br i1 %3531, label %3532, label %3585

3532:                                             ; preds = %3525
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3535 = call ptr @__errno_location() #10
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  store i32 %3536, ptr %85, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = call i32 @s2n_print_stacktrace(ptr noundef %3537)
  %3539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3540 = trunc i8 %3539 to i1
  br i1 %3540, label %3541, label %3563

3541:                                             ; preds = %3534
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = call i32 @fileno(ptr noundef %3542) #9
  %3544 = call i32 @isatty(i32 noundef %3543) #9
  %3545 = icmp ne i32 %3544, 0
  br i1 %3545, label %3546, label %3563

3546:                                             ; preds = %3541
  %3547 = load i32, ptr %85, align 4, !tbaa !5
  %3548 = call ptr @__errno_location() #10
  store i32 %3547, ptr %3548, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror(i32 noundef %3552, ptr noundef @.str.24)
  %3554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror_debug(i32 noundef %3555, ptr noundef @.str.24)
  %3557 = call ptr @__errno_location() #10
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @strerror(i32 noundef %3558) #9
  %3560 = call ptr @__errno_location() #10
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3549, ptr noundef @.str.22, i32 noundef %3550, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 168, ptr noundef %3553, ptr noundef %3556, ptr noundef %3559, i32 noundef %3561) #9
  br label %3580

3563:                                             ; preds = %3541, %3534
  %3564 = load i32, ptr %85, align 4, !tbaa !5
  %3565 = call ptr @__errno_location() #10
  store i32 %3564, ptr %3565, align 4, !tbaa !5
  %3566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3567 = load i32, ptr @test_count, align 4, !tbaa !5
  %3568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3569 = load i32, ptr %3568, align 4, !tbaa !5
  %3570 = call ptr @s2n_strerror(i32 noundef %3569, ptr noundef @.str.24)
  %3571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = call ptr @s2n_strerror_debug(i32 noundef %3572, ptr noundef @.str.24)
  %3574 = call ptr @__errno_location() #10
  %3575 = load i32, ptr %3574, align 4, !tbaa !5
  %3576 = call ptr @strerror(i32 noundef %3575) #9
  %3577 = call ptr @__errno_location() #10
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3566, ptr noundef @.str.25, i32 noundef %3567, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 168, ptr noundef %3570, ptr noundef %3573, ptr noundef %3576, i32 noundef %3578) #9
  br label %3580

3580:                                             ; preds = %3563, %3546
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3581

3581:                                             ; preds = %3580
  br label %3582

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

3583:                                             ; No predecessors!
  br label %3584

3584:                                             ; preds = %3583
  br label %3585

3585:                                             ; preds = %3584, %3525
  br label %3586

3586:                                             ; preds = %3585
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

3588:                                             ; preds = %3587
  br label %3589

3589:                                             ; preds = %3588
  br label %3590

3590:                                             ; preds = %3589
  %3591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3591, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3592 = call ptr @__errno_location() #10
  store i32 0, ptr %3592, align 4, !tbaa !5
  br label %3593

3593:                                             ; preds = %3590
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

3599:                                             ; preds = %3598
  %3600 = load i32, ptr @test_count, align 4, !tbaa !5
  %3601 = add nsw i32 %3600, 1
  store i32 %3601, ptr @test_count, align 4, !tbaa !5
  %3602 = load ptr, ptr %69, align 8, !tbaa !9
  %3603 = call i32 @s2n_handshake_read_io(ptr noundef %3602)
  %3604 = icmp eq i32 %3603, -1
  br i1 %3604, label %3658, label %3605

3605:                                             ; preds = %3599
  br label %3606

3606:                                             ; preds = %3605
  br label %3607

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

3614:                                             ; preds = %3607
  %3615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3616 = call i32 @fileno(ptr noundef %3615) #9
  %3617 = call i32 @isatty(i32 noundef %3616) #9
  %3618 = icmp ne i32 %3617, 0
  br i1 %3618, label %3619, label %3636

3619:                                             ; preds = %3614
  %3620 = load i32, ptr %86, align 4, !tbaa !5
  %3621 = call ptr @__errno_location() #10
  store i32 %3620, ptr %3621, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror(i32 noundef %3625, ptr noundef @.str.24)
  %3627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror_debug(i32 noundef %3628, ptr noundef @.str.24)
  %3630 = call ptr @__errno_location() #10
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call ptr @strerror(i32 noundef %3631) #9
  %3633 = call ptr @__errno_location() #10
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3622, ptr noundef @.str.22, i32 noundef %3623, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3626, ptr noundef %3629, ptr noundef %3632, i32 noundef %3634) #9
  br label %3653

3636:                                             ; preds = %3614, %3607
  %3637 = load i32, ptr %86, align 4, !tbaa !5
  %3638 = call ptr @__errno_location() #10
  store i32 %3637, ptr %3638, align 4, !tbaa !5
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = load i32, ptr @test_count, align 4, !tbaa !5
  %3641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror(i32 noundef %3642, ptr noundef @.str.24)
  %3644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call ptr @s2n_strerror_debug(i32 noundef %3645, ptr noundef @.str.24)
  %3647 = call ptr @__errno_location() #10
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = call ptr @strerror(i32 noundef %3648) #9
  %3650 = call ptr @__errno_location() #10
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3639, ptr noundef @.str.25, i32 noundef %3640, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3643, ptr noundef %3646, ptr noundef %3649, i32 noundef %3651) #9
  br label %3653

3653:                                             ; preds = %3636, %3619
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

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

3656:                                             ; No predecessors!
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657, %3599
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659
  br label %3661

3661:                                             ; preds = %3660
  %3662 = load i32, ptr @test_count, align 4, !tbaa !5
  %3663 = add nsw i32 %3662, 1
  store i32 %3663, ptr @test_count, align 4, !tbaa !5
  %3664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3665 = load i32, ptr %3664, align 4, !tbaa !5
  %3666 = icmp eq i32 %3665, 335544322
  br i1 %3666, label %3720, label %3667

3667:                                             ; preds = %3661
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %3670 = call ptr @__errno_location() #10
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  store i32 %3671, ptr %87, align 4, !tbaa !5
  %3672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3673 = call i32 @s2n_print_stacktrace(ptr noundef %3672)
  %3674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3675 = trunc i8 %3674 to i1
  br i1 %3675, label %3676, label %3698

3676:                                             ; preds = %3669
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = call i32 @fileno(ptr noundef %3677) #9
  %3679 = call i32 @isatty(i32 noundef %3678) #9
  %3680 = icmp ne i32 %3679, 0
  br i1 %3680, label %3681, label %3698

3681:                                             ; preds = %3676
  %3682 = load i32, ptr %87, align 4, !tbaa !5
  %3683 = call ptr @__errno_location() #10
  store i32 %3682, ptr %3683, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = load i32, ptr @test_count, align 4, !tbaa !5
  %3686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror(i32 noundef %3687, ptr noundef @.str.24)
  %3689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror_debug(i32 noundef %3690, ptr noundef @.str.24)
  %3692 = call ptr @__errno_location() #10
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @strerror(i32 noundef %3693) #9
  %3695 = call ptr @__errno_location() #10
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3684, ptr noundef @.str.22, i32 noundef %3685, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3688, ptr noundef %3691, ptr noundef %3694, i32 noundef %3696) #9
  br label %3715

3698:                                             ; preds = %3676, %3669
  %3699 = load i32, ptr %87, align 4, !tbaa !5
  %3700 = call ptr @__errno_location() #10
  store i32 %3699, ptr %3700, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef @.str.24)
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror_debug(i32 noundef %3707, ptr noundef @.str.24)
  %3709 = call ptr @__errno_location() #10
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @strerror(i32 noundef %3710) #9
  %3712 = call ptr @__errno_location() #10
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef @.str.25, i32 noundef %3702, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3705, ptr noundef %3708, ptr noundef %3711, i32 noundef %3713) #9
  br label %3715

3715:                                             ; preds = %3698, %3681
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %3716

3716:                                             ; preds = %3715
  br label %3717

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

3718:                                             ; No predecessors!
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

3720:                                             ; preds = %3719, %3661
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722
  %3724 = load i32, ptr @test_count, align 4, !tbaa !5
  %3725 = add nsw i32 %3724, 1
  store i32 %3725, ptr @test_count, align 4, !tbaa !5
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror_debug(i32 noundef %3727, ptr noundef @.str.24)
  %3729 = icmp eq ptr %3728, null
  br i1 %3729, label %3730, label %3783

3730:                                             ; preds = %3723
  br label %3731

3731:                                             ; preds = %3730
  br label %3732

3732:                                             ; preds = %3731
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %3733 = call ptr @__errno_location() #10
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  store i32 %3734, ptr %88, align 4, !tbaa !5
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = call i32 @s2n_print_stacktrace(ptr noundef %3735)
  %3737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3738 = trunc i8 %3737 to i1
  br i1 %3738, label %3739, label %3761

3739:                                             ; preds = %3732
  %3740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3741 = call i32 @fileno(ptr noundef %3740) #9
  %3742 = call i32 @isatty(i32 noundef %3741) #9
  %3743 = icmp ne i32 %3742, 0
  br i1 %3743, label %3744, label %3761

3744:                                             ; preds = %3739
  %3745 = load i32, ptr %88, align 4, !tbaa !5
  %3746 = call ptr @__errno_location() #10
  store i32 %3745, ptr %3746, align 4, !tbaa !5
  %3747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3748 = load i32, ptr @test_count, align 4, !tbaa !5
  %3749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @s2n_strerror(i32 noundef %3750, ptr noundef @.str.24)
  %3752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call ptr @s2n_strerror_debug(i32 noundef %3753, ptr noundef @.str.24)
  %3755 = call ptr @__errno_location() #10
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call ptr @strerror(i32 noundef %3756) #9
  %3758 = call ptr @__errno_location() #10
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  %3760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3747, ptr noundef @.str.22, i32 noundef %3748, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3751, ptr noundef %3754, ptr noundef %3757, i32 noundef %3759) #9
  br label %3778

3761:                                             ; preds = %3739, %3732
  %3762 = load i32, ptr %88, align 4, !tbaa !5
  %3763 = call ptr @__errno_location() #10
  store i32 %3762, ptr %3763, align 4, !tbaa !5
  %3764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3765 = load i32, ptr @test_count, align 4, !tbaa !5
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror(i32 noundef %3767, ptr noundef @.str.24)
  %3769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call ptr @s2n_strerror_debug(i32 noundef %3770, ptr noundef @.str.24)
  %3772 = call ptr @__errno_location() #10
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call ptr @strerror(i32 noundef %3773) #9
  %3775 = call ptr @__errno_location() #10
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  %3777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3764, ptr noundef @.str.25, i32 noundef %3765, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3768, ptr noundef %3771, ptr noundef %3774, i32 noundef %3776) #9
  br label %3778

3778:                                             ; preds = %3761, %3744
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %3779

3779:                                             ; preds = %3778
  br label %3780

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

3781:                                             ; No predecessors!
  br label %3782

3782:                                             ; preds = %3781
  br label %3783

3783:                                             ; preds = %3782, %3723
  br label %3784

3784:                                             ; preds = %3783
  br label %3785

3785:                                             ; preds = %3784
  br label %3786

3786:                                             ; preds = %3785
  br label %3787

3787:                                             ; preds = %3786
  br label %3788

3788:                                             ; preds = %3787
  %3789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3789, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3790 = call ptr @__errno_location() #10
  store i32 0, ptr %3790, align 4, !tbaa !5
  br label %3791

3791:                                             ; preds = %3788
  br label %3792

3792:                                             ; preds = %3791
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794
  %3796 = load i32, ptr @test_count, align 4, !tbaa !5
  %3797 = add nsw i32 %3796, 1
  store i32 %3797, ptr @test_count, align 4, !tbaa !5
  %3798 = load ptr, ptr %67, align 8, !tbaa !9
  %3799 = call i32 @s2n_connection_free(ptr noundef %3798)
  %3800 = icmp eq i32 %3799, -1
  br i1 %3800, label %3801, label %3854

3801:                                             ; preds = %3795
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

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

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

3815:                                             ; preds = %3810
  %3816 = load i32, ptr %89, align 4, !tbaa !5
  %3817 = call ptr @__errno_location() #10
  store i32 %3816, ptr %3817, align 4, !tbaa !5
  %3818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3819 = load i32, ptr @test_count, align 4, !tbaa !5
  %3820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3821 = load i32, ptr %3820, align 4, !tbaa !5
  %3822 = call ptr @s2n_strerror(i32 noundef %3821, ptr noundef @.str.24)
  %3823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3824 = load i32, ptr %3823, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror_debug(i32 noundef %3824, ptr noundef @.str.24)
  %3826 = call ptr @__errno_location() #10
  %3827 = load i32, ptr %3826, align 4, !tbaa !5
  %3828 = call ptr @strerror(i32 noundef %3827) #9
  %3829 = call ptr @__errno_location() #10
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3818, ptr noundef @.str.22, i32 noundef %3819, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3822, ptr noundef %3825, ptr noundef %3828, i32 noundef %3830) #9
  br label %3849

3832:                                             ; preds = %3810, %3803
  %3833 = load i32, ptr %89, align 4, !tbaa !5
  %3834 = call ptr @__errno_location() #10
  store i32 %3833, ptr %3834, align 4, !tbaa !5
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = load i32, ptr @test_count, align 4, !tbaa !5
  %3837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror(i32 noundef %3838, ptr noundef @.str.24)
  %3840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  %3842 = call ptr @s2n_strerror_debug(i32 noundef %3841, ptr noundef @.str.24)
  %3843 = call ptr @__errno_location() #10
  %3844 = load i32, ptr %3843, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #9
  %3846 = call ptr @__errno_location() #10
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  %3848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3835, ptr noundef @.str.25, i32 noundef %3836, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3839, ptr noundef %3842, ptr noundef %3845, i32 noundef %3847) #9
  br label %3849

3849:                                             ; preds = %3832, %3815
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %3850

3850:                                             ; preds = %3849
  br label %3851

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

3852:                                             ; No predecessors!
  br label %3853

3853:                                             ; preds = %3852
  br label %3854

3854:                                             ; preds = %3853, %3795
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

3856:                                             ; preds = %3855
  br label %3857

3857:                                             ; preds = %3856
  %3858 = load i32, ptr @test_count, align 4, !tbaa !5
  %3859 = add nsw i32 %3858, 1
  store i32 %3859, ptr @test_count, align 4, !tbaa !5
  %3860 = load ptr, ptr %69, align 8, !tbaa !9
  %3861 = call i32 @s2n_connection_free(ptr noundef %3860)
  %3862 = icmp eq i32 %3861, -1
  br i1 %3862, label %3863, label %3916

3863:                                             ; preds = %3857
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

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

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

3877:                                             ; preds = %3872
  %3878 = load i32, ptr %90, align 4, !tbaa !5
  %3879 = call ptr @__errno_location() #10
  store i32 %3878, ptr %3879, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror(i32 noundef %3883, ptr noundef @.str.24)
  %3885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call ptr @s2n_strerror_debug(i32 noundef %3886, ptr noundef @.str.24)
  %3888 = call ptr @__errno_location() #10
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call ptr @strerror(i32 noundef %3889) #9
  %3891 = call ptr @__errno_location() #10
  %3892 = load i32, ptr %3891, align 4, !tbaa !5
  %3893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3880, ptr noundef @.str.22, i32 noundef %3881, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 172, ptr noundef %3884, ptr noundef %3887, ptr noundef %3890, i32 noundef %3892) #9
  br label %3911

3894:                                             ; preds = %3872, %3865
  %3895 = load i32, ptr %90, align 4, !tbaa !5
  %3896 = call ptr @__errno_location() #10
  store i32 %3895, ptr %3896, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call ptr @s2n_strerror(i32 noundef %3900, ptr noundef @.str.24)
  %3902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  %3904 = call ptr @s2n_strerror_debug(i32 noundef %3903, ptr noundef @.str.24)
  %3905 = call ptr @__errno_location() #10
  %3906 = load i32, ptr %3905, align 4, !tbaa !5
  %3907 = call ptr @strerror(i32 noundef %3906) #9
  %3908 = call ptr @__errno_location() #10
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3897, ptr noundef @.str.25, i32 noundef %3898, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 172, ptr noundef %3901, ptr noundef %3904, ptr noundef %3907, i32 noundef %3909) #9
  br label %3911

3911:                                             ; preds = %3894, %3877
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

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

3914:                                             ; No predecessors!
  br label %3915

3915:                                             ; preds = %3914
  br label %3916

3916:                                             ; preds = %3915, %3857
  br label %3917

3917:                                             ; preds = %3916
  br label %3918

3918:                                             ; preds = %3917
  store i32 0, ptr %54, align 4
  br label %3919

3919:                                             ; preds = %3918, %3135
  %3920 = call i32 @s2n_free(ptr noundef %77)
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #9
  %3921 = call i32 @s2n_stuffer_free(ptr noundef %72)
  call void @llvm.lifetime.end.p0(i64 40, ptr %72) #9
  %3922 = call i32 @s2n_stuffer_free(ptr noundef %71)
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  %3923 = load i32, ptr %54, align 4
  switch i32 %3923, label %4073 [
    i32 0, label %3924
    i32 1, label %4071
  ]

3924:                                             ; preds = %3919
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925
  %3927 = call i32 @s2n_cleanup()
  %3928 = icmp eq i32 %3927, -1
  br i1 %3928, label %3929, label %3980

3929:                                             ; preds = %3926
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

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

3938:                                             ; preds = %3931
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = call i32 @fileno(ptr noundef %3939) #9
  %3941 = call i32 @isatty(i32 noundef %3940) #9
  %3942 = icmp ne i32 %3941, 0
  br i1 %3942, label %3943, label %3960

3943:                                             ; preds = %3938
  %3944 = load i32, ptr %91, align 4, !tbaa !5
  %3945 = call ptr @__errno_location() #10
  store i32 %3944, ptr %3945, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = load i32, ptr @test_count, align 4, !tbaa !5
  %3948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror(i32 noundef %3949, ptr noundef @.str.24)
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror_debug(i32 noundef %3952, ptr noundef @.str.24)
  %3954 = call ptr @__errno_location() #10
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @strerror(i32 noundef %3955) #9
  %3957 = call ptr @__errno_location() #10
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3946, ptr noundef @.str.22, i32 noundef %3947, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 175, ptr noundef %3950, ptr noundef %3953, ptr noundef %3956, i32 noundef %3958) #9
  br label %3977

3960:                                             ; preds = %3938, %3931
  %3961 = load i32, ptr %91, align 4, !tbaa !5
  %3962 = call ptr @__errno_location() #10
  store i32 %3961, ptr %3962, align 4, !tbaa !5
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = load i32, ptr @test_count, align 4, !tbaa !5
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror(i32 noundef %3966, ptr noundef @.str.24)
  %3968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @s2n_strerror_debug(i32 noundef %3969, ptr noundef @.str.24)
  %3971 = call ptr @__errno_location() #10
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @strerror(i32 noundef %3972) #9
  %3974 = call ptr @__errno_location() #10
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3963, ptr noundef @.str.25, i32 noundef %3964, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 175, ptr noundef %3967, ptr noundef %3970, ptr noundef %3973, i32 noundef %3975) #9
  br label %3977

3977:                                             ; preds = %3960, %3943
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %3978

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

3979:                                             ; No predecessors!
  br label %3980

3980:                                             ; preds = %3979, %3926
  br label %3981

3981:                                             ; preds = %3980
  br label %3982

3982:                                             ; preds = %3981
  br label %3983

3983:                                             ; preds = %3982
  %3984 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3985 = icmp eq i32 %3984, -1
  br i1 %3985, label %3986, label %4037

3986:                                             ; preds = %3983
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

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

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

4000:                                             ; preds = %3995
  %4001 = load i32, ptr %92, align 4, !tbaa !5
  %4002 = call ptr @__errno_location() #10
  store i32 %4001, ptr %4002, align 4, !tbaa !5
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = load i32, ptr @test_count, align 4, !tbaa !5
  %4005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call ptr @s2n_strerror(i32 noundef %4006, ptr noundef @.str.24)
  %4008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4009 = load i32, ptr %4008, align 4, !tbaa !5
  %4010 = call ptr @s2n_strerror_debug(i32 noundef %4009, ptr noundef @.str.24)
  %4011 = call ptr @__errno_location() #10
  %4012 = load i32, ptr %4011, align 4, !tbaa !5
  %4013 = call ptr @strerror(i32 noundef %4012) #9
  %4014 = call ptr @__errno_location() #10
  %4015 = load i32, ptr %4014, align 4, !tbaa !5
  %4016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4003, ptr noundef @.str.22, i32 noundef %4004, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 175, ptr noundef %4007, ptr noundef %4010, ptr noundef %4013, i32 noundef %4015) #9
  br label %4034

4017:                                             ; preds = %3995, %3988
  %4018 = load i32, ptr %92, align 4, !tbaa !5
  %4019 = call ptr @__errno_location() #10
  store i32 %4018, ptr %4019, align 4, !tbaa !5
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = load i32, ptr @test_count, align 4, !tbaa !5
  %4022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @s2n_strerror(i32 noundef %4023, ptr noundef @.str.24)
  %4025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call ptr @s2n_strerror_debug(i32 noundef %4026, ptr noundef @.str.24)
  %4028 = call ptr @__errno_location() #10
  %4029 = load i32, ptr %4028, align 4, !tbaa !5
  %4030 = call ptr @strerror(i32 noundef %4029) #9
  %4031 = call ptr @__errno_location() #10
  %4032 = load i32, ptr %4031, align 4, !tbaa !5
  %4033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4020, ptr noundef @.str.25, i32 noundef %4021, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 175, ptr noundef %4024, ptr noundef %4027, ptr noundef %4030, i32 noundef %4032) #9
  br label %4034

4034:                                             ; preds = %4017, %4000
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4035

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

4036:                                             ; No predecessors!
  br label %4037

4037:                                             ; preds = %4036, %3983
  br label %4038

4038:                                             ; preds = %4037
  %4039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4040 = trunc i8 %4039 to i1
  br i1 %4040, label %4041, label %4057

4041:                                             ; preds = %4038
  %4042 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4043 = call i32 @fileno(ptr noundef %4042) #9
  %4044 = call i32 @isatty(i32 noundef %4043) #9
  %4045 = icmp ne i32 %4044, 0
  br i1 %4045, label %4046, label %4057

4046:                                             ; preds = %4041
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = icmp ne i32 %4047, 0
  br i1 %4048, label %4049, label %4053

4049:                                             ; preds = %4046
  %4050 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4050, ptr noundef @.str.58, i32 noundef %4051) #9
  br label %4056

4053:                                             ; preds = %4046
  %4054 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4054, ptr noundef @.str.59) #9
  br label %4056

4056:                                             ; preds = %4053, %4049
  br label %4068

4057:                                             ; preds = %4041, %4038
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = icmp ne i32 %4058, 0
  br i1 %4059, label %4060, label %4064

4060:                                             ; preds = %4057
  %4061 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4061, ptr noundef @.str.60, i32 noundef %4062) #9
  br label %4067

4064:                                             ; preds = %4057
  %4065 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4065, ptr noundef @.str.61) #9
  br label %4067

4067:                                             ; preds = %4064, %4060
  br label %4068

4068:                                             ; preds = %4067, %4056
  store i32 0, ptr %3, align 4
  br label %4071

4069:                                             ; No predecessors!
  br label %4070

4070:                                             ; preds = %4069
  store i32 0, ptr %3, align 4
  br label %4071

4071:                                             ; preds = %4070, %4068, %3919, %2751
  %4072 = load i32, ptr %3, align 4
  ret i32 %4072

4073:                                             ; preds = %3919, %2751
  unreachable
}

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

declare i32 @fflush(ptr noundef) #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #4

declare i32 @s2n_print_stacktrace(ptr noundef) #4

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #4

declare i32 @s2n_init() #4

declare i32 @s2n_enable_tls13_in_test(...) #4

declare ptr @s2n_connection_new(i32 noundef) #4

declare i32 @s2n_connection_set_secrets(ptr noundef) #4

declare i32 @s2n_stuffer_free(ptr noundef) #4

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

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

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

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

declare i32 @s2n_connection_free(ptr noundef) #4

declare i32 @s2n_free(ptr noundef) #4

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

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

declare void @s2n_debug_info_reset() #4

declare i32 @s2n_cleanup() #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!32, !6, i64 28}
!43 = !{!32, !6, i64 24}
!44 = !{!7, !7, i64 0}
!45 = !{!25, !10, i64 0}
!46 = !{!25, !6, i64 8}


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

%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@tls13_zero_length_handshake_record_hex = external dso_local constant [11 x i8], align 1
@tls13_zero_length_alert_record_hex = external dso_local constant [11 x i8], align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [93 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

89:                                               ; preds = %84, %88
  %.str.25.sink260 = phi ptr [ @.str.25, %88 ], [ @.str.22, %84 ]
  store i32 %79, ptr %78, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror(i32 noundef %93, ptr noundef nonnull @.str.24) #10
  %95 = load i32, ptr %92, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror_debug(i32 noundef %95, ptr noundef nonnull @.str.24) #10
  %97 = load i32, ptr %78, align 4, !tbaa !5
  %98 = tail call ptr @strerror(i32 noundef %97) #10
  %99 = load i32, ptr %78, align 4, !tbaa !5
  %100 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull %.str.25.sink260, i32 noundef %91, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.21, i32 noundef 42, ptr noundef %94, ptr noundef %96, ptr noundef %98, i32 noundef %99) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

101:                                              ; preds = %74
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr @test_count, align 4, !tbaa !5
  %104 = tail call i32 (...) @s2n_enable_tls13_in_test() #10
  %105 = icmp eq i32 %104, -1
  br i1 %105, label %106, label %130

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

113:                                              ; preds = %106
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = tail call i32 @fileno(ptr noundef %114) #10
  %116 = tail call i32 @isatty(i32 noundef %115) #10
  %.not233 = icmp eq i32 %116, 0
  br i1 %.not233, label %117, label %118

117:                                              ; preds = %113, %106
  br label %118

118:                                              ; preds = %113, %117
  %.str.25.sink271 = phi ptr [ @.str.25, %117 ], [ @.str.22, %113 ]
  store i32 %108, ptr %107, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = tail call ptr @s2n_strerror(i32 noundef %122, ptr noundef nonnull @.str.24) #10
  %124 = load i32, ptr %121, align 4, !tbaa !5
  %125 = tail call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef nonnull @.str.24) #10
  %126 = load i32, ptr %107, align 4, !tbaa !5
  %127 = tail call ptr @strerror(i32 noundef %126) #10
  %128 = load i32, ptr %107, align 4, !tbaa !5
  %129 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull %.str.25.sink271, i32 noundef %120, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 44, ptr noundef %123, ptr noundef %125, ptr noundef %127, i32 noundef %128) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

130:                                              ; preds = %101
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %134 = icmp eq ptr %133, null
  br i1 %134, label %135, label %159

135:                                              ; preds = %130
  %136 = tail call ptr @__errno_location() #11
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = tail call i32 @s2n_print_stacktrace(ptr noundef %138) #10
  %140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %141 = trunc nuw i8 %140 to i1
  br i1 %141, label %142, label %146

142:                                              ; preds = %135
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = tail call i32 @fileno(ptr noundef %143) #10
  %145 = tail call i32 @isatty(i32 noundef %144) #10
  %.not232 = icmp eq i32 %145, 0
  br i1 %.not232, label %146, label %147

146:                                              ; preds = %142, %135
  br label %147

147:                                              ; preds = %142, %146
  %.str.25.sink282 = phi ptr [ @.str.25, %146 ], [ @.str.22, %142 ]
  store i32 %137, ptr %136, align 4, !tbaa !5
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = tail call ptr @s2n_strerror(i32 noundef %151, ptr noundef nonnull @.str.24) #10
  %153 = load i32, ptr %150, align 4, !tbaa !5
  %154 = tail call ptr @s2n_strerror_debug(i32 noundef %153, ptr noundef nonnull @.str.24) #10
  %155 = load i32, ptr %136, align 4, !tbaa !5
  %156 = tail call ptr @strerror(i32 noundef %155) #10
  %157 = load i32, ptr %136, align 4, !tbaa !5
  %158 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef nonnull %.str.25.sink282, i32 noundef %149, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 55, ptr noundef %152, ptr noundef %154, ptr noundef %156, i32 noundef %157) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

159:                                              ; preds = %130
  %160 = getelementptr inbounds i8, ptr %133, i64 220
  store i8 34, ptr %160, align 4, !tbaa !15
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = tail call i32 @s2n_connection_set_secrets(ptr noundef nonnull %133) #10
  %164 = tail call zeroext i1 @s2n_result_is_ok(i32 %163)
  br i1 %164, label %189, label %165

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

172:                                              ; preds = %165
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = tail call i32 @fileno(ptr noundef %173) #10
  %175 = tail call i32 @isatty(i32 noundef %174) #10
  %.not = icmp eq i32 %175, 0
  br i1 %.not, label %176, label %177

176:                                              ; preds = %172, %165
  br label %177

177:                                              ; preds = %172, %176
  %.str.25.sink293 = phi ptr [ @.str.25, %176 ], [ @.str.22, %172 ]
  store i32 %167, ptr %166, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = tail call ptr @s2n_strerror(i32 noundef %181, ptr noundef nonnull @.str.24) #10
  %183 = load i32, ptr %180, align 4, !tbaa !5
  %184 = tail call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef nonnull @.str.24) #10
  %185 = load i32, ptr %166, align 4, !tbaa !5
  %186 = tail call ptr @strerror(i32 noundef %185) #10
  %187 = load i32, ptr %166, align 4, !tbaa !5
  %188 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef nonnull %.str.25.sink293, i32 noundef %179, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.21, i32 noundef 57, ptr noundef %182, ptr noundef %184, ptr noundef %186, i32 noundef %187) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

189:                                              ; preds = %159
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = tail call ptr @s2n_connection_new(i32 noundef 1) #10
  %193 = icmp eq ptr %192, null
  br i1 %193, label %194, label %218

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

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

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

206:                                              ; preds = %201, %205
  %.str.25.sink304 = phi ptr [ @.str.25, %205 ], [ @.str.22, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.24) #10
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = tail call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.24) #10
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = tail call ptr @strerror(i32 noundef %214) #10
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.25.sink304, i32 noundef %208, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 60, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

218:                                              ; preds = %189
  %219 = getelementptr inbounds i8, ptr %192, i64 220
  store i8 34, ptr %219, align 4, !tbaa !15
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %221 = add nsw i32 %220, 1
  store i32 %221, ptr @test_count, align 4, !tbaa !5
  %222 = tail call i32 @s2n_connection_set_secrets(ptr noundef nonnull %192) #10
  %223 = tail call zeroext i1 @s2n_result_is_ok(i32 %222)
  br i1 %223, label %248, label %224

224:                                              ; preds = %218
  %225 = tail call ptr @__errno_location() #11
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = tail call i32 @s2n_print_stacktrace(ptr noundef %227) #10
  %229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %230 = trunc nuw i8 %229 to i1
  br i1 %230, label %231, label %235

231:                                              ; preds = %224
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = tail call i32 @fileno(ptr noundef %232) #10
  %234 = tail call i32 @isatty(i32 noundef %233) #10
  %.not171 = icmp eq i32 %234, 0
  br i1 %.not171, label %235, label %236

235:                                              ; preds = %231, %224
  br label %236

236:                                              ; preds = %231, %235
  %.str.25.sink315 = phi ptr [ @.str.25, %235 ], [ @.str.22, %231 ]
  store i32 %226, ptr %225, align 4, !tbaa !5
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = tail call ptr @s2n_strerror(i32 noundef %240, ptr noundef nonnull @.str.24) #10
  %242 = load i32, ptr %239, align 4, !tbaa !5
  %243 = tail call ptr @s2n_strerror_debug(i32 noundef %242, ptr noundef nonnull @.str.24) #10
  %244 = load i32, ptr %225, align 4, !tbaa !5
  %245 = tail call ptr @strerror(i32 noundef %244) #10
  %246 = load i32, ptr %225, align 4, !tbaa !5
  %247 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %237, ptr noundef nonnull %.str.25.sink315, i32 noundef %238, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.21, i32 noundef 62, ptr noundef %241, ptr noundef %243, ptr noundef %245, i32 noundef %246) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

248:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  store i32 0, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #10
  %252 = icmp eq i32 %251, -1
  br i1 %252, label %253, label %277

253:                                              ; preds = %248
  %254 = tail call ptr @__errno_location() #11
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @s2n_print_stacktrace(ptr noundef %256) #10
  %258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %259 = trunc nuw i8 %258 to i1
  br i1 %259, label %260, label %264

260:                                              ; preds = %253
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @fileno(ptr noundef %261) #10
  %263 = call i32 @isatty(i32 noundef %262) #10
  %.not230 = icmp eq i32 %263, 0
  br i1 %.not230, label %264, label %265

264:                                              ; preds = %260, %253
  br label %265

265:                                              ; preds = %260, %264
  %.str.25.sink326 = phi ptr [ @.str.25, %264 ], [ @.str.22, %260 ]
  store i32 %255, ptr %254, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror(i32 noundef %269, ptr noundef nonnull @.str.24) #10
  %271 = load i32, ptr %268, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef nonnull @.str.24) #10
  %273 = load i32, ptr %254, align 4, !tbaa !5
  %274 = call ptr @strerror(i32 noundef %273) #10
  %275 = load i32, ptr %254, align 4, !tbaa !5
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef nonnull %.str.25.sink326, i32 noundef %267, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 70, ptr noundef %270, ptr noundef %272, ptr noundef %274, i32 noundef %275) #12
  call void @exit(i32 noundef 1) #13
  unreachable

277:                                              ; preds = %248
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #10
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %282, label %306

282:                                              ; preds = %277
  %283 = tail call ptr @__errno_location() #11
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @s2n_print_stacktrace(ptr noundef %285) #10
  %287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %288 = trunc nuw i8 %287 to i1
  br i1 %288, label %289, label %293

289:                                              ; preds = %282
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = call i32 @fileno(ptr noundef %290) #10
  %292 = call i32 @isatty(i32 noundef %291) #10
  %.not229 = icmp eq i32 %292, 0
  br i1 %.not229, label %293, label %294

293:                                              ; preds = %289, %282
  br label %294

294:                                              ; preds = %289, %293
  %.str.25.sink337 = phi ptr [ @.str.25, %293 ], [ @.str.22, %289 ]
  store i32 %284, ptr %283, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror(i32 noundef %298, ptr noundef nonnull @.str.24) #10
  %300 = load i32, ptr %297, align 4, !tbaa !5
  %301 = call ptr @s2n_strerror_debug(i32 noundef %300, ptr noundef nonnull @.str.24) #10
  %302 = load i32, ptr %283, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #10
  %304 = load i32, ptr %283, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %295, ptr noundef nonnull %.str.25.sink337, i32 noundef %296, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 71, ptr noundef %299, ptr noundef %301, ptr noundef %303, i32 noundef %304) #12
  call void @exit(i32 noundef 1) #13
  unreachable

306:                                              ; preds = %277
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = add nsw i32 %307, 1
  store i32 %308, ptr @test_count, align 4, !tbaa !5
  %309 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull %133) #10
  %310 = icmp eq i32 %309, -1
  br i1 %310, label %311, label %335

311:                                              ; preds = %306
  %312 = tail call ptr @__errno_location() #11
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = call i32 @s2n_print_stacktrace(ptr noundef %314) #10
  %316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %317 = trunc nuw i8 %316 to i1
  br i1 %317, label %318, label %322

318:                                              ; preds = %311
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @fileno(ptr noundef %319) #10
  %321 = call i32 @isatty(i32 noundef %320) #10
  %.not228 = icmp eq i32 %321, 0
  br i1 %.not228, label %322, label %323

322:                                              ; preds = %318, %311
  br label %323

323:                                              ; preds = %318, %322
  %.str.25.sink348 = phi ptr [ @.str.25, %322 ], [ @.str.22, %318 ]
  store i32 %313, ptr %312, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror(i32 noundef %327, ptr noundef nonnull @.str.24) #10
  %329 = load i32, ptr %326, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror_debug(i32 noundef %329, ptr noundef nonnull @.str.24) #10
  %331 = load i32, ptr %312, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #10
  %333 = load i32, ptr %312, align 4, !tbaa !5
  %334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %324, ptr noundef nonnull %.str.25.sink348, i32 noundef %325, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 73, ptr noundef %328, ptr noundef %330, ptr noundef %332, i32 noundef %333) #12
  call void @exit(i32 noundef 1) #13
  unreachable

335:                                              ; preds = %306
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr @test_count, align 4, !tbaa !5
  %338 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef nonnull %192) #10
  %339 = icmp eq i32 %338, -1
  br i1 %339, label %340, label %364

340:                                              ; preds = %335
  %341 = tail call ptr @__errno_location() #11
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = call i32 @s2n_print_stacktrace(ptr noundef %343) #10
  %345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %346 = trunc nuw i8 %345 to i1
  br i1 %346, label %347, label %351

347:                                              ; preds = %340
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @fileno(ptr noundef %348) #10
  %350 = call i32 @isatty(i32 noundef %349) #10
  %.not227 = icmp eq i32 %350, 0
  br i1 %.not227, label %351, label %352

351:                                              ; preds = %347, %340
  br label %352

352:                                              ; preds = %347, %351
  %.str.25.sink359 = phi ptr [ @.str.25, %351 ], [ @.str.22, %347 ]
  store i32 %342, ptr %341, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror(i32 noundef %356, ptr noundef nonnull @.str.24) #10
  %358 = load i32, ptr %355, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror_debug(i32 noundef %358, ptr noundef nonnull @.str.24) #10
  %360 = load i32, ptr %341, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #10
  %362 = load i32, ptr %341, align 4, !tbaa !5
  %363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %353, ptr noundef nonnull %.str.25.sink359, i32 noundef %354, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %357, ptr noundef %359, ptr noundef %361, i32 noundef %362) #12
  call void @exit(i32 noundef 1) #13
  unreachable

364:                                              ; preds = %335
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr @test_count, align 4, !tbaa !5
  %367 = call i32 @s2n_record_write(ptr noundef nonnull %192, i8 noundef zeroext 23, ptr noundef nonnull %3) #10
  %368 = call zeroext i1 @s2n_result_is_ok(i32 %367)
  br i1 %368, label %393, label %369

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

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

380:                                              ; preds = %376, %369
  br label %381

381:                                              ; preds = %376, %380
  %.str.25.sink370 = phi ptr [ @.str.25, %380 ], [ @.str.22, %376 ]
  store i32 %371, ptr %370, align 4, !tbaa !5
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror(i32 noundef %385, ptr noundef nonnull @.str.24) #10
  %387 = load i32, ptr %384, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror_debug(i32 noundef %387, ptr noundef nonnull @.str.24) #10
  %389 = load i32, ptr %370, align 4, !tbaa !5
  %390 = call ptr @strerror(i32 noundef %389) #10
  %391 = load i32, ptr %370, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %382, ptr noundef nonnull %.str.25.sink370, i32 noundef %383, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 76, ptr noundef %386, ptr noundef %388, ptr noundef %390, i32 noundef %391) #12
  call void @exit(i32 noundef 1) #13
  unreachable

393:                                              ; preds = %364
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = add nsw i32 %394, 1
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %396 = call i32 @s2n_flush(ptr noundef nonnull %192, ptr noundef nonnull %4) #10
  %397 = icmp eq i32 %396, -1
  br i1 %397, label %398, label %422

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

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

409:                                              ; preds = %405, %398
  br label %410

410:                                              ; preds = %405, %409
  %.str.25.sink381 = phi ptr [ @.str.25, %409 ], [ @.str.22, %405 ]
  store i32 %400, ptr %399, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef nonnull @.str.24) #10
  %416 = load i32, ptr %413, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef nonnull @.str.24) #10
  %418 = load i32, ptr %399, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #10
  %420 = load i32, ptr %399, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef nonnull %.str.25.sink381, i32 noundef %412, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 77, ptr noundef %415, ptr noundef %417, ptr noundef %419, i32 noundef %420) #12
  call void @exit(i32 noundef 1) #13
  unreachable

422:                                              ; preds = %393
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %5, i64 28
  %426 = load i32, ptr %425, align 4, !tbaa !42
  %427 = getelementptr inbounds i8, ptr %5, i64 24
  %428 = load i32, ptr %427, align 8, !tbaa !43
  %.not173 = icmp eq i32 %426, %428
  br i1 %.not173, label %429, label %453

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

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

440:                                              ; preds = %436, %429
  br label %441

441:                                              ; preds = %436, %440
  %.str.25.sink392 = phi ptr [ @.str.25, %440 ], [ @.str.22, %436 ]
  store i32 %431, ptr %430, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror(i32 noundef %445, ptr noundef nonnull @.str.24) #10
  %447 = load i32, ptr %444, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef nonnull @.str.24) #10
  %449 = load i32, ptr %430, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #10
  %451 = load i32, ptr %430, align 4, !tbaa !5
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull %.str.25.sink392, i32 noundef %443, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 78, ptr noundef %446, ptr noundef %448, ptr noundef %450, i32 noundef %451) #12
  call void @exit(i32 noundef 1) #13
  unreachable

453:                                              ; preds = %422
  %454 = add nsw i32 %423, 2
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = call i32 @s2n_record_write(ptr noundef nonnull %133, i8 noundef zeroext 23, ptr noundef nonnull %3) #10
  %456 = call zeroext i1 @s2n_result_is_ok(i32 %455)
  br i1 %456, label %481, label %457

457:                                              ; preds = %453
  %458 = tail call ptr @__errno_location() #11
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460) #10
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc nuw i8 %462 to i1
  br i1 %463, label %464, label %468

464:                                              ; preds = %457
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #10
  %467 = call i32 @isatty(i32 noundef %466) #10
  %.not175 = icmp eq i32 %467, 0
  br i1 %.not175, label %468, label %469

468:                                              ; preds = %464, %457
  br label %469

469:                                              ; preds = %464, %468
  %.str.25.sink403 = phi ptr [ @.str.25, %468 ], [ @.str.22, %464 ]
  store i32 %459, ptr %458, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror(i32 noundef %473, ptr noundef nonnull @.str.24) #10
  %475 = load i32, ptr %472, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef %475, ptr noundef nonnull @.str.24) #10
  %477 = load i32, ptr %458, align 4, !tbaa !5
  %478 = call ptr @strerror(i32 noundef %477) #10
  %479 = load i32, ptr %458, align 4, !tbaa !5
  %480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef nonnull %.str.25.sink403, i32 noundef %471, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 80, ptr noundef %474, ptr noundef %476, ptr noundef %478, i32 noundef %479) #12
  call void @exit(i32 noundef 1) #13
  unreachable

481:                                              ; preds = %453
  %482 = load i32, ptr @test_count, align 4, !tbaa !5
  %483 = add nsw i32 %482, 1
  store i32 %483, ptr @test_count, align 4, !tbaa !5
  %484 = call i32 @s2n_flush(ptr noundef nonnull %133, ptr noundef nonnull %4) #10
  %485 = icmp eq i32 %484, -1
  br i1 %485, label %486, label %510

486:                                              ; preds = %481
  %487 = tail call ptr @__errno_location() #11
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @s2n_print_stacktrace(ptr noundef %489) #10
  %491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %492 = trunc nuw i8 %491 to i1
  br i1 %492, label %493, label %497

493:                                              ; preds = %486
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = call i32 @fileno(ptr noundef %494) #10
  %496 = call i32 @isatty(i32 noundef %495) #10
  %.not225 = icmp eq i32 %496, 0
  br i1 %.not225, label %497, label %498

497:                                              ; preds = %493, %486
  br label %498

498:                                              ; preds = %493, %497
  %.str.25.sink414 = phi ptr [ @.str.25, %497 ], [ @.str.22, %493 ]
  store i32 %488, ptr %487, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror(i32 noundef %502, ptr noundef nonnull @.str.24) #10
  %504 = load i32, ptr %501, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror_debug(i32 noundef %504, ptr noundef nonnull @.str.24) #10
  %506 = load i32, ptr %487, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #10
  %508 = load i32, ptr %487, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %499, ptr noundef nonnull %.str.25.sink414, i32 noundef %500, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 81, ptr noundef %503, ptr noundef %505, ptr noundef %507, i32 noundef %508) #12
  call void @exit(i32 noundef 1) #13
  unreachable

510:                                              ; preds = %481
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = add nsw i32 %511, 1
  store i32 %512, ptr @test_count, align 4, !tbaa !5
  %513 = getelementptr inbounds i8, ptr %6, i64 28
  %514 = load i32, ptr %513, align 4, !tbaa !42
  %515 = getelementptr inbounds i8, ptr %6, i64 24
  %516 = load i32, ptr %515, align 8, !tbaa !43
  %.not176 = icmp eq i32 %514, %516
  br i1 %.not176, label %517, label %541

517:                                              ; preds = %510
  %518 = tail call ptr @__errno_location() #11
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @s2n_print_stacktrace(ptr noundef %520) #10
  %522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %523 = trunc nuw i8 %522 to i1
  br i1 %523, label %524, label %528

524:                                              ; preds = %517
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = call i32 @fileno(ptr noundef %525) #10
  %527 = call i32 @isatty(i32 noundef %526) #10
  %.not177 = icmp eq i32 %527, 0
  br i1 %.not177, label %528, label %529

528:                                              ; preds = %524, %517
  br label %529

529:                                              ; preds = %524, %528
  %.str.25.sink425 = phi ptr [ @.str.25, %528 ], [ @.str.22, %524 ]
  store i32 %519, ptr %518, align 4, !tbaa !5
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror(i32 noundef %533, ptr noundef nonnull @.str.24) #10
  %535 = load i32, ptr %532, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror_debug(i32 noundef %535, ptr noundef nonnull @.str.24) #10
  %537 = load i32, ptr %518, align 4, !tbaa !5
  %538 = call ptr @strerror(i32 noundef %537) #10
  %539 = load i32, ptr %518, align 4, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef nonnull %.str.25.sink425, i32 noundef %531, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 82, ptr noundef %534, ptr noundef %536, ptr noundef %538, i32 noundef %539) #12
  call void @exit(i32 noundef 1) #13
  unreachable

541:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #10
  store i8 0, ptr %7, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #10
  store i32 0, ptr %8, align 4, !tbaa !5
  %542 = add nsw i32 %511, 2
  store i32 %542, ptr @test_count, align 4, !tbaa !5
  %543 = call i32 @s2n_read_full_record(ptr noundef nonnull %133, ptr noundef nonnull %7, ptr noundef nonnull %8) #10
  %544 = icmp eq i32 %543, -1
  br i1 %544, label %545, label %569

545:                                              ; preds = %541
  %546 = tail call ptr @__errno_location() #11
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @s2n_print_stacktrace(ptr noundef %548) #10
  %550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %551 = trunc nuw i8 %550 to i1
  br i1 %551, label %552, label %556

552:                                              ; preds = %545
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = call i32 @fileno(ptr noundef %553) #10
  %555 = call i32 @isatty(i32 noundef %554) #10
  %.not224 = icmp eq i32 %555, 0
  br i1 %.not224, label %556, label %557

556:                                              ; preds = %552, %545
  br label %557

557:                                              ; preds = %552, %556
  %.str.25.sink436 = phi ptr [ @.str.25, %556 ], [ @.str.22, %552 ]
  store i32 %547, ptr %546, align 4, !tbaa !5
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror(i32 noundef %561, ptr noundef nonnull @.str.24) #10
  %563 = load i32, ptr %560, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror_debug(i32 noundef %563, ptr noundef nonnull @.str.24) #10
  %565 = load i32, ptr %546, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #10
  %567 = load i32, ptr %546, align 4, !tbaa !5
  %568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %558, ptr noundef nonnull %.str.25.sink436, i32 noundef %559, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 87, ptr noundef %562, ptr noundef %564, ptr noundef %566, i32 noundef %567) #12
  call void @exit(i32 noundef 1) #13
  unreachable

569:                                              ; preds = %541
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = add nsw i32 %570, 1
  store i32 %571, ptr @test_count, align 4, !tbaa !5
  %572 = load i8, ptr %7, align 1, !tbaa !44
  %573 = icmp eq i8 %572, 23
  br i1 %573, label %598, label %574

574:                                              ; preds = %569
  %575 = tail call ptr @__errno_location() #11
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @s2n_print_stacktrace(ptr noundef %577) #10
  %579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %580 = trunc nuw i8 %579 to i1
  br i1 %580, label %581, label %585

581:                                              ; preds = %574
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = call i32 @fileno(ptr noundef %582) #10
  %584 = call i32 @isatty(i32 noundef %583) #10
  %.not178 = icmp eq i32 %584, 0
  br i1 %.not178, label %585, label %586

585:                                              ; preds = %581, %574
  br label %586

586:                                              ; preds = %581, %585
  %.str.25.sink447 = phi ptr [ @.str.25, %585 ], [ @.str.22, %581 ]
  store i32 %576, ptr %575, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror(i32 noundef %590, ptr noundef nonnull @.str.24) #10
  %592 = load i32, ptr %589, align 4, !tbaa !5
  %593 = call ptr @s2n_strerror_debug(i32 noundef %592, ptr noundef nonnull @.str.24) #10
  %594 = load i32, ptr %575, align 4, !tbaa !5
  %595 = call ptr @strerror(i32 noundef %594) #10
  %596 = load i32, ptr %575, align 4, !tbaa !5
  %597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull %.str.25.sink447, i32 noundef %588, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 88, ptr noundef %591, ptr noundef %593, ptr noundef %595, i32 noundef %596) #12
  call void @exit(i32 noundef 1) #13
  unreachable

598:                                              ; preds = %569
  store i8 0, ptr %7, align 1, !tbaa !44
  %599 = add nsw i32 %570, 2
  store i32 %599, ptr @test_count, align 4, !tbaa !5
  %600 = call i32 @s2n_read_full_record(ptr noundef nonnull %192, ptr noundef nonnull %7, ptr noundef nonnull %8) #10
  %601 = icmp eq i32 %600, -1
  br i1 %601, label %602, label %626

602:                                              ; preds = %598
  %603 = tail call ptr @__errno_location() #11
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @s2n_print_stacktrace(ptr noundef %605) #10
  %607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %608 = trunc nuw i8 %607 to i1
  br i1 %608, label %609, label %613

609:                                              ; preds = %602
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = call i32 @fileno(ptr noundef %610) #10
  %612 = call i32 @isatty(i32 noundef %611) #10
  %.not223 = icmp eq i32 %612, 0
  br i1 %.not223, label %613, label %614

613:                                              ; preds = %609, %602
  br label %614

614:                                              ; preds = %609, %613
  %.str.25.sink458 = phi ptr [ @.str.25, %613 ], [ @.str.22, %609 ]
  store i32 %604, ptr %603, align 4, !tbaa !5
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror(i32 noundef %618, ptr noundef nonnull @.str.24) #10
  %620 = load i32, ptr %617, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror_debug(i32 noundef %620, ptr noundef nonnull @.str.24) #10
  %622 = load i32, ptr %603, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #10
  %624 = load i32, ptr %603, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %615, ptr noundef nonnull %.str.25.sink458, i32 noundef %616, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 90, ptr noundef %619, ptr noundef %621, ptr noundef %623, i32 noundef %624) #12
  call void @exit(i32 noundef 1) #13
  unreachable

626:                                              ; preds = %598
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = load i8, ptr %7, align 1, !tbaa !44
  %630 = icmp eq i8 %629, 23
  br i1 %630, label %655, label %631

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

638:                                              ; preds = %631
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @fileno(ptr noundef %639) #10
  %641 = call i32 @isatty(i32 noundef %640) #10
  %.not179 = icmp eq i32 %641, 0
  br i1 %.not179, label %642, label %643

642:                                              ; preds = %638, %631
  br label %643

643:                                              ; preds = %638, %642
  %.str.25.sink469 = phi ptr [ @.str.25, %642 ], [ @.str.22, %638 ]
  store i32 %633, ptr %632, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror(i32 noundef %647, ptr noundef nonnull @.str.24) #10
  %649 = load i32, ptr %646, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef nonnull @.str.24) #10
  %651 = load i32, ptr %632, align 4, !tbaa !5
  %652 = call ptr @strerror(i32 noundef %651) #10
  %653 = load i32, ptr %632, align 4, !tbaa !5
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef nonnull %.str.25.sink469, i32 noundef %645, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %648, ptr noundef %650, ptr noundef %652, i32 noundef %653) #12
  call void @exit(i32 noundef 1) #13
  unreachable

655:                                              ; preds = %626
  %656 = add nsw i32 %627, 2
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = call i32 @s2n_connection_free(ptr noundef nonnull %133) #10
  %658 = icmp eq i32 %657, -1
  br i1 %658, label %659, label %683

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

666:                                              ; preds = %659
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = call i32 @fileno(ptr noundef %667) #10
  %669 = call i32 @isatty(i32 noundef %668) #10
  %.not222 = icmp eq i32 %669, 0
  br i1 %.not222, label %670, label %671

670:                                              ; preds = %666, %659
  br label %671

671:                                              ; preds = %666, %670
  %.str.25.sink480 = phi ptr [ @.str.25, %670 ], [ @.str.22, %666 ]
  store i32 %661, ptr %660, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef nonnull @.str.24) #10
  %677 = load i32, ptr %674, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef nonnull @.str.24) #10
  %679 = load i32, ptr %660, align 4, !tbaa !5
  %680 = call ptr @strerror(i32 noundef %679) #10
  %681 = load i32, ptr %660, align 4, !tbaa !5
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef nonnull %.str.25.sink480, i32 noundef %673, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 93, ptr noundef %676, ptr noundef %678, ptr noundef %680, i32 noundef %681) #12
  call void @exit(i32 noundef 1) #13
  unreachable

683:                                              ; preds = %655
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = call i32 @s2n_connection_free(ptr noundef nonnull %192) #10
  %687 = icmp eq i32 %686, -1
  br i1 %687, label %688, label %712

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

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

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

700:                                              ; preds = %695, %699
  %.str.25.sink491 = phi ptr [ @.str.25, %699 ], [ @.str.22, %695 ]
  store i32 %690, ptr %689, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror(i32 noundef %704, ptr noundef nonnull @.str.24) #10
  %706 = load i32, ptr %703, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef nonnull @.str.24) #10
  %708 = load i32, ptr %689, align 4, !tbaa !5
  %709 = call ptr @strerror(i32 noundef %708) #10
  %710 = load i32, ptr %689, align 4, !tbaa !5
  %711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef nonnull %.str.25.sink491, i32 noundef %702, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 94, ptr noundef %705, ptr noundef %707, ptr noundef %709, i32 noundef %710) #12
  call void @exit(i32 noundef 1) #13
  unreachable

712:                                              ; preds = %683
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  %713 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #10
  %714 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #10
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %718 = icmp eq ptr %717, null
  br i1 %718, label %719, label %743

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

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

730:                                              ; preds = %726, %719
  br label %731

731:                                              ; preds = %726, %730
  %.str.25.sink502 = phi ptr [ @.str.25, %730 ], [ @.str.22, %726 ]
  store i32 %721, ptr %720, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror(i32 noundef %735, ptr noundef nonnull @.str.24) #10
  %737 = load i32, ptr %734, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror_debug(i32 noundef %737, ptr noundef nonnull @.str.24) #10
  %739 = load i32, ptr %720, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #10
  %741 = load i32, ptr %720, align 4, !tbaa !5
  %742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef nonnull %.str.25.sink502, i32 noundef %733, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 107, ptr noundef %736, ptr noundef %738, ptr noundef %740, i32 noundef %741) #12
  call void @exit(i32 noundef 1) #13
  unreachable

743:                                              ; preds = %712
  %744 = getelementptr inbounds i8, ptr %717, i64 220
  store i8 34, ptr %744, align 4, !tbaa !15
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %748 = icmp eq ptr %747, null
  br i1 %748, label %749, label %773

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

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

760:                                              ; preds = %756, %749
  br label %761

761:                                              ; preds = %756, %760
  %.str.25.sink513 = phi ptr [ @.str.25, %760 ], [ @.str.22, %756 ]
  store i32 %751, ptr %750, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.24) #10
  %767 = load i32, ptr %764, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.24) #10
  %769 = load i32, ptr %750, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #10
  %771 = load i32, ptr %750, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.25.sink513, i32 noundef %763, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 111, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #12
  call void @exit(i32 noundef 1) #13
  unreachable

773:                                              ; preds = %743
  %774 = getelementptr inbounds i8, ptr %747, i64 220
  store i8 34, ptr %774, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #10
  %778 = icmp eq i32 %777, -1
  br i1 %778, label %779, label %803

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

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

790:                                              ; preds = %786, %779
  br label %791

791:                                              ; preds = %786, %790
  %.str.25.sink524 = phi ptr [ @.str.25, %790 ], [ @.str.22, %786 ]
  store i32 %781, ptr %780, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror(i32 noundef %795, ptr noundef nonnull @.str.24) #10
  %797 = load i32, ptr %794, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror_debug(i32 noundef %797, ptr noundef nonnull @.str.24) #10
  %799 = load i32, ptr %780, align 4, !tbaa !5
  %800 = call ptr @strerror(i32 noundef %799) #10
  %801 = load i32, ptr %780, align 4, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef nonnull %.str.25.sink524, i32 noundef %793, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 117, ptr noundef %796, ptr noundef %798, ptr noundef %800, i32 noundef %801) #12
  call void @exit(i32 noundef 1) #13
  unreachable

803:                                              ; preds = %773
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr @test_count, align 4, !tbaa !5
  %806 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %10, i32 noundef 0) #10
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %808, label %832

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

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

819:                                              ; preds = %815, %808
  br label %820

820:                                              ; preds = %815, %819
  %.str.25.sink535 = phi ptr [ @.str.25, %819 ], [ @.str.22, %815 ]
  store i32 %810, ptr %809, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef nonnull @.str.24) #10
  %826 = load i32, ptr %823, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror_debug(i32 noundef %826, ptr noundef nonnull @.str.24) #10
  %828 = load i32, ptr %809, align 4, !tbaa !5
  %829 = call ptr @strerror(i32 noundef %828) #10
  %830 = load i32, ptr %809, align 4, !tbaa !5
  %831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef nonnull %.str.25.sink535, i32 noundef %822, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 118, ptr noundef %825, ptr noundef %827, ptr noundef %829, i32 noundef %830) #12
  call void @exit(i32 noundef 1) #13
  unreachable

832:                                              ; preds = %803
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = add nsw i32 %833, 1
  store i32 %834, ptr @test_count, align 4, !tbaa !5
  %835 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %717) #10
  %836 = icmp eq i32 %835, -1
  br i1 %836, label %837, label %861

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

844:                                              ; preds = %837
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @fileno(ptr noundef %845) #10
  %847 = call i32 @isatty(i32 noundef %846) #10
  %.not216 = icmp eq i32 %847, 0
  br i1 %.not216, label %848, label %849

848:                                              ; preds = %844, %837
  br label %849

849:                                              ; preds = %844, %848
  %.str.25.sink546 = phi ptr [ @.str.25, %848 ], [ @.str.22, %844 ]
  store i32 %839, ptr %838, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef nonnull @.str.24) #10
  %855 = load i32, ptr %852, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef nonnull @.str.24) #10
  %857 = load i32, ptr %838, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #10
  %859 = load i32, ptr %838, align 4, !tbaa !5
  %860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %850, ptr noundef nonnull %.str.25.sink546, i32 noundef %851, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 120, ptr noundef %854, ptr noundef %856, ptr noundef %858, i32 noundef %859) #12
  call void @exit(i32 noundef 1) #13
  unreachable

861:                                              ; preds = %832
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = add nsw i32 %862, 1
  store i32 %863, ptr @test_count, align 4, !tbaa !5
  %864 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %10, ptr noundef nonnull %9, ptr noundef nonnull %747) #10
  %865 = icmp eq i32 %864, -1
  br i1 %865, label %866, label %890

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

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

877:                                              ; preds = %873, %866
  br label %878

878:                                              ; preds = %873, %877
  %.str.25.sink557 = phi ptr [ @.str.25, %877 ], [ @.str.22, %873 ]
  store i32 %868, ptr %867, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef nonnull @.str.24) #10
  %884 = load i32, ptr %881, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef nonnull @.str.24) #10
  %886 = load i32, ptr %867, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #10
  %888 = load i32, ptr %867, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef nonnull %.str.25.sink557, i32 noundef %880, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 121, ptr noundef %883, ptr noundef %885, ptr noundef %887, i32 noundef %888) #12
  call void @exit(i32 noundef 1) #13
  unreachable

890:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  %891 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %11, ptr noundef nonnull @tls13_zero_length_handshake_record_hex) #10
  %892 = call zeroext i1 @s2n_result_is_ok(i32 %891)
  br i1 %892, label %893, label %1240

893:                                              ; preds = %890
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr @test_count, align 4, !tbaa !5
  %896 = load ptr, ptr %11, align 8, !tbaa !45
  %897 = getelementptr inbounds i8, ptr %11, i64 8
  %898 = load i32, ptr %897, align 8, !tbaa !46
  %899 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %9, ptr noundef %896, i32 noundef %898) #10
  %900 = icmp eq i32 %899, -1
  br i1 %900, label %901, label %925

901:                                              ; preds = %893
  %902 = tail call ptr @__errno_location() #11
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @s2n_print_stacktrace(ptr noundef %904) #10
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  br i1 %907, label %908, label %912

908:                                              ; preds = %901
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @fileno(ptr noundef %909) #10
  %911 = call i32 @isatty(i32 noundef %910) #10
  %.not214 = icmp eq i32 %911, 0
  br i1 %.not214, label %912, label %913

912:                                              ; preds = %908, %901
  br label %913

913:                                              ; preds = %908, %912
  %.str.25.sink568 = phi ptr [ @.str.25, %912 ], [ @.str.22, %908 ]
  store i32 %903, ptr %902, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror(i32 noundef %917, ptr noundef nonnull @.str.24) #10
  %919 = load i32, ptr %916, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef nonnull @.str.24) #10
  %921 = load i32, ptr %902, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #10
  %923 = load i32, ptr %902, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.25.sink568, i32 noundef %915, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 124, ptr noundef %918, ptr noundef %920, ptr noundef %922, i32 noundef %923) #12
  call void @exit(i32 noundef 1) #13
  unreachable

925:                                              ; preds = %893
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = add nsw i32 %926, 1
  store i32 %927, ptr @test_count, align 4, !tbaa !5
  %928 = load ptr, ptr %11, align 8, !tbaa !45
  %929 = load i32, ptr %897, align 8, !tbaa !46
  %930 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %10, ptr noundef %928, i32 noundef %929) #10
  %931 = icmp eq i32 %930, -1
  br i1 %931, label %932, label %956

932:                                              ; preds = %925
  %933 = tail call ptr @__errno_location() #11
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @s2n_print_stacktrace(ptr noundef %935) #10
  %937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %938 = trunc nuw i8 %937 to i1
  br i1 %938, label %939, label %943

939:                                              ; preds = %932
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @fileno(ptr noundef %940) #10
  %942 = call i32 @isatty(i32 noundef %941) #10
  %.not213 = icmp eq i32 %942, 0
  br i1 %.not213, label %943, label %944

943:                                              ; preds = %939, %932
  br label %944

944:                                              ; preds = %939, %943
  %.str.25.sink579 = phi ptr [ @.str.25, %943 ], [ @.str.22, %939 ]
  store i32 %934, ptr %933, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror(i32 noundef %948, ptr noundef nonnull @.str.24) #10
  %950 = load i32, ptr %947, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror_debug(i32 noundef %950, ptr noundef nonnull @.str.24) #10
  %952 = load i32, ptr %933, align 4, !tbaa !5
  %953 = call ptr @strerror(i32 noundef %952) #10
  %954 = load i32, ptr %933, align 4, !tbaa !5
  %955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %945, ptr noundef nonnull %.str.25.sink579, i32 noundef %946, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 125, ptr noundef %949, ptr noundef %951, ptr noundef %953, i32 noundef %954) #12
  call void @exit(i32 noundef 1) #13
  unreachable

956:                                              ; preds = %925
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = getelementptr inbounds i8, ptr %9, i64 28
  %960 = load i32, ptr %959, align 4, !tbaa !42
  %961 = getelementptr inbounds i8, ptr %9, i64 24
  %962 = load i32, ptr %961, align 8, !tbaa !43
  %963 = sub i32 %960, %962
  %964 = icmp eq i32 %963, 5
  br i1 %964, label %989, label %965

965:                                              ; preds = %956
  %966 = tail call ptr @__errno_location() #11
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @s2n_print_stacktrace(ptr noundef %968) #10
  %970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %971 = trunc nuw i8 %970 to i1
  br i1 %971, label %972, label %976

972:                                              ; preds = %965
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @fileno(ptr noundef %973) #10
  %975 = call i32 @isatty(i32 noundef %974) #10
  %.not180 = icmp eq i32 %975, 0
  br i1 %.not180, label %976, label %977

976:                                              ; preds = %972, %965
  br label %977

977:                                              ; preds = %972, %976
  %.str.25.sink590 = phi ptr [ @.str.25, %976 ], [ @.str.22, %972 ]
  store i32 %967, ptr %966, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror(i32 noundef %981, ptr noundef nonnull @.str.24) #10
  %983 = load i32, ptr %980, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef nonnull @.str.24) #10
  %985 = load i32, ptr %966, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #10
  %987 = load i32, ptr %966, align 4, !tbaa !5
  %988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %978, ptr noundef nonnull %.str.25.sink590, i32 noundef %979, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 126, ptr noundef %982, ptr noundef %984, ptr noundef %986, i32 noundef %987) #12
  call void @exit(i32 noundef 1) #13
  unreachable

989:                                              ; preds = %956
  %990 = add nsw i32 %957, 2
  store i32 %990, ptr @test_count, align 4, !tbaa !5
  %991 = getelementptr inbounds i8, ptr %10, i64 28
  %992 = load i32, ptr %991, align 4, !tbaa !42
  %993 = getelementptr inbounds i8, ptr %10, i64 24
  %994 = load i32, ptr %993, align 8, !tbaa !43
  %995 = sub i32 %992, %994
  %996 = icmp eq i32 %995, 5
  br i1 %996, label %1021, label %997

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

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

1008:                                             ; preds = %1004, %997
  br label %1009

1009:                                             ; preds = %1004, %1008
  %.str.25.sink601 = phi ptr [ @.str.25, %1008 ], [ @.str.22, %1004 ]
  store i32 %999, ptr %998, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror(i32 noundef %1013, ptr noundef nonnull @.str.24) #10
  %1015 = load i32, ptr %1012, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror_debug(i32 noundef %1015, ptr noundef nonnull @.str.24) #10
  %1017 = load i32, ptr %998, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #10
  %1019 = load i32, ptr %998, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1010, ptr noundef nonnull %.str.25.sink601, i32 noundef %1011, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 127, ptr noundef %1014, ptr noundef %1016, ptr noundef %1018, i32 noundef %1019) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1021:                                             ; preds = %989
  %1022 = add nsw i32 %957, 3
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %717)
  %1024 = icmp eq i32 %1023, -1
  br i1 %1024, label %1049, label %1025

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

1032:                                             ; preds = %1025
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @fileno(ptr noundef %1033) #10
  %1035 = call i32 @isatty(i32 noundef %1034) #10
  %.not182 = icmp eq i32 %1035, 0
  br i1 %.not182, label %1036, label %1037

1036:                                             ; preds = %1032, %1025
  br label %1037

1037:                                             ; preds = %1032, %1036
  %.str.25.sink612 = phi ptr [ @.str.25, %1036 ], [ @.str.22, %1032 ]
  store i32 %1027, ptr %1026, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror(i32 noundef %1041, ptr noundef nonnull @.str.24) #10
  %1043 = load i32, ptr %1040, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef nonnull @.str.24) #10
  %1045 = load i32, ptr %1026, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #10
  %1047 = load i32, ptr %1026, align 4, !tbaa !5
  %1048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1038, ptr noundef nonnull %.str.25.sink612, i32 noundef %1039, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 129, ptr noundef %1042, ptr noundef %1044, ptr noundef %1046, i32 noundef %1047) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1049:                                             ; preds = %1021
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = icmp eq i32 %1053, 335544322
  br i1 %1054, label %1078, label %1055

1055:                                             ; preds = %1049
  %1056 = tail call ptr @__errno_location() #11
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @s2n_print_stacktrace(ptr noundef %1058) #10
  %1060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1061 = trunc nuw i8 %1060 to i1
  br i1 %1061, label %1062, label %1066

1062:                                             ; preds = %1055
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @fileno(ptr noundef %1063) #10
  %1065 = call i32 @isatty(i32 noundef %1064) #10
  %.not183 = icmp eq i32 %1065, 0
  br i1 %.not183, label %1066, label %1067

1066:                                             ; preds = %1062, %1055
  br label %1067

1067:                                             ; preds = %1062, %1066
  %.str.25.sink623 = phi ptr [ @.str.25, %1066 ], [ @.str.22, %1062 ]
  store i32 %1057, ptr %1056, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = load i32, ptr @test_count, align 4, !tbaa !5
  %1070 = load i32, ptr %1052, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror(i32 noundef %1070, ptr noundef nonnull @.str.24) #10
  %1072 = load i32, ptr %1052, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror_debug(i32 noundef %1072, ptr noundef nonnull @.str.24) #10
  %1074 = load i32, ptr %1056, align 4, !tbaa !5
  %1075 = call ptr @strerror(i32 noundef %1074) #10
  %1076 = load i32, ptr %1056, align 4, !tbaa !5
  %1077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1068, ptr noundef nonnull %.str.25.sink623, i32 noundef %1069, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 129, ptr noundef %1071, ptr noundef %1073, ptr noundef %1075, i32 noundef %1076) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1078:                                             ; preds = %1049
  %1079 = add nsw i32 %1050, 2
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %1081 = icmp eq ptr %1080, null
  br i1 %1081, label %1082, label %1105

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

1089:                                             ; preds = %1082
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @fileno(ptr noundef %1090) #10
  %1092 = call i32 @isatty(i32 noundef %1091) #10
  %.not212 = icmp eq i32 %1092, 0
  br i1 %.not212, label %1093, label %1094

1093:                                             ; preds = %1089, %1082
  br label %1094

1094:                                             ; preds = %1089, %1093
  %.str.25.sink632 = phi ptr [ @.str.25, %1093 ], [ @.str.22, %1089 ]
  store i32 %1084, ptr %1083, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = load i32, ptr %1052, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef nonnull @.str.24) #10
  %1099 = load i32, ptr %1052, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef nonnull @.str.24) #10
  %1101 = load i32, ptr %1083, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #10
  %1103 = load i32, ptr %1083, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1095, ptr noundef nonnull %.str.25.sink632, i32 noundef %1096, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 129, ptr noundef %1098, ptr noundef %1100, ptr noundef %1102, i32 noundef %1103) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1105:                                             ; preds = %1078
  store i32 0, ptr %1052, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %1106 = tail call ptr @__errno_location() #11
  store i32 0, ptr %1106, align 4, !tbaa !5
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = add nsw i32 %1107, 1
  store i32 %1108, ptr @test_count, align 4, !tbaa !5
  %1109 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %747)
  %1110 = icmp eq i32 %1109, -1
  br i1 %1110, label %1133, label %1111

1111:                                             ; preds = %1105
  %1112 = load i32, ptr %1106, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = call i32 @s2n_print_stacktrace(ptr noundef %1113) #10
  %1115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1116 = trunc nuw i8 %1115 to i1
  br i1 %1116, label %1117, label %1121

1117:                                             ; preds = %1111
  %1118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1119 = call i32 @fileno(ptr noundef %1118) #10
  %1120 = call i32 @isatty(i32 noundef %1119) #10
  %.not184 = icmp eq i32 %1120, 0
  br i1 %.not184, label %1121, label %1122

1121:                                             ; preds = %1117, %1111
  br label %1122

1122:                                             ; preds = %1117, %1121
  %.str.25.sink641 = phi ptr [ @.str.25, %1121 ], [ @.str.22, %1117 ]
  store i32 %1112, ptr %1106, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = load i32, ptr %1052, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef nonnull @.str.24) #10
  %1127 = load i32, ptr %1052, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef nonnull @.str.24) #10
  %1129 = load i32, ptr %1106, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #10
  %1131 = load i32, ptr %1106, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1123, ptr noundef nonnull %.str.25.sink641, i32 noundef %1124, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 130, ptr noundef %1126, ptr noundef %1128, ptr noundef %1130, i32 noundef %1131) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1133:                                             ; preds = %1105
  %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 = load i32, ptr %1052, align 4, !tbaa !5
  %1137 = icmp eq i32 %1136, 335544322
  br i1 %1137, label %1160, label %1138

1138:                                             ; preds = %1133
  %1139 = load i32, ptr %1106, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140) #10
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1148

1144:                                             ; preds = %1138
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #10
  %1147 = call i32 @isatty(i32 noundef %1146) #10
  %.not185 = icmp eq i32 %1147, 0
  br i1 %.not185, label %1148, label %1149

1148:                                             ; preds = %1144, %1138
  br label %1149

1149:                                             ; preds = %1144, %1148
  %.str.25.sink650 = phi ptr [ @.str.25, %1148 ], [ @.str.22, %1144 ]
  store i32 %1139, ptr %1106, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = load i32, ptr %1052, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef nonnull @.str.24) #10
  %1154 = load i32, ptr %1052, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef nonnull @.str.24) #10
  %1156 = load i32, ptr %1106, align 4, !tbaa !5
  %1157 = call ptr @strerror(i32 noundef %1156) #10
  %1158 = load i32, ptr %1106, align 4, !tbaa !5
  %1159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef nonnull %.str.25.sink650, i32 noundef %1151, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 130, ptr noundef %1153, ptr noundef %1155, ptr noundef %1157, i32 noundef %1158) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1160:                                             ; preds = %1133
  %1161 = add nsw i32 %1134, 2
  store i32 %1161, ptr @test_count, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %1163 = icmp eq ptr %1162, null
  br i1 %1163, label %1164, label %1186

1164:                                             ; preds = %1160
  %1165 = load i32, ptr %1106, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @s2n_print_stacktrace(ptr noundef %1166) #10
  %1168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1169 = trunc nuw i8 %1168 to i1
  br i1 %1169, label %1170, label %1174

1170:                                             ; preds = %1164
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = call i32 @fileno(ptr noundef %1171) #10
  %1173 = call i32 @isatty(i32 noundef %1172) #10
  %.not211 = icmp eq i32 %1173, 0
  br i1 %.not211, label %1174, label %1175

1174:                                             ; preds = %1170, %1164
  br label %1175

1175:                                             ; preds = %1170, %1174
  %.str.25.sink659 = phi ptr [ @.str.25, %1174 ], [ @.str.22, %1170 ]
  store i32 %1165, ptr %1106, align 4, !tbaa !5
  %1176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = load i32, ptr %1052, align 4, !tbaa !5
  %1179 = call ptr @s2n_strerror(i32 noundef %1178, ptr noundef nonnull @.str.24) #10
  %1180 = load i32, ptr %1052, align 4, !tbaa !5
  %1181 = call ptr @s2n_strerror_debug(i32 noundef %1180, ptr noundef nonnull @.str.24) #10
  %1182 = load i32, ptr %1106, align 4, !tbaa !5
  %1183 = call ptr @strerror(i32 noundef %1182) #10
  %1184 = load i32, ptr %1106, align 4, !tbaa !5
  %1185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1176, ptr noundef nonnull %.str.25.sink659, i32 noundef %1177, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 130, ptr noundef %1179, ptr noundef %1181, ptr noundef %1183, i32 noundef %1184) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1186:                                             ; preds = %1160
  store i32 0, ptr %1052, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %1106, align 4, !tbaa !5
  %1187 = load i32, ptr @test_count, align 4, !tbaa !5
  %1188 = add nsw i32 %1187, 1
  store i32 %1188, ptr @test_count, align 4, !tbaa !5
  %1189 = call i32 @s2n_connection_free(ptr noundef nonnull %717) #10
  %1190 = icmp eq i32 %1189, -1
  br i1 %1190, label %1191, label %1213

1191:                                             ; preds = %1186
  %1192 = load i32, ptr %1106, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @s2n_print_stacktrace(ptr noundef %1193) #10
  %1195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1196 = trunc nuw i8 %1195 to i1
  br i1 %1196, label %1197, label %1201

1197:                                             ; preds = %1191
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = call i32 @fileno(ptr noundef %1198) #10
  %1200 = call i32 @isatty(i32 noundef %1199) #10
  %.not210 = icmp eq i32 %1200, 0
  br i1 %.not210, label %1201, label %1202

1201:                                             ; preds = %1197, %1191
  br label %1202

1202:                                             ; preds = %1197, %1201
  %.str.25.sink668 = phi ptr [ @.str.25, %1201 ], [ @.str.22, %1197 ]
  store i32 %1192, ptr %1106, align 4, !tbaa !5
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = load i32, ptr %1052, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror(i32 noundef %1205, ptr noundef nonnull @.str.24) #10
  %1207 = load i32, ptr %1052, align 4, !tbaa !5
  %1208 = call ptr @s2n_strerror_debug(i32 noundef %1207, ptr noundef nonnull @.str.24) #10
  %1209 = load i32, ptr %1106, align 4, !tbaa !5
  %1210 = call ptr @strerror(i32 noundef %1209) #10
  %1211 = load i32, ptr %1106, align 4, !tbaa !5
  %1212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1203, ptr noundef nonnull %.str.25.sink668, i32 noundef %1204, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 132, ptr noundef %1206, ptr noundef %1208, ptr noundef %1210, i32 noundef %1211) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1213:                                             ; preds = %1186
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = add nsw i32 %1214, 1
  store i32 %1215, ptr @test_count, align 4, !tbaa !5
  %1216 = call i32 @s2n_connection_free(ptr noundef nonnull %747) #10
  %1217 = icmp eq i32 %1216, -1
  br i1 %1217, label %1218, label %1240

1218:                                             ; preds = %1213
  %1219 = load i32, ptr %1106, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @s2n_print_stacktrace(ptr noundef %1220) #10
  %1222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1223 = trunc nuw i8 %1222 to i1
  br i1 %1223, label %1224, label %1228

1224:                                             ; preds = %1218
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @fileno(ptr noundef %1225) #10
  %1227 = call i32 @isatty(i32 noundef %1226) #10
  %.not209 = icmp eq i32 %1227, 0
  br i1 %.not209, label %1228, label %1229

1228:                                             ; preds = %1224, %1218
  br label %1229

1229:                                             ; preds = %1224, %1228
  %.str.25.sink677 = phi ptr [ @.str.25, %1228 ], [ @.str.22, %1224 ]
  store i32 %1219, ptr %1106, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = load i32, ptr %1052, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror(i32 noundef %1232, ptr noundef nonnull @.str.24) #10
  %1234 = load i32, ptr %1052, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef nonnull @.str.24) #10
  %1236 = load i32, ptr %1106, align 4, !tbaa !5
  %1237 = call ptr @strerror(i32 noundef %1236) #10
  %1238 = load i32, ptr %1106, align 4, !tbaa !5
  %1239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef nonnull %.str.25.sink677, i32 noundef %1231, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 133, ptr noundef %1233, ptr noundef %1235, ptr noundef %1237, i32 noundef %1238) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1240:                                             ; preds = %1213, %890
  %.0 = phi i32 [ -1, %890 ], [ 0, %1213 ]
  %1241 = call i32 @s2n_free(ptr noundef nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #10
  %1242 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #10
  %1243 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #10
  br i1 %892, label %1244, label %1849

1244:                                             ; preds = %1240
  %1245 = load i32, ptr @test_count, align 4, !tbaa !5
  %1246 = add nsw i32 %1245, 1
  store i32 %1246, ptr @test_count, align 4, !tbaa !5
  %1247 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1248 = icmp eq ptr %1247, null
  br i1 %1248, label %1249, label %1273

1249:                                             ; preds = %1244
  %1250 = tail call ptr @__errno_location() #11
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252) #10
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc nuw i8 %1254 to i1
  br i1 %1255, label %1256, label %1260

1256:                                             ; preds = %1249
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #10
  %1259 = call i32 @isatty(i32 noundef %1258) #10
  %.not208 = icmp eq i32 %1259, 0
  br i1 %.not208, label %1260, label %1261

1260:                                             ; preds = %1256, %1249
  br label %1261

1261:                                             ; preds = %1256, %1260
  %.str.25.sink686 = phi ptr [ @.str.25, %1260 ], [ @.str.22, %1256 ]
  store i32 %1251, ptr %1250, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror(i32 noundef %1265, ptr noundef nonnull @.str.24) #10
  %1267 = load i32, ptr %1264, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror_debug(i32 noundef %1267, ptr noundef nonnull @.str.24) #10
  %1269 = load i32, ptr %1250, align 4, !tbaa !5
  %1270 = call ptr @strerror(i32 noundef %1269) #10
  %1271 = load i32, ptr %1250, align 4, !tbaa !5
  %1272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef nonnull %.str.25.sink686, i32 noundef %1263, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 146, ptr noundef %1266, ptr noundef %1268, ptr noundef %1270, i32 noundef %1271) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1273:                                             ; preds = %1244
  %1274 = getelementptr inbounds i8, ptr %1247, i64 220
  store i8 34, ptr %1274, align 4, !tbaa !15
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = add nsw i32 %1275, 1
  store i32 %1276, ptr @test_count, align 4, !tbaa !5
  %1277 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1278 = icmp eq ptr %1277, null
  br i1 %1278, label %1279, label %1303

1279:                                             ; preds = %1273
  %1280 = tail call ptr @__errno_location() #11
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @s2n_print_stacktrace(ptr noundef %1282) #10
  %1284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1285 = trunc nuw i8 %1284 to i1
  br i1 %1285, label %1286, label %1290

1286:                                             ; preds = %1279
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #10
  %1289 = call i32 @isatty(i32 noundef %1288) #10
  %.not207 = icmp eq i32 %1289, 0
  br i1 %.not207, label %1290, label %1291

1290:                                             ; preds = %1286, %1279
  br label %1291

1291:                                             ; preds = %1286, %1290
  %.str.25.sink697 = phi ptr [ @.str.25, %1290 ], [ @.str.22, %1286 ]
  store i32 %1281, ptr %1280, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef nonnull @.str.24) #10
  %1297 = load i32, ptr %1294, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef nonnull @.str.24) #10
  %1299 = load i32, ptr %1280, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #10
  %1301 = load i32, ptr %1280, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef nonnull %.str.25.sink697, i32 noundef %1293, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 150, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, i32 noundef %1301) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1303:                                             ; preds = %1273
  %1304 = getelementptr inbounds i8, ptr %1277, i64 220
  store i8 34, ptr %1304, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr @test_count, align 4, !tbaa !5
  %1307 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %12, i32 noundef 0) #10
  %1308 = icmp eq i32 %1307, -1
  br i1 %1308, label %1309, label %1333

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

1316:                                             ; preds = %1309
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = call i32 @fileno(ptr noundef %1317) #10
  %1319 = call i32 @isatty(i32 noundef %1318) #10
  %.not206 = icmp eq i32 %1319, 0
  br i1 %.not206, label %1320, label %1321

1320:                                             ; preds = %1316, %1309
  br label %1321

1321:                                             ; preds = %1316, %1320
  %.str.25.sink708 = phi ptr [ @.str.25, %1320 ], [ @.str.22, %1316 ]
  store i32 %1311, ptr %1310, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef nonnull @.str.24) #10
  %1327 = load i32, ptr %1324, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef nonnull @.str.24) #10
  %1329 = load i32, ptr %1310, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #10
  %1331 = load i32, ptr %1310, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef nonnull %.str.25.sink708, i32 noundef %1323, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 156, ptr noundef %1326, ptr noundef %1328, ptr noundef %1330, i32 noundef %1331) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1333:                                             ; preds = %1303
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %13, i32 noundef 0) #10
  %1337 = icmp eq i32 %1336, -1
  br i1 %1337, label %1338, label %1362

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

1345:                                             ; preds = %1338
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @fileno(ptr noundef %1346) #10
  %1348 = call i32 @isatty(i32 noundef %1347) #10
  %.not205 = icmp eq i32 %1348, 0
  br i1 %.not205, label %1349, label %1350

1349:                                             ; preds = %1345, %1338
  br label %1350

1350:                                             ; preds = %1345, %1349
  %.str.25.sink719 = phi ptr [ @.str.25, %1349 ], [ @.str.22, %1345 ]
  store i32 %1340, ptr %1339, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef nonnull @.str.24) #10
  %1356 = load i32, ptr %1353, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef nonnull @.str.24) #10
  %1358 = load i32, ptr %1339, align 4, !tbaa !5
  %1359 = call ptr @strerror(i32 noundef %1358) #10
  %1360 = load i32, ptr %1339, align 4, !tbaa !5
  %1361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef nonnull %.str.25.sink719, i32 noundef %1352, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 157, ptr noundef %1355, ptr noundef %1357, ptr noundef %1359, i32 noundef %1360) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1362:                                             ; preds = %1333
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, 1
  store i32 %1364, ptr @test_count, align 4, !tbaa !5
  %1365 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %1247) #10
  %1366 = icmp eq i32 %1365, -1
  br i1 %1366, label %1367, label %1391

1367:                                             ; preds = %1362
  %1368 = tail call ptr @__errno_location() #11
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @s2n_print_stacktrace(ptr noundef %1370) #10
  %1372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1373 = trunc nuw i8 %1372 to i1
  br i1 %1373, label %1374, label %1378

1374:                                             ; preds = %1367
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @fileno(ptr noundef %1375) #10
  %1377 = call i32 @isatty(i32 noundef %1376) #10
  %.not204 = icmp eq i32 %1377, 0
  br i1 %.not204, label %1378, label %1379

1378:                                             ; preds = %1374, %1367
  br label %1379

1379:                                             ; preds = %1374, %1378
  %.str.25.sink730 = phi ptr [ @.str.25, %1378 ], [ @.str.22, %1374 ]
  store i32 %1369, ptr %1368, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef nonnull @.str.24) #10
  %1385 = load i32, ptr %1382, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror_debug(i32 noundef %1385, ptr noundef nonnull @.str.24) #10
  %1387 = load i32, ptr %1368, align 4, !tbaa !5
  %1388 = call ptr @strerror(i32 noundef %1387) #10
  %1389 = load i32, ptr %1368, align 4, !tbaa !5
  %1390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef nonnull %.str.25.sink730, i32 noundef %1381, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 159, ptr noundef %1384, ptr noundef %1386, ptr noundef %1388, i32 noundef %1389) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1391:                                             ; preds = %1362
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = add nsw i32 %1392, 1
  store i32 %1393, ptr @test_count, align 4, !tbaa !5
  %1394 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %1277) #10
  %1395 = icmp eq i32 %1394, -1
  br i1 %1395, label %1396, label %1420

1396:                                             ; preds = %1391
  %1397 = tail call ptr @__errno_location() #11
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @s2n_print_stacktrace(ptr noundef %1399) #10
  %1401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1402 = trunc nuw i8 %1401 to i1
  br i1 %1402, label %1403, label %1407

1403:                                             ; preds = %1396
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = call i32 @fileno(ptr noundef %1404) #10
  %1406 = call i32 @isatty(i32 noundef %1405) #10
  %.not203 = icmp eq i32 %1406, 0
  br i1 %.not203, label %1407, label %1408

1407:                                             ; preds = %1403, %1396
  br label %1408

1408:                                             ; preds = %1403, %1407
  %.str.25.sink741 = phi ptr [ @.str.25, %1407 ], [ @.str.22, %1403 ]
  store i32 %1398, ptr %1397, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror(i32 noundef %1412, ptr noundef nonnull @.str.24) #10
  %1414 = load i32, ptr %1411, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef nonnull @.str.24) #10
  %1416 = load i32, ptr %1397, align 4, !tbaa !5
  %1417 = call ptr @strerror(i32 noundef %1416) #10
  %1418 = load i32, ptr %1397, align 4, !tbaa !5
  %1419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1409, ptr noundef nonnull %.str.25.sink741, i32 noundef %1410, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 160, ptr noundef %1413, ptr noundef %1415, ptr noundef %1417, i32 noundef %1418) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1420:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %1421 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %14, ptr noundef nonnull @tls13_zero_length_alert_record_hex) #10
  %1422 = call zeroext i1 @s2n_result_is_ok(i32 %1421)
  br i1 %1422, label %1423, label %1770

1423:                                             ; preds = %1420
  %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 = load ptr, ptr %14, align 8, !tbaa !45
  %1427 = getelementptr inbounds i8, ptr %14, i64 8
  %1428 = load i32, ptr %1427, align 8, !tbaa !46
  %1429 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %12, ptr noundef %1426, i32 noundef %1428) #10
  %1430 = icmp eq i32 %1429, -1
  br i1 %1430, label %1431, label %1455

1431:                                             ; preds = %1423
  %1432 = tail call ptr @__errno_location() #11
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = call i32 @s2n_print_stacktrace(ptr noundef %1434) #10
  %1436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1437 = trunc nuw i8 %1436 to i1
  br i1 %1437, label %1438, label %1442

1438:                                             ; preds = %1431
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = call i32 @fileno(ptr noundef %1439) #10
  %1441 = call i32 @isatty(i32 noundef %1440) #10
  %.not202 = icmp eq i32 %1441, 0
  br i1 %.not202, label %1442, label %1443

1442:                                             ; preds = %1438, %1431
  br label %1443

1443:                                             ; preds = %1438, %1442
  %.str.25.sink752 = phi ptr [ @.str.25, %1442 ], [ @.str.22, %1438 ]
  store i32 %1433, ptr %1432, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef nonnull @.str.24) #10
  %1449 = load i32, ptr %1446, align 4, !tbaa !5
  %1450 = call ptr @s2n_strerror_debug(i32 noundef %1449, ptr noundef nonnull @.str.24) #10
  %1451 = load i32, ptr %1432, align 4, !tbaa !5
  %1452 = call ptr @strerror(i32 noundef %1451) #10
  %1453 = load i32, ptr %1432, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef nonnull %.str.25.sink752, i32 noundef %1445, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 163, ptr noundef %1448, ptr noundef %1450, ptr noundef %1452, i32 noundef %1453) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1455:                                             ; preds = %1423
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = add nsw i32 %1456, 1
  store i32 %1457, ptr @test_count, align 4, !tbaa !5
  %1458 = load ptr, ptr %14, align 8, !tbaa !45
  %1459 = load i32, ptr %1427, align 8, !tbaa !46
  %1460 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %13, ptr noundef %1458, i32 noundef %1459) #10
  %1461 = icmp eq i32 %1460, -1
  br i1 %1461, label %1462, label %1486

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

1469:                                             ; preds = %1462
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = call i32 @fileno(ptr noundef %1470) #10
  %1472 = call i32 @isatty(i32 noundef %1471) #10
  %.not201 = icmp eq i32 %1472, 0
  br i1 %.not201, label %1473, label %1474

1473:                                             ; preds = %1469, %1462
  br label %1474

1474:                                             ; preds = %1469, %1473
  %.str.25.sink763 = phi ptr [ @.str.25, %1473 ], [ @.str.22, %1469 ]
  store i32 %1464, ptr %1463, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = load i32, ptr @test_count, align 4, !tbaa !5
  %1477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  %1479 = call ptr @s2n_strerror(i32 noundef %1478, ptr noundef nonnull @.str.24) #10
  %1480 = load i32, ptr %1477, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef nonnull @.str.24) #10
  %1482 = load i32, ptr %1463, align 4, !tbaa !5
  %1483 = call ptr @strerror(i32 noundef %1482) #10
  %1484 = load i32, ptr %1463, align 4, !tbaa !5
  %1485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1475, ptr noundef nonnull %.str.25.sink763, i32 noundef %1476, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 164, ptr noundef %1479, ptr noundef %1481, ptr noundef %1483, i32 noundef %1484) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1486:                                             ; preds = %1455
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @test_count, align 4, !tbaa !5
  %1489 = getelementptr inbounds i8, ptr %12, i64 28
  %1490 = load i32, ptr %1489, align 4, !tbaa !42
  %1491 = getelementptr inbounds i8, ptr %12, i64 24
  %1492 = load i32, ptr %1491, align 8, !tbaa !43
  %1493 = sub i32 %1490, %1492
  %1494 = icmp eq i32 %1493, 5
  br i1 %1494, label %1519, label %1495

1495:                                             ; preds = %1486
  %1496 = tail call ptr @__errno_location() #11
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @s2n_print_stacktrace(ptr noundef %1498) #10
  %1500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1501 = trunc nuw i8 %1500 to i1
  br i1 %1501, label %1502, label %1506

1502:                                             ; preds = %1495
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @fileno(ptr noundef %1503) #10
  %1505 = call i32 @isatty(i32 noundef %1504) #10
  %.not186 = icmp eq i32 %1505, 0
  br i1 %.not186, label %1506, label %1507

1506:                                             ; preds = %1502, %1495
  br label %1507

1507:                                             ; preds = %1502, %1506
  %.str.25.sink774 = phi ptr [ @.str.25, %1506 ], [ @.str.22, %1502 ]
  store i32 %1497, ptr %1496, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef nonnull @.str.24) #10
  %1513 = load i32, ptr %1510, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror_debug(i32 noundef %1513, ptr noundef nonnull @.str.24) #10
  %1515 = load i32, ptr %1496, align 4, !tbaa !5
  %1516 = call ptr @strerror(i32 noundef %1515) #10
  %1517 = load i32, ptr %1496, align 4, !tbaa !5
  %1518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef nonnull %.str.25.sink774, i32 noundef %1509, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 165, ptr noundef %1512, ptr noundef %1514, ptr noundef %1516, i32 noundef %1517) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1519:                                             ; preds = %1486
  %1520 = add nsw i32 %1487, 2
  store i32 %1520, ptr @test_count, align 4, !tbaa !5
  %1521 = getelementptr inbounds i8, ptr %13, i64 28
  %1522 = load i32, ptr %1521, align 4, !tbaa !42
  %1523 = getelementptr inbounds i8, ptr %13, i64 24
  %1524 = load i32, ptr %1523, align 8, !tbaa !43
  %1525 = sub i32 %1522, %1524
  %1526 = icmp eq i32 %1525, 5
  br i1 %1526, label %1551, label %1527

1527:                                             ; preds = %1519
  %1528 = tail call ptr @__errno_location() #11
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530) #10
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc nuw i8 %1532 to i1
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1527
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #10
  %1537 = call i32 @isatty(i32 noundef %1536) #10
  %.not187 = icmp eq i32 %1537, 0
  br i1 %.not187, label %1538, label %1539

1538:                                             ; preds = %1534, %1527
  br label %1539

1539:                                             ; preds = %1534, %1538
  %.str.25.sink785 = phi ptr [ @.str.25, %1538 ], [ @.str.22, %1534 ]
  store i32 %1529, ptr %1528, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror(i32 noundef %1543, ptr noundef nonnull @.str.24) #10
  %1545 = load i32, ptr %1542, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror_debug(i32 noundef %1545, ptr noundef nonnull @.str.24) #10
  %1547 = load i32, ptr %1528, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #10
  %1549 = load i32, ptr %1528, align 4, !tbaa !5
  %1550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull %.str.25.sink785, i32 noundef %1541, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 166, ptr noundef %1544, ptr noundef %1546, ptr noundef %1548, i32 noundef %1549) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1551:                                             ; preds = %1519
  %1552 = add nsw i32 %1487, 3
  store i32 %1552, ptr @test_count, align 4, !tbaa !5
  %1553 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %1247)
  %1554 = icmp eq i32 %1553, -1
  br i1 %1554, label %1579, label %1555

1555:                                             ; preds = %1551
  %1556 = tail call ptr @__errno_location() #11
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @s2n_print_stacktrace(ptr noundef %1558) #10
  %1560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1561 = trunc nuw i8 %1560 to i1
  br i1 %1561, label %1562, label %1566

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

1566:                                             ; preds = %1562, %1555
  br label %1567

1567:                                             ; preds = %1562, %1566
  %.str.25.sink796 = phi ptr [ @.str.25, %1566 ], [ @.str.22, %1562 ]
  store i32 %1557, ptr %1556, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror(i32 noundef %1571, ptr noundef nonnull @.str.24) #10
  %1573 = load i32, ptr %1570, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror_debug(i32 noundef %1573, ptr noundef nonnull @.str.24) #10
  %1575 = load i32, ptr %1556, align 4, !tbaa !5
  %1576 = call ptr @strerror(i32 noundef %1575) #10
  %1577 = load i32, ptr %1556, align 4, !tbaa !5
  %1578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1568, ptr noundef nonnull %.str.25.sink796, i32 noundef %1569, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 168, ptr noundef %1572, ptr noundef %1574, ptr noundef %1576, i32 noundef %1577) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1579:                                             ; preds = %1551
  %1580 = load i32, ptr @test_count, align 4, !tbaa !5
  %1581 = add nsw i32 %1580, 1
  store i32 %1581, ptr @test_count, align 4, !tbaa !5
  %1582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = icmp eq i32 %1583, 335544322
  br i1 %1584, label %1608, label %1585

1585:                                             ; preds = %1579
  %1586 = tail call ptr @__errno_location() #11
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #10
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1585
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #10
  %1595 = call i32 @isatty(i32 noundef %1594) #10
  %.not189 = icmp eq i32 %1595, 0
  br i1 %.not189, label %1596, label %1597

1596:                                             ; preds = %1592, %1585
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.25.sink807 = phi ptr [ @.str.25, %1596 ], [ @.str.22, %1592 ]
  store i32 %1587, ptr %1586, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = load i32, ptr %1582, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.24) #10
  %1602 = load i32, ptr %1582, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.24) #10
  %1604 = load i32, ptr %1586, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #10
  %1606 = load i32, ptr %1586, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.25.sink807, i32 noundef %1599, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 168, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1608:                                             ; preds = %1579
  %1609 = add nsw i32 %1580, 2
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %1611 = icmp eq ptr %1610, null
  br i1 %1611, label %1612, label %1635

1612:                                             ; preds = %1608
  %1613 = tail call ptr @__errno_location() #11
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @s2n_print_stacktrace(ptr noundef %1615) #10
  %1617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1618 = trunc nuw i8 %1617 to i1
  br i1 %1618, label %1619, label %1623

1619:                                             ; preds = %1612
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @fileno(ptr noundef %1620) #10
  %1622 = call i32 @isatty(i32 noundef %1621) #10
  %.not200 = icmp eq i32 %1622, 0
  br i1 %.not200, label %1623, label %1624

1623:                                             ; preds = %1619, %1612
  br label %1624

1624:                                             ; preds = %1619, %1623
  %.str.25.sink816 = phi ptr [ @.str.25, %1623 ], [ @.str.22, %1619 ]
  store i32 %1614, ptr %1613, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = load i32, ptr %1582, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.24) #10
  %1629 = load i32, ptr %1582, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.24) #10
  %1631 = load i32, ptr %1613, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #10
  %1633 = load i32, ptr %1613, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef nonnull %.str.25.sink816, i32 noundef %1626, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 168, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1635:                                             ; preds = %1608
  store i32 0, ptr %1582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %1636 = tail call ptr @__errno_location() #11
  store i32 0, ptr %1636, align 4, !tbaa !5
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = add nsw i32 %1637, 1
  store i32 %1638, ptr @test_count, align 4, !tbaa !5
  %1639 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %1277)
  %1640 = icmp eq i32 %1639, -1
  br i1 %1640, label %1663, label %1641

1641:                                             ; preds = %1635
  %1642 = load i32, ptr %1636, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @s2n_print_stacktrace(ptr noundef %1643) #10
  %1645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1646 = trunc nuw i8 %1645 to i1
  br i1 %1646, label %1647, label %1651

1647:                                             ; preds = %1641
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = call i32 @fileno(ptr noundef %1648) #10
  %1650 = call i32 @isatty(i32 noundef %1649) #10
  %.not190 = icmp eq i32 %1650, 0
  br i1 %.not190, label %1651, label %1652

1651:                                             ; preds = %1647, %1641
  br label %1652

1652:                                             ; preds = %1647, %1651
  %.str.25.sink825 = phi ptr [ @.str.25, %1651 ], [ @.str.22, %1647 ]
  store i32 %1642, ptr %1636, align 4, !tbaa !5
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = load i32, ptr %1582, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror(i32 noundef %1655, ptr noundef nonnull @.str.24) #10
  %1657 = load i32, ptr %1582, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror_debug(i32 noundef %1657, ptr noundef nonnull @.str.24) #10
  %1659 = load i32, ptr %1636, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #10
  %1661 = load i32, ptr %1636, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef nonnull %.str.25.sink825, i32 noundef %1654, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 169, ptr noundef %1656, ptr noundef %1658, ptr noundef %1660, i32 noundef %1661) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1663:                                             ; preds = %1635
  %1664 = load i32, ptr @test_count, align 4, !tbaa !5
  %1665 = add nsw i32 %1664, 1
  store i32 %1665, ptr @test_count, align 4, !tbaa !5
  %1666 = load i32, ptr %1582, align 4, !tbaa !5
  %1667 = icmp eq i32 %1666, 335544322
  br i1 %1667, label %1690, label %1668

1668:                                             ; preds = %1663
  %1669 = load i32, ptr %1636, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @s2n_print_stacktrace(ptr noundef %1670) #10
  %1672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1673 = trunc nuw i8 %1672 to i1
  br i1 %1673, label %1674, label %1678

1674:                                             ; preds = %1668
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @fileno(ptr noundef %1675) #10
  %1677 = call i32 @isatty(i32 noundef %1676) #10
  %.not191 = icmp eq i32 %1677, 0
  br i1 %.not191, label %1678, label %1679

1678:                                             ; preds = %1674, %1668
  br label %1679

1679:                                             ; preds = %1674, %1678
  %.str.25.sink834 = phi ptr [ @.str.25, %1678 ], [ @.str.22, %1674 ]
  store i32 %1669, ptr %1636, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = load i32, ptr %1582, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror(i32 noundef %1682, ptr noundef nonnull @.str.24) #10
  %1684 = load i32, ptr %1582, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef nonnull @.str.24) #10
  %1686 = load i32, ptr %1636, align 4, !tbaa !5
  %1687 = call ptr @strerror(i32 noundef %1686) #10
  %1688 = load i32, ptr %1636, align 4, !tbaa !5
  %1689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1680, ptr noundef nonnull %.str.25.sink834, i32 noundef %1681, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 169, ptr noundef %1683, ptr noundef %1685, ptr noundef %1687, i32 noundef %1688) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1690:                                             ; preds = %1663
  %1691 = add nsw i32 %1664, 2
  store i32 %1691, ptr @test_count, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %1693 = icmp eq ptr %1692, null
  br i1 %1693, label %1694, label %1716

1694:                                             ; preds = %1690
  %1695 = load i32, ptr %1636, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696) #10
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc nuw i8 %1698 to i1
  br i1 %1699, label %1700, label %1704

1700:                                             ; preds = %1694
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #10
  %1703 = call i32 @isatty(i32 noundef %1702) #10
  %.not199 = icmp eq i32 %1703, 0
  br i1 %.not199, label %1704, label %1705

1704:                                             ; preds = %1700, %1694
  br label %1705

1705:                                             ; preds = %1700, %1704
  %.str.25.sink843 = phi ptr [ @.str.25, %1704 ], [ @.str.22, %1700 ]
  store i32 %1695, ptr %1636, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = load i32, ptr %1582, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror(i32 noundef %1708, ptr noundef nonnull @.str.24) #10
  %1710 = load i32, ptr %1582, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef nonnull @.str.24) #10
  %1712 = load i32, ptr %1636, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #10
  %1714 = load i32, ptr %1636, align 4, !tbaa !5
  %1715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef nonnull %.str.25.sink843, i32 noundef %1707, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 169, ptr noundef %1709, ptr noundef %1711, ptr noundef %1713, i32 noundef %1714) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1716:                                             ; preds = %1690
  store i32 0, ptr %1582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %1636, align 4, !tbaa !5
  %1717 = load i32, ptr @test_count, align 4, !tbaa !5
  %1718 = add nsw i32 %1717, 1
  store i32 %1718, ptr @test_count, align 4, !tbaa !5
  %1719 = call i32 @s2n_connection_free(ptr noundef nonnull %1247) #10
  %1720 = icmp eq i32 %1719, -1
  br i1 %1720, label %1721, label %1743

1721:                                             ; preds = %1716
  %1722 = load i32, ptr %1636, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = call i32 @s2n_print_stacktrace(ptr noundef %1723) #10
  %1725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1726 = trunc nuw i8 %1725 to i1
  br i1 %1726, label %1727, label %1731

1727:                                             ; preds = %1721
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = call i32 @fileno(ptr noundef %1728) #10
  %1730 = call i32 @isatty(i32 noundef %1729) #10
  %.not198 = icmp eq i32 %1730, 0
  br i1 %.not198, label %1731, label %1732

1731:                                             ; preds = %1727, %1721
  br label %1732

1732:                                             ; preds = %1727, %1731
  %.str.25.sink852 = phi ptr [ @.str.25, %1731 ], [ @.str.22, %1727 ]
  store i32 %1722, ptr %1636, align 4, !tbaa !5
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = load i32, ptr @test_count, align 4, !tbaa !5
  %1735 = load i32, ptr %1582, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror(i32 noundef %1735, ptr noundef nonnull @.str.24) #10
  %1737 = load i32, ptr %1582, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror_debug(i32 noundef %1737, ptr noundef nonnull @.str.24) #10
  %1739 = load i32, ptr %1636, align 4, !tbaa !5
  %1740 = call ptr @strerror(i32 noundef %1739) #10
  %1741 = load i32, ptr %1636, align 4, !tbaa !5
  %1742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1733, ptr noundef nonnull %.str.25.sink852, i32 noundef %1734, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 171, ptr noundef %1736, ptr noundef %1738, ptr noundef %1740, i32 noundef %1741) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1743:                                             ; preds = %1716
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = add nsw i32 %1744, 1
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = call i32 @s2n_connection_free(ptr noundef nonnull %1277) #10
  %1747 = icmp eq i32 %1746, -1
  br i1 %1747, label %1748, label %1770

1748:                                             ; preds = %1743
  %1749 = load i32, ptr %1636, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @s2n_print_stacktrace(ptr noundef %1750) #10
  %1752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1753 = trunc nuw i8 %1752 to i1
  br i1 %1753, label %1754, label %1758

1754:                                             ; preds = %1748
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @fileno(ptr noundef %1755) #10
  %1757 = call i32 @isatty(i32 noundef %1756) #10
  %.not197 = icmp eq i32 %1757, 0
  br i1 %.not197, label %1758, label %1759

1758:                                             ; preds = %1754, %1748
  br label %1759

1759:                                             ; preds = %1754, %1758
  %.str.25.sink861 = phi ptr [ @.str.25, %1758 ], [ @.str.22, %1754 ]
  store i32 %1749, ptr %1636, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = load i32, ptr %1582, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror(i32 noundef %1762, ptr noundef nonnull @.str.24) #10
  %1764 = load i32, ptr %1582, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror_debug(i32 noundef %1764, ptr noundef nonnull @.str.24) #10
  %1766 = load i32, ptr %1636, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #10
  %1768 = load i32, ptr %1636, align 4, !tbaa !5
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef nonnull %.str.25.sink861, i32 noundef %1761, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 172, ptr noundef %1763, ptr noundef %1765, ptr noundef %1767, i32 noundef %1768) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1770:                                             ; preds = %1743, %1420
  %.1 = phi i32 [ -1, %1420 ], [ %.0, %1743 ]
  %1771 = call i32 @s2n_free(ptr noundef nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #10
  %1772 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #10
  %1773 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #10
  br i1 %1422, label %1774, label %1849

1774:                                             ; preds = %1770
  %1775 = call i32 @s2n_cleanup() #10
  %1776 = icmp eq i32 %1775, -1
  br i1 %1776, label %1777, label %1801

1777:                                             ; preds = %1774
  %1778 = tail call ptr @__errno_location() #11
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #10
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1777
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #10
  %1787 = call i32 @isatty(i32 noundef %1786) #10
  %.not196 = icmp eq i32 %1787, 0
  br i1 %.not196, label %1788, label %1789

1788:                                             ; preds = %1784, %1777
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.25.sink870 = phi ptr [ @.str.25, %1788 ], [ @.str.22, %1784 ]
  store i32 %1779, ptr %1778, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror(i32 noundef %1793, ptr noundef nonnull @.str.24) #10
  %1795 = load i32, ptr %1792, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef nonnull @.str.24) #10
  %1797 = load i32, ptr %1778, align 4, !tbaa !5
  %1798 = call ptr @strerror(i32 noundef %1797) #10
  %1799 = load i32, ptr %1778, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.25.sink870, i32 noundef %1791, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 175, ptr noundef %1794, ptr noundef %1796, ptr noundef %1798, i32 noundef %1799) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1801:                                             ; preds = %1774
  %1802 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1803 = icmp eq i32 %1802, -1
  br i1 %1803, label %1804, label %1828

1804:                                             ; preds = %1801
  %1805 = tail call ptr @__errno_location() #11
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @s2n_print_stacktrace(ptr noundef %1807) #10
  %1809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1810 = trunc nuw i8 %1809 to i1
  br i1 %1810, label %1811, label %1815

1811:                                             ; preds = %1804
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @fileno(ptr noundef %1812) #10
  %1814 = call i32 @isatty(i32 noundef %1813) #10
  %.not195 = icmp eq i32 %1814, 0
  br i1 %.not195, label %1815, label %1816

1815:                                             ; preds = %1811, %1804
  br label %1816

1816:                                             ; preds = %1811, %1815
  %.str.25.sink881 = phi ptr [ @.str.25, %1815 ], [ @.str.22, %1811 ]
  store i32 %1806, ptr %1805, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror(i32 noundef %1820, ptr noundef nonnull @.str.24) #10
  %1822 = load i32, ptr %1819, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror_debug(i32 noundef %1822, ptr noundef nonnull @.str.24) #10
  %1824 = load i32, ptr %1805, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #10
  %1826 = load i32, ptr %1805, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1817, ptr noundef nonnull %.str.25.sink881, i32 noundef %1818, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.21, i32 noundef 175, ptr noundef %1821, ptr noundef %1823, ptr noundef %1825, i32 noundef %1826) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1828:                                             ; preds = %1801
  %1829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1830 = trunc nuw i8 %1829 to i1
  br i1 %1830, label %1831, label %1842

1831:                                             ; preds = %1828
  %1832 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1833 = call i32 @fileno(ptr noundef %1832) #10
  %1834 = call i32 @isatty(i32 noundef %1833) #10
  %.not192 = icmp eq i32 %1834, 0
  br i1 %.not192, label %1842, label %1835

1835:                                             ; preds = %1831
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not194 = icmp eq i32 %1836, 0
  %1837 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not194, label %1840, label %1838

1838:                                             ; preds = %1835
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef nonnull @.str.58, i32 noundef %1836) #10
  br label %1849

1840:                                             ; preds = %1835
  %1841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef nonnull @.str.59) #10
  br label %1849

1842:                                             ; preds = %1831, %1828
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not193 = icmp eq i32 %1843, 0
  %1844 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not193, label %1847, label %1845

1845:                                             ; preds = %1842
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1844, ptr noundef nonnull @.str.60, i32 noundef %1843) #10
  br label %1849

1847:                                             ; preds = %1842
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1844, ptr noundef nonnull @.str.61) #10
  br label %1849

1849:                                             ; preds = %1840, %1838, %1847, %1845, %1770, %1240
  %.2 = phi i32 [ %.0, %1240 ], [ %.1, %1770 ], [ 0, %1845 ], [ 0, %1847 ], [ 0, %1838 ], [ 0, %1840 ]
  ret i32 %.2
}

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #4

declare i32 @s2n_connection_set_secrets(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #4

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

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

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #4

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #4

declare i32 @s2n_cleanup() local_unnamed_addr #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!32, !6, i64 28}
!43 = !{!32, !6, i64 24}
!44 = !{!7, !7, i64 0}
!45 = !{!25, !10, i64 0}
!46 = !{!25, !6, i64 8}


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