; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls13_cert_request_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_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%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
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca i16, align 2
  %15 = alloca i16, align 2
  %16 = alloca i16, align 2
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  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 %53

53:                                               ; preds = %2
  br label %54

54:                                               ; preds = %53
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %55 = load ptr, ptr @stdout, align 8, !tbaa !9
  %56 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef @.str, ptr noundef @.str.1) #7
  %57 = load ptr, ptr @stdout, align 8, !tbaa !9
  %58 = call i32 @fflush(ptr noundef %57)
  br label %59

59:                                               ; preds = %54
  %60 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %61 = icmp eq i32 %60, -1
  br i1 %61, label %62, label %113

62:                                               ; preds = %59
  br label %63

63:                                               ; preds = %62
  br label %64

64:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %65 = call ptr @__errno_location() #8
  %66 = load i32, ptr %65, align 4, !tbaa !5
  store i32 %66, ptr %6, align 4, !tbaa !5
  %67 = load ptr, ptr @stderr, align 8, !tbaa !9
  %68 = call i32 @s2n_print_stacktrace(ptr noundef %67)
  %69 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %70 = trunc i8 %69 to i1
  br i1 %70, label %71, label %93

71:                                               ; preds = %64
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = call i32 @fileno(ptr noundef %72) #7
  %74 = call i32 @isatty(i32 noundef %73) #7
  %75 = icmp ne i32 %74, 0
  br i1 %75, label %76, label %93

76:                                               ; preds = %71
  %77 = load i32, ptr %6, align 4, !tbaa !5
  %78 = call ptr @__errno_location() #8
  store i32 %77, ptr %78, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = call ptr @s2n_strerror(i32 noundef %82, ptr noundef @.str.4)
  %84 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = call ptr @s2n_strerror_debug(i32 noundef %85, ptr noundef @.str.4)
  %87 = call ptr @__errno_location() #8
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = call ptr @strerror(i32 noundef %88) #7
  %90 = call ptr @__errno_location() #8
  %91 = load i32, ptr %90, align 4, !tbaa !5
  %92 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef @.str.2, i32 noundef %80, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 30, ptr noundef %83, ptr noundef %86, ptr noundef %89, i32 noundef %91) #7
  br label %110

93:                                               ; preds = %71, %64
  %94 = load i32, ptr %6, align 4, !tbaa !5
  %95 = call ptr @__errno_location() #8
  store i32 %94, ptr %95, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = call ptr @s2n_strerror(i32 noundef %99, ptr noundef @.str.4)
  %101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = call ptr @s2n_strerror_debug(i32 noundef %102, ptr noundef @.str.4)
  %104 = call ptr @__errno_location() #8
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = call ptr @strerror(i32 noundef %105) #7
  %107 = call ptr @__errno_location() #8
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef @.str.5, i32 noundef %97, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 30, ptr noundef %100, ptr noundef %103, ptr noundef %106, i32 noundef %108) #7
  br label %110

110:                                              ; preds = %93, %76
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %111

111:                                              ; preds = %110
  call void @exit(i32 noundef 1) #9
  unreachable

112:                                              ; No predecessors!
  br label %113

113:                                              ; preds = %112, %59
  br label %114

114:                                              ; preds = %113
  br label %115

115:                                              ; preds = %114
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = add nsw i32 %116, 1
  store i32 %117, ptr @test_count, align 4, !tbaa !5
  %118 = call i32 @s2n_enable_atexit()
  %119 = icmp eq i32 %118, -1
  br i1 %119, label %120, label %171

120:                                              ; preds = %115
  br label %121

121:                                              ; preds = %120
  br label %122

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %123 = call ptr @__errno_location() #8
  %124 = load i32, ptr %123, align 4, !tbaa !5
  store i32 %124, ptr %7, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = call i32 @s2n_print_stacktrace(ptr noundef %125)
  %127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %128 = trunc i8 %127 to i1
  br i1 %128, label %129, label %151

129:                                              ; preds = %122
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = call i32 @fileno(ptr noundef %130) #7
  %132 = call i32 @isatty(i32 noundef %131) #7
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %151

134:                                              ; preds = %129
  %135 = load i32, ptr %7, align 4, !tbaa !5
  %136 = call ptr @__errno_location() #8
  store i32 %135, ptr %136, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = call ptr @s2n_strerror(i32 noundef %140, ptr noundef @.str.4)
  %142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = call ptr @s2n_strerror_debug(i32 noundef %143, ptr noundef @.str.4)
  %145 = call ptr @__errno_location() #8
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = call ptr @strerror(i32 noundef %146) #7
  %148 = call ptr @__errno_location() #8
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef @.str.2, i32 noundef %138, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 30, ptr noundef %141, ptr noundef %144, ptr noundef %147, i32 noundef %149) #7
  br label %168

151:                                              ; preds = %129, %122
  %152 = load i32, ptr %7, align 4, !tbaa !5
  %153 = call ptr @__errno_location() #8
  store i32 %152, ptr %153, align 4, !tbaa !5
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @s2n_strerror(i32 noundef %157, ptr noundef @.str.4)
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef @.str.4)
  %162 = call ptr @__errno_location() #8
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #7
  %165 = call ptr @__errno_location() #8
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str.5, i32 noundef %155, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 30, ptr noundef %158, ptr noundef %161, ptr noundef %164, i32 noundef %166) #7
  br label %168

168:                                              ; preds = %151, %134
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %169

169:                                              ; preds = %168
  call void @exit(i32 noundef 1) #9
  unreachable

170:                                              ; No predecessors!
  br label %171

171:                                              ; preds = %170, %115
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  br label %174

174:                                              ; preds = %173
  %175 = call i32 @s2n_init()
  %176 = icmp eq i32 %175, -1
  br i1 %176, label %177, label %228

177:                                              ; preds = %174
  br label %178

178:                                              ; preds = %177
  br label %179

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

186:                                              ; preds = %179
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = call i32 @fileno(ptr noundef %187) #7
  %189 = call i32 @isatty(i32 noundef %188) #7
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %208

191:                                              ; preds = %186
  %192 = load i32, ptr %8, align 4, !tbaa !5
  %193 = call ptr @__errno_location() #8
  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.4)
  %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.4)
  %202 = call ptr @__errno_location() #8
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @strerror(i32 noundef %203) #7
  %205 = call ptr @__errno_location() #8
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef @.str.2, i32 noundef %195, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 30, ptr noundef %198, ptr noundef %201, ptr noundef %204, i32 noundef %206) #7
  br label %225

208:                                              ; preds = %186, %179
  %209 = load i32, ptr %8, align 4, !tbaa !5
  %210 = call ptr @__errno_location() #8
  store i32 %209, ptr %210, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call ptr @s2n_strerror(i32 noundef %214, ptr noundef @.str.4)
  %216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror_debug(i32 noundef %217, ptr noundef @.str.4)
  %219 = call ptr @__errno_location() #8
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call ptr @strerror(i32 noundef %220) #7
  %222 = call ptr @__errno_location() #8
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef @.str.5, i32 noundef %212, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 30, ptr noundef %215, ptr noundef %218, ptr noundef %221, i32 noundef %223) #7
  br label %225

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

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

227:                                              ; No predecessors!
  br label %228

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

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr @test_count, align 4, !tbaa !5
  %234 = call i32 (...) @s2n_enable_tls13_in_test()
  %235 = icmp eq i32 %234, -1
  br i1 %235, label %236, label %287

236:                                              ; preds = %231
  br label %237

237:                                              ; preds = %236
  br label %238

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

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

250:                                              ; preds = %245
  %251 = load i32, ptr %9, align 4, !tbaa !5
  %252 = call ptr @__errno_location() #8
  store i32 %251, ptr %252, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef @.str.4)
  %258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef @.str.4)
  %261 = call ptr @__errno_location() #8
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call ptr @strerror(i32 noundef %262) #7
  %264 = call ptr @__errno_location() #8
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef @.str.2, i32 noundef %254, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 31, ptr noundef %257, ptr noundef %260, ptr noundef %263, i32 noundef %265) #7
  br label %284

267:                                              ; preds = %245, %238
  %268 = load i32, ptr %9, align 4, !tbaa !5
  %269 = call ptr @__errno_location() #8
  store i32 %268, ptr %269, align 4, !tbaa !5
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = load i32, ptr @test_count, align 4, !tbaa !5
  %272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror(i32 noundef %273, ptr noundef @.str.4)
  %275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call ptr @s2n_strerror_debug(i32 noundef %276, ptr noundef @.str.4)
  %278 = call ptr @__errno_location() #8
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @strerror(i32 noundef %279) #7
  %281 = call ptr @__errno_location() #8
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef @.str.5, i32 noundef %271, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 31, ptr noundef %274, ptr noundef %277, ptr noundef %280, i32 noundef %282) #7
  br label %284

284:                                              ; preds = %267, %250
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %285

285:                                              ; preds = %284
  call void @exit(i32 noundef 1) #9
  unreachable

286:                                              ; No predecessors!
  br label %287

287:                                              ; preds = %286, %231
  br label %288

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

289:                                              ; preds = %288
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr @test_count, align 4, !tbaa !5
  %292 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %292, ptr %10, align 8, !tbaa !9
  %293 = icmp eq ptr %292, null
  br i1 %293, label %294, label %347

294:                                              ; preds = %289
  br label %295

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  %297 = call ptr @__errno_location() #8
  %298 = load i32, ptr %297, align 4, !tbaa !5
  store i32 %298, ptr %11, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @s2n_print_stacktrace(ptr noundef %299)
  %301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %302 = trunc i8 %301 to i1
  br i1 %302, label %303, label %325

303:                                              ; preds = %296
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @fileno(ptr noundef %304) #7
  %306 = call i32 @isatty(i32 noundef %305) #7
  %307 = icmp ne i32 %306, 0
  br i1 %307, label %308, label %325

308:                                              ; preds = %303
  %309 = load i32, ptr %11, align 4, !tbaa !5
  %310 = call ptr @__errno_location() #8
  store i32 %309, ptr %310, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror(i32 noundef %314, ptr noundef @.str.4)
  %316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @s2n_strerror_debug(i32 noundef %317, ptr noundef @.str.4)
  %319 = call ptr @__errno_location() #8
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call ptr @strerror(i32 noundef %320) #7
  %322 = call ptr @__errno_location() #8
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef @.str.2, i32 noundef %312, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 36, ptr noundef %315, ptr noundef %318, ptr noundef %321, i32 noundef %323) #7
  br label %342

325:                                              ; preds = %303, %296
  %326 = load i32, ptr %11, align 4, !tbaa !5
  %327 = call ptr @__errno_location() #8
  store i32 %326, ptr %327, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror(i32 noundef %331, ptr noundef @.str.4)
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef @.str.4)
  %336 = call ptr @__errno_location() #8
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #7
  %339 = call ptr @__errno_location() #8
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef @.str.5, i32 noundef %329, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 36, ptr noundef %332, ptr noundef %335, ptr noundef %338, i32 noundef %340) #7
  br label %342

342:                                              ; preds = %325, %308
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %343

343:                                              ; preds = %342
  br label %344

344:                                              ; preds = %343
  call void @exit(i32 noundef 1) #9
  unreachable

345:                                              ; No predecessors!
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346, %289
  br label %348

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348
  %350 = load ptr, ptr %10, align 8, !tbaa !9
  %351 = getelementptr inbounds %struct.s2n_connection, ptr %350, i32 0, i32 23
  store i8 34, ptr %351, align 4, !tbaa !15
  br label %352

352:                                              ; preds = %349
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = load ptr, ptr %10, align 8, !tbaa !9
  %356 = call i32 @s2n_tls13_cert_req_send(ptr noundef %355)
  %357 = icmp eq i32 %356, -1
  br i1 %357, label %358, label %411

358:                                              ; preds = %352
  br label %359

359:                                              ; preds = %358
  br label %360

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

367:                                              ; preds = %360
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = call i32 @fileno(ptr noundef %368) #7
  %370 = call i32 @isatty(i32 noundef %369) #7
  %371 = icmp ne i32 %370, 0
  br i1 %371, label %372, label %389

372:                                              ; preds = %367
  %373 = load i32, ptr %12, align 4, !tbaa !5
  %374 = call ptr @__errno_location() #8
  store i32 %373, ptr %374, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror(i32 noundef %378, ptr noundef @.str.4)
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror_debug(i32 noundef %381, ptr noundef @.str.4)
  %383 = call ptr @__errno_location() #8
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @strerror(i32 noundef %384) #7
  %386 = call ptr @__errno_location() #8
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.2, i32 noundef %376, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 39, ptr noundef %379, ptr noundef %382, ptr noundef %385, i32 noundef %387) #7
  br label %406

389:                                              ; preds = %367, %360
  %390 = load i32, ptr %12, align 4, !tbaa !5
  %391 = call ptr @__errno_location() #8
  store i32 %390, ptr %391, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror(i32 noundef %395, ptr noundef @.str.4)
  %397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = call ptr @s2n_strerror_debug(i32 noundef %398, ptr noundef @.str.4)
  %400 = call ptr @__errno_location() #8
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = call ptr @strerror(i32 noundef %401) #7
  %403 = call ptr @__errno_location() #8
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %392, ptr noundef @.str.5, i32 noundef %393, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 39, ptr noundef %396, ptr noundef %399, ptr noundef %402, i32 noundef %404) #7
  br label %406

406:                                              ; preds = %389, %372
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %407

407:                                              ; preds = %406
  br label %408

408:                                              ; preds = %407
  call void @exit(i32 noundef 1) #9
  unreachable

409:                                              ; No predecessors!
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410, %352
  br label %412

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  store i8 0, ptr %13, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 2, ptr %14) #7
  store i16 0, ptr %14, align 2, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 2, ptr %15) #7
  store i16 0, ptr %15, align 2, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 2, ptr %16) #7
  store i16 0, ptr %16, align 2, !tbaa !43
  br label %414

414:                                              ; preds = %413
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr @test_count, align 4, !tbaa !5
  %417 = load ptr, ptr %10, align 8, !tbaa !9
  %418 = getelementptr inbounds %struct.s2n_connection, ptr %417, i32 0, i32 52
  %419 = getelementptr inbounds %struct.s2n_handshake, ptr %418, i32 0, i32 0
  %420 = getelementptr inbounds %struct.s2n_stuffer, ptr %419, i32 0, i32 2
  %421 = load i32, ptr %420, align 4, !tbaa !44
  %422 = load ptr, ptr %10, align 8, !tbaa !9
  %423 = getelementptr inbounds %struct.s2n_connection, ptr %422, i32 0, i32 52
  %424 = getelementptr inbounds %struct.s2n_handshake, ptr %423, i32 0, i32 0
  %425 = getelementptr inbounds %struct.s2n_stuffer, ptr %424, i32 0, i32 1
  %426 = load i32, ptr %425, align 8, !tbaa !45
  %427 = sub i32 %421, %426
  %428 = icmp ugt i32 %427, 7
  br i1 %428, label %482, label %429

429:                                              ; preds = %414
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %432 = call ptr @__errno_location() #8
  %433 = load i32, ptr %432, align 4, !tbaa !5
  store i32 %433, ptr %17, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @s2n_print_stacktrace(ptr noundef %434)
  %436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %437 = trunc i8 %436 to i1
  br i1 %437, label %438, label %460

438:                                              ; preds = %431
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @fileno(ptr noundef %439) #7
  %441 = call i32 @isatty(i32 noundef %440) #7
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %443, label %460

443:                                              ; preds = %438
  %444 = load i32, ptr %17, align 4, !tbaa !5
  %445 = call ptr @__errno_location() #8
  store i32 %444, ptr %445, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror(i32 noundef %449, ptr noundef @.str.4)
  %451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @s2n_strerror_debug(i32 noundef %452, ptr noundef @.str.4)
  %454 = call ptr @__errno_location() #8
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #7
  %457 = call ptr @__errno_location() #8
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef @.str.2, i32 noundef %447, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %450, ptr noundef %453, ptr noundef %456, i32 noundef %458) #7
  br label %477

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

477:                                              ; preds = %460, %443
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  call void @exit(i32 noundef 1) #9
  unreachable

480:                                              ; No predecessors!
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481, %414
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = load ptr, ptr %10, align 8, !tbaa !9
  %489 = getelementptr inbounds %struct.s2n_connection, ptr %488, i32 0, i32 52
  %490 = getelementptr inbounds %struct.s2n_handshake, ptr %489, i32 0, i32 0
  %491 = call i32 @s2n_stuffer_read_uint8(ptr noundef %490, ptr noundef %13)
  %492 = icmp eq i32 %491, -1
  br i1 %492, label %493, label %546

493:                                              ; preds = %485
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %496 = call ptr @__errno_location() #8
  %497 = load i32, ptr %496, align 4, !tbaa !5
  store i32 %497, ptr %18, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @s2n_print_stacktrace(ptr noundef %498)
  %500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %501 = trunc i8 %500 to i1
  br i1 %501, label %502, label %524

502:                                              ; preds = %495
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = call i32 @fileno(ptr noundef %503) #7
  %505 = call i32 @isatty(i32 noundef %504) #7
  %506 = icmp ne i32 %505, 0
  br i1 %506, label %507, label %524

507:                                              ; preds = %502
  %508 = load i32, ptr %18, align 4, !tbaa !5
  %509 = call ptr @__errno_location() #8
  store i32 %508, ptr %509, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror(i32 noundef %513, ptr noundef @.str.4)
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror_debug(i32 noundef %516, ptr noundef @.str.4)
  %518 = call ptr @__errno_location() #8
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @strerror(i32 noundef %519) #7
  %521 = call ptr @__errno_location() #8
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %510, ptr noundef @.str.2, i32 noundef %511, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 45, ptr noundef %514, ptr noundef %517, ptr noundef %520, i32 noundef %522) #7
  br label %541

524:                                              ; preds = %502, %495
  %525 = load i32, ptr %18, align 4, !tbaa !5
  %526 = call ptr @__errno_location() #8
  store i32 %525, ptr %526, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror(i32 noundef %530, ptr noundef @.str.4)
  %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_debug(i32 noundef %533, ptr noundef @.str.4)
  %535 = call ptr @__errno_location() #8
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @strerror(i32 noundef %536) #7
  %538 = call ptr @__errno_location() #8
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef @.str.5, i32 noundef %528, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 45, ptr noundef %531, ptr noundef %534, ptr noundef %537, i32 noundef %539) #7
  br label %541

541:                                              ; preds = %524, %507
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  call void @exit(i32 noundef 1) #9
  unreachable

544:                                              ; No predecessors!
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545, %485
  br label %547

547:                                              ; preds = %546
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr @test_count, align 4, !tbaa !5
  %552 = load ptr, ptr %10, align 8, !tbaa !9
  %553 = getelementptr inbounds %struct.s2n_connection, ptr %552, i32 0, i32 52
  %554 = getelementptr inbounds %struct.s2n_handshake, ptr %553, i32 0, i32 0
  %555 = call i32 @s2n_stuffer_read_uint16(ptr noundef %554, ptr noundef %14)
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %610

557:                                              ; preds = %549
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %560 = call ptr @__errno_location() #8
  %561 = load i32, ptr %560, align 4, !tbaa !5
  store i32 %561, ptr %19, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @s2n_print_stacktrace(ptr noundef %562)
  %564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %565 = trunc i8 %564 to i1
  br i1 %565, label %566, label %588

566:                                              ; preds = %559
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @fileno(ptr noundef %567) #7
  %569 = call i32 @isatty(i32 noundef %568) #7
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %588

571:                                              ; preds = %566
  %572 = load i32, ptr %19, align 4, !tbaa !5
  %573 = call ptr @__errno_location() #8
  store i32 %572, ptr %573, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror(i32 noundef %577, ptr noundef @.str.4)
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror_debug(i32 noundef %580, ptr noundef @.str.4)
  %582 = call ptr @__errno_location() #8
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call ptr @strerror(i32 noundef %583) #7
  %585 = call ptr @__errno_location() #8
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef @.str.2, i32 noundef %575, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 46, ptr noundef %578, ptr noundef %581, ptr noundef %584, i32 noundef %586) #7
  br label %605

588:                                              ; preds = %566, %559
  %589 = load i32, ptr %19, align 4, !tbaa !5
  %590 = call ptr @__errno_location() #8
  store i32 %589, ptr %590, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror(i32 noundef %594, ptr noundef @.str.4)
  %596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @s2n_strerror_debug(i32 noundef %597, ptr noundef @.str.4)
  %599 = call ptr @__errno_location() #8
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call ptr @strerror(i32 noundef %600) #7
  %602 = call ptr @__errno_location() #8
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %591, ptr noundef @.str.5, i32 noundef %592, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 46, ptr noundef %595, ptr noundef %598, ptr noundef %601, i32 noundef %603) #7
  br label %605

605:                                              ; preds = %588, %571
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  call void @exit(i32 noundef 1) #9
  unreachable

608:                                              ; No predecessors!
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609, %549
  br label %611

611:                                              ; preds = %610
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = load ptr, ptr %10, align 8, !tbaa !9
  %617 = getelementptr inbounds %struct.s2n_connection, ptr %616, i32 0, i32 52
  %618 = getelementptr inbounds %struct.s2n_handshake, ptr %617, i32 0, i32 0
  %619 = getelementptr inbounds %struct.s2n_stuffer, ptr %618, i32 0, i32 2
  %620 = load i32, ptr %619, align 4, !tbaa !44
  %621 = load ptr, ptr %10, align 8, !tbaa !9
  %622 = getelementptr inbounds %struct.s2n_connection, ptr %621, i32 0, i32 52
  %623 = getelementptr inbounds %struct.s2n_handshake, ptr %622, i32 0, i32 0
  %624 = getelementptr inbounds %struct.s2n_stuffer, ptr %623, i32 0, i32 1
  %625 = load i32, ptr %624, align 8, !tbaa !45
  %626 = sub i32 %620, %625
  %627 = load i16, ptr %14, align 2, !tbaa !43
  %628 = zext i16 %627 to i32
  %629 = icmp eq i32 %626, %628
  br i1 %629, label %683, label %630

630:                                              ; preds = %613
  br label %631

631:                                              ; preds = %630
  br label %632

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

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

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

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

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

679:                                              ; preds = %678
  br label %680

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

681:                                              ; No predecessors!
  br label %682

682:                                              ; preds = %681
  br label %683

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

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr @test_count, align 4, !tbaa !5
  %689 = load ptr, ptr %10, align 8, !tbaa !9
  %690 = getelementptr inbounds %struct.s2n_connection, ptr %689, i32 0, i32 52
  %691 = getelementptr inbounds %struct.s2n_handshake, ptr %690, i32 0, i32 0
  %692 = call i32 @s2n_stuffer_read_uint16(ptr noundef %691, ptr noundef %16)
  %693 = icmp eq i32 %692, -1
  br i1 %693, label %694, label %747

694:                                              ; preds = %686
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %697 = call ptr @__errno_location() #8
  %698 = load i32, ptr %697, align 4, !tbaa !5
  store i32 %698, ptr %21, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @s2n_print_stacktrace(ptr noundef %699)
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc i8 %701 to i1
  br i1 %702, label %703, label %725

703:                                              ; preds = %696
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @fileno(ptr noundef %704) #7
  %706 = call i32 @isatty(i32 noundef %705) #7
  %707 = icmp ne i32 %706, 0
  br i1 %707, label %708, label %725

708:                                              ; preds = %703
  %709 = load i32, ptr %21, align 4, !tbaa !5
  %710 = call ptr @__errno_location() #8
  store i32 %709, ptr %710, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror(i32 noundef %714, ptr noundef @.str.4)
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror_debug(i32 noundef %717, ptr noundef @.str.4)
  %719 = call ptr @__errno_location() #8
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #7
  %722 = call ptr @__errno_location() #8
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %711, ptr noundef @.str.2, i32 noundef %712, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 48, ptr noundef %715, ptr noundef %718, ptr noundef %721, i32 noundef %723) #7
  br label %742

725:                                              ; preds = %703, %696
  %726 = load i32, ptr %21, align 4, !tbaa !5
  %727 = call ptr @__errno_location() #8
  store i32 %726, ptr %727, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror(i32 noundef %731, ptr noundef @.str.4)
  %733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef @.str.4)
  %736 = call ptr @__errno_location() #8
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @strerror(i32 noundef %737) #7
  %739 = call ptr @__errno_location() #8
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %728, ptr noundef @.str.5, i32 noundef %729, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 48, ptr noundef %732, ptr noundef %735, ptr noundef %738, i32 noundef %740) #7
  br label %742

742:                                              ; preds = %725, %708
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  call void @exit(i32 noundef 1) #9
  unreachable

745:                                              ; No predecessors!
  br label %746

746:                                              ; preds = %745
  br label %747

747:                                              ; preds = %746, %686
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %753 = load ptr, ptr %10, align 8, !tbaa !9
  %754 = getelementptr inbounds %struct.s2n_connection, ptr %753, i32 0, i32 52
  %755 = getelementptr inbounds %struct.s2n_handshake, ptr %754, i32 0, i32 0
  %756 = call i32 @s2n_stuffer_read_uint16(ptr noundef %755, ptr noundef %15)
  %757 = icmp eq i32 %756, -1
  br i1 %757, label %758, label %811

758:                                              ; preds = %750
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %761 = call ptr @__errno_location() #8
  %762 = load i32, ptr %761, align 4, !tbaa !5
  store i32 %762, ptr %22, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @s2n_print_stacktrace(ptr noundef %763)
  %765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %766 = trunc i8 %765 to i1
  br i1 %766, label %767, label %789

767:                                              ; preds = %760
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 @fileno(ptr noundef %768) #7
  %770 = call i32 @isatty(i32 noundef %769) #7
  %771 = icmp ne i32 %770, 0
  br i1 %771, label %772, label %789

772:                                              ; preds = %767
  %773 = load i32, ptr %22, align 4, !tbaa !5
  %774 = call ptr @__errno_location() #8
  store i32 %773, ptr %774, align 4, !tbaa !5
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = load i32, ptr @test_count, align 4, !tbaa !5
  %777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror(i32 noundef %778, ptr noundef @.str.4)
  %780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror_debug(i32 noundef %781, ptr noundef @.str.4)
  %783 = call ptr @__errno_location() #8
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @strerror(i32 noundef %784) #7
  %786 = call ptr @__errno_location() #8
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %775, ptr noundef @.str.2, i32 noundef %776, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 49, ptr noundef %779, ptr noundef %782, ptr noundef %785, i32 noundef %787) #7
  br label %806

789:                                              ; preds = %767, %760
  %790 = load i32, ptr %22, align 4, !tbaa !5
  %791 = call ptr @__errno_location() #8
  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.4)
  %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.4)
  %800 = call ptr @__errno_location() #8
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #7
  %803 = call ptr @__errno_location() #8
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef @.str.5, i32 noundef %793, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 49, ptr noundef %796, ptr noundef %799, ptr noundef %802, i32 noundef %804) #7
  br label %806

806:                                              ; preds = %789, %772
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  call void @exit(i32 noundef 1) #9
  unreachable

809:                                              ; No predecessors!
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810, %750
  br label %812

812:                                              ; preds = %811
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = add nsw i32 %815, 1
  store i32 %816, ptr @test_count, align 4, !tbaa !5
  %817 = load i8, ptr %13, align 1, !tbaa !42
  %818 = zext i8 %817 to i32
  %819 = icmp eq i32 %818, 0
  br i1 %819, label %873, label %820

820:                                              ; preds = %814
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %823 = call ptr @__errno_location() #8
  %824 = load i32, ptr %823, align 4, !tbaa !5
  store i32 %824, ptr %23, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @s2n_print_stacktrace(ptr noundef %825)
  %827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %828 = trunc i8 %827 to i1
  br i1 %828, label %829, label %851

829:                                              ; preds = %822
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @fileno(ptr noundef %830) #7
  %832 = call i32 @isatty(i32 noundef %831) #7
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %851

834:                                              ; preds = %829
  %835 = load i32, ptr %23, align 4, !tbaa !5
  %836 = call ptr @__errno_location() #8
  store i32 %835, ptr %836, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef @.str.4)
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef @.str.4)
  %845 = call ptr @__errno_location() #8
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #7
  %848 = call ptr @__errno_location() #8
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef @.str.2, i32 noundef %838, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 50, ptr noundef %841, ptr noundef %844, ptr noundef %847, i32 noundef %849) #7
  br label %868

851:                                              ; preds = %829, %822
  %852 = load i32, ptr %23, align 4, !tbaa !5
  %853 = call ptr @__errno_location() #8
  store i32 %852, ptr %853, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef @.str.4)
  %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_debug(i32 noundef %860, ptr noundef @.str.4)
  %862 = call ptr @__errno_location() #8
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #7
  %865 = call ptr @__errno_location() #8
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef @.str.5, i32 noundef %855, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 50, ptr noundef %858, ptr noundef %861, ptr noundef %864, i32 noundef %866) #7
  br label %868

868:                                              ; preds = %851, %834
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869
  call void @exit(i32 noundef 1) #9
  unreachable

871:                                              ; No predecessors!
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872, %814
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  br label %876

876:                                              ; preds = %875
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = load i16, ptr %16, align 2, !tbaa !43
  %880 = zext i16 %879 to i32
  %881 = icmp eq i32 %880, 13
  br i1 %881, label %935, label %882

882:                                              ; preds = %876
  br label %883

883:                                              ; preds = %882
  br label %884

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

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

896:                                              ; preds = %891
  %897 = load i32, ptr %24, align 4, !tbaa !5
  %898 = call ptr @__errno_location() #8
  store i32 %897, ptr %898, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef @.str.4)
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef @.str.4)
  %907 = call ptr @__errno_location() #8
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #7
  %910 = call ptr @__errno_location() #8
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %899, ptr noundef @.str.2, i32 noundef %900, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 51, ptr noundef %903, ptr noundef %906, ptr noundef %909, i32 noundef %911) #7
  br label %930

913:                                              ; preds = %891, %884
  %914 = load i32, ptr %24, align 4, !tbaa !5
  %915 = call ptr @__errno_location() #8
  store i32 %914, ptr %915, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror(i32 noundef %919, ptr noundef @.str.4)
  %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_debug(i32 noundef %922, ptr noundef @.str.4)
  %924 = call ptr @__errno_location() #8
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @strerror(i32 noundef %925) #7
  %927 = call ptr @__errno_location() #8
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %916, ptr noundef @.str.5, i32 noundef %917, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 51, ptr noundef %920, ptr noundef %923, ptr noundef %926, i32 noundef %928) #7
  br label %930

930:                                              ; preds = %913, %896
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %931

931:                                              ; preds = %930
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934, %876
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = load i16, ptr %15, align 2, !tbaa !43
  %942 = zext i16 %941 to i32
  %943 = icmp sgt i32 %942, 0
  br i1 %943, label %997, label %944

944:                                              ; preds = %938
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %947 = call ptr @__errno_location() #8
  %948 = load i32, ptr %947, align 4, !tbaa !5
  store i32 %948, ptr %25, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = call i32 @s2n_print_stacktrace(ptr noundef %949)
  %951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %952 = trunc i8 %951 to i1
  br i1 %952, label %953, label %975

953:                                              ; preds = %946
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @fileno(ptr noundef %954) #7
  %956 = call i32 @isatty(i32 noundef %955) #7
  %957 = icmp ne i32 %956, 0
  br i1 %957, label %958, label %975

958:                                              ; preds = %953
  %959 = load i32, ptr %25, align 4, !tbaa !5
  %960 = call ptr @__errno_location() #8
  store i32 %959, ptr %960, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef @.str.4)
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef @.str.4)
  %969 = call ptr @__errno_location() #8
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #7
  %972 = call ptr @__errno_location() #8
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef @.str.2, i32 noundef %962, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 52, ptr noundef %965, ptr noundef %968, ptr noundef %971, i32 noundef %973) #7
  br label %992

975:                                              ; preds = %953, %946
  %976 = load i32, ptr %25, align 4, !tbaa !5
  %977 = call ptr @__errno_location() #8
  store i32 %976, ptr %977, 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 @.str.4)
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror_debug(i32 noundef %984, ptr noundef @.str.4)
  %986 = call ptr @__errno_location() #8
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #7
  %989 = call ptr @__errno_location() #8
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %978, ptr noundef @.str.5, i32 noundef %979, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 52, ptr noundef %982, ptr noundef %985, ptr noundef %988, i32 noundef %990) #7
  br label %992

992:                                              ; preds = %975, %958
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  call void @exit(i32 noundef 1) #9
  unreachable

995:                                              ; No predecessors!
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996, %938
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr @test_count, align 4, !tbaa !5
  %1003 = load ptr, ptr %10, align 8, !tbaa !9
  %1004 = call i32 @s2n_connection_free(ptr noundef %1003)
  %1005 = icmp eq i32 %1004, -1
  br i1 %1005, label %1006, label %1059

1006:                                             ; preds = %1000
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %1009 = call ptr @__errno_location() #8
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  store i32 %1010, ptr %26, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011)
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc i8 %1013 to i1
  br i1 %1014, label %1015, label %1037

1015:                                             ; preds = %1008
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #7
  %1018 = call i32 @isatty(i32 noundef %1017) #7
  %1019 = icmp ne i32 %1018, 0
  br i1 %1019, label %1020, label %1037

1020:                                             ; preds = %1015
  %1021 = load i32, ptr %26, align 4, !tbaa !5
  %1022 = call ptr @__errno_location() #8
  store i32 %1021, ptr %1022, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef @.str.4)
  %1031 = call ptr @__errno_location() #8
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #7
  %1034 = call ptr @__errno_location() #8
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.2, i32 noundef %1024, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1027, ptr noundef %1030, ptr noundef %1033, i32 noundef %1035) #7
  br label %1054

1037:                                             ; preds = %1015, %1008
  %1038 = load i32, ptr %26, align 4, !tbaa !5
  %1039 = call ptr @__errno_location() #8
  store i32 %1038, ptr %1039, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef @.str.4)
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror_debug(i32 noundef %1046, ptr noundef @.str.4)
  %1048 = call ptr @__errno_location() #8
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #7
  %1051 = call ptr @__errno_location() #8
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef @.str.5, i32 noundef %1041, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1044, ptr noundef %1047, ptr noundef %1050, i32 noundef %1052) #7
  br label %1054

1054:                                             ; preds = %1037, %1020
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  call void @exit(i32 noundef 1) #9
  unreachable

1057:                                             ; No predecessors!
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058, %1000
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060
  call void @llvm.lifetime.end.p0(i64 2, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 2, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  store ptr null, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  store ptr null, ptr %28, align 8, !tbaa !9
  br label %1062

1062:                                             ; preds = %1061
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1065, ptr %27, align 8, !tbaa !9
  %1066 = icmp eq ptr %1065, null
  br i1 %1066, label %1067, label %1120

1067:                                             ; preds = %1062
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %1070 = call ptr @__errno_location() #8
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  store i32 %1071, ptr %29, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @s2n_print_stacktrace(ptr noundef %1072)
  %1074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1075 = trunc i8 %1074 to i1
  br i1 %1075, label %1076, label %1098

1076:                                             ; preds = %1069
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = call i32 @fileno(ptr noundef %1077) #7
  %1079 = call i32 @isatty(i32 noundef %1078) #7
  %1080 = icmp ne i32 %1079, 0
  br i1 %1080, label %1081, label %1098

1081:                                             ; preds = %1076
  %1082 = load i32, ptr %29, align 4, !tbaa !5
  %1083 = call ptr @__errno_location() #8
  store i32 %1082, ptr %1083, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef @.str.4)
  %1092 = call ptr @__errno_location() #8
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @strerror(i32 noundef %1093) #7
  %1095 = call ptr @__errno_location() #8
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1084, ptr noundef @.str.2, i32 noundef %1085, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1088, ptr noundef %1091, ptr noundef %1094, i32 noundef %1096) #7
  br label %1115

1098:                                             ; preds = %1076, %1069
  %1099 = load i32, ptr %29, align 4, !tbaa !5
  %1100 = call ptr @__errno_location() #8
  store i32 %1099, ptr %1100, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef @.str.4)
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror_debug(i32 noundef %1107, ptr noundef @.str.4)
  %1109 = call ptr @__errno_location() #8
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #7
  %1112 = call ptr @__errno_location() #8
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef @.str.5, i32 noundef %1102, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1105, ptr noundef %1108, ptr noundef %1111, i32 noundef %1113) #7
  br label %1115

1115:                                             ; preds = %1098, %1081
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  call void @exit(i32 noundef 1) #9
  unreachable

1118:                                             ; No predecessors!
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119, %1062
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr @test_count, align 4, !tbaa !5
  %1126 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1126, ptr %28, align 8, !tbaa !9
  %1127 = icmp eq ptr %1126, null
  br i1 %1127, label %1128, label %1181

1128:                                             ; preds = %1123
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %1131 = call ptr @__errno_location() #8
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  store i32 %1132, ptr %30, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @s2n_print_stacktrace(ptr noundef %1133)
  %1135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1136 = trunc i8 %1135 to i1
  br i1 %1136, label %1137, label %1159

1137:                                             ; preds = %1130
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = call i32 @fileno(ptr noundef %1138) #7
  %1140 = call i32 @isatty(i32 noundef %1139) #7
  %1141 = icmp ne i32 %1140, 0
  br i1 %1141, label %1142, label %1159

1142:                                             ; preds = %1137
  %1143 = load i32, ptr %30, align 4, !tbaa !5
  %1144 = call ptr @__errno_location() #8
  store i32 %1143, ptr %1144, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef @.str.4)
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror_debug(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call ptr @__errno_location() #8
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #7
  %1156 = call ptr @__errno_location() #8
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.2, i32 noundef %1146, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1149, ptr noundef %1152, ptr noundef %1155, i32 noundef %1157) #7
  br label %1176

1159:                                             ; preds = %1137, %1130
  %1160 = load i32, ptr %30, align 4, !tbaa !5
  %1161 = call ptr @__errno_location() #8
  store i32 %1160, ptr %1161, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef @.str.4)
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef @.str.4)
  %1170 = call ptr @__errno_location() #8
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #7
  %1173 = call ptr @__errno_location() #8
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef @.str.5, i32 noundef %1163, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1166, ptr noundef %1169, ptr noundef %1172, i32 noundef %1174) #7
  br label %1176

1176:                                             ; preds = %1159, %1142
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  call void @exit(i32 noundef 1) #9
  unreachable

1179:                                             ; No predecessors!
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180, %1123
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  %1184 = load ptr, ptr %27, align 8, !tbaa !9
  %1185 = getelementptr inbounds %struct.s2n_connection, ptr %1184, i32 0, i32 23
  store i8 34, ptr %1185, align 4, !tbaa !15
  %1186 = load ptr, ptr %28, align 8, !tbaa !9
  %1187 = getelementptr inbounds %struct.s2n_connection, ptr %1186, i32 0, i32 23
  store i8 34, ptr %1187, align 4, !tbaa !15
  br label %1188

1188:                                             ; preds = %1183
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = add nsw i32 %1189, 1
  store i32 %1190, ptr @test_count, align 4, !tbaa !5
  %1191 = load ptr, ptr %27, align 8, !tbaa !9
  %1192 = call i32 @s2n_tls13_cert_req_send(ptr noundef %1191)
  %1193 = icmp eq i32 %1192, -1
  br i1 %1193, label %1194, label %1247

1194:                                             ; preds = %1188
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %1197 = call ptr @__errno_location() #8
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  store i32 %1198, ptr %31, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199)
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #7
  %1206 = call i32 @isatty(i32 noundef %1205) #7
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

1208:                                             ; preds = %1203
  %1209 = load i32, ptr %31, align 4, !tbaa !5
  %1210 = call ptr @__errno_location() #8
  store i32 %1209, ptr %1210, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef @.str.4)
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef @.str.4)
  %1219 = call ptr @__errno_location() #8
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #7
  %1222 = call ptr @__errno_location() #8
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.2, i32 noundef %1212, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #7
  br label %1242

1225:                                             ; preds = %1203, %1196
  %1226 = load i32, ptr %31, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #8
  store i32 %1226, ptr %1227, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.4)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call ptr @__errno_location() #8
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #7
  %1239 = call ptr @__errno_location() #8
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.5, i32 noundef %1229, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #7
  br label %1242

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243
  call void @exit(i32 noundef 1) #9
  unreachable

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1188
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = add nsw i32 %1251, 1
  store i32 %1252, ptr @test_count, align 4, !tbaa !5
  %1253 = load ptr, ptr %27, align 8, !tbaa !9
  %1254 = getelementptr inbounds %struct.s2n_connection, ptr %1253, i32 0, i32 52
  %1255 = getelementptr inbounds %struct.s2n_handshake, ptr %1254, i32 0, i32 0
  %1256 = getelementptr inbounds %struct.s2n_stuffer, ptr %1255, i32 0, i32 2
  %1257 = load i32, ptr %1256, align 4, !tbaa !44
  %1258 = load ptr, ptr %27, align 8, !tbaa !9
  %1259 = getelementptr inbounds %struct.s2n_connection, ptr %1258, i32 0, i32 52
  %1260 = getelementptr inbounds %struct.s2n_handshake, ptr %1259, i32 0, i32 0
  %1261 = getelementptr inbounds %struct.s2n_stuffer, ptr %1260, i32 0, i32 1
  %1262 = load i32, ptr %1261, align 8, !tbaa !45
  %1263 = sub i32 %1257, %1262
  %1264 = icmp ugt i32 %1263, 0
  br i1 %1264, label %1318, label %1265

1265:                                             ; preds = %1250
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

1267:                                             ; preds = %1266
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %1268 = call ptr @__errno_location() #8
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  store i32 %1269, ptr %32, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @s2n_print_stacktrace(ptr noundef %1270)
  %1272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1273 = trunc i8 %1272 to i1
  br i1 %1273, label %1274, label %1296

1274:                                             ; preds = %1267
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #7
  %1277 = call i32 @isatty(i32 noundef %1276) #7
  %1278 = icmp ne i32 %1277, 0
  br i1 %1278, label %1279, label %1296

1279:                                             ; preds = %1274
  %1280 = load i32, ptr %32, align 4, !tbaa !5
  %1281 = call ptr @__errno_location() #8
  store i32 %1280, ptr %1281, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror(i32 noundef %1285, ptr noundef @.str.4)
  %1287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror_debug(i32 noundef %1288, ptr noundef @.str.4)
  %1290 = call ptr @__errno_location() #8
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call ptr @strerror(i32 noundef %1291) #7
  %1293 = call ptr @__errno_location() #8
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1282, ptr noundef @.str.2, i32 noundef %1283, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1286, ptr noundef %1289, ptr noundef %1292, i32 noundef %1294) #7
  br label %1313

1296:                                             ; preds = %1274, %1267
  %1297 = load i32, ptr %32, align 4, !tbaa !5
  %1298 = call ptr @__errno_location() #8
  store i32 %1297, ptr %1298, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef @.str.4)
  %1307 = call ptr @__errno_location() #8
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #7
  %1310 = call ptr @__errno_location() #8
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.5, i32 noundef %1300, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1303, ptr noundef %1306, ptr noundef %1309, i32 noundef %1311) #7
  br label %1313

1313:                                             ; preds = %1296, %1279
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  call void @exit(i32 noundef 1) #9
  unreachable

1316:                                             ; No predecessors!
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317, %1250
  br label %1319

1319:                                             ; preds = %1318
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = add nsw i32 %1322, 1
  store i32 %1323, ptr @test_count, align 4, !tbaa !5
  %1324 = load ptr, ptr %27, align 8, !tbaa !9
  %1325 = getelementptr inbounds %struct.s2n_connection, ptr %1324, i32 0, i32 52
  %1326 = getelementptr inbounds %struct.s2n_handshake, ptr %1325, i32 0, i32 0
  %1327 = load ptr, ptr %28, align 8, !tbaa !9
  %1328 = getelementptr inbounds %struct.s2n_connection, ptr %1327, i32 0, i32 52
  %1329 = getelementptr inbounds %struct.s2n_handshake, ptr %1328, i32 0, i32 0
  %1330 = load ptr, ptr %27, align 8, !tbaa !9
  %1331 = getelementptr inbounds %struct.s2n_connection, ptr %1330, i32 0, i32 52
  %1332 = getelementptr inbounds %struct.s2n_handshake, ptr %1331, i32 0, i32 0
  %1333 = getelementptr inbounds %struct.s2n_stuffer, ptr %1332, i32 0, i32 2
  %1334 = load i32, ptr %1333, align 4, !tbaa !44
  %1335 = load ptr, ptr %27, align 8, !tbaa !9
  %1336 = getelementptr inbounds %struct.s2n_connection, ptr %1335, i32 0, i32 52
  %1337 = getelementptr inbounds %struct.s2n_handshake, ptr %1336, i32 0, i32 0
  %1338 = getelementptr inbounds %struct.s2n_stuffer, ptr %1337, i32 0, i32 1
  %1339 = load i32, ptr %1338, align 8, !tbaa !45
  %1340 = sub i32 %1334, %1339
  %1341 = call i32 @s2n_stuffer_copy(ptr noundef %1326, ptr noundef %1329, i32 noundef %1340)
  %1342 = icmp eq i32 %1341, -1
  br i1 %1342, label %1343, label %1396

1343:                                             ; preds = %1321
  br label %1344

1344:                                             ; preds = %1343
  br label %1345

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

1352:                                             ; preds = %1345
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @fileno(ptr noundef %1353) #7
  %1355 = call i32 @isatty(i32 noundef %1354) #7
  %1356 = icmp ne i32 %1355, 0
  br i1 %1356, label %1357, label %1374

1357:                                             ; preds = %1352
  %1358 = load i32, ptr %33, align 4, !tbaa !5
  %1359 = call ptr @__errno_location() #8
  store i32 %1358, ptr %1359, align 4, !tbaa !5
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror(i32 noundef %1363, ptr noundef @.str.4)
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror_debug(i32 noundef %1366, ptr noundef @.str.4)
  %1368 = call ptr @__errno_location() #8
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @strerror(i32 noundef %1369) #7
  %1371 = call ptr @__errno_location() #8
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1360, ptr noundef @.str.2, i32 noundef %1361, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1364, ptr noundef %1367, ptr noundef %1370, i32 noundef %1372) #7
  br label %1391

1374:                                             ; preds = %1352, %1345
  %1375 = load i32, ptr %33, align 4, !tbaa !5
  %1376 = call ptr @__errno_location() #8
  store i32 %1375, ptr %1376, align 4, !tbaa !5
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror(i32 noundef %1380, ptr noundef @.str.4)
  %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_debug(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call ptr @__errno_location() #8
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @strerror(i32 noundef %1386) #7
  %1388 = call ptr @__errno_location() #8
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1377, ptr noundef @.str.5, i32 noundef %1378, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1381, ptr noundef %1384, ptr noundef %1387, i32 noundef %1389) #7
  br label %1391

1391:                                             ; preds = %1374, %1357
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392
  call void @exit(i32 noundef 1) #9
  unreachable

1394:                                             ; No predecessors!
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395, %1321
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397
  br label %1399

1399:                                             ; preds = %1398
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = add nsw i32 %1400, 1
  store i32 %1401, ptr @test_count, align 4, !tbaa !5
  %1402 = load ptr, ptr %28, align 8, !tbaa !9
  %1403 = getelementptr inbounds %struct.s2n_connection, ptr %1402, i32 0, i32 52
  %1404 = getelementptr inbounds %struct.s2n_handshake, ptr %1403, i32 0, i32 0
  %1405 = getelementptr inbounds %struct.s2n_stuffer, ptr %1404, i32 0, i32 2
  %1406 = load i32, ptr %1405, align 4, !tbaa !44
  %1407 = load ptr, ptr %28, align 8, !tbaa !9
  %1408 = getelementptr inbounds %struct.s2n_connection, ptr %1407, i32 0, i32 52
  %1409 = getelementptr inbounds %struct.s2n_handshake, ptr %1408, i32 0, i32 0
  %1410 = getelementptr inbounds %struct.s2n_stuffer, ptr %1409, i32 0, i32 1
  %1411 = load i32, ptr %1410, align 8, !tbaa !45
  %1412 = sub i32 %1406, %1411
  %1413 = icmp ugt i32 %1412, 0
  br i1 %1413, label %1467, label %1414

1414:                                             ; preds = %1399
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %1417 = call ptr @__errno_location() #8
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  store i32 %1418, ptr %34, align 4, !tbaa !5
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = call i32 @s2n_print_stacktrace(ptr noundef %1419)
  %1421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1422 = trunc i8 %1421 to i1
  br i1 %1422, label %1423, label %1445

1423:                                             ; preds = %1416
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @fileno(ptr noundef %1424) #7
  %1426 = call i32 @isatty(i32 noundef %1425) #7
  %1427 = icmp ne i32 %1426, 0
  br i1 %1427, label %1428, label %1445

1428:                                             ; preds = %1423
  %1429 = load i32, ptr %34, align 4, !tbaa !5
  %1430 = call ptr @__errno_location() #8
  store i32 %1429, ptr %1430, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror(i32 noundef %1434, ptr noundef @.str.4)
  %1436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = call ptr @s2n_strerror_debug(i32 noundef %1437, ptr noundef @.str.4)
  %1439 = call ptr @__errno_location() #8
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = call ptr @strerror(i32 noundef %1440) #7
  %1442 = call ptr @__errno_location() #8
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1431, ptr noundef @.str.2, i32 noundef %1432, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1435, ptr noundef %1438, ptr noundef %1441, i32 noundef %1443) #7
  br label %1462

1445:                                             ; preds = %1423, %1416
  %1446 = load i32, ptr %34, align 4, !tbaa !5
  %1447 = call ptr @__errno_location() #8
  store i32 %1446, ptr %1447, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef @.str.4)
  %1456 = call ptr @__errno_location() #8
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #7
  %1459 = call ptr @__errno_location() #8
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef @.str.5, i32 noundef %1449, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1452, ptr noundef %1455, ptr noundef %1458, i32 noundef %1460) #7
  br label %1462

1462:                                             ; preds = %1445, %1428
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %1463

1463:                                             ; preds = %1462
  br label %1464

1464:                                             ; preds = %1463
  call void @exit(i32 noundef 1) #9
  unreachable

1465:                                             ; No predecessors!
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466, %1399
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = add nsw i32 %1471, 1
  store i32 %1472, ptr @test_count, align 4, !tbaa !5
  %1473 = load ptr, ptr %28, align 8, !tbaa !9
  %1474 = call i32 @s2n_tls13_cert_req_recv(ptr noundef %1473)
  %1475 = icmp eq i32 %1474, -1
  br i1 %1475, label %1476, label %1529

1476:                                             ; preds = %1470
  br label %1477

1477:                                             ; preds = %1476
  br label %1478

1478:                                             ; preds = %1477
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %1479 = call ptr @__errno_location() #8
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  store i32 %1480, ptr %35, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @s2n_print_stacktrace(ptr noundef %1481)
  %1483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1484 = trunc i8 %1483 to i1
  br i1 %1484, label %1485, label %1507

1485:                                             ; preds = %1478
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = call i32 @fileno(ptr noundef %1486) #7
  %1488 = call i32 @isatty(i32 noundef %1487) #7
  %1489 = icmp ne i32 %1488, 0
  br i1 %1489, label %1490, label %1507

1490:                                             ; preds = %1485
  %1491 = load i32, ptr %35, align 4, !tbaa !5
  %1492 = call ptr @__errno_location() #8
  store i32 %1491, ptr %1492, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror_debug(i32 noundef %1499, ptr noundef @.str.4)
  %1501 = call ptr @__errno_location() #8
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @strerror(i32 noundef %1502) #7
  %1504 = call ptr @__errno_location() #8
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1493, ptr noundef @.str.2, i32 noundef %1494, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1497, ptr noundef %1500, ptr noundef %1503, i32 noundef %1505) #7
  br label %1524

1507:                                             ; preds = %1485, %1478
  %1508 = load i32, ptr %35, align 4, !tbaa !5
  %1509 = call ptr @__errno_location() #8
  store i32 %1508, ptr %1509, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror(i32 noundef %1513, ptr noundef @.str.4)
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror_debug(i32 noundef %1516, ptr noundef @.str.4)
  %1518 = call ptr @__errno_location() #8
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #7
  %1521 = call ptr @__errno_location() #8
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1510, ptr noundef @.str.5, i32 noundef %1511, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1514, ptr noundef %1517, ptr noundef %1520, i32 noundef %1522) #7
  br label %1524

1524:                                             ; preds = %1507, %1490
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  call void @exit(i32 noundef 1) #9
  unreachable

1527:                                             ; No predecessors!
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528, %1470
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = add nsw i32 %1533, 1
  store i32 %1534, ptr @test_count, align 4, !tbaa !5
  %1535 = load ptr, ptr %28, align 8, !tbaa !9
  %1536 = getelementptr inbounds %struct.s2n_connection, ptr %1535, i32 0, i32 32
  %1537 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1536, i32 0, i32 4
  %1538 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %1537, i32 0, i32 1
  %1539 = load i8, ptr %1538, align 4, !tbaa !46
  %1540 = zext i8 %1539 to i32
  %1541 = icmp sgt i32 %1540, 0
  br i1 %1541, label %1595, label %1542

1542:                                             ; preds = %1532
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  %1545 = call ptr @__errno_location() #8
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  store i32 %1546, ptr %36, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @s2n_print_stacktrace(ptr noundef %1547)
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc i8 %1549 to i1
  br i1 %1550, label %1551, label %1573

1551:                                             ; preds = %1544
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #7
  %1554 = call i32 @isatty(i32 noundef %1553) #7
  %1555 = icmp ne i32 %1554, 0
  br i1 %1555, label %1556, label %1573

1556:                                             ; preds = %1551
  %1557 = load i32, ptr %36, align 4, !tbaa !5
  %1558 = call ptr @__errno_location() #8
  store i32 %1557, ptr %1558, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef @.str.4)
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror_debug(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call ptr @__errno_location() #8
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @strerror(i32 noundef %1568) #7
  %1570 = call ptr @__errno_location() #8
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1559, ptr noundef @.str.2, i32 noundef %1560, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1563, ptr noundef %1566, ptr noundef %1569, i32 noundef %1571) #7
  br label %1590

1573:                                             ; preds = %1551, %1544
  %1574 = load i32, ptr %36, align 4, !tbaa !5
  %1575 = call ptr @__errno_location() #8
  store i32 %1574, ptr %1575, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror_debug(i32 noundef %1582, ptr noundef @.str.4)
  %1584 = call ptr @__errno_location() #8
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #7
  %1587 = call ptr @__errno_location() #8
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef @.str.5, i32 noundef %1577, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1580, ptr noundef %1583, ptr noundef %1586, i32 noundef %1588) #7
  br label %1590

1590:                                             ; preds = %1573, %1556
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  call void @exit(i32 noundef 1) #9
  unreachable

1593:                                             ; No predecessors!
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594, %1532
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1597
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = add nsw i32 %1599, 1
  store i32 %1600, ptr @test_count, align 4, !tbaa !5
  %1601 = load ptr, ptr %28, align 8, !tbaa !9
  %1602 = call i32 @s2n_connection_free(ptr noundef %1601)
  %1603 = icmp eq i32 %1602, -1
  br i1 %1603, label %1604, label %1657

1604:                                             ; preds = %1598
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1605
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %1607 = call ptr @__errno_location() #8
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  store i32 %1608, ptr %37, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @s2n_print_stacktrace(ptr noundef %1609)
  %1611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1612 = trunc i8 %1611 to i1
  br i1 %1612, label %1613, label %1635

1613:                                             ; preds = %1606
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @fileno(ptr noundef %1614) #7
  %1616 = call i32 @isatty(i32 noundef %1615) #7
  %1617 = icmp ne i32 %1616, 0
  br i1 %1617, label %1618, label %1635

1618:                                             ; preds = %1613
  %1619 = load i32, ptr %37, align 4, !tbaa !5
  %1620 = call ptr @__errno_location() #8
  store i32 %1619, ptr %1620, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1624 = load i32, ptr %1623, align 4, !tbaa !5
  %1625 = call ptr @s2n_strerror(i32 noundef %1624, ptr noundef @.str.4)
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror_debug(i32 noundef %1627, ptr noundef @.str.4)
  %1629 = call ptr @__errno_location() #8
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @strerror(i32 noundef %1630) #7
  %1632 = call ptr @__errno_location() #8
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1621, ptr noundef @.str.2, i32 noundef %1622, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1625, ptr noundef %1628, ptr noundef %1631, i32 noundef %1633) #7
  br label %1652

1635:                                             ; preds = %1613, %1606
  %1636 = load i32, ptr %37, align 4, !tbaa !5
  %1637 = call ptr @__errno_location() #8
  store i32 %1636, ptr %1637, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef @.str.4)
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror_debug(i32 noundef %1644, ptr noundef @.str.4)
  %1646 = call ptr @__errno_location() #8
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @strerror(i32 noundef %1647) #7
  %1649 = call ptr @__errno_location() #8
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1638, ptr noundef @.str.5, i32 noundef %1639, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1642, ptr noundef %1645, ptr noundef %1648, i32 noundef %1650) #7
  br label %1652

1652:                                             ; preds = %1635, %1618
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  call void @exit(i32 noundef 1) #9
  unreachable

1655:                                             ; No predecessors!
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656, %1598
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = add nsw i32 %1661, 1
  store i32 %1662, ptr @test_count, align 4, !tbaa !5
  %1663 = load ptr, ptr %27, align 8, !tbaa !9
  %1664 = call i32 @s2n_connection_free(ptr noundef %1663)
  %1665 = icmp eq i32 %1664, -1
  br i1 %1665, label %1666, label %1719

1666:                                             ; preds = %1660
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %1669 = call ptr @__errno_location() #8
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  store i32 %1670, ptr %38, align 4, !tbaa !5
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = call i32 @s2n_print_stacktrace(ptr noundef %1671)
  %1673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1674 = trunc i8 %1673 to i1
  br i1 %1674, label %1675, label %1697

1675:                                             ; preds = %1668
  %1676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1677 = call i32 @fileno(ptr noundef %1676) #7
  %1678 = call i32 @isatty(i32 noundef %1677) #7
  %1679 = icmp ne i32 %1678, 0
  br i1 %1679, label %1680, label %1697

1680:                                             ; preds = %1675
  %1681 = load i32, ptr %38, align 4, !tbaa !5
  %1682 = call ptr @__errno_location() #8
  store i32 %1681, ptr %1682, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror(i32 noundef %1686, ptr noundef @.str.4)
  %1688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror_debug(i32 noundef %1689, ptr noundef @.str.4)
  %1691 = call ptr @__errno_location() #8
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @strerror(i32 noundef %1692) #7
  %1694 = call ptr @__errno_location() #8
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef @.str.2, i32 noundef %1684, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1687, ptr noundef %1690, ptr noundef %1693, i32 noundef %1695) #7
  br label %1714

1697:                                             ; preds = %1675, %1668
  %1698 = load i32, ptr %38, align 4, !tbaa !5
  %1699 = call ptr @__errno_location() #8
  store i32 %1698, ptr %1699, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror(i32 noundef %1703, ptr noundef @.str.4)
  %1705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror_debug(i32 noundef %1706, ptr noundef @.str.4)
  %1708 = call ptr @__errno_location() #8
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @strerror(i32 noundef %1709) #7
  %1711 = call ptr @__errno_location() #8
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef @.str.5, i32 noundef %1701, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1704, ptr noundef %1707, ptr noundef %1710, i32 noundef %1712) #7
  br label %1714

1714:                                             ; preds = %1697, %1680
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715
  call void @exit(i32 noundef 1) #9
  unreachable

1717:                                             ; No predecessors!
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718, %1660
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1722

1722:                                             ; preds = %1721
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = add nsw i32 %1723, 1
  store i32 %1724, ptr @test_count, align 4, !tbaa !5
  %1725 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1725, ptr %39, align 8, !tbaa !9
  %1726 = icmp eq ptr %1725, null
  br i1 %1726, label %1727, label %1780

1727:                                             ; preds = %1722
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %1730 = call ptr @__errno_location() #8
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  store i32 %1731, ptr %40, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = call i32 @s2n_print_stacktrace(ptr noundef %1732)
  %1734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1735 = trunc i8 %1734 to i1
  br i1 %1735, label %1736, label %1758

1736:                                             ; preds = %1729
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @fileno(ptr noundef %1737) #7
  %1739 = call i32 @isatty(i32 noundef %1738) #7
  %1740 = icmp ne i32 %1739, 0
  br i1 %1740, label %1741, label %1758

1741:                                             ; preds = %1736
  %1742 = load i32, ptr %40, align 4, !tbaa !5
  %1743 = call ptr @__errno_location() #8
  store i32 %1742, ptr %1743, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror(i32 noundef %1747, ptr noundef @.str.4)
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror_debug(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call ptr @__errno_location() #8
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #7
  %1755 = call ptr @__errno_location() #8
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef @.str.2, i32 noundef %1745, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1748, ptr noundef %1751, ptr noundef %1754, i32 noundef %1756) #7
  br label %1775

1758:                                             ; preds = %1736, %1729
  %1759 = load i32, ptr %40, align 4, !tbaa !5
  %1760 = call ptr @__errno_location() #8
  store i32 %1759, ptr %1760, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef @.str.4)
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef @.str.4)
  %1769 = call ptr @__errno_location() #8
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @strerror(i32 noundef %1770) #7
  %1772 = call ptr @__errno_location() #8
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef @.str.5, i32 noundef %1762, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1765, ptr noundef %1768, ptr noundef %1771, i32 noundef %1773) #7
  br label %1775

1775:                                             ; preds = %1758, %1741
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  call void @exit(i32 noundef 1) #9
  unreachable

1778:                                             ; No predecessors!
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779, %1722
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  %1783 = load ptr, ptr %39, align 8, !tbaa !9
  %1784 = getelementptr inbounds %struct.s2n_connection, ptr %1783, i32 0, i32 23
  store i8 34, ptr %1784, align 4, !tbaa !15
  br label %1785

1785:                                             ; preds = %1782
  %1786 = load i32, ptr @test_count, align 4, !tbaa !5
  %1787 = add nsw i32 %1786, 1
  store i32 %1787, ptr @test_count, align 4, !tbaa !5
  %1788 = load ptr, ptr %39, align 8, !tbaa !9
  %1789 = getelementptr inbounds %struct.s2n_connection, ptr %1788, i32 0, i32 52
  %1790 = getelementptr inbounds %struct.s2n_handshake, ptr %1789, i32 0, i32 0
  %1791 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1790, i8 noundef zeroext 0)
  %1792 = icmp eq i32 %1791, -1
  br i1 %1792, label %1793, label %1846

1793:                                             ; preds = %1785
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

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

1802:                                             ; preds = %1795
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @fileno(ptr noundef %1803) #7
  %1805 = call i32 @isatty(i32 noundef %1804) #7
  %1806 = icmp ne i32 %1805, 0
  br i1 %1806, label %1807, label %1824

1807:                                             ; preds = %1802
  %1808 = load i32, ptr %41, align 4, !tbaa !5
  %1809 = call ptr @__errno_location() #8
  store i32 %1808, ptr %1809, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror(i32 noundef %1813, ptr noundef @.str.4)
  %1815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror_debug(i32 noundef %1816, ptr noundef @.str.4)
  %1818 = call ptr @__errno_location() #8
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call ptr @strerror(i32 noundef %1819) #7
  %1821 = call ptr @__errno_location() #8
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1810, ptr noundef @.str.2, i32 noundef %1811, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1814, ptr noundef %1817, ptr noundef %1820, i32 noundef %1822) #7
  br label %1841

1824:                                             ; preds = %1802, %1795
  %1825 = load i32, ptr %41, align 4, !tbaa !5
  %1826 = call ptr @__errno_location() #8
  store i32 %1825, ptr %1826, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @s2n_strerror(i32 noundef %1830, ptr noundef @.str.4)
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror_debug(i32 noundef %1833, ptr noundef @.str.4)
  %1835 = call ptr @__errno_location() #8
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @strerror(i32 noundef %1836) #7
  %1838 = call ptr @__errno_location() #8
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1827, ptr noundef @.str.5, i32 noundef %1828, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1831, ptr noundef %1834, ptr noundef %1837, i32 noundef %1839) #7
  br label %1841

1841:                                             ; preds = %1824, %1807
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  call void @exit(i32 noundef 1) #9
  unreachable

1844:                                             ; No predecessors!
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845, %1785
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

1848:                                             ; preds = %1847
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

1851:                                             ; preds = %1850
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = add nsw i32 %1852, 1
  store i32 %1853, ptr @test_count, align 4, !tbaa !5
  %1854 = load ptr, ptr %39, align 8, !tbaa !9
  %1855 = call i32 @s2n_tls13_cert_req_recv(ptr noundef %1854)
  %1856 = icmp eq i32 %1855, -1
  br i1 %1856, label %1910, label %1857

1857:                                             ; preds = %1851
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %1860 = call ptr @__errno_location() #8
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  store i32 %1861, ptr %42, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = call i32 @s2n_print_stacktrace(ptr noundef %1862)
  %1864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1865 = trunc i8 %1864 to i1
  br i1 %1865, label %1866, label %1888

1866:                                             ; preds = %1859
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @fileno(ptr noundef %1867) #7
  %1869 = call i32 @isatty(i32 noundef %1868) #7
  %1870 = icmp ne i32 %1869, 0
  br i1 %1870, label %1871, label %1888

1871:                                             ; preds = %1866
  %1872 = load i32, ptr %42, align 4, !tbaa !5
  %1873 = call ptr @__errno_location() #8
  store i32 %1872, ptr %1873, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror(i32 noundef %1877, ptr noundef @.str.4)
  %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_debug(i32 noundef %1880, ptr noundef @.str.4)
  %1882 = call ptr @__errno_location() #8
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @strerror(i32 noundef %1883) #7
  %1885 = call ptr @__errno_location() #8
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1874, ptr noundef @.str.2, i32 noundef %1875, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1878, ptr noundef %1881, ptr noundef %1884, i32 noundef %1886) #7
  br label %1905

1888:                                             ; preds = %1866, %1859
  %1889 = load i32, ptr %42, align 4, !tbaa !5
  %1890 = call ptr @__errno_location() #8
  store i32 %1889, ptr %1890, align 4, !tbaa !5
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = load i32, ptr @test_count, align 4, !tbaa !5
  %1893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror(i32 noundef %1894, ptr noundef @.str.4)
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror_debug(i32 noundef %1897, ptr noundef @.str.4)
  %1899 = call ptr @__errno_location() #8
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @strerror(i32 noundef %1900) #7
  %1902 = call ptr @__errno_location() #8
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1891, ptr noundef @.str.5, i32 noundef %1892, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1895, ptr noundef %1898, ptr noundef %1901, i32 noundef %1903) #7
  br label %1905

1905:                                             ; preds = %1888, %1871
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

1907:                                             ; preds = %1906
  call void @exit(i32 noundef 1) #9
  unreachable

1908:                                             ; No predecessors!
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

1910:                                             ; preds = %1909, %1851
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

1913:                                             ; preds = %1912
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = icmp eq i32 %1917, 335544393
  br i1 %1918, label %1972, label %1919

1919:                                             ; preds = %1913
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

1921:                                             ; preds = %1920
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %1922 = call ptr @__errno_location() #8
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  store i32 %1923, ptr %43, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = call i32 @s2n_print_stacktrace(ptr noundef %1924)
  %1926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1927 = trunc i8 %1926 to i1
  br i1 %1927, label %1928, label %1950

1928:                                             ; preds = %1921
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @fileno(ptr noundef %1929) #7
  %1931 = call i32 @isatty(i32 noundef %1930) #7
  %1932 = icmp ne i32 %1931, 0
  br i1 %1932, label %1933, label %1950

1933:                                             ; preds = %1928
  %1934 = load i32, ptr %43, align 4, !tbaa !5
  %1935 = call ptr @__errno_location() #8
  store i32 %1934, ptr %1935, align 4, !tbaa !5
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  %1940 = call ptr @s2n_strerror(i32 noundef %1939, ptr noundef @.str.4)
  %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_debug(i32 noundef %1942, ptr noundef @.str.4)
  %1944 = call ptr @__errno_location() #8
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @strerror(i32 noundef %1945) #7
  %1947 = call ptr @__errno_location() #8
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1936, ptr noundef @.str.2, i32 noundef %1937, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1940, ptr noundef %1943, ptr noundef %1946, i32 noundef %1948) #7
  br label %1967

1950:                                             ; preds = %1928, %1921
  %1951 = load i32, ptr %43, align 4, !tbaa !5
  %1952 = call ptr @__errno_location() #8
  store i32 %1951, ptr %1952, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror(i32 noundef %1956, ptr noundef @.str.4)
  %1958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror_debug(i32 noundef %1959, ptr noundef @.str.4)
  %1961 = call ptr @__errno_location() #8
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @strerror(i32 noundef %1962) #7
  %1964 = call ptr @__errno_location() #8
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1953, ptr noundef @.str.5, i32 noundef %1954, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1957, ptr noundef %1960, ptr noundef %1963, i32 noundef %1965) #7
  br label %1967

1967:                                             ; preds = %1950, %1933
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968
  call void @exit(i32 noundef 1) #9
  unreachable

1970:                                             ; No predecessors!
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971, %1913
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974
  %1976 = load i32, ptr @test_count, align 4, !tbaa !5
  %1977 = add nsw i32 %1976, 1
  store i32 %1977, ptr @test_count, align 4, !tbaa !5
  %1978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror_debug(i32 noundef %1979, ptr noundef @.str.4)
  %1981 = icmp eq ptr %1980, null
  br i1 %1981, label %1982, label %2035

1982:                                             ; preds = %1975
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

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

1991:                                             ; preds = %1984
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = call i32 @fileno(ptr noundef %1992) #7
  %1994 = call i32 @isatty(i32 noundef %1993) #7
  %1995 = icmp ne i32 %1994, 0
  br i1 %1995, label %1996, label %2013

1996:                                             ; preds = %1991
  %1997 = load i32, ptr %44, align 4, !tbaa !5
  %1998 = call ptr @__errno_location() #8
  store i32 %1997, ptr %1998, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror(i32 noundef %2002, ptr noundef @.str.4)
  %2004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef @.str.4)
  %2007 = call ptr @__errno_location() #8
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @strerror(i32 noundef %2008) #7
  %2010 = call ptr @__errno_location() #8
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef @.str.2, i32 noundef %2000, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 86, ptr noundef %2003, ptr noundef %2006, ptr noundef %2009, i32 noundef %2011) #7
  br label %2030

2013:                                             ; preds = %1991, %1984
  %2014 = load i32, ptr %44, align 4, !tbaa !5
  %2015 = call ptr @__errno_location() #8
  store i32 %2014, ptr %2015, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror(i32 noundef %2019, ptr noundef @.str.4)
  %2021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror_debug(i32 noundef %2022, ptr noundef @.str.4)
  %2024 = call ptr @__errno_location() #8
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #7
  %2027 = call ptr @__errno_location() #8
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef @.str.5, i32 noundef %2017, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 86, ptr noundef %2020, ptr noundef %2023, ptr noundef %2026, i32 noundef %2028) #7
  br label %2030

2030:                                             ; preds = %2013, %1996
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  call void @exit(i32 noundef 1) #9
  unreachable

2033:                                             ; No predecessors!
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

2035:                                             ; preds = %2034, %1975
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  %2041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2041, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2042 = call ptr @__errno_location() #8
  store i32 0, ptr %2042, align 4, !tbaa !5
  br label %2043

2043:                                             ; preds = %2040
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = add nsw i32 %2048, 1
  store i32 %2049, ptr @test_count, align 4, !tbaa !5
  %2050 = load ptr, ptr %39, align 8, !tbaa !9
  %2051 = getelementptr inbounds %struct.s2n_connection, ptr %2050, i32 0, i32 52
  %2052 = getelementptr inbounds %struct.s2n_handshake, ptr %2051, i32 0, i32 0
  %2053 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2052, i8 noundef zeroext 2)
  %2054 = icmp eq i32 %2053, -1
  br i1 %2054, label %2055, label %2108

2055:                                             ; preds = %2047
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

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

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

2069:                                             ; preds = %2064
  %2070 = load i32, ptr %45, align 4, !tbaa !5
  %2071 = call ptr @__errno_location() #8
  store i32 %2070, ptr %2071, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = load i32, ptr @test_count, align 4, !tbaa !5
  %2074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @s2n_strerror(i32 noundef %2075, ptr noundef @.str.4)
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef @.str.4)
  %2080 = call ptr @__errno_location() #8
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @strerror(i32 noundef %2081) #7
  %2083 = call ptr @__errno_location() #8
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2072, ptr noundef @.str.2, i32 noundef %2073, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2076, ptr noundef %2079, ptr noundef %2082, i32 noundef %2084) #7
  br label %2103

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

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

2104:                                             ; preds = %2103
  br label %2105

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

2106:                                             ; No predecessors!
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

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

2109:                                             ; preds = %2108
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = add nsw i32 %2114, 1
  store i32 %2115, ptr @test_count, align 4, !tbaa !5
  %2116 = load ptr, ptr %39, align 8, !tbaa !9
  %2117 = call i32 @s2n_tls13_cert_req_recv(ptr noundef %2116)
  %2118 = icmp eq i32 %2117, -1
  br i1 %2118, label %2172, label %2119

2119:                                             ; preds = %2113
  br label %2120

2120:                                             ; preds = %2119
  br label %2121

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

2128:                                             ; preds = %2121
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = call i32 @fileno(ptr noundef %2129) #7
  %2131 = call i32 @isatty(i32 noundef %2130) #7
  %2132 = icmp ne i32 %2131, 0
  br i1 %2132, label %2133, label %2150

2133:                                             ; preds = %2128
  %2134 = load i32, ptr %46, align 4, !tbaa !5
  %2135 = call ptr @__errno_location() #8
  store i32 %2134, ptr %2135, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror(i32 noundef %2139, ptr noundef @.str.4)
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call ptr @__errno_location() #8
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @strerror(i32 noundef %2145) #7
  %2147 = call ptr @__errno_location() #8
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef @.str.2, i32 noundef %2137, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2140, ptr noundef %2143, ptr noundef %2146, i32 noundef %2148) #7
  br label %2167

2150:                                             ; preds = %2128, %2121
  %2151 = load i32, ptr %46, align 4, !tbaa !5
  %2152 = call ptr @__errno_location() #8
  store i32 %2151, ptr %2152, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror(i32 noundef %2156, ptr noundef @.str.4)
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror_debug(i32 noundef %2159, ptr noundef @.str.4)
  %2161 = call ptr @__errno_location() #8
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @strerror(i32 noundef %2162) #7
  %2164 = call ptr @__errno_location() #8
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2153, ptr noundef @.str.5, i32 noundef %2154, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2157, ptr noundef %2160, ptr noundef %2163, i32 noundef %2165) #7
  br label %2167

2167:                                             ; preds = %2150, %2133
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  call void @exit(i32 noundef 1) #9
  unreachable

2170:                                             ; No predecessors!
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171, %2113
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174
  %2176 = load i32, ptr @test_count, align 4, !tbaa !5
  %2177 = add nsw i32 %2176, 1
  store i32 %2177, ptr @test_count, align 4, !tbaa !5
  %2178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = icmp eq i32 %2179, 335544322
  br i1 %2180, label %2234, label %2181

2181:                                             ; preds = %2175
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

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

2190:                                             ; preds = %2183
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @fileno(ptr noundef %2191) #7
  %2193 = call i32 @isatty(i32 noundef %2192) #7
  %2194 = icmp ne i32 %2193, 0
  br i1 %2194, label %2195, label %2212

2195:                                             ; preds = %2190
  %2196 = load i32, ptr %47, align 4, !tbaa !5
  %2197 = call ptr @__errno_location() #8
  store i32 %2196, ptr %2197, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef @.str.4)
  %2203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror_debug(i32 noundef %2204, ptr noundef @.str.4)
  %2206 = call ptr @__errno_location() #8
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @strerror(i32 noundef %2207) #7
  %2209 = call ptr @__errno_location() #8
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef @.str.2, i32 noundef %2199, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2202, ptr noundef %2205, ptr noundef %2208, i32 noundef %2210) #7
  br label %2229

2212:                                             ; preds = %2190, %2183
  %2213 = load i32, ptr %47, align 4, !tbaa !5
  %2214 = call ptr @__errno_location() #8
  store i32 %2213, ptr %2214, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror(i32 noundef %2218, ptr noundef @.str.4)
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef @.str.4)
  %2223 = call ptr @__errno_location() #8
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #7
  %2226 = call ptr @__errno_location() #8
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef @.str.5, i32 noundef %2216, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2219, ptr noundef %2222, ptr noundef %2225, i32 noundef %2227) #7
  br label %2229

2229:                                             ; preds = %2212, %2195
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  call void @exit(i32 noundef 1) #9
  unreachable

2232:                                             ; No predecessors!
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233, %2175
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = add nsw i32 %2238, 1
  store i32 %2239, ptr @test_count, align 4, !tbaa !5
  %2240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef @.str.4)
  %2243 = icmp eq ptr %2242, null
  br i1 %2243, label %2244, label %2297

2244:                                             ; preds = %2237
  br label %2245

2245:                                             ; preds = %2244
  br label %2246

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

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

2258:                                             ; preds = %2253
  %2259 = load i32, ptr %48, align 4, !tbaa !5
  %2260 = call ptr @__errno_location() #8
  store i32 %2259, ptr %2260, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef @.str.4)
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef @.str.4)
  %2269 = call ptr @__errno_location() #8
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @strerror(i32 noundef %2270) #7
  %2272 = call ptr @__errno_location() #8
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef @.str.2, i32 noundef %2262, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2265, ptr noundef %2268, ptr noundef %2271, i32 noundef %2273) #7
  br label %2292

2275:                                             ; preds = %2253, %2246
  %2276 = load i32, ptr %48, align 4, !tbaa !5
  %2277 = call ptr @__errno_location() #8
  store i32 %2276, ptr %2277, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @s2n_strerror(i32 noundef %2281, ptr noundef @.str.4)
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror_debug(i32 noundef %2284, ptr noundef @.str.4)
  %2286 = call ptr @__errno_location() #8
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @strerror(i32 noundef %2287) #7
  %2289 = call ptr @__errno_location() #8
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2278, ptr noundef @.str.5, i32 noundef %2279, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2282, ptr noundef %2285, ptr noundef %2288, i32 noundef %2290) #7
  br label %2292

2292:                                             ; preds = %2275, %2258
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

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

2295:                                             ; No predecessors!
  br label %2296

2296:                                             ; preds = %2295
  br label %2297

2297:                                             ; preds = %2296, %2237
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  %2303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2303, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2304 = call ptr @__errno_location() #8
  store i32 0, ptr %2304, align 4, !tbaa !5
  br label %2305

2305:                                             ; preds = %2302
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308
  %2310 = load i32, ptr @test_count, align 4, !tbaa !5
  %2311 = add nsw i32 %2310, 1
  store i32 %2311, ptr @test_count, align 4, !tbaa !5
  %2312 = load ptr, ptr %39, align 8, !tbaa !9
  %2313 = call i32 @s2n_connection_free(ptr noundef %2312)
  %2314 = icmp eq i32 %2313, -1
  br i1 %2314, label %2315, label %2368

2315:                                             ; preds = %2309
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

2317:                                             ; preds = %2316
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  %2318 = call ptr @__errno_location() #8
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  store i32 %2319, ptr %49, align 4, !tbaa !5
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = call i32 @s2n_print_stacktrace(ptr noundef %2320)
  %2322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2323 = trunc i8 %2322 to i1
  br i1 %2323, label %2324, label %2346

2324:                                             ; preds = %2317
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = call i32 @fileno(ptr noundef %2325) #7
  %2327 = call i32 @isatty(i32 noundef %2326) #7
  %2328 = icmp ne i32 %2327, 0
  br i1 %2328, label %2329, label %2346

2329:                                             ; preds = %2324
  %2330 = load i32, ptr %49, align 4, !tbaa !5
  %2331 = call ptr @__errno_location() #8
  store i32 %2330, ptr %2331, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef @.str.4)
  %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_debug(i32 noundef %2338, ptr noundef @.str.4)
  %2340 = call ptr @__errno_location() #8
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @strerror(i32 noundef %2341) #7
  %2343 = call ptr @__errno_location() #8
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef @.str.2, i32 noundef %2333, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 92, ptr noundef %2336, ptr noundef %2339, ptr noundef %2342, i32 noundef %2344) #7
  br label %2363

2346:                                             ; preds = %2324, %2317
  %2347 = load i32, ptr %49, align 4, !tbaa !5
  %2348 = call ptr @__errno_location() #8
  store i32 %2347, ptr %2348, align 4, !tbaa !5
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = load i32, ptr @test_count, align 4, !tbaa !5
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror_debug(i32 noundef %2355, ptr noundef @.str.4)
  %2357 = call ptr @__errno_location() #8
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call ptr @strerror(i32 noundef %2358) #7
  %2360 = call ptr @__errno_location() #8
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2349, ptr noundef @.str.5, i32 noundef %2350, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 92, ptr noundef %2353, ptr noundef %2356, ptr noundef %2359, i32 noundef %2361) #7
  br label %2363

2363:                                             ; preds = %2346, %2329
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  call void @exit(i32 noundef 1) #9
  unreachable

2366:                                             ; No predecessors!
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

2368:                                             ; preds = %2367, %2309
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %2371

2371:                                             ; preds = %2370
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = add nsw i32 %2372, 1
  store i32 %2373, ptr @test_count, align 4, !tbaa !5
  %2374 = call i32 (...) @s2n_disable_tls13_in_test()
  %2375 = icmp eq i32 %2374, -1
  br i1 %2375, label %2376, label %2427

2376:                                             ; preds = %2371
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %2379 = call ptr @__errno_location() #8
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  store i32 %2380, ptr %50, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @s2n_print_stacktrace(ptr noundef %2381)
  %2383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2384 = trunc i8 %2383 to i1
  br i1 %2384, label %2385, label %2407

2385:                                             ; preds = %2378
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @fileno(ptr noundef %2386) #7
  %2388 = call i32 @isatty(i32 noundef %2387) #7
  %2389 = icmp ne i32 %2388, 0
  br i1 %2389, label %2390, label %2407

2390:                                             ; preds = %2385
  %2391 = load i32, ptr %50, align 4, !tbaa !5
  %2392 = call ptr @__errno_location() #8
  store i32 %2391, ptr %2392, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef @.str.4)
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call ptr @__errno_location() #8
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #7
  %2404 = call ptr @__errno_location() #8
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef @.str.2, i32 noundef %2394, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2397, ptr noundef %2400, ptr noundef %2403, i32 noundef %2405) #7
  br label %2424

2407:                                             ; preds = %2385, %2378
  %2408 = load i32, ptr %50, align 4, !tbaa !5
  %2409 = call ptr @__errno_location() #8
  store i32 %2408, ptr %2409, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call ptr @__errno_location() #8
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #7
  %2421 = call ptr @__errno_location() #8
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef @.str.5, i32 noundef %2411, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2414, ptr noundef %2417, ptr noundef %2420, i32 noundef %2422) #7
  br label %2424

2424:                                             ; preds = %2407, %2390
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %2425

2425:                                             ; preds = %2424
  call void @exit(i32 noundef 1) #9
  unreachable

2426:                                             ; No predecessors!
  br label %2427

2427:                                             ; preds = %2426, %2371
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429
  %2431 = call i32 @s2n_cleanup()
  %2432 = icmp eq i32 %2431, -1
  br i1 %2432, label %2433, label %2484

2433:                                             ; preds = %2430
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

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

2442:                                             ; preds = %2435
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @fileno(ptr noundef %2443) #7
  %2445 = call i32 @isatty(i32 noundef %2444) #7
  %2446 = icmp ne i32 %2445, 0
  br i1 %2446, label %2447, label %2464

2447:                                             ; preds = %2442
  %2448 = load i32, ptr %51, align 4, !tbaa !5
  %2449 = call ptr @__errno_location() #8
  store i32 %2448, ptr %2449, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror(i32 noundef %2453, ptr noundef @.str.4)
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef @.str.4)
  %2458 = call ptr @__errno_location() #8
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #7
  %2461 = call ptr @__errno_location() #8
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef @.str.2, i32 noundef %2451, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2454, ptr noundef %2457, ptr noundef %2460, i32 noundef %2462) #7
  br label %2481

2464:                                             ; preds = %2442, %2435
  %2465 = load i32, ptr %51, align 4, !tbaa !5
  %2466 = call ptr @__errno_location() #8
  store i32 %2465, ptr %2466, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = load i32, ptr @test_count, align 4, !tbaa !5
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror(i32 noundef %2470, ptr noundef @.str.4)
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror_debug(i32 noundef %2473, ptr noundef @.str.4)
  %2475 = call ptr @__errno_location() #8
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @strerror(i32 noundef %2476) #7
  %2478 = call ptr @__errno_location() #8
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2467, ptr noundef @.str.5, i32 noundef %2468, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2471, ptr noundef %2474, ptr noundef %2477, i32 noundef %2479) #7
  br label %2481

2481:                                             ; preds = %2464, %2447
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %2482

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

2483:                                             ; No predecessors!
  br label %2484

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

2485:                                             ; preds = %2484
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

2487:                                             ; preds = %2486
  %2488 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2489 = icmp eq i32 %2488, -1
  br i1 %2489, label %2490, label %2541

2490:                                             ; preds = %2487
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

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

2499:                                             ; preds = %2492
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @fileno(ptr noundef %2500) #7
  %2502 = call i32 @isatty(i32 noundef %2501) #7
  %2503 = icmp ne i32 %2502, 0
  br i1 %2503, label %2504, label %2521

2504:                                             ; preds = %2499
  %2505 = load i32, ptr %52, align 4, !tbaa !5
  %2506 = call ptr @__errno_location() #8
  store i32 %2505, ptr %2506, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = load i32, ptr @test_count, align 4, !tbaa !5
  %2509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror(i32 noundef %2510, ptr noundef @.str.4)
  %2512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror_debug(i32 noundef %2513, ptr noundef @.str.4)
  %2515 = call ptr @__errno_location() #8
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @strerror(i32 noundef %2516) #7
  %2518 = call ptr @__errno_location() #8
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2507, ptr noundef @.str.2, i32 noundef %2508, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2511, ptr noundef %2514, ptr noundef %2517, i32 noundef %2519) #7
  br label %2538

2521:                                             ; preds = %2499, %2492
  %2522 = load i32, ptr %52, align 4, !tbaa !5
  %2523 = call ptr @__errno_location() #8
  store i32 %2522, ptr %2523, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef @.str.4)
  %2532 = call ptr @__errno_location() #8
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #7
  %2535 = call ptr @__errno_location() #8
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef @.str.5, i32 noundef %2525, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2528, ptr noundef %2531, ptr noundef %2534, i32 noundef %2536) #7
  br label %2538

2538:                                             ; preds = %2521, %2504
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %2539

2539:                                             ; preds = %2538
  call void @exit(i32 noundef 1) #9
  unreachable

2540:                                             ; No predecessors!
  br label %2541

2541:                                             ; preds = %2540, %2487
  br label %2542

2542:                                             ; preds = %2541
  %2543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2544 = trunc i8 %2543 to i1
  br i1 %2544, label %2545, label %2561

2545:                                             ; preds = %2542
  %2546 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2547 = call i32 @fileno(ptr noundef %2546) #7
  %2548 = call i32 @isatty(i32 noundef %2547) #7
  %2549 = icmp ne i32 %2548, 0
  br i1 %2549, label %2550, label %2561

2550:                                             ; preds = %2545
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = icmp ne i32 %2551, 0
  br i1 %2552, label %2553, label %2557

2553:                                             ; preds = %2550
  %2554 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef @.str.37, i32 noundef %2555) #7
  br label %2560

2557:                                             ; preds = %2550
  %2558 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.38) #7
  br label %2560

2560:                                             ; preds = %2557, %2553
  br label %2572

2561:                                             ; preds = %2545, %2542
  %2562 = load i32, ptr @test_count, align 4, !tbaa !5
  %2563 = icmp ne i32 %2562, 0
  br i1 %2563, label %2564, label %2568

2564:                                             ; preds = %2561
  %2565 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2565, ptr noundef @.str.39, i32 noundef %2566) #7
  br label %2571

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2569, ptr noundef @.str.40) #7
  br label %2571

2571:                                             ; preds = %2568, %2564
  br label %2572

2572:                                             ; preds = %2571, %2560
  store i32 0, ptr %3, align 4
  br label %2575

2573:                                             ; No predecessors!
  br label %2574

2574:                                             ; preds = %2573
  store i32 0, ptr %3, align 4
  br label %2575

2575:                                             ; preds = %2574, %2572
  %2576 = load i32, ptr %3, align 4
  ret i32 %2576
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_tls13_cert_req_send(ptr noundef) #2

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare i32 @s2n_tls13_cert_req_recv(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_cleanup() #2

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


; 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"

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

20:                                               ; preds = %13
  %21 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22 = tail call i32 @fileno(ptr noundef %21) #8
  %23 = tail call i32 @isatty(i32 noundef %22) #8
  %.not159 = icmp eq i32 %23, 0
  br i1 %.not159, label %24, label %25

24:                                               ; preds = %20, %13
  br label %25

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

37:                                               ; preds = %2
  %38 = load i32, ptr @test_count, align 4, !tbaa !5
  %39 = add nsw i32 %38, 1
  store i32 %39, ptr @test_count, align 4, !tbaa !5
  %40 = tail call i32 @s2n_enable_atexit() #8
  %41 = icmp eq i32 %40, -1
  br i1 %41, label %42, label %66

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

49:                                               ; preds = %42
  %50 = load ptr, ptr @stderr, align 8, !tbaa !9
  %51 = tail call i32 @fileno(ptr noundef %50) #8
  %52 = tail call i32 @isatty(i32 noundef %51) #8
  %.not158 = icmp eq i32 %52, 0
  br i1 %.not158, label %53, label %54

53:                                               ; preds = %49, %42
  br label %54

54:                                               ; preds = %49, %53
  %.str.5.sink170 = phi ptr [ @.str.5, %53 ], [ @.str.2, %49 ]
  store i32 %44, ptr %43, align 4, !tbaa !5
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = load i32, ptr @test_count, align 4, !tbaa !5
  %57 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = tail call ptr @s2n_strerror(i32 noundef %58, ptr noundef nonnull @.str.4) #8
  %60 = load i32, ptr %57, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror_debug(i32 noundef %60, ptr noundef nonnull @.str.4) #8
  %62 = load i32, ptr %43, align 4, !tbaa !5
  %63 = tail call ptr @strerror(i32 noundef %62) #8
  %64 = load i32, ptr %43, align 4, !tbaa !5
  %65 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef nonnull %.str.5.sink170, i32 noundef %56, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %59, ptr noundef %61, ptr noundef %63, i32 noundef %64) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

66:                                               ; preds = %37
  %67 = tail call i32 @s2n_init() #8
  %68 = icmp eq i32 %67, -1
  br i1 %68, label %69, label %93

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

76:                                               ; preds = %69
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = tail call i32 @fileno(ptr noundef %77) #8
  %79 = tail call i32 @isatty(i32 noundef %78) #8
  %.not157 = icmp eq i32 %79, 0
  br i1 %.not157, label %80, label %81

80:                                               ; preds = %76, %69
  br label %81

81:                                               ; preds = %76, %80
  %.str.5.sink181 = phi ptr [ @.str.5, %80 ], [ @.str.2, %76 ]
  store i32 %71, ptr %70, align 4, !tbaa !5
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = load i32, ptr @test_count, align 4, !tbaa !5
  %84 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = tail call ptr @s2n_strerror(i32 noundef %85, ptr noundef nonnull @.str.4) #8
  %87 = load i32, ptr %84, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror_debug(i32 noundef %87, ptr noundef nonnull @.str.4) #8
  %89 = load i32, ptr %70, align 4, !tbaa !5
  %90 = tail call ptr @strerror(i32 noundef %89) #8
  %91 = load i32, ptr %70, align 4, !tbaa !5
  %92 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull %.str.5.sink181, i32 noundef %83, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %86, ptr noundef %88, ptr noundef %90, i32 noundef %91) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

93:                                               ; preds = %66
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  store i32 %95, ptr @test_count, align 4, !tbaa !5
  %96 = tail call i32 (...) @s2n_enable_tls13_in_test() #8
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %122

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

105:                                              ; preds = %98
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = tail call i32 @fileno(ptr noundef %106) #8
  %108 = tail call i32 @isatty(i32 noundef %107) #8
  %.not156 = icmp eq i32 %108, 0
  br i1 %.not156, label %109, label %110

109:                                              ; preds = %105, %98
  br label %110

110:                                              ; preds = %105, %109
  %.str.5.sink192 = phi ptr [ @.str.5, %109 ], [ @.str.2, %105 ]
  store i32 %100, ptr %99, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = tail call ptr @s2n_strerror(i32 noundef %114, ptr noundef nonnull @.str.4) #8
  %116 = load i32, ptr %113, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror_debug(i32 noundef %116, ptr noundef nonnull @.str.4) #8
  %118 = load i32, ptr %99, align 4, !tbaa !5
  %119 = tail call ptr @strerror(i32 noundef %118) #8
  %120 = load i32, ptr %99, align 4, !tbaa !5
  %121 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef nonnull %.str.5.sink192, i32 noundef %112, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %115, ptr noundef %117, ptr noundef %119, i32 noundef %120) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

122:                                              ; preds = %93
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, ptr @test_count, align 4, !tbaa !5
  %125 = tail call ptr @s2n_connection_new(i32 noundef 0) #8
  %126 = icmp eq ptr %125, null
  br i1 %126, label %127, label %151

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

134:                                              ; preds = %127
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @fileno(ptr noundef %135) #8
  %137 = tail call i32 @isatty(i32 noundef %136) #8
  %.not155 = icmp eq i32 %137, 0
  br i1 %.not155, label %138, label %139

138:                                              ; preds = %134, %127
  br label %139

139:                                              ; preds = %134, %138
  %.str.5.sink203 = phi ptr [ @.str.5, %138 ], [ @.str.2, %134 ]
  store i32 %129, ptr %128, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror(i32 noundef %143, ptr noundef nonnull @.str.4) #8
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.4) #8
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = tail call ptr @strerror(i32 noundef %147) #8
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.5.sink203, i32 noundef %141, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

151:                                              ; preds = %122
  %152 = getelementptr inbounds i8, ptr %125, i64 220
  store i8 34, ptr %152, align 4, !tbaa !15
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr @test_count, align 4, !tbaa !5
  %155 = tail call i32 @s2n_tls13_cert_req_send(ptr noundef nonnull %125) #8
  %156 = icmp eq i32 %155, -1
  br i1 %156, label %157, label %181

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

164:                                              ; preds = %157
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = tail call i32 @fileno(ptr noundef %165) #8
  %167 = tail call i32 @isatty(i32 noundef %166) #8
  %.not154 = icmp eq i32 %167, 0
  br i1 %.not154, label %168, label %169

168:                                              ; preds = %164, %157
  br label %169

169:                                              ; preds = %164, %168
  %.str.5.sink214 = phi ptr [ @.str.5, %168 ], [ @.str.2, %164 ]
  store i32 %159, ptr %158, align 4, !tbaa !5
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = load i32, ptr @test_count, align 4, !tbaa !5
  %172 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = tail call ptr @s2n_strerror(i32 noundef %173, ptr noundef nonnull @.str.4) #8
  %175 = load i32, ptr %172, align 4, !tbaa !5
  %176 = tail call ptr @s2n_strerror_debug(i32 noundef %175, ptr noundef nonnull @.str.4) #8
  %177 = load i32, ptr %158, align 4, !tbaa !5
  %178 = tail call ptr @strerror(i32 noundef %177) #8
  %179 = load i32, ptr %158, align 4, !tbaa !5
  %180 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef nonnull %.str.5.sink214, i32 noundef %171, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %174, ptr noundef %176, ptr noundef %178, i32 noundef %179) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

181:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #8
  store i8 0, ptr %3, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %4) #8
  store i16 0, ptr %4, align 2, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #8
  store i16 0, ptr %5, align 2, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %6) #8
  store i16 0, ptr %6, align 2, !tbaa !43
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  store i32 %183, ptr @test_count, align 4, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %125, i64 2016
  %185 = getelementptr inbounds i8, ptr %125, i64 2044
  %186 = load i32, ptr %185, align 4, !tbaa !44
  %187 = getelementptr inbounds i8, ptr %125, i64 2040
  %188 = load i32, ptr %187, align 8, !tbaa !45
  %189 = sub i32 %186, %188
  %190 = icmp ugt i32 %189, 7
  br i1 %190, label %215, label %191

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

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

202:                                              ; preds = %198, %191
  br label %203

203:                                              ; preds = %198, %202
  %.str.5.sink225 = phi ptr [ @.str.5, %202 ], [ @.str.2, %198 ]
  store i32 %193, ptr %192, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = load i32, ptr @test_count, align 4, !tbaa !5
  %206 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = tail call ptr @s2n_strerror(i32 noundef %207, ptr noundef nonnull @.str.4) #8
  %209 = load i32, ptr %206, align 4, !tbaa !5
  %210 = tail call ptr @s2n_strerror_debug(i32 noundef %209, ptr noundef nonnull @.str.4) #8
  %211 = load i32, ptr %192, align 4, !tbaa !5
  %212 = tail call ptr @strerror(i32 noundef %211) #8
  %213 = load i32, ptr %192, align 4, !tbaa !5
  %214 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef nonnull %.str.5.sink225, i32 noundef %205, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %208, ptr noundef %210, ptr noundef %212, i32 noundef %213) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

215:                                              ; preds = %181
  %216 = add nsw i32 %182, 2
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %184, ptr noundef nonnull %3) #8
  %218 = icmp eq i32 %217, -1
  br i1 %218, label %219, label %243

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

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

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

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

243:                                              ; preds = %215
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr @test_count, align 4, !tbaa !5
  %246 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %184, ptr noundef nonnull %4) #8
  %247 = icmp eq i32 %246, -1
  br i1 %247, label %248, label %272

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

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

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

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

272:                                              ; preds = %243
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr @test_count, align 4, !tbaa !5
  %275 = load i32, ptr %185, align 4, !tbaa !44
  %276 = load i32, ptr %187, align 8, !tbaa !45
  %277 = sub i32 %275, %276
  %278 = load i16, ptr %4, align 2, !tbaa !43
  %279 = zext i16 %278 to i32
  %280 = icmp eq i32 %277, %279
  br i1 %280, label %305, label %281

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

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

292:                                              ; preds = %288, %281
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink258 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %282, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror(i32 noundef %297, ptr noundef nonnull @.str.4) #8
  %299 = load i32, ptr %296, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef nonnull @.str.4) #8
  %301 = load i32, ptr %282, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #8
  %303 = load i32, ptr %282, align 4, !tbaa !5
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink258, i32 noundef %295, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %298, ptr noundef %300, ptr noundef %302, i32 noundef %303) #10
  call void @exit(i32 noundef 1) #11
  unreachable

305:                                              ; preds = %272
  %306 = add nsw i32 %273, 2
  store i32 %306, ptr @test_count, align 4, !tbaa !5
  %307 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %184, ptr noundef nonnull %6) #8
  %308 = icmp eq i32 %307, -1
  br i1 %308, label %309, label %333

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

316:                                              ; preds = %309
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @fileno(ptr noundef %317) #8
  %319 = call i32 @isatty(i32 noundef %318) #8
  %.not151 = icmp eq i32 %319, 0
  br i1 %.not151, label %320, label %321

320:                                              ; preds = %316, %309
  br label %321

321:                                              ; preds = %316, %320
  %.str.5.sink269 = phi ptr [ @.str.5, %320 ], [ @.str.2, %316 ]
  store i32 %311, ptr %310, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef nonnull @.str.4) #8
  %327 = load i32, ptr %324, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror_debug(i32 noundef %327, ptr noundef nonnull @.str.4) #8
  %329 = load i32, ptr %310, align 4, !tbaa !5
  %330 = call ptr @strerror(i32 noundef %329) #8
  %331 = load i32, ptr %310, align 4, !tbaa !5
  %332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef nonnull %.str.5.sink269, i32 noundef %323, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %326, ptr noundef %328, ptr noundef %330, i32 noundef %331) #10
  call void @exit(i32 noundef 1) #11
  unreachable

333:                                              ; preds = %305
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr @test_count, align 4, !tbaa !5
  %336 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %184, ptr noundef nonnull %5) #8
  %337 = icmp eq i32 %336, -1
  br i1 %337, label %338, label %362

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

345:                                              ; preds = %338
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @fileno(ptr noundef %346) #8
  %348 = call i32 @isatty(i32 noundef %347) #8
  %.not150 = icmp eq i32 %348, 0
  br i1 %.not150, label %349, label %350

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.5.sink280 = phi ptr [ @.str.5, %349 ], [ @.str.2, %345 ]
  store i32 %340, ptr %339, 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 nonnull @.str.4) #8
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.4) #8
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #8
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.5.sink280, i32 noundef %352, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #10
  call void @exit(i32 noundef 1) #11
  unreachable

362:                                              ; preds = %333
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = load i8, ptr %3, align 1, !tbaa !42
  %366 = icmp eq i8 %365, 0
  br i1 %366, label %391, label %367

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

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

378:                                              ; preds = %374, %367
  br label %379

379:                                              ; preds = %374, %378
  %.str.5.sink291 = phi ptr [ @.str.5, %378 ], [ @.str.2, %374 ]
  store i32 %369, ptr %368, align 4, !tbaa !5
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @s2n_strerror(i32 noundef %383, ptr noundef nonnull @.str.4) #8
  %385 = load i32, ptr %382, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef nonnull @.str.4) #8
  %387 = load i32, ptr %368, align 4, !tbaa !5
  %388 = call ptr @strerror(i32 noundef %387) #8
  %389 = load i32, ptr %368, align 4, !tbaa !5
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %380, ptr noundef nonnull %.str.5.sink291, i32 noundef %381, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %384, ptr noundef %386, ptr noundef %388, i32 noundef %389) #10
  call void @exit(i32 noundef 1) #11
  unreachable

391:                                              ; preds = %362
  %392 = add nsw i32 %363, 2
  store i32 %392, ptr @test_count, align 4, !tbaa !5
  %393 = load i16, ptr %6, align 2, !tbaa !43
  %394 = icmp eq i16 %393, 13
  br i1 %394, label %419, label %395

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

402:                                              ; preds = %395
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = call i32 @fileno(ptr noundef %403) #8
  %405 = call i32 @isatty(i32 noundef %404) #8
  %.not117 = icmp eq i32 %405, 0
  br i1 %.not117, label %406, label %407

406:                                              ; preds = %402, %395
  br label %407

407:                                              ; preds = %402, %406
  %.str.5.sink302 = phi ptr [ @.str.5, %406 ], [ @.str.2, %402 ]
  store i32 %397, ptr %396, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror(i32 noundef %411, ptr noundef nonnull @.str.4) #8
  %413 = load i32, ptr %410, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef nonnull @.str.4) #8
  %415 = load i32, ptr %396, align 4, !tbaa !5
  %416 = call ptr @strerror(i32 noundef %415) #8
  %417 = load i32, ptr %396, align 4, !tbaa !5
  %418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %408, ptr noundef nonnull %.str.5.sink302, i32 noundef %409, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %412, ptr noundef %414, ptr noundef %416, i32 noundef %417) #10
  call void @exit(i32 noundef 1) #11
  unreachable

419:                                              ; preds = %391
  %420 = add nsw i32 %363, 3
  store i32 %420, ptr @test_count, align 4, !tbaa !5
  %421 = load i16, ptr %5, align 2, !tbaa !43
  %.not118 = icmp eq i16 %421, 0
  br i1 %.not118, label %422, label %446

422:                                              ; preds = %419
  %423 = tail call ptr @__errno_location() #9
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425) #8
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc nuw i8 %427 to i1
  br i1 %428, label %429, label %433

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @fileno(ptr noundef %430) #8
  %432 = call i32 @isatty(i32 noundef %431) #8
  %.not119 = icmp eq i32 %432, 0
  br i1 %.not119, label %433, label %434

433:                                              ; preds = %429, %422
  br label %434

434:                                              ; preds = %429, %433
  %.str.5.sink313 = phi ptr [ @.str.5, %433 ], [ @.str.2, %429 ]
  store i32 %424, ptr %423, 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 nonnull @.str.4) #8
  %440 = load i32, ptr %437, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror_debug(i32 noundef %440, ptr noundef nonnull @.str.4) #8
  %442 = load i32, ptr %423, align 4, !tbaa !5
  %443 = call ptr @strerror(i32 noundef %442) #8
  %444 = load i32, ptr %423, align 4, !tbaa !5
  %445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef nonnull %.str.5.sink313, i32 noundef %436, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %439, ptr noundef %441, ptr noundef %443, i32 noundef %444) #10
  call void @exit(i32 noundef 1) #11
  unreachable

446:                                              ; preds = %419
  %447 = add nsw i32 %363, 4
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #8
  %449 = icmp eq i32 %448, -1
  br i1 %449, label %450, label %474

450:                                              ; preds = %446
  %451 = tail call ptr @__errno_location() #9
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #8
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #8
  %460 = call i32 @isatty(i32 noundef %459) #8
  %.not149 = icmp eq i32 %460, 0
  br i1 %.not149, label %461, label %462

461:                                              ; preds = %457, %450
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink324 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %451, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror(i32 noundef %466, ptr noundef nonnull @.str.4) #8
  %468 = load i32, ptr %465, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #8
  %470 = load i32, ptr %451, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #8
  %472 = load i32, ptr %451, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink324, i32 noundef %464, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #10
  call void @exit(i32 noundef 1) #11
  unreachable

474:                                              ; preds = %446
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #8
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = call ptr @s2n_connection_new(i32 noundef 0) #8
  %478 = icmp eq ptr %477, null
  br i1 %478, label %479, label %503

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

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

490:                                              ; preds = %486, %479
  br label %491

491:                                              ; preds = %486, %490
  %.str.5.sink335 = phi ptr [ @.str.5, %490 ], [ @.str.2, %486 ]
  store i32 %481, ptr %480, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef nonnull @.str.4) #8
  %497 = load i32, ptr %494, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror_debug(i32 noundef %497, ptr noundef nonnull @.str.4) #8
  %499 = load i32, ptr %480, align 4, !tbaa !5
  %500 = call ptr @strerror(i32 noundef %499) #8
  %501 = load i32, ptr %480, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %492, ptr noundef nonnull %.str.5.sink335, i32 noundef %493, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %496, ptr noundef %498, ptr noundef %500, i32 noundef %501) #10
  call void @exit(i32 noundef 1) #11
  unreachable

503:                                              ; preds = %474
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %506 = call ptr @s2n_connection_new(i32 noundef 1) #8
  %507 = icmp eq ptr %506, null
  br i1 %507, label %508, label %532

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

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

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

520:                                              ; preds = %515, %519
  %.str.5.sink346 = phi ptr [ @.str.5, %519 ], [ @.str.2, %515 ]
  store i32 %510, ptr %509, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror(i32 noundef %524, ptr noundef nonnull @.str.4) #8
  %526 = load i32, ptr %523, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror_debug(i32 noundef %526, ptr noundef nonnull @.str.4) #8
  %528 = load i32, ptr %509, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #8
  %530 = load i32, ptr %509, align 4, !tbaa !5
  %531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef nonnull %.str.5.sink346, i32 noundef %522, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %525, ptr noundef %527, ptr noundef %529, i32 noundef %530) #10
  call void @exit(i32 noundef 1) #11
  unreachable

532:                                              ; preds = %503
  %533 = getelementptr inbounds i8, ptr %477, i64 220
  store i8 34, ptr %533, align 4, !tbaa !15
  %534 = getelementptr inbounds i8, ptr %506, i64 220
  store i8 34, ptr %534, align 4, !tbaa !15
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr @test_count, align 4, !tbaa !5
  %537 = call i32 @s2n_tls13_cert_req_send(ptr noundef nonnull %477) #8
  %538 = icmp eq i32 %537, -1
  br i1 %538, label %539, label %563

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

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

550:                                              ; preds = %546, %539
  br label %551

551:                                              ; preds = %546, %550
  %.str.5.sink357 = phi ptr [ @.str.5, %550 ], [ @.str.2, %546 ]
  store i32 %541, ptr %540, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef nonnull @.str.4) #8
  %557 = load i32, ptr %554, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef nonnull @.str.4) #8
  %559 = load i32, ptr %540, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #8
  %561 = load i32, ptr %540, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %552, ptr noundef nonnull %.str.5.sink357, i32 noundef %553, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %556, ptr noundef %558, ptr noundef %560, i32 noundef %561) #10
  call void @exit(i32 noundef 1) #11
  unreachable

563:                                              ; preds = %532
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = getelementptr inbounds i8, ptr %477, i64 2044
  %567 = load i32, ptr %566, align 4, !tbaa !44
  %568 = getelementptr inbounds i8, ptr %477, i64 2040
  %569 = load i32, ptr %568, align 8, !tbaa !45
  %.not120 = icmp eq i32 %567, %569
  br i1 %.not120, label %570, label %594

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

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

581:                                              ; preds = %577, %570
  br label %582

582:                                              ; preds = %577, %581
  %.str.5.sink368 = phi ptr [ @.str.5, %581 ], [ @.str.2, %577 ]
  store i32 %572, ptr %571, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror(i32 noundef %586, ptr noundef nonnull @.str.4) #8
  %588 = load i32, ptr %585, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef nonnull @.str.4) #8
  %590 = load i32, ptr %571, align 4, !tbaa !5
  %591 = call ptr @strerror(i32 noundef %590) #8
  %592 = load i32, ptr %571, align 4, !tbaa !5
  %593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull %.str.5.sink368, i32 noundef %584, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %587, ptr noundef %589, ptr noundef %591, i32 noundef %592) #10
  call void @exit(i32 noundef 1) #11
  unreachable

594:                                              ; preds = %563
  %595 = getelementptr inbounds i8, ptr %477, i64 2016
  %596 = add nsw i32 %564, 2
  store i32 %596, ptr @test_count, align 4, !tbaa !5
  %597 = getelementptr inbounds i8, ptr %506, i64 2016
  %598 = sub i32 %567, %569
  %599 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %595, ptr noundef nonnull %597, i32 noundef %598) #8
  %600 = icmp eq i32 %599, -1
  br i1 %600, label %601, label %625

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

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

612:                                              ; preds = %608, %601
  br label %613

613:                                              ; preds = %608, %612
  %.str.5.sink379 = phi ptr [ @.str.5, %612 ], [ @.str.2, %608 ]
  store i32 %603, ptr %602, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror(i32 noundef %617, ptr noundef nonnull @.str.4) #8
  %619 = load i32, ptr %616, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror_debug(i32 noundef %619, ptr noundef nonnull @.str.4) #8
  %621 = load i32, ptr %602, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #8
  %623 = load i32, ptr %602, align 4, !tbaa !5
  %624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull %.str.5.sink379, i32 noundef %615, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %618, ptr noundef %620, ptr noundef %622, i32 noundef %623) #10
  call void @exit(i32 noundef 1) #11
  unreachable

625:                                              ; preds = %594
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr @test_count, align 4, !tbaa !5
  %628 = getelementptr inbounds i8, ptr %506, i64 2044
  %629 = load i32, ptr %628, align 4, !tbaa !44
  %630 = getelementptr inbounds i8, ptr %506, i64 2040
  %631 = load i32, ptr %630, align 8, !tbaa !45
  %.not122 = icmp eq i32 %629, %631
  br i1 %.not122, label %632, label %656

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

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

643:                                              ; preds = %639, %632
  br label %644

644:                                              ; preds = %639, %643
  %.str.5.sink390 = phi ptr [ @.str.5, %643 ], [ @.str.2, %639 ]
  store i32 %634, ptr %633, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef nonnull @.str.4) #8
  %650 = load i32, ptr %647, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror_debug(i32 noundef %650, ptr noundef nonnull @.str.4) #8
  %652 = load i32, ptr %633, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #8
  %654 = load i32, ptr %633, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef nonnull %.str.5.sink390, i32 noundef %646, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %649, ptr noundef %651, ptr noundef %653, i32 noundef %654) #10
  call void @exit(i32 noundef 1) #11
  unreachable

656:                                              ; preds = %625
  %657 = add nsw i32 %626, 2
  store i32 %657, ptr @test_count, align 4, !tbaa !5
  %658 = call i32 @s2n_tls13_cert_req_recv(ptr noundef nonnull %506) #8
  %659 = icmp eq i32 %658, -1
  br i1 %659, label %660, label %684

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

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

671:                                              ; preds = %667, %660
  br label %672

672:                                              ; preds = %667, %671
  %.str.5.sink401 = phi ptr [ @.str.5, %671 ], [ @.str.2, %667 ]
  store i32 %662, ptr %661, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror(i32 noundef %676, ptr noundef nonnull @.str.4) #8
  %678 = load i32, ptr %675, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef nonnull @.str.4) #8
  %680 = load i32, ptr %661, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #8
  %682 = load i32, ptr %661, align 4, !tbaa !5
  %683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %673, ptr noundef nonnull %.str.5.sink401, i32 noundef %674, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %677, ptr noundef %679, ptr noundef %681, i32 noundef %682) #10
  call void @exit(i32 noundef 1) #11
  unreachable

684:                                              ; preds = %656
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr @test_count, align 4, !tbaa !5
  %687 = getelementptr inbounds i8, ptr %506, i64 1524
  %688 = load i8, ptr %687, align 4, !tbaa !46
  %.not124 = icmp eq i8 %688, 0
  br i1 %.not124, label %689, label %713

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

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

700:                                              ; preds = %696, %689
  br label %701

701:                                              ; preds = %696, %700
  %.str.5.sink412 = phi ptr [ @.str.5, %700 ], [ @.str.2, %696 ]
  store i32 %691, ptr %690, align 4, !tbaa !5
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror(i32 noundef %705, ptr noundef nonnull @.str.4) #8
  %707 = load i32, ptr %704, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror_debug(i32 noundef %707, ptr noundef nonnull @.str.4) #8
  %709 = load i32, ptr %690, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #8
  %711 = load i32, ptr %690, align 4, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef nonnull %.str.5.sink412, i32 noundef %703, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %706, ptr noundef %708, ptr noundef %710, i32 noundef %711) #10
  call void @exit(i32 noundef 1) #11
  unreachable

713:                                              ; preds = %684
  %714 = add nsw i32 %685, 2
  store i32 %714, ptr @test_count, align 4, !tbaa !5
  %715 = call i32 @s2n_connection_free(ptr noundef nonnull %506) #8
  %716 = icmp eq i32 %715, -1
  br i1 %716, label %717, label %741

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

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

728:                                              ; preds = %724, %717
  br label %729

729:                                              ; preds = %724, %728
  %.str.5.sink423 = phi ptr [ @.str.5, %728 ], [ @.str.2, %724 ]
  store i32 %719, ptr %718, 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 nonnull @.str.4) #8
  %735 = load i32, ptr %732, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror_debug(i32 noundef %735, ptr noundef nonnull @.str.4) #8
  %737 = load i32, ptr %718, align 4, !tbaa !5
  %738 = call ptr @strerror(i32 noundef %737) #8
  %739 = load i32, ptr %718, align 4, !tbaa !5
  %740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef nonnull %.str.5.sink423, i32 noundef %731, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %734, ptr noundef %736, ptr noundef %738, i32 noundef %739) #10
  call void @exit(i32 noundef 1) #11
  unreachable

741:                                              ; preds = %713
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = add nsw i32 %742, 1
  store i32 %743, ptr @test_count, align 4, !tbaa !5
  %744 = call i32 @s2n_connection_free(ptr noundef nonnull %477) #8
  %745 = icmp eq i32 %744, -1
  br i1 %745, label %746, label %770

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

753:                                              ; preds = %746
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @fileno(ptr noundef %754) #8
  %756 = call i32 @isatty(i32 noundef %755) #8
  %.not142 = icmp eq i32 %756, 0
  br i1 %.not142, label %757, label %758

757:                                              ; preds = %753, %746
  br label %758

758:                                              ; preds = %753, %757
  %.str.5.sink434 = phi ptr [ @.str.5, %757 ], [ @.str.2, %753 ]
  store i32 %748, ptr %747, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror(i32 noundef %762, ptr noundef nonnull @.str.4) #8
  %764 = load i32, ptr %761, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror_debug(i32 noundef %764, ptr noundef nonnull @.str.4) #8
  %766 = load i32, ptr %747, align 4, !tbaa !5
  %767 = call ptr @strerror(i32 noundef %766) #8
  %768 = load i32, ptr %747, align 4, !tbaa !5
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef nonnull %.str.5.sink434, i32 noundef %760, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %763, ptr noundef %765, ptr noundef %767, i32 noundef %768) #10
  call void @exit(i32 noundef 1) #11
  unreachable

770:                                              ; preds = %741
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = add nsw i32 %771, 1
  store i32 %772, ptr @test_count, align 4, !tbaa !5
  %773 = call ptr @s2n_connection_new(i32 noundef 1) #8
  %774 = icmp eq ptr %773, null
  br i1 %774, label %775, label %799

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

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

786:                                              ; preds = %782, %775
  br label %787

787:                                              ; preds = %782, %786
  %.str.5.sink445 = phi ptr [ @.str.5, %786 ], [ @.str.2, %782 ]
  store i32 %777, ptr %776, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.4) #8
  %793 = load i32, ptr %790, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.4) #8
  %795 = load i32, ptr %776, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #8
  %797 = load i32, ptr %776, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef nonnull %.str.5.sink445, i32 noundef %789, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #10
  call void @exit(i32 noundef 1) #11
  unreachable

799:                                              ; preds = %770
  %800 = getelementptr inbounds i8, ptr %773, i64 220
  store i8 34, ptr %800, align 4, !tbaa !15
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @test_count, align 4, !tbaa !5
  %803 = getelementptr inbounds i8, ptr %773, i64 2016
  %804 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %803, i8 noundef zeroext 0) #8
  %805 = icmp eq i32 %804, -1
  br i1 %805, label %806, label %830

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

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

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

818:                                              ; preds = %813, %817
  %.str.5.sink456 = phi ptr [ @.str.5, %817 ], [ @.str.2, %813 ]
  store i32 %808, ptr %807, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.4) #8
  %824 = load i32, ptr %821, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.4) #8
  %826 = load i32, ptr %807, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #8
  %828 = load i32, ptr %807, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %819, ptr noundef nonnull %.str.5.sink456, i32 noundef %820, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #10
  call void @exit(i32 noundef 1) #11
  unreachable

830:                                              ; preds = %799
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr @test_count, align 4, !tbaa !5
  %833 = call i32 @s2n_tls13_cert_req_recv(ptr noundef nonnull %773) #8
  %834 = icmp eq i32 %833, -1
  br i1 %834, label %859, label %835

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

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

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

847:                                              ; preds = %842, %846
  %.str.5.sink467 = phi ptr [ @.str.5, %846 ], [ @.str.2, %842 ]
  store i32 %837, ptr %836, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror(i32 noundef %851, ptr noundef nonnull @.str.4) #8
  %853 = load i32, ptr %850, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror_debug(i32 noundef %853, ptr noundef nonnull @.str.4) #8
  %855 = load i32, ptr %836, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #8
  %857 = load i32, ptr %836, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %848, ptr noundef nonnull %.str.5.sink467, i32 noundef %849, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %852, ptr noundef %854, ptr noundef %856, i32 noundef %857) #10
  call void @exit(i32 noundef 1) #11
  unreachable

859:                                              ; preds = %830
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = add nsw i32 %860, 1
  store i32 %861, ptr @test_count, align 4, !tbaa !5
  %862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = icmp eq i32 %863, 335544393
  br i1 %864, label %888, label %865

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

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

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

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

888:                                              ; preds = %859
  %889 = add nsw i32 %860, 2
  store i32 %889, ptr @test_count, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #8
  %891 = icmp eq ptr %890, null
  br i1 %891, label %892, label %915

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

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

903:                                              ; preds = %899, %892
  br label %904

904:                                              ; preds = %899, %903
  %.str.5.sink487 = phi ptr [ @.str.5, %903 ], [ @.str.2, %899 ]
  store i32 %894, ptr %893, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = load i32, ptr %862, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror(i32 noundef %907, ptr noundef nonnull @.str.4) #8
  %909 = load i32, ptr %862, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef nonnull @.str.4) #8
  %911 = load i32, ptr %893, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #8
  %913 = load i32, ptr %893, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef nonnull %.str.5.sink487, i32 noundef %906, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %908, ptr noundef %910, ptr noundef %912, i32 noundef %913) #10
  call void @exit(i32 noundef 1) #11
  unreachable

915:                                              ; preds = %888
  store i32 0, ptr %862, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #8
  %916 = tail call ptr @__errno_location() #9
  store i32 0, ptr %916, align 4, !tbaa !5
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr @test_count, align 4, !tbaa !5
  %919 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %803, i8 noundef zeroext 2) #8
  %920 = icmp eq i32 %919, -1
  br i1 %920, label %921, label %943

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

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

931:                                              ; preds = %927, %921
  br label %932

932:                                              ; preds = %927, %931
  %.str.5.sink496 = phi ptr [ @.str.5, %931 ], [ @.str.2, %927 ]
  store i32 %922, ptr %916, align 4, !tbaa !5
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = load i32, ptr %862, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef nonnull @.str.4) #8
  %937 = load i32, ptr %862, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror_debug(i32 noundef %937, ptr noundef nonnull @.str.4) #8
  %939 = load i32, ptr %916, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #8
  %941 = load i32, ptr %916, align 4, !tbaa !5
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %933, ptr noundef nonnull %.str.5.sink496, i32 noundef %934, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %936, ptr noundef %938, ptr noundef %940, i32 noundef %941) #10
  call void @exit(i32 noundef 1) #11
  unreachable

943:                                              ; preds = %915
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = call i32 @s2n_tls13_cert_req_recv(ptr noundef nonnull %773) #8
  %947 = icmp eq i32 %946, -1
  br i1 %947, label %970, label %948

948:                                              ; preds = %943
  %949 = load i32, ptr %916, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @s2n_print_stacktrace(ptr noundef %950) #8
  %952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %953 = trunc nuw i8 %952 to i1
  br i1 %953, label %954, label %958

954:                                              ; preds = %948
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @fileno(ptr noundef %955) #8
  %957 = call i32 @isatty(i32 noundef %956) #8
  %.not128 = icmp eq i32 %957, 0
  br i1 %.not128, label %958, label %959

958:                                              ; preds = %954, %948
  br label %959

959:                                              ; preds = %954, %958
  %.str.5.sink505 = phi ptr [ @.str.5, %958 ], [ @.str.2, %954 ]
  store i32 %949, ptr %916, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = load i32, ptr %862, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror(i32 noundef %962, ptr noundef nonnull @.str.4) #8
  %964 = load i32, ptr %862, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef nonnull @.str.4) #8
  %966 = load i32, ptr %916, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #8
  %968 = load i32, ptr %916, align 4, !tbaa !5
  %969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %960, ptr noundef nonnull %.str.5.sink505, i32 noundef %961, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %963, ptr noundef %965, ptr noundef %967, i32 noundef %968) #10
  call void @exit(i32 noundef 1) #11
  unreachable

970:                                              ; preds = %943
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = add nsw i32 %971, 1
  store i32 %972, ptr @test_count, align 4, !tbaa !5
  %973 = load i32, ptr %862, align 4, !tbaa !5
  %974 = icmp eq i32 %973, 335544322
  br i1 %974, label %997, label %975

975:                                              ; preds = %970
  %976 = load i32, ptr %916, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @s2n_print_stacktrace(ptr noundef %977) #8
  %979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %980 = trunc nuw i8 %979 to i1
  br i1 %980, label %981, label %985

981:                                              ; preds = %975
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @fileno(ptr noundef %982) #8
  %984 = call i32 @isatty(i32 noundef %983) #8
  %.not129 = icmp eq i32 %984, 0
  br i1 %.not129, label %985, label %986

985:                                              ; preds = %981, %975
  br label %986

986:                                              ; preds = %981, %985
  %.str.5.sink514 = phi ptr [ @.str.5, %985 ], [ @.str.2, %981 ]
  store i32 %976, ptr %916, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = load i32, ptr %862, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror(i32 noundef %989, ptr noundef nonnull @.str.4) #8
  %991 = load i32, ptr %862, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror_debug(i32 noundef %991, ptr noundef nonnull @.str.4) #8
  %993 = load i32, ptr %916, align 4, !tbaa !5
  %994 = call ptr @strerror(i32 noundef %993) #8
  %995 = load i32, ptr %916, align 4, !tbaa !5
  %996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef nonnull %.str.5.sink514, i32 noundef %988, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %990, ptr noundef %992, ptr noundef %994, i32 noundef %995) #10
  call void @exit(i32 noundef 1) #11
  unreachable

997:                                              ; preds = %970
  %998 = add nsw i32 %971, 2
  store i32 %998, ptr @test_count, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #8
  %1000 = icmp eq ptr %999, null
  br i1 %1000, label %1001, label %1023

1001:                                             ; preds = %997
  %1002 = load i32, ptr %916, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003) #8
  %1005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1006 = trunc nuw i8 %1005 to i1
  br i1 %1006, label %1007, label %1011

1007:                                             ; preds = %1001
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #8
  %1010 = call i32 @isatty(i32 noundef %1009) #8
  %.not137 = icmp eq i32 %1010, 0
  br i1 %.not137, label %1011, label %1012

1011:                                             ; preds = %1007, %1001
  br label %1012

1012:                                             ; preds = %1007, %1011
  %.str.5.sink523 = phi ptr [ @.str.5, %1011 ], [ @.str.2, %1007 ]
  store i32 %1002, ptr %916, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = load i32, ptr %862, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef nonnull @.str.4) #8
  %1017 = load i32, ptr %862, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef nonnull @.str.4) #8
  %1019 = load i32, ptr %916, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #8
  %1021 = load i32, ptr %916, align 4, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef nonnull %.str.5.sink523, i32 noundef %1014, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %1016, ptr noundef %1018, ptr noundef %1020, i32 noundef %1021) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1023:                                             ; preds = %997
  store i32 0, ptr %862, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #8
  store i32 0, ptr %916, align 4, !tbaa !5
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %773) #8
  %1027 = icmp eq i32 %1026, -1
  br i1 %1027, label %1028, label %1050

1028:                                             ; preds = %1023
  %1029 = load i32, ptr %916, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @s2n_print_stacktrace(ptr noundef %1030) #8
  %1032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1033 = trunc nuw i8 %1032 to i1
  br i1 %1033, label %1034, label %1038

1034:                                             ; preds = %1028
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = call i32 @fileno(ptr noundef %1035) #8
  %1037 = call i32 @isatty(i32 noundef %1036) #8
  %.not136 = icmp eq i32 %1037, 0
  br i1 %.not136, label %1038, label %1039

1038:                                             ; preds = %1034, %1028
  br label %1039

1039:                                             ; preds = %1034, %1038
  %.str.5.sink532 = phi ptr [ @.str.5, %1038 ], [ @.str.2, %1034 ]
  store i32 %1029, ptr %916, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = load i32, ptr %862, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef nonnull @.str.4) #8
  %1044 = load i32, ptr %862, align 4, !tbaa !5
  %1045 = call ptr @s2n_strerror_debug(i32 noundef %1044, ptr noundef nonnull @.str.4) #8
  %1046 = load i32, ptr %916, align 4, !tbaa !5
  %1047 = call ptr @strerror(i32 noundef %1046) #8
  %1048 = load i32, ptr %916, align 4, !tbaa !5
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef nonnull %.str.5.sink532, i32 noundef %1041, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %1043, ptr noundef %1045, ptr noundef %1047, i32 noundef %1048) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1050:                                             ; preds = %1023
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = add nsw i32 %1051, 1
  store i32 %1052, ptr @test_count, align 4, !tbaa !5
  %1053 = call i32 (...) @s2n_disable_tls13_in_test() #8
  %1054 = icmp eq i32 %1053, -1
  br i1 %1054, label %1055, label %1077

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

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

1065:                                             ; preds = %1061, %1055
  br label %1066

1066:                                             ; preds = %1061, %1065
  %.str.5.sink541 = phi ptr [ @.str.5, %1065 ], [ @.str.2, %1061 ]
  store i32 %1056, ptr %916, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = load i32, ptr %862, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef nonnull @.str.4) #8
  %1071 = load i32, ptr %862, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror_debug(i32 noundef %1071, ptr noundef nonnull @.str.4) #8
  %1073 = load i32, ptr %916, align 4, !tbaa !5
  %1074 = call ptr @strerror(i32 noundef %1073) #8
  %1075 = load i32, ptr %916, align 4, !tbaa !5
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1067, ptr noundef nonnull %.str.5.sink541, i32 noundef %1068, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %1070, ptr noundef %1072, ptr noundef %1074, i32 noundef %1075) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1077:                                             ; preds = %1050
  %1078 = call i32 @s2n_cleanup() #8
  %1079 = icmp eq i32 %1078, -1
  br i1 %1079, label %1080, label %1102

1080:                                             ; preds = %1077
  %1081 = load i32, ptr %916, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @s2n_print_stacktrace(ptr noundef %1082) #8
  %1084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1085 = trunc nuw i8 %1084 to i1
  br i1 %1085, label %1086, label %1090

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

1090:                                             ; preds = %1086, %1080
  br label %1091

1091:                                             ; preds = %1086, %1090
  %.str.5.sink550 = phi ptr [ @.str.5, %1090 ], [ @.str.2, %1086 ]
  store i32 %1081, ptr %916, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = load i32, ptr %862, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror(i32 noundef %1094, ptr noundef nonnull @.str.4) #8
  %1096 = load i32, ptr %862, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef nonnull @.str.4) #8
  %1098 = load i32, ptr %916, align 4, !tbaa !5
  %1099 = call ptr @strerror(i32 noundef %1098) #8
  %1100 = load i32, ptr %916, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef nonnull %.str.5.sink550, i32 noundef %1093, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %1095, ptr noundef %1097, ptr noundef %1099, i32 noundef %1100) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1102:                                             ; preds = %1077
  %1103 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #8
  %1104 = icmp eq i32 %1103, -1
  br i1 %1104, label %1105, label %1127

1105:                                             ; preds = %1102
  %1106 = load i32, ptr %916, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @s2n_print_stacktrace(ptr noundef %1107) #8
  %1109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1110 = trunc nuw i8 %1109 to i1
  br i1 %1110, label %1111, label %1115

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

1115:                                             ; preds = %1111, %1105
  br label %1116

1116:                                             ; preds = %1111, %1115
  %.str.5.sink559 = phi ptr [ @.str.5, %1115 ], [ @.str.2, %1111 ]
  store i32 %1106, ptr %916, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = load i32, ptr %862, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef nonnull @.str.4) #8
  %1121 = load i32, ptr %862, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror_debug(i32 noundef %1121, ptr noundef nonnull @.str.4) #8
  %1123 = load i32, ptr %916, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #8
  %1125 = load i32, ptr %916, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1117, ptr noundef nonnull %.str.5.sink559, i32 noundef %1118, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %1120, ptr noundef %1122, ptr noundef %1124, i32 noundef %1125) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1127:                                             ; preds = %1102
  %1128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1129 = trunc nuw i8 %1128 to i1
  br i1 %1129, label %1130, label %1141

1130:                                             ; preds = %1127
  %1131 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1132 = call i32 @fileno(ptr noundef %1131) #8
  %1133 = call i32 @isatty(i32 noundef %1132) #8
  %.not130 = icmp eq i32 %1133, 0
  br i1 %.not130, label %1141, label %1134

1134:                                             ; preds = %1130
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not132 = icmp eq i32 %1135, 0
  %1136 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not132, label %1139, label %1137

1137:                                             ; preds = %1134
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef nonnull @.str.37, i32 noundef %1135) #8
  br label %1148

1139:                                             ; preds = %1134
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef nonnull @.str.38) #8
  br label %1148

1141:                                             ; preds = %1130, %1127
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not131 = icmp eq i32 %1142, 0
  %1143 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not131, label %1146, label %1144

1144:                                             ; preds = %1141
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1143, ptr noundef nonnull @.str.39, i32 noundef %1142) #8
  br label %1148

1146:                                             ; preds = %1141
  %1147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1143, ptr noundef nonnull @.str.40) #8
  br label %1148

1148:                                             ; preds = %1144, %1146, %1137, %1139
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_cert_req_send(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_tls13_cert_req_recv(ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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


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