; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_io_async_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_handshake_action = type { i8, i8, i8, [2 x ptr] }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@tls13_state_machine = external hidden global [21 x %struct.s2n_handshake_action], align 16
@state_machine = external hidden global [21 x %struct.s2n_handshake_action], align 16
@async_blocked = external dso_local global i8, align 1
@blocking_handler_count = external dso_local global i64, align 8
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) #4

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #4 {
  %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 i64, align 8
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %struct.s2n_result, align 4
  %16 = alloca i32, align 4
  %17 = alloca i64, align 8
  %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 i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i64, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  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 %49

49:                                               ; preds = %2
  br label %50

50:                                               ; preds = %49
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %51 = load ptr, ptr @stdout, align 8, !tbaa !9
  %52 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef @.str.20, ptr noundef @.str.21) #9
  %53 = load ptr, ptr @stdout, align 8, !tbaa !9
  %54 = call i32 @fflush(ptr noundef %53)
  br label %55

55:                                               ; preds = %50
  %56 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %57 = icmp eq i32 %56, -1
  br i1 %57, label %58, label %109

58:                                               ; preds = %55
  br label %59

59:                                               ; preds = %58
  br label %60

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

67:                                               ; preds = %60
  %68 = load ptr, ptr @stderr, align 8, !tbaa !9
  %69 = call i32 @fileno(ptr noundef %68) #9
  %70 = call i32 @isatty(i32 noundef %69) #9
  %71 = icmp ne i32 %70, 0
  br i1 %71, label %72, label %89

72:                                               ; preds = %67
  %73 = load i32, ptr %6, align 4, !tbaa !5
  %74 = call ptr @__errno_location() #10
  store i32 %73, ptr %74, align 4, !tbaa !5
  %75 = load ptr, ptr @stderr, align 8, !tbaa !9
  %76 = load i32, ptr @test_count, align 4, !tbaa !5
  %77 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %78 = load i32, ptr %77, align 4, !tbaa !5
  %79 = call ptr @s2n_strerror(i32 noundef %78, ptr noundef @.str.24)
  %80 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = call ptr @s2n_strerror_debug(i32 noundef %81, ptr noundef @.str.24)
  %83 = call ptr @__errno_location() #10
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = call ptr @strerror(i32 noundef %84) #9
  %86 = call ptr @__errno_location() #10
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %75, ptr noundef @.str.22, i32 noundef %76, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 42, ptr noundef %79, ptr noundef %82, ptr noundef %85, i32 noundef %87) #9
  br label %106

89:                                               ; preds = %67, %60
  %90 = load i32, ptr %6, align 4, !tbaa !5
  %91 = call ptr @__errno_location() #10
  store i32 %90, ptr %91, align 4, !tbaa !5
  %92 = load ptr, ptr @stderr, align 8, !tbaa !9
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = call ptr @s2n_strerror(i32 noundef %95, ptr noundef @.str.24)
  %97 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %98 = load i32, ptr %97, align 4, !tbaa !5
  %99 = call ptr @s2n_strerror_debug(i32 noundef %98, ptr noundef @.str.24)
  %100 = call ptr @__errno_location() #10
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = call ptr @strerror(i32 noundef %101) #9
  %103 = call ptr @__errno_location() #10
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef @.str.25, i32 noundef %93, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 42, ptr noundef %96, ptr noundef %99, ptr noundef %102, i32 noundef %104) #9
  br label %106

106:                                              ; preds = %89, %72
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %107

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

108:                                              ; No predecessors!
  br label %109

109:                                              ; preds = %108, %55
  br label %110

110:                                              ; preds = %109
  br label %111

111:                                              ; preds = %110
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = add nsw i32 %112, 1
  store i32 %113, ptr @test_count, align 4, !tbaa !5
  %114 = call i32 @s2n_enable_atexit()
  %115 = icmp eq i32 %114, -1
  br i1 %115, label %116, label %167

116:                                              ; preds = %111
  br label %117

117:                                              ; preds = %116
  br label %118

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

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

130:                                              ; preds = %125
  %131 = load i32, ptr %7, align 4, !tbaa !5
  %132 = call ptr @__errno_location() #10
  store i32 %131, ptr %132, align 4, !tbaa !5
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @s2n_strerror(i32 noundef %136, ptr noundef @.str.24)
  %138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call ptr @s2n_strerror_debug(i32 noundef %139, ptr noundef @.str.24)
  %141 = call ptr @__errno_location() #10
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call ptr @strerror(i32 noundef %142) #9
  %144 = call ptr @__errno_location() #10
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %133, ptr noundef @.str.22, i32 noundef %134, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 42, ptr noundef %137, ptr noundef %140, ptr noundef %143, i32 noundef %145) #9
  br label %164

147:                                              ; preds = %125, %118
  %148 = load i32, ptr %7, align 4, !tbaa !5
  %149 = call ptr @__errno_location() #10
  store i32 %148, ptr %149, align 4, !tbaa !5
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = load i32, ptr @test_count, align 4, !tbaa !5
  %152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = call ptr @s2n_strerror(i32 noundef %153, ptr noundef @.str.24)
  %155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = call ptr @s2n_strerror_debug(i32 noundef %156, ptr noundef @.str.24)
  %158 = call ptr @__errno_location() #10
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call ptr @strerror(i32 noundef %159) #9
  %161 = call ptr @__errno_location() #10
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %150, ptr noundef @.str.25, i32 noundef %151, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 42, ptr noundef %154, ptr noundef %157, ptr noundef %160, i32 noundef %162) #9
  br label %164

164:                                              ; preds = %147, %130
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %165

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

166:                                              ; No predecessors!
  br label %167

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

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  %171 = call i32 @s2n_init()
  %172 = icmp eq i32 %171, -1
  br i1 %172, label %173, label %224

173:                                              ; preds = %170
  br label %174

174:                                              ; preds = %173
  br label %175

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

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

187:                                              ; preds = %182
  %188 = load i32, ptr %8, align 4, !tbaa !5
  %189 = call ptr @__errno_location() #10
  store i32 %188, ptr %189, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call ptr @s2n_strerror(i32 noundef %193, ptr noundef @.str.24)
  %195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @s2n_strerror_debug(i32 noundef %196, ptr noundef @.str.24)
  %198 = call ptr @__errno_location() #10
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call ptr @strerror(i32 noundef %199) #9
  %201 = call ptr @__errno_location() #10
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef @.str.22, i32 noundef %191, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 42, ptr noundef %194, ptr noundef %197, ptr noundef %200, i32 noundef %202) #9
  br label %221

204:                                              ; preds = %182, %175
  %205 = load i32, ptr %8, align 4, !tbaa !5
  %206 = call ptr @__errno_location() #10
  store i32 %205, ptr %206, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror(i32 noundef %210, ptr noundef @.str.24)
  %212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = call ptr @s2n_strerror_debug(i32 noundef %213, ptr noundef @.str.24)
  %215 = call ptr @__errno_location() #10
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = call ptr @strerror(i32 noundef %216) #9
  %218 = call ptr @__errno_location() #10
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef @.str.25, i32 noundef %208, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 42, ptr noundef %211, ptr noundef %214, ptr noundef %217, i32 noundef %219) #9
  br label %221

221:                                              ; preds = %204, %187
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %222

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

223:                                              ; No predecessors!
  br label %224

224:                                              ; preds = %223, %170
  br label %225

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  store i64 10, ptr %9, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %10) #9
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 40, i1 false)
  br label %227

227:                                              ; preds = %226
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr @test_count, align 4, !tbaa !5
  %230 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %10, i32 noundef 0)
  %231 = icmp eq i32 %230, -1
  br i1 %231, label %232, label %285

232:                                              ; preds = %227
  br label %233

233:                                              ; preds = %232
  br label %234

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

241:                                              ; preds = %234
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = call i32 @fileno(ptr noundef %242) #9
  %244 = call i32 @isatty(i32 noundef %243) #9
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %246, label %263

246:                                              ; preds = %241
  %247 = load i32, ptr %11, align 4, !tbaa !5
  %248 = call ptr @__errno_location() #10
  store i32 %247, ptr %248, align 4, !tbaa !5
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = load i32, ptr @test_count, align 4, !tbaa !5
  %251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call ptr @s2n_strerror(i32 noundef %252, ptr noundef @.str.24)
  %254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call ptr @s2n_strerror_debug(i32 noundef %255, ptr noundef @.str.24)
  %257 = call ptr @__errno_location() #10
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call ptr @strerror(i32 noundef %258) #9
  %260 = call ptr @__errno_location() #10
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef @.str.22, i32 noundef %250, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 49, ptr noundef %253, ptr noundef %256, ptr noundef %259, i32 noundef %261) #9
  br label %280

263:                                              ; preds = %241, %234
  %264 = load i32, ptr %11, align 4, !tbaa !5
  %265 = call ptr @__errno_location() #10
  store i32 %264, ptr %265, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror(i32 noundef %269, ptr noundef @.str.24)
  %271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call ptr @s2n_strerror_debug(i32 noundef %272, ptr noundef @.str.24)
  %274 = call ptr @__errno_location() #10
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call ptr @strerror(i32 noundef %275) #9
  %277 = call ptr @__errno_location() #10
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef @.str.25, i32 noundef %267, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 49, ptr noundef %270, ptr noundef %273, ptr noundef %276, i32 noundef %278) #9
  br label %280

280:                                              ; preds = %263, %246
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %281

281:                                              ; preds = %280
  br label %282

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

283:                                              ; No predecessors!
  br label %284

284:                                              ; preds = %283
  br label %285

285:                                              ; preds = %284, %227
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  store ptr @s2n_blocking_handler, ptr getelementptr inbounds ([2 x ptr], ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr @tls13_state_machine, i32 0, i32 3), i64 0, i64 1), align 8, !tbaa !9
  store ptr @s2n_error_handler, ptr getelementptr inbounds ([2 x ptr], ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr getelementptr inbounds ([21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 1), i32 0, i32 3), i64 0, i64 1), align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 0, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %288 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %288, ptr %13, align 8, !tbaa !9
  br label %289

289:                                              ; preds = %287
  %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 = load ptr, ptr %13, align 8, !tbaa !9
  %293 = call i32 @s2n_connection_set_io_stuffers(ptr noundef null, ptr noundef %10, ptr noundef %292)
  %294 = icmp eq i32 %293, -1
  br i1 %294, label %295, label %348

295:                                              ; preds = %289
  br label %296

296:                                              ; preds = %295
  br label %297

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

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

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

326:                                              ; preds = %304, %297
  %327 = load i32, ptr %14, align 4, !tbaa !5
  %328 = call ptr @__errno_location() #10
  store i32 %327, ptr %328, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef @.str.24)
  %334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef @.str.24)
  %337 = call ptr @__errno_location() #10
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @strerror(i32 noundef %338) #9
  %340 = call ptr @__errno_location() #10
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef @.str.25, i32 noundef %330, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 58, ptr noundef %333, ptr noundef %336, ptr noundef %339, i32 noundef %341) #9
  br label %343

343:                                              ; preds = %326, %309
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %344

344:                                              ; preds = %343
  br label %345

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

346:                                              ; No predecessors!
  br label %347

347:                                              ; preds = %346
  br label %348

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

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = load ptr, ptr %13, align 8, !tbaa !9
  %355 = call i32 @s2n_conn_choose_state_machine(ptr noundef %354, i8 noundef zeroext 34)
  %356 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  store i32 %355, ptr %356, align 4
  %357 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  %358 = load i32, ptr %357, align 4
  %359 = call zeroext i1 @s2n_result_is_ok(i32 %358)
  br i1 %359, label %413, label %360

360:                                              ; preds = %351
  br label %361

361:                                              ; preds = %360
  br label %362

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

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

374:                                              ; preds = %369
  %375 = load i32, ptr %16, align 4, !tbaa !5
  %376 = call ptr @__errno_location() #10
  store i32 %375, ptr %376, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror(i32 noundef %380, ptr noundef @.str.24)
  %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_debug(i32 noundef %383, ptr noundef @.str.24)
  %385 = call ptr @__errno_location() #10
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call ptr @strerror(i32 noundef %386) #9
  %388 = call ptr @__errno_location() #10
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %377, ptr noundef @.str.22, i32 noundef %378, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 59, ptr noundef %381, ptr noundef %384, ptr noundef %387, i32 noundef %389) #9
  br label %408

391:                                              ; preds = %369, %362
  %392 = load i32, ptr %16, align 4, !tbaa !5
  %393 = call ptr @__errno_location() #10
  store i32 %392, ptr %393, align 4, !tbaa !5
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef @.str.24)
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef @.str.24)
  %402 = call ptr @__errno_location() #10
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @strerror(i32 noundef %403) #9
  %405 = call ptr @__errno_location() #10
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %394, ptr noundef @.str.25, i32 noundef %395, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 59, ptr noundef %398, ptr noundef %401, ptr noundef %404, i32 noundef %406) #9
  br label %408

408:                                              ; preds = %391, %374
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %409

409:                                              ; preds = %408
  br label %410

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

411:                                              ; No predecessors!
  br label %412

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412, %351
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  store i8 1, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  store i64 0, ptr %17, align 8, !tbaa !15
  br label %416

416:                                              ; preds = %745, %415
  %417 = load i64, ptr %17, align 8, !tbaa !15
  %418 = icmp ult i64 %417, 10
  br i1 %418, label %420, label %419

419:                                              ; preds = %416
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br label %748

420:                                              ; preds = %416
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr @test_count, align 4, !tbaa !5
  %426 = load ptr, ptr %13, align 8, !tbaa !9
  %427 = call i32 @s2n_negotiate(ptr noundef %426, ptr noundef %12)
  %428 = icmp eq i32 %427, -1
  br i1 %428, label %482, label %429

429:                                              ; preds = %423
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %432 = call ptr @__errno_location() #10
  %433 = load i32, ptr %432, align 4, !tbaa !5
  store i32 %433, ptr %18, 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) #9
  %441 = call i32 @isatty(i32 noundef %440) #9
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %443, label %460

443:                                              ; preds = %438
  %444 = load i32, ptr %18, align 4, !tbaa !5
  %445 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %454 = call ptr @__errno_location() #10
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #9
  %457 = call ptr @__errno_location() #10
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef @.str.22, i32 noundef %447, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 65, ptr noundef %450, ptr noundef %453, ptr noundef %456, i32 noundef %458) #9
  br label %477

460:                                              ; preds = %438, %431
  %461 = load i32, ptr %18, align 4, !tbaa !5
  %462 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %471 = call ptr @__errno_location() #10
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @strerror(i32 noundef %472) #9
  %474 = call ptr @__errno_location() #10
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef @.str.25, i32 noundef %464, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 65, ptr noundef %467, ptr noundef %470, ptr noundef %473, i32 noundef %475) #9
  br label %477

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

478:                                              ; preds = %477
  br label %479

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

480:                                              ; No predecessors!
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481, %423
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = icmp eq i32 %489, 201326593
  br i1 %490, label %544, label %491

491:                                              ; preds = %485
  br label %492

492:                                              ; preds = %491
  br label %493

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

500:                                              ; preds = %493
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @fileno(ptr noundef %501) #9
  %503 = call i32 @isatty(i32 noundef %502) #9
  %504 = icmp ne i32 %503, 0
  br i1 %504, label %505, label %522

505:                                              ; preds = %500
  %506 = load i32, ptr %19, align 4, !tbaa !5
  %507 = call ptr @__errno_location() #10
  store i32 %506, ptr %507, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @s2n_strerror(i32 noundef %511, ptr noundef @.str.24)
  %513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef @.str.24)
  %516 = call ptr @__errno_location() #10
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = call ptr @strerror(i32 noundef %517) #9
  %519 = call ptr @__errno_location() #10
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef @.str.22, i32 noundef %509, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 65, ptr noundef %512, ptr noundef %515, ptr noundef %518, i32 noundef %520) #9
  br label %539

522:                                              ; preds = %500, %493
  %523 = load i32, ptr %19, align 4, !tbaa !5
  %524 = call ptr @__errno_location() #10
  store i32 %523, ptr %524, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef @.str.24)
  %530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef @.str.24)
  %533 = call ptr @__errno_location() #10
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = call ptr @strerror(i32 noundef %534) #9
  %536 = call ptr @__errno_location() #10
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %525, ptr noundef @.str.25, i32 noundef %526, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 65, ptr noundef %529, ptr noundef %532, ptr noundef %535, i32 noundef %537) #9
  br label %539

539:                                              ; preds = %522, %505
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %540

540:                                              ; preds = %539
  br label %541

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

542:                                              ; No predecessors!
  br label %543

543:                                              ; preds = %542
  br label %544

544:                                              ; preds = %543, %485
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = add nsw i32 %548, 1
  store i32 %549, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror_debug(i32 noundef %551, ptr noundef @.str.24)
  %553 = icmp eq ptr %552, null
  br i1 %553, label %554, label %607

554:                                              ; preds = %547
  br label %555

555:                                              ; preds = %554
  br label %556

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

563:                                              ; preds = %556
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @fileno(ptr noundef %564) #9
  %566 = call i32 @isatty(i32 noundef %565) #9
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %568, label %585

568:                                              ; preds = %563
  %569 = load i32, ptr %20, align 4, !tbaa !5
  %570 = call ptr @__errno_location() #10
  store i32 %569, ptr %570, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef @.str.24)
  %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_debug(i32 noundef %577, ptr noundef @.str.24)
  %579 = call ptr @__errno_location() #10
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #9
  %582 = call ptr @__errno_location() #10
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef @.str.22, i32 noundef %572, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 65, ptr noundef %575, ptr noundef %578, ptr noundef %581, i32 noundef %583) #9
  br label %602

585:                                              ; preds = %563, %556
  %586 = load i32, ptr %20, align 4, !tbaa !5
  %587 = call ptr @__errno_location() #10
  store i32 %586, ptr %587, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror(i32 noundef %591, ptr noundef @.str.24)
  %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_debug(i32 noundef %594, ptr noundef @.str.24)
  %596 = call ptr @__errno_location() #10
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #9
  %599 = call ptr @__errno_location() #10
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %588, ptr noundef @.str.25, i32 noundef %589, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 65, ptr noundef %592, ptr noundef %595, ptr noundef %598, i32 noundef %600) #9
  br label %602

602:                                              ; preds = %585, %568
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %603

603:                                              ; preds = %602
  br label %604

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

605:                                              ; No predecessors!
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606, %547
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610
  br label %612

612:                                              ; preds = %611
  %613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %613, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %614 = call ptr @__errno_location() #10
  store i32 0, ptr %614, align 4, !tbaa !5
  br label %615

615:                                              ; preds = %612
  br label %616

616:                                              ; preds = %615
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617
  br label %619

619:                                              ; preds = %618
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = add nsw i32 %620, 1
  store i32 %621, ptr @test_count, align 4, !tbaa !5
  %622 = load i32, ptr %12, align 4, !tbaa !5
  %623 = icmp eq i32 %622, 3
  br i1 %623, label %677, label %624

624:                                              ; preds = %619
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %627 = call ptr @__errno_location() #10
  %628 = load i32, ptr %627, align 4, !tbaa !5
  store i32 %628, ptr %21, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @s2n_print_stacktrace(ptr noundef %629)
  %631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %632 = trunc i8 %631 to i1
  br i1 %632, label %633, label %655

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

638:                                              ; preds = %633
  %639 = load i32, ptr %21, align 4, !tbaa !5
  %640 = call ptr @__errno_location() #10
  store i32 %639, ptr %640, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror(i32 noundef %644, ptr noundef @.str.24)
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef @.str.24)
  %649 = call ptr @__errno_location() #10
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call ptr @strerror(i32 noundef %650) #9
  %652 = call ptr @__errno_location() #10
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef @.str.22, i32 noundef %642, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 66, ptr noundef %645, ptr noundef %648, ptr noundef %651, i32 noundef %653) #9
  br label %672

655:                                              ; preds = %633, %626
  %656 = load i32, ptr %21, align 4, !tbaa !5
  %657 = call ptr @__errno_location() #10
  store i32 %656, ptr %657, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef @.str.24)
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef @.str.24)
  %666 = call ptr @__errno_location() #10
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #9
  %669 = call ptr @__errno_location() #10
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef @.str.25, i32 noundef %659, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 66, ptr noundef %662, ptr noundef %665, ptr noundef %668, i32 noundef %670) #9
  br label %672

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

673:                                              ; preds = %672
  br label %674

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

675:                                              ; No predecessors!
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676, %619
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 2
  %684 = load i32, ptr %683, align 4, !tbaa !17
  %685 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 1
  %686 = load i32, ptr %685, align 8, !tbaa !20
  %687 = sub i32 %684, %686
  %688 = icmp eq i32 %687, 0
  br i1 %688, label %742, label %689

689:                                              ; preds = %680
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %692 = call ptr @__errno_location() #10
  %693 = load i32, ptr %692, align 4, !tbaa !5
  store i32 %693, ptr %22, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @s2n_print_stacktrace(ptr noundef %694)
  %696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %697 = trunc i8 %696 to i1
  br i1 %697, label %698, label %720

698:                                              ; preds = %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @fileno(ptr noundef %699) #9
  %701 = call i32 @isatty(i32 noundef %700) #9
  %702 = icmp ne i32 %701, 0
  br i1 %702, label %703, label %720

703:                                              ; preds = %698
  %704 = load i32, ptr %22, align 4, !tbaa !5
  %705 = call ptr @__errno_location() #10
  store i32 %704, ptr %705, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef @.str.24)
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef @.str.24)
  %714 = call ptr @__errno_location() #10
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #9
  %717 = call ptr @__errno_location() #10
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef @.str.22, i32 noundef %707, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 67, ptr noundef %710, ptr noundef %713, ptr noundef %716, i32 noundef %718) #9
  br label %737

720:                                              ; preds = %698, %691
  %721 = load i32, ptr %22, align 4, !tbaa !5
  %722 = call ptr @__errno_location() #10
  store i32 %721, ptr %722, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = load i32, ptr @test_count, align 4, !tbaa !5
  %725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror(i32 noundef %726, ptr noundef @.str.24)
  %728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef @.str.24)
  %731 = call ptr @__errno_location() #10
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @strerror(i32 noundef %732) #9
  %734 = call ptr @__errno_location() #10
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %723, ptr noundef @.str.25, i32 noundef %724, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 67, ptr noundef %727, ptr noundef %730, ptr noundef %733, i32 noundef %735) #9
  br label %737

737:                                              ; preds = %720, %703
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %738

738:                                              ; preds = %737
  br label %739

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

740:                                              ; No predecessors!
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741, %680
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  %746 = load i64, ptr %17, align 8, !tbaa !15
  %747 = add i64 %746, 1
  store i64 %747, ptr %17, align 8, !tbaa !15
  br label %416, !llvm.loop !21

748:                                              ; preds = %419
  br label %749

749:                                              ; preds = %748
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %753 = icmp eq i64 %752, 10
  br i1 %753, label %807, label %754

754:                                              ; preds = %749
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %757 = call ptr @__errno_location() #10
  %758 = load i32, ptr %757, align 4, !tbaa !5
  store i32 %758, ptr %23, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @s2n_print_stacktrace(ptr noundef %759)
  %761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %762 = trunc i8 %761 to i1
  br i1 %762, label %763, label %785

763:                                              ; preds = %756
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @fileno(ptr noundef %764) #9
  %766 = call i32 @isatty(i32 noundef %765) #9
  %767 = icmp ne i32 %766, 0
  br i1 %767, label %768, label %785

768:                                              ; preds = %763
  %769 = load i32, ptr %23, align 4, !tbaa !5
  %770 = call ptr @__errno_location() #10
  store i32 %769, ptr %770, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef @.str.24)
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef @.str.24)
  %779 = call ptr @__errno_location() #10
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #9
  %782 = call ptr @__errno_location() #10
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef @.str.22, i32 noundef %772, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 69, ptr noundef %775, ptr noundef %778, ptr noundef %781, i32 noundef %783) #9
  br label %802

785:                                              ; preds = %763, %756
  %786 = load i32, ptr %23, align 4, !tbaa !5
  %787 = call ptr @__errno_location() #10
  store i32 %786, ptr %787, 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 @.str.24)
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef @.str.24)
  %796 = call ptr @__errno_location() #10
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @strerror(i32 noundef %797) #9
  %799 = call ptr @__errno_location() #10
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef @.str.25, i32 noundef %789, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 69, ptr noundef %792, ptr noundef %795, ptr noundef %798, i32 noundef %800) #9
  br label %802

802:                                              ; preds = %785, %768
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %803

803:                                              ; preds = %802
  br label %804

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

805:                                              ; No predecessors!
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806, %749
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808
  store i8 0, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = load ptr, ptr %13, align 8, !tbaa !9
  %816 = call i32 @s2n_negotiate(ptr noundef %815, ptr noundef %12)
  %817 = icmp eq i32 %816, -1
  br i1 %817, label %871, label %818

818:                                              ; preds = %812
  br label %819

819:                                              ; preds = %818
  br label %820

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

827:                                              ; preds = %820
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @fileno(ptr noundef %828) #9
  %830 = call i32 @isatty(i32 noundef %829) #9
  %831 = icmp ne i32 %830, 0
  br i1 %831, label %832, label %849

832:                                              ; preds = %827
  %833 = load i32, ptr %24, align 4, !tbaa !5
  %834 = call ptr @__errno_location() #10
  store i32 %833, ptr %834, align 4, !tbaa !5
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @s2n_strerror(i32 noundef %838, ptr noundef @.str.24)
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror_debug(i32 noundef %841, ptr noundef @.str.24)
  %843 = call ptr @__errno_location() #10
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @strerror(i32 noundef %844) #9
  %846 = call ptr @__errno_location() #10
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %835, ptr noundef @.str.22, i32 noundef %836, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 74, ptr noundef %839, ptr noundef %842, ptr noundef %845, i32 noundef %847) #9
  br label %866

849:                                              ; preds = %827, %820
  %850 = load i32, ptr %24, align 4, !tbaa !5
  %851 = call ptr @__errno_location() #10
  store i32 %850, ptr %851, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror(i32 noundef %855, ptr noundef @.str.24)
  %857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror_debug(i32 noundef %858, ptr noundef @.str.24)
  %860 = call ptr @__errno_location() #10
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call ptr @strerror(i32 noundef %861) #9
  %863 = call ptr @__errno_location() #10
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %852, ptr noundef @.str.25, i32 noundef %853, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 74, ptr noundef %856, ptr noundef %859, ptr noundef %862, i32 noundef %864) #9
  br label %866

866:                                              ; preds = %849, %832
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %867

867:                                              ; preds = %866
  br label %868

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

869:                                              ; No predecessors!
  br label %870

870:                                              ; preds = %869
  br label %871

871:                                              ; preds = %870, %812
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr @test_count, align 4, !tbaa !5
  %877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = icmp eq i32 %878, 67108864
  br i1 %879, label %933, label %880

880:                                              ; preds = %874
  br label %881

881:                                              ; preds = %880
  br label %882

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

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

894:                                              ; preds = %889
  %895 = load i32, ptr %25, align 4, !tbaa !5
  %896 = call ptr @__errno_location() #10
  store i32 %895, ptr %896, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef @.str.24)
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror_debug(i32 noundef %903, ptr noundef @.str.24)
  %905 = call ptr @__errno_location() #10
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #9
  %908 = call ptr @__errno_location() #10
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %897, ptr noundef @.str.22, i32 noundef %898, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 74, ptr noundef %901, ptr noundef %904, ptr noundef %907, i32 noundef %909) #9
  br label %928

911:                                              ; preds = %889, %882
  %912 = load i32, ptr %25, align 4, !tbaa !5
  %913 = call ptr @__errno_location() #10
  store i32 %912, ptr %913, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror(i32 noundef %917, ptr noundef @.str.24)
  %919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror_debug(i32 noundef %920, ptr noundef @.str.24)
  %922 = call ptr @__errno_location() #10
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call ptr @strerror(i32 noundef %923) #9
  %925 = call ptr @__errno_location() #10
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef @.str.25, i32 noundef %915, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 74, ptr noundef %918, ptr noundef %921, ptr noundef %924, i32 noundef %926) #9
  br label %928

928:                                              ; preds = %911, %894
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %929

929:                                              ; preds = %928
  br label %930

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

931:                                              ; No predecessors!
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932, %874
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror_debug(i32 noundef %940, ptr noundef @.str.24)
  %942 = icmp eq ptr %941, null
  br i1 %942, label %943, label %996

943:                                              ; preds = %936
  br label %944

944:                                              ; preds = %943
  br label %945

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

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

957:                                              ; preds = %952
  %958 = load i32, ptr %26, align 4, !tbaa !5
  %959 = call ptr @__errno_location() #10
  store i32 %958, ptr %959, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror(i32 noundef %963, ptr noundef @.str.24)
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef @.str.24)
  %968 = call ptr @__errno_location() #10
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #9
  %971 = call ptr @__errno_location() #10
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %960, ptr noundef @.str.22, i32 noundef %961, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 74, ptr noundef %964, ptr noundef %967, ptr noundef %970, i32 noundef %972) #9
  br label %991

974:                                              ; preds = %952, %945
  %975 = load i32, ptr %26, align 4, !tbaa !5
  %976 = call ptr @__errno_location() #10
  store i32 %975, ptr %976, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef @.str.24)
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef @.str.24)
  %985 = call ptr @__errno_location() #10
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #9
  %988 = call ptr @__errno_location() #10
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str.25, i32 noundef %978, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 74, ptr noundef %981, ptr noundef %984, ptr noundef %987, i32 noundef %989) #9
  br label %991

991:                                              ; preds = %974, %957
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %992

992:                                              ; preds = %991
  br label %993

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

994:                                              ; No predecessors!
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995, %936
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1002, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1003 = call ptr @__errno_location() #10
  store i32 0, ptr %1003, align 4, !tbaa !5
  br label %1004

1004:                                             ; preds = %1001
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %1012 = icmp eq i64 %1011, 1
  br i1 %1012, label %1066, label %1013

1013:                                             ; preds = %1008
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1016 = call ptr @__errno_location() #10
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  store i32 %1017, ptr %27, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @s2n_print_stacktrace(ptr noundef %1018)
  %1020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1021 = trunc i8 %1020 to i1
  br i1 %1021, label %1022, label %1044

1022:                                             ; preds = %1015
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @fileno(ptr noundef %1023) #9
  %1025 = call i32 @isatty(i32 noundef %1024) #9
  %1026 = icmp ne i32 %1025, 0
  br i1 %1026, label %1027, label %1044

1027:                                             ; preds = %1022
  %1028 = load i32, ptr %27, align 4, !tbaa !5
  %1029 = call ptr @__errno_location() #10
  store i32 %1028, ptr %1029, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef @.str.24)
  %1035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef @.str.24)
  %1038 = call ptr @__errno_location() #10
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @strerror(i32 noundef %1039) #9
  %1041 = call ptr @__errno_location() #10
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef @.str.22, i32 noundef %1031, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 75, ptr noundef %1034, ptr noundef %1037, ptr noundef %1040, i32 noundef %1042) #9
  br label %1061

1044:                                             ; preds = %1022, %1015
  %1045 = load i32, ptr %27, align 4, !tbaa !5
  %1046 = call ptr @__errno_location() #10
  store i32 %1045, ptr %1046, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef @.str.24)
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef @.str.24)
  %1055 = call ptr @__errno_location() #10
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #9
  %1058 = call ptr @__errno_location() #10
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef @.str.25, i32 noundef %1048, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 75, ptr noundef %1051, ptr noundef %1054, ptr noundef %1057, i32 noundef %1059) #9
  br label %1061

1061:                                             ; preds = %1044, %1027
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

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

1064:                                             ; No predecessors!
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065, %1008
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @test_count, align 4, !tbaa !5
  %1072 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 2
  %1073 = load i32, ptr %1072, align 4, !tbaa !17
  %1074 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 1
  %1075 = load i32, ptr %1074, align 8, !tbaa !20
  %1076 = sub i32 %1073, %1075
  %1077 = icmp eq i32 %1076, 9
  br i1 %1077, label %1131, label %1078

1078:                                             ; preds = %1069
  br label %1079

1079:                                             ; preds = %1078
  br label %1080

1080:                                             ; preds = %1079
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1081 = call ptr @__errno_location() #10
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  store i32 %1082, ptr %28, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = call i32 @s2n_print_stacktrace(ptr noundef %1083)
  %1085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1086 = trunc i8 %1085 to i1
  br i1 %1086, label %1087, label %1109

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

1092:                                             ; preds = %1087
  %1093 = load i32, ptr %28, align 4, !tbaa !5
  %1094 = call ptr @__errno_location() #10
  store i32 %1093, ptr %1094, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call ptr @s2n_strerror(i32 noundef %1098, ptr noundef @.str.24)
  %1100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror_debug(i32 noundef %1101, ptr noundef @.str.24)
  %1103 = call ptr @__errno_location() #10
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @strerror(i32 noundef %1104) #9
  %1106 = call ptr @__errno_location() #10
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1095, ptr noundef @.str.22, i32 noundef %1096, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 78, ptr noundef %1099, ptr noundef %1102, ptr noundef %1105, i32 noundef %1107) #9
  br label %1126

1109:                                             ; preds = %1087, %1080
  %1110 = load i32, ptr %28, align 4, !tbaa !5
  %1111 = call ptr @__errno_location() #10
  store i32 %1110, ptr %1111, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror(i32 noundef %1115, ptr noundef @.str.24)
  %1117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  %1119 = call ptr @s2n_strerror_debug(i32 noundef %1118, ptr noundef @.str.24)
  %1120 = call ptr @__errno_location() #10
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = call ptr @strerror(i32 noundef %1121) #9
  %1123 = call ptr @__errno_location() #10
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1112, ptr noundef @.str.25, i32 noundef %1113, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 78, ptr noundef %1116, ptr noundef %1119, ptr noundef %1122, i32 noundef %1124) #9
  br label %1126

1126:                                             ; preds = %1109, %1092
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

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

1129:                                             ; No predecessors!
  br label %1130

1130:                                             ; preds = %1129
  br label %1131

1131:                                             ; preds = %1130, %1069
  br label %1132

1132:                                             ; preds = %1131
  br label %1133

1133:                                             ; preds = %1132
  br label %1134

1134:                                             ; preds = %1133
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = add nsw i32 %1135, 1
  store i32 %1136, ptr @test_count, align 4, !tbaa !5
  %1137 = load ptr, ptr %13, align 8, !tbaa !9
  %1138 = call i32 @s2n_connection_free(ptr noundef %1137)
  %1139 = icmp eq i32 %1138, -1
  br i1 %1139, label %1140, label %1193

1140:                                             ; preds = %1134
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1143 = call ptr @__errno_location() #10
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  store i32 %1144, ptr %29, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @s2n_print_stacktrace(ptr noundef %1145)
  %1147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1148 = trunc i8 %1147 to i1
  br i1 %1148, label %1149, label %1171

1149:                                             ; preds = %1142
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @fileno(ptr noundef %1150) #9
  %1152 = call i32 @isatty(i32 noundef %1151) #9
  %1153 = icmp ne i32 %1152, 0
  br i1 %1153, label %1154, label %1171

1154:                                             ; preds = %1149
  %1155 = load i32, ptr %29, align 4, !tbaa !5
  %1156 = call ptr @__errno_location() #10
  store i32 %1155, ptr %1156, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef @.str.24)
  %1162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @s2n_strerror_debug(i32 noundef %1163, ptr noundef @.str.24)
  %1165 = call ptr @__errno_location() #10
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #9
  %1168 = call ptr @__errno_location() #10
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1157, ptr noundef @.str.22, i32 noundef %1158, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 80, ptr noundef %1161, ptr noundef %1164, ptr noundef %1167, i32 noundef %1169) #9
  br label %1188

1171:                                             ; preds = %1149, %1142
  %1172 = load i32, ptr %29, align 4, !tbaa !5
  %1173 = call ptr @__errno_location() #10
  store i32 %1172, ptr %1173, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror(i32 noundef %1177, ptr noundef @.str.24)
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @s2n_strerror_debug(i32 noundef %1180, ptr noundef @.str.24)
  %1182 = call ptr @__errno_location() #10
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #9
  %1185 = call ptr @__errno_location() #10
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1174, ptr noundef @.str.25, i32 noundef %1175, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 80, ptr noundef %1178, ptr noundef %1181, ptr noundef %1184, i32 noundef %1186) #9
  br label %1188

1188:                                             ; preds = %1171, %1154
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

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

1191:                                             ; No predecessors!
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192, %1134
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %1196

1196:                                             ; preds = %1195
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  %1199 = call i32 @s2n_stuffer_reread(ptr noundef %10)
  %1200 = icmp eq i32 %1199, -1
  br i1 %1200, label %1201, label %1254

1201:                                             ; preds = %1196
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1204 = call ptr @__errno_location() #10
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  store i32 %1205, ptr %30, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @s2n_print_stacktrace(ptr noundef %1206)
  %1208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1209 = trunc i8 %1208 to i1
  br i1 %1209, label %1210, label %1232

1210:                                             ; preds = %1203
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = call i32 @fileno(ptr noundef %1211) #9
  %1213 = call i32 @isatty(i32 noundef %1212) #9
  %1214 = icmp ne i32 %1213, 0
  br i1 %1214, label %1215, label %1232

1215:                                             ; preds = %1210
  %1216 = load i32, ptr %30, align 4, !tbaa !5
  %1217 = call ptr @__errno_location() #10
  store i32 %1216, ptr %1217, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef @.str.24)
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef @.str.24)
  %1226 = call ptr @__errno_location() #10
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #9
  %1229 = call ptr @__errno_location() #10
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef @.str.22, i32 noundef %1219, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 84, ptr noundef %1222, ptr noundef %1225, ptr noundef %1228, i32 noundef %1230) #9
  br label %1249

1232:                                             ; preds = %1210, %1203
  %1233 = load i32, ptr %30, align 4, !tbaa !5
  %1234 = call ptr @__errno_location() #10
  store i32 %1233, ptr %1234, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror(i32 noundef %1238, ptr noundef @.str.24)
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef @.str.24)
  %1243 = call ptr @__errno_location() #10
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #9
  %1246 = call ptr @__errno_location() #10
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1235, ptr noundef @.str.25, i32 noundef %1236, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 84, ptr noundef %1239, ptr noundef %1242, ptr noundef %1245, i32 noundef %1247) #9
  br label %1249

1249:                                             ; preds = %1232, %1215
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

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

1252:                                             ; No predecessors!
  br label %1253

1253:                                             ; preds = %1252
  br label %1254

1254:                                             ; preds = %1253, %1196
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255
  store ptr @s2n_blocking_handler, ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr @state_machine, i32 0, i32 3), align 8, !tbaa !9
  store ptr @s2n_error_handler, ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr getelementptr inbounds ([21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 1), i32 0, i32 3), align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  store i32 0, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %1257 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1257, ptr %32, align 8, !tbaa !9
  br label %1258

1258:                                             ; preds = %1256
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = add nsw i32 %1259, 1
  store i32 %1260, ptr @test_count, align 4, !tbaa !5
  %1261 = load ptr, ptr %32, align 8, !tbaa !9
  %1262 = call i32 @s2n_connection_set_blinding(ptr noundef %1261, i32 noundef 1)
  %1263 = icmp eq i32 %1262, -1
  br i1 %1263, label %1264, label %1317

1264:                                             ; preds = %1258
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

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

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

1278:                                             ; preds = %1273
  %1279 = load i32, ptr %33, align 4, !tbaa !5
  %1280 = call ptr @__errno_location() #10
  store i32 %1279, ptr %1280, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror(i32 noundef %1284, ptr noundef @.str.24)
  %1286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef @.str.24)
  %1289 = call ptr @__errno_location() #10
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = call ptr @strerror(i32 noundef %1290) #9
  %1292 = call ptr @__errno_location() #10
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1281, ptr noundef @.str.22, i32 noundef %1282, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1285, ptr noundef %1288, ptr noundef %1291, i32 noundef %1293) #9
  br label %1312

1295:                                             ; preds = %1273, %1266
  %1296 = load i32, ptr %33, align 4, !tbaa !5
  %1297 = call ptr @__errno_location() #10
  store i32 %1296, ptr %1297, align 4, !tbaa !5
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = load i32, ptr @test_count, align 4, !tbaa !5
  %1300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror(i32 noundef %1301, ptr noundef @.str.24)
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror_debug(i32 noundef %1304, ptr noundef @.str.24)
  %1306 = call ptr @__errno_location() #10
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @strerror(i32 noundef %1307) #9
  %1309 = call ptr @__errno_location() #10
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1298, ptr noundef @.str.25, i32 noundef %1299, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1302, ptr noundef %1305, ptr noundef %1308, i32 noundef %1310) #9
  br label %1312

1312:                                             ; preds = %1295, %1278
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

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

1315:                                             ; No predecessors!
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316, %1258
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

1319:                                             ; preds = %1318
  br label %1320

1320:                                             ; preds = %1319
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = add nsw i32 %1321, 1
  store i32 %1322, ptr @test_count, align 4, !tbaa !5
  %1323 = load ptr, ptr %32, align 8, !tbaa !9
  %1324 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %10, ptr noundef null, ptr noundef %1323)
  %1325 = icmp eq i32 %1324, -1
  br i1 %1325, label %1326, label %1379

1326:                                             ; preds = %1320
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1329 = call ptr @__errno_location() #10
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  store i32 %1330, ptr %34, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @s2n_print_stacktrace(ptr noundef %1331)
  %1333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1334 = trunc i8 %1333 to i1
  br i1 %1334, label %1335, label %1357

1335:                                             ; preds = %1328
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = call i32 @fileno(ptr noundef %1336) #9
  %1338 = call i32 @isatty(i32 noundef %1337) #9
  %1339 = icmp ne i32 %1338, 0
  br i1 %1339, label %1340, label %1357

1340:                                             ; preds = %1335
  %1341 = load i32, ptr %34, align 4, !tbaa !5
  %1342 = call ptr @__errno_location() #10
  store i32 %1341, ptr %1342, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror(i32 noundef %1346, ptr noundef @.str.24)
  %1348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror_debug(i32 noundef %1349, ptr noundef @.str.24)
  %1351 = call ptr @__errno_location() #10
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call ptr @strerror(i32 noundef %1352) #9
  %1354 = call ptr @__errno_location() #10
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1343, ptr noundef @.str.22, i32 noundef %1344, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 94, ptr noundef %1347, ptr noundef %1350, ptr noundef %1353, i32 noundef %1355) #9
  br label %1374

1357:                                             ; preds = %1335, %1328
  %1358 = load i32, ptr %34, align 4, !tbaa !5
  %1359 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %1368 = call ptr @__errno_location() #10
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @strerror(i32 noundef %1369) #9
  %1371 = call ptr @__errno_location() #10
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1360, ptr noundef @.str.25, i32 noundef %1361, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 94, ptr noundef %1364, ptr noundef %1367, ptr noundef %1370, i32 noundef %1372) #9
  br label %1374

1374:                                             ; preds = %1357, %1340
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

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

1377:                                             ; No predecessors!
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

1379:                                             ; preds = %1378, %1320
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380
  store i8 1, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  store i64 0, ptr %35, align 8, !tbaa !15
  br label %1382

1382:                                             ; preds = %1711, %1381
  %1383 = load i64, ptr %35, align 8, !tbaa !15
  %1384 = icmp ult i64 %1383, 10
  br i1 %1384, label %1386, label %1385

1385:                                             ; preds = %1382
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br label %1714

1386:                                             ; preds = %1382
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

1389:                                             ; preds = %1388
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = add nsw i32 %1390, 1
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = load ptr, ptr %32, align 8, !tbaa !9
  %1393 = call i32 @s2n_negotiate(ptr noundef %1392, ptr noundef %31)
  %1394 = icmp eq i32 %1393, -1
  br i1 %1394, label %1448, label %1395

1395:                                             ; preds = %1389
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1398 = call ptr @__errno_location() #10
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  store i32 %1399, ptr %36, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @s2n_print_stacktrace(ptr noundef %1400)
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc i8 %1402 to i1
  br i1 %1403, label %1404, label %1426

1404:                                             ; preds = %1397
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #9
  %1407 = call i32 @isatty(i32 noundef %1406) #9
  %1408 = icmp ne i32 %1407, 0
  br i1 %1408, label %1409, label %1426

1409:                                             ; preds = %1404
  %1410 = load i32, ptr %36, align 4, !tbaa !5
  %1411 = call ptr @__errno_location() #10
  store i32 %1410, ptr %1411, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef @.str.24)
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef @.str.24)
  %1420 = call ptr @__errno_location() #10
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #9
  %1423 = call ptr @__errno_location() #10
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef @.str.22, i32 noundef %1413, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 100, ptr noundef %1416, ptr noundef %1419, ptr noundef %1422, i32 noundef %1424) #9
  br label %1443

1426:                                             ; preds = %1404, %1397
  %1427 = load i32, ptr %36, align 4, !tbaa !5
  %1428 = call ptr @__errno_location() #10
  store i32 %1427, ptr %1428, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef @.str.24)
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef @.str.24)
  %1437 = call ptr @__errno_location() #10
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #9
  %1440 = call ptr @__errno_location() #10
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef @.str.25, i32 noundef %1430, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 100, ptr noundef %1433, ptr noundef %1436, ptr noundef %1439, i32 noundef %1441) #9
  br label %1443

1443:                                             ; preds = %1426, %1409
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

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

1446:                                             ; No predecessors!
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447, %1389
  br label %1449

1449:                                             ; preds = %1448
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

1451:                                             ; preds = %1450
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr @test_count, align 4, !tbaa !5
  %1454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = icmp eq i32 %1455, 201326593
  br i1 %1456, label %1510, label %1457

1457:                                             ; preds = %1451
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1460 = call ptr @__errno_location() #10
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  store i32 %1461, ptr %37, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @s2n_print_stacktrace(ptr noundef %1462)
  %1464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1465 = trunc i8 %1464 to i1
  br i1 %1465, label %1466, label %1488

1466:                                             ; preds = %1459
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = call i32 @fileno(ptr noundef %1467) #9
  %1469 = call i32 @isatty(i32 noundef %1468) #9
  %1470 = icmp ne i32 %1469, 0
  br i1 %1470, label %1471, label %1488

1471:                                             ; preds = %1466
  %1472 = load i32, ptr %37, align 4, !tbaa !5
  %1473 = call ptr @__errno_location() #10
  store i32 %1472, ptr %1473, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror(i32 noundef %1477, ptr noundef @.str.24)
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef @.str.24)
  %1482 = call ptr @__errno_location() #10
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @strerror(i32 noundef %1483) #9
  %1485 = call ptr @__errno_location() #10
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef @.str.22, i32 noundef %1475, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 100, ptr noundef %1478, ptr noundef %1481, ptr noundef %1484, i32 noundef %1486) #9
  br label %1505

1488:                                             ; preds = %1466, %1459
  %1489 = load i32, ptr %37, align 4, !tbaa !5
  %1490 = call ptr @__errno_location() #10
  store i32 %1489, ptr %1490, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef @.str.24)
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef @.str.24)
  %1499 = call ptr @__errno_location() #10
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #9
  %1502 = call ptr @__errno_location() #10
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef @.str.25, i32 noundef %1492, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 100, ptr noundef %1495, ptr noundef %1498, ptr noundef %1501, i32 noundef %1503) #9
  br label %1505

1505:                                             ; preds = %1488, %1471
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

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

1508:                                             ; No predecessors!
  br label %1509

1509:                                             ; preds = %1508
  br label %1510

1510:                                             ; preds = %1509, %1451
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr @test_count, align 4, !tbaa !5
  %1516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef @.str.24)
  %1519 = icmp eq ptr %1518, null
  br i1 %1519, label %1520, label %1573

1520:                                             ; preds = %1513
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1523 = call ptr @__errno_location() #10
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  store i32 %1524, ptr %38, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @s2n_print_stacktrace(ptr noundef %1525)
  %1527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1528 = trunc i8 %1527 to i1
  br i1 %1528, label %1529, label %1551

1529:                                             ; preds = %1522
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @fileno(ptr noundef %1530) #9
  %1532 = call i32 @isatty(i32 noundef %1531) #9
  %1533 = icmp ne i32 %1532, 0
  br i1 %1533, label %1534, label %1551

1534:                                             ; preds = %1529
  %1535 = load i32, ptr %38, align 4, !tbaa !5
  %1536 = call ptr @__errno_location() #10
  store i32 %1535, ptr %1536, align 4, !tbaa !5
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = load i32, ptr @test_count, align 4, !tbaa !5
  %1539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror(i32 noundef %1540, ptr noundef @.str.24)
  %1542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror_debug(i32 noundef %1543, ptr noundef @.str.24)
  %1545 = call ptr @__errno_location() #10
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call ptr @strerror(i32 noundef %1546) #9
  %1548 = call ptr @__errno_location() #10
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1537, ptr noundef @.str.22, i32 noundef %1538, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 100, ptr noundef %1541, ptr noundef %1544, ptr noundef %1547, i32 noundef %1549) #9
  br label %1568

1551:                                             ; preds = %1529, %1522
  %1552 = load i32, ptr %38, align 4, !tbaa !5
  %1553 = call ptr @__errno_location() #10
  store i32 %1552, ptr %1553, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call ptr @s2n_strerror(i32 noundef %1557, ptr noundef @.str.24)
  %1559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror_debug(i32 noundef %1560, ptr noundef @.str.24)
  %1562 = call ptr @__errno_location() #10
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = call ptr @strerror(i32 noundef %1563) #9
  %1565 = call ptr @__errno_location() #10
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1554, ptr noundef @.str.25, i32 noundef %1555, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 100, ptr noundef %1558, ptr noundef %1561, ptr noundef %1564, i32 noundef %1566) #9
  br label %1568

1568:                                             ; preds = %1551, %1534
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1569

1569:                                             ; preds = %1568
  br label %1570

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

1571:                                             ; No predecessors!
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572, %1513
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

1578:                                             ; preds = %1577
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1579, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1580 = call ptr @__errno_location() #10
  store i32 0, ptr %1580, align 4, !tbaa !5
  br label %1581

1581:                                             ; preds = %1578
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584
  %1586 = load i32, ptr @test_count, align 4, !tbaa !5
  %1587 = add nsw i32 %1586, 1
  store i32 %1587, ptr @test_count, align 4, !tbaa !5
  %1588 = load i32, ptr %31, align 4, !tbaa !5
  %1589 = icmp eq i32 %1588, 3
  br i1 %1589, label %1643, label %1590

1590:                                             ; preds = %1585
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

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

1599:                                             ; preds = %1592
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @fileno(ptr noundef %1600) #9
  %1602 = call i32 @isatty(i32 noundef %1601) #9
  %1603 = icmp ne i32 %1602, 0
  br i1 %1603, label %1604, label %1621

1604:                                             ; preds = %1599
  %1605 = load i32, ptr %39, align 4, !tbaa !5
  %1606 = call ptr @__errno_location() #10
  store i32 %1605, ptr %1606, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = load i32, ptr @test_count, align 4, !tbaa !5
  %1609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror(i32 noundef %1610, ptr noundef @.str.24)
  %1612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror_debug(i32 noundef %1613, ptr noundef @.str.24)
  %1615 = call ptr @__errno_location() #10
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #9
  %1618 = call ptr @__errno_location() #10
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1607, ptr noundef @.str.22, i32 noundef %1608, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 101, ptr noundef %1611, ptr noundef %1614, ptr noundef %1617, i32 noundef %1619) #9
  br label %1638

1621:                                             ; preds = %1599, %1592
  %1622 = load i32, ptr %39, align 4, !tbaa !5
  %1623 = call ptr @__errno_location() #10
  store i32 %1622, ptr %1623, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1627, ptr noundef @.str.24)
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef @.str.24)
  %1632 = call ptr @__errno_location() #10
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #9
  %1635 = call ptr @__errno_location() #10
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef @.str.25, i32 noundef %1625, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 101, ptr noundef %1628, ptr noundef %1631, ptr noundef %1634, i32 noundef %1636) #9
  br label %1638

1638:                                             ; preds = %1621, %1604
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1639

1639:                                             ; preds = %1638
  br label %1640

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

1641:                                             ; No predecessors!
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

1643:                                             ; preds = %1642, %1585
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = add nsw i32 %1647, 1
  store i32 %1648, ptr @test_count, align 4, !tbaa !5
  %1649 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 2
  %1650 = load i32, ptr %1649, align 4, !tbaa !17
  %1651 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 1
  %1652 = load i32, ptr %1651, align 8, !tbaa !20
  %1653 = sub i32 %1650, %1652
  %1654 = icmp eq i32 %1653, 0
  br i1 %1654, label %1708, label %1655

1655:                                             ; preds = %1646
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

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

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

1669:                                             ; preds = %1664
  %1670 = load i32, ptr %40, align 4, !tbaa !5
  %1671 = call ptr @__errno_location() #10
  store i32 %1670, ptr %1671, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror(i32 noundef %1675, ptr noundef @.str.24)
  %1677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror_debug(i32 noundef %1678, ptr noundef @.str.24)
  %1680 = call ptr @__errno_location() #10
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #9
  %1683 = call ptr @__errno_location() #10
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1672, ptr noundef @.str.22, i32 noundef %1673, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 102, ptr noundef %1676, ptr noundef %1679, ptr noundef %1682, i32 noundef %1684) #9
  br label %1703

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

1703:                                             ; preds = %1686, %1669
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

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

1706:                                             ; No predecessors!
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

1708:                                             ; preds = %1707, %1646
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

1711:                                             ; preds = %1710
  %1712 = load i64, ptr %35, align 8, !tbaa !15
  %1713 = add i64 %1712, 1
  store i64 %1713, ptr %35, align 8, !tbaa !15
  br label %1382, !llvm.loop !23

1714:                                             ; preds = %1385
  br label %1715

1715:                                             ; preds = %1714
  %1716 = load i32, ptr @test_count, align 4, !tbaa !5
  %1717 = add nsw i32 %1716, 1
  store i32 %1717, ptr @test_count, align 4, !tbaa !5
  %1718 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %1719 = icmp eq i64 %1718, 10
  br i1 %1719, label %1773, label %1720

1720:                                             ; preds = %1715
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

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

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

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

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

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

1769:                                             ; preds = %1768
  br label %1770

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

1771:                                             ; No predecessors!
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

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

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  store i8 0, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = add nsw i32 %1779, 1
  store i32 %1780, ptr @test_count, align 4, !tbaa !5
  %1781 = load ptr, ptr %32, align 8, !tbaa !9
  %1782 = call i32 @s2n_negotiate(ptr noundef %1781, ptr noundef %31)
  %1783 = icmp eq i32 %1782, -1
  br i1 %1783, label %1837, label %1784

1784:                                             ; preds = %1778
  br label %1785

1785:                                             ; preds = %1784
  br label %1786

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

1793:                                             ; preds = %1786
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = call i32 @fileno(ptr noundef %1794) #9
  %1796 = call i32 @isatty(i32 noundef %1795) #9
  %1797 = icmp ne i32 %1796, 0
  br i1 %1797, label %1798, label %1815

1798:                                             ; preds = %1793
  %1799 = load i32, ptr %42, align 4, !tbaa !5
  %1800 = call ptr @__errno_location() #10
  store i32 %1799, ptr %1800, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror(i32 noundef %1804, ptr noundef @.str.24)
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror_debug(i32 noundef %1807, ptr noundef @.str.24)
  %1809 = call ptr @__errno_location() #10
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @strerror(i32 noundef %1810) #9
  %1812 = call ptr @__errno_location() #10
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1801, ptr noundef @.str.22, i32 noundef %1802, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 109, ptr noundef %1805, ptr noundef %1808, ptr noundef %1811, i32 noundef %1813) #9
  br label %1832

1815:                                             ; preds = %1793, %1786
  %1816 = load i32, ptr %42, align 4, !tbaa !5
  %1817 = call ptr @__errno_location() #10
  store i32 %1816, ptr %1817, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef @.str.24)
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef @.str.24)
  %1826 = call ptr @__errno_location() #10
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #9
  %1829 = call ptr @__errno_location() #10
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef @.str.25, i32 noundef %1819, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 109, ptr noundef %1822, ptr noundef %1825, ptr noundef %1828, i32 noundef %1830) #9
  br label %1832

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

1833:                                             ; preds = %1832
  br label %1834

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

1835:                                             ; No predecessors!
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836, %1778
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr @test_count, align 4, !tbaa !5
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = icmp eq i32 %1844, 402653231
  br i1 %1845, label %1899, label %1846

1846:                                             ; preds = %1840
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

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

1855:                                             ; preds = %1848
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @fileno(ptr noundef %1856) #9
  %1858 = call i32 @isatty(i32 noundef %1857) #9
  %1859 = icmp ne i32 %1858, 0
  br i1 %1859, label %1860, label %1877

1860:                                             ; preds = %1855
  %1861 = load i32, ptr %43, align 4, !tbaa !5
  %1862 = call ptr @__errno_location() #10
  store i32 %1861, ptr %1862, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror(i32 noundef %1866, ptr noundef @.str.24)
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef @.str.24)
  %1871 = call ptr @__errno_location() #10
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #9
  %1874 = call ptr @__errno_location() #10
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1863, ptr noundef @.str.22, i32 noundef %1864, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 109, ptr noundef %1867, ptr noundef %1870, ptr noundef %1873, i32 noundef %1875) #9
  br label %1894

1877:                                             ; preds = %1855, %1848
  %1878 = load i32, ptr %43, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #10
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.24)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.24)
  %1888 = call ptr @__errno_location() #10
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #9
  %1891 = call ptr @__errno_location() #10
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.25, i32 noundef %1881, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 109, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #9
  br label %1894

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

1895:                                             ; preds = %1894
  br label %1896

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

1897:                                             ; No predecessors!
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898, %1840
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = add nsw i32 %1903, 1
  store i32 %1904, ptr @test_count, align 4, !tbaa !5
  %1905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror_debug(i32 noundef %1906, ptr noundef @.str.24)
  %1908 = icmp eq ptr %1907, null
  br i1 %1908, label %1909, label %1962

1909:                                             ; preds = %1902
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

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

1918:                                             ; preds = %1911
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = call i32 @fileno(ptr noundef %1919) #9
  %1921 = call i32 @isatty(i32 noundef %1920) #9
  %1922 = icmp ne i32 %1921, 0
  br i1 %1922, label %1923, label %1940

1923:                                             ; preds = %1918
  %1924 = load i32, ptr %44, align 4, !tbaa !5
  %1925 = call ptr @__errno_location() #10
  store i32 %1924, ptr %1925, align 4, !tbaa !5
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call ptr @s2n_strerror(i32 noundef %1929, ptr noundef @.str.24)
  %1931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror_debug(i32 noundef %1932, ptr noundef @.str.24)
  %1934 = call ptr @__errno_location() #10
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @strerror(i32 noundef %1935) #9
  %1937 = call ptr @__errno_location() #10
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1926, ptr noundef @.str.22, i32 noundef %1927, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 109, ptr noundef %1930, ptr noundef %1933, ptr noundef %1936, i32 noundef %1938) #9
  br label %1957

1940:                                             ; preds = %1918, %1911
  %1941 = load i32, ptr %44, align 4, !tbaa !5
  %1942 = call ptr @__errno_location() #10
  store i32 %1941, ptr %1942, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef @.str.24)
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror_debug(i32 noundef %1949, ptr noundef @.str.24)
  %1951 = call ptr @__errno_location() #10
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #9
  %1954 = call ptr @__errno_location() #10
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef @.str.25, i32 noundef %1944, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 109, ptr noundef %1947, ptr noundef %1950, ptr noundef %1953, i32 noundef %1955) #9
  br label %1957

1957:                                             ; preds = %1940, %1923
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1958

1958:                                             ; preds = %1957
  br label %1959

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

1960:                                             ; No predecessors!
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961, %1902
  br label %1963

1963:                                             ; preds = %1962
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964
  br label %1966

1966:                                             ; preds = %1965
  br label %1967

1967:                                             ; preds = %1966
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1968, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1969 = call ptr @__errno_location() #10
  store i32 0, ptr %1969, align 4, !tbaa !5
  br label %1970

1970:                                             ; preds = %1967
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %1978 = icmp eq i64 %1977, 1
  br i1 %1978, label %2032, label %1979

1979:                                             ; preds = %1974
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

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

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

1993:                                             ; preds = %1988
  %1994 = load i32, ptr %45, align 4, !tbaa !5
  %1995 = call ptr @__errno_location() #10
  store i32 %1994, ptr %1995, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %1998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror(i32 noundef %1999, ptr noundef @.str.24)
  %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_debug(i32 noundef %2002, ptr noundef @.str.24)
  %2004 = call ptr @__errno_location() #10
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #9
  %2007 = call ptr @__errno_location() #10
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef @.str.22, i32 noundef %1997, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 110, ptr noundef %2000, ptr noundef %2003, ptr noundef %2006, i32 noundef %2008) #9
  br label %2027

2010:                                             ; preds = %1988, %1981
  %2011 = load i32, ptr %45, align 4, !tbaa !5
  %2012 = call ptr @__errno_location() #10
  store i32 %2011, ptr %2012, align 4, !tbaa !5
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef @.str.24)
  %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_debug(i32 noundef %2019, ptr noundef @.str.24)
  %2021 = call ptr @__errno_location() #10
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #9
  %2024 = call ptr @__errno_location() #10
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2013, ptr noundef @.str.25, i32 noundef %2014, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 110, ptr noundef %2017, ptr noundef %2020, ptr noundef %2023, i32 noundef %2025) #9
  br label %2027

2027:                                             ; preds = %2010, %1993
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2028

2028:                                             ; preds = %2027
  br label %2029

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

2030:                                             ; No predecessors!
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031, %1974
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

2035:                                             ; preds = %2034
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = add nsw i32 %2036, 1
  store i32 %2037, ptr @test_count, align 4, !tbaa !5
  %2038 = load ptr, ptr %32, align 8, !tbaa !9
  %2039 = call i32 @s2n_connection_free(ptr noundef %2038)
  %2040 = icmp eq i32 %2039, -1
  br i1 %2040, label %2041, label %2094

2041:                                             ; preds = %2035
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

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

2050:                                             ; preds = %2043
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = call i32 @fileno(ptr noundef %2051) #9
  %2053 = call i32 @isatty(i32 noundef %2052) #9
  %2054 = icmp ne i32 %2053, 0
  br i1 %2054, label %2055, label %2072

2055:                                             ; preds = %2050
  %2056 = load i32, ptr %46, align 4, !tbaa !5
  %2057 = call ptr @__errno_location() #10
  store i32 %2056, ptr %2057, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = load i32, ptr @test_count, align 4, !tbaa !5
  %2060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror(i32 noundef %2061, ptr noundef @.str.24)
  %2063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef @.str.24)
  %2066 = call ptr @__errno_location() #10
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @strerror(i32 noundef %2067) #9
  %2069 = call ptr @__errno_location() #10
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2058, ptr noundef @.str.22, i32 noundef %2059, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 112, ptr noundef %2062, ptr noundef %2065, ptr noundef %2068, i32 noundef %2070) #9
  br label %2089

2072:                                             ; preds = %2050, %2043
  %2073 = load i32, ptr %46, align 4, !tbaa !5
  %2074 = call ptr @__errno_location() #10
  store i32 %2073, ptr %2074, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2078, ptr noundef @.str.24)
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror_debug(i32 noundef %2081, ptr noundef @.str.24)
  %2083 = call ptr @__errno_location() #10
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @strerror(i32 noundef %2084) #9
  %2086 = call ptr @__errno_location() #10
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef @.str.25, i32 noundef %2076, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 112, ptr noundef %2079, ptr noundef %2082, ptr noundef %2085, i32 noundef %2087) #9
  br label %2089

2089:                                             ; preds = %2072, %2055
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2090

2090:                                             ; preds = %2089
  br label %2091

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

2092:                                             ; No predecessors!
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093, %2035
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  %2097 = call i32 @s2n_stuffer_free(ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  br label %2098

2098:                                             ; preds = %2096
  br label %2099

2099:                                             ; preds = %2098
  %2100 = call i32 @s2n_cleanup()
  %2101 = icmp eq i32 %2100, -1
  br i1 %2101, label %2102, label %2153

2102:                                             ; preds = %2099
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %2105 = call ptr @__errno_location() #10
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  store i32 %2106, ptr %47, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = call i32 @s2n_print_stacktrace(ptr noundef %2107)
  %2109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2110 = trunc i8 %2109 to i1
  br i1 %2110, label %2111, label %2133

2111:                                             ; preds = %2104
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @fileno(ptr noundef %2112) #9
  %2114 = call i32 @isatty(i32 noundef %2113) #9
  %2115 = icmp ne i32 %2114, 0
  br i1 %2115, label %2116, label %2133

2116:                                             ; preds = %2111
  %2117 = load i32, ptr %47, align 4, !tbaa !5
  %2118 = call ptr @__errno_location() #10
  store i32 %2117, ptr %2118, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror(i32 noundef %2122, ptr noundef @.str.24)
  %2124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef @.str.24)
  %2127 = call ptr @__errno_location() #10
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #9
  %2130 = call ptr @__errno_location() #10
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2119, ptr noundef @.str.22, i32 noundef %2120, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 116, ptr noundef %2123, ptr noundef %2126, ptr noundef %2129, i32 noundef %2131) #9
  br label %2150

2133:                                             ; preds = %2111, %2104
  %2134 = load i32, ptr %47, align 4, !tbaa !5
  %2135 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %2144 = call ptr @__errno_location() #10
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @strerror(i32 noundef %2145) #9
  %2147 = call ptr @__errno_location() #10
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef @.str.25, i32 noundef %2137, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 116, ptr noundef %2140, ptr noundef %2143, ptr noundef %2146, i32 noundef %2148) #9
  br label %2150

2150:                                             ; preds = %2133, %2116
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2151

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

2152:                                             ; No predecessors!
  br label %2153

2153:                                             ; preds = %2152, %2099
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155
  %2157 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2158 = icmp eq i32 %2157, -1
  br i1 %2158, label %2159, label %2210

2159:                                             ; preds = %2156
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

2161:                                             ; preds = %2160
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %2162 = call ptr @__errno_location() #10
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  store i32 %2163, ptr %48, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @s2n_print_stacktrace(ptr noundef %2164)
  %2166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2167 = trunc i8 %2166 to i1
  br i1 %2167, label %2168, label %2190

2168:                                             ; preds = %2161
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @fileno(ptr noundef %2169) #9
  %2171 = call i32 @isatty(i32 noundef %2170) #9
  %2172 = icmp ne i32 %2171, 0
  br i1 %2172, label %2173, label %2190

2173:                                             ; preds = %2168
  %2174 = load i32, ptr %48, align 4, !tbaa !5
  %2175 = call ptr @__errno_location() #10
  store i32 %2174, ptr %2175, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %2179, ptr noundef @.str.24)
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror_debug(i32 noundef %2182, ptr noundef @.str.24)
  %2184 = call ptr @__errno_location() #10
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #9
  %2187 = call ptr @__errno_location() #10
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2176, ptr noundef @.str.22, i32 noundef %2177, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 116, ptr noundef %2180, ptr noundef %2183, ptr noundef %2186, i32 noundef %2188) #9
  br label %2207

2190:                                             ; preds = %2168, %2161
  %2191 = load i32, ptr %48, align 4, !tbaa !5
  %2192 = call ptr @__errno_location() #10
  store i32 %2191, ptr %2192, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef @.str.24)
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror_debug(i32 noundef %2199, ptr noundef @.str.24)
  %2201 = call ptr @__errno_location() #10
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @strerror(i32 noundef %2202) #9
  %2204 = call ptr @__errno_location() #10
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2193, ptr noundef @.str.25, i32 noundef %2194, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 116, ptr noundef %2197, ptr noundef %2200, ptr noundef %2203, i32 noundef %2205) #9
  br label %2207

2207:                                             ; preds = %2190, %2173
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2208

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

2209:                                             ; No predecessors!
  br label %2210

2210:                                             ; preds = %2209, %2156
  br label %2211

2211:                                             ; preds = %2210
  %2212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2213 = trunc i8 %2212 to i1
  br i1 %2213, label %2214, label %2230

2214:                                             ; preds = %2211
  %2215 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2216 = call i32 @fileno(ptr noundef %2215) #9
  %2217 = call i32 @isatty(i32 noundef %2216) #9
  %2218 = icmp ne i32 %2217, 0
  br i1 %2218, label %2219, label %2230

2219:                                             ; preds = %2214
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = icmp ne i32 %2220, 0
  br i1 %2221, label %2222, label %2226

2222:                                             ; preds = %2219
  %2223 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2223, ptr noundef @.str.47, i32 noundef %2224) #9
  br label %2229

2226:                                             ; preds = %2219
  %2227 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2227, ptr noundef @.str.48) #9
  br label %2229

2229:                                             ; preds = %2226, %2222
  br label %2241

2230:                                             ; preds = %2214, %2211
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = icmp ne i32 %2231, 0
  br i1 %2232, label %2233, label %2237

2233:                                             ; preds = %2230
  %2234 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef @.str.49, i32 noundef %2235) #9
  br label %2240

2237:                                             ; preds = %2230
  %2238 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2238, ptr noundef @.str.50) #9
  br label %2240

2240:                                             ; preds = %2237, %2233
  br label %2241

2241:                                             ; preds = %2240, %2229
  store i32 0, ptr %3, align 4
  br label %2243

2242:                                             ; No predecessors!
  br label %2243

2243:                                             ; preds = %2242, %2241
  %2244 = load i32, ptr %3, align 4
  ret i32 %2244
}

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

declare i32 @fflush(ptr noundef) #7

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #7

declare i32 @s2n_print_stacktrace(ptr noundef) #7

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #7

declare i32 @s2n_init() #7

declare i32 @s2n_stuffer_free(ptr noundef) #7

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_blocking_handler(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_error_handler(ptr noundef) #4

declare ptr @s2n_connection_new(i32 noundef) #7

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

declare void @s2n_debug_info_reset() #7

declare i32 @s2n_connection_free(ptr noundef) #7

declare i32 @s2n_stuffer_reread(ptr noundef) #7

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

declare i32 @s2n_cleanup() #7

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !6, i64 28}
!18 = !{!"s2n_stuffer", !19, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!19 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!20 = !{!18, !6, i64 24}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}


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

%struct.s2n_handshake_action = type { i8, i8, i8, [2 x ptr] }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@tls13_state_machine = external hidden local_unnamed_addr global [21 x %struct.s2n_handshake_action], align 16
@state_machine = external hidden local_unnamed_addr global [21 x %struct.s2n_handshake_action], align 16
@async_blocked = external dso_local local_unnamed_addr global i8, align 1
@blocking_handler_count = external dso_local local_unnamed_addr global i64, align 8
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) local_unnamed_addr #4

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

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

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

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

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

23:                                               ; preds = %19, %12
  br label %24

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

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

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

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

52:                                               ; preds = %48, %41
  br label %53

53:                                               ; preds = %48, %52
  %.str.25.sink150 = phi ptr [ @.str.25, %52 ], [ @.str.22, %48 ]
  store i32 %43, ptr %42, align 4, !tbaa !5
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = load i32, ptr @test_count, align 4, !tbaa !5
  %56 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror(i32 noundef %57, ptr noundef nonnull @.str.24) #10
  %59 = load i32, ptr %56, align 4, !tbaa !5
  %60 = tail call ptr @s2n_strerror_debug(i32 noundef %59, ptr noundef nonnull @.str.24) #10
  %61 = load i32, ptr %42, align 4, !tbaa !5
  %62 = tail call ptr @strerror(i32 noundef %61) #10
  %63 = load i32, ptr %42, align 4, !tbaa !5
  %64 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef nonnull %.str.25.sink150, i32 noundef %55, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.21, i32 noundef 42, ptr noundef %58, ptr noundef %60, ptr noundef %62, i32 noundef %63) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

65:                                               ; preds = %36
  %66 = tail call i32 @s2n_init() #10
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

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

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

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.25.sink161 = phi ptr [ @.str.25, %79 ], [ @.str.22, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.24) #10
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.24) #10
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #10
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.25.sink161, i32 noundef %82, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.21, i32 noundef 42, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

92:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr @test_count, align 4, !tbaa !5
  %95 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #10
  %96 = icmp eq i32 %95, -1
  br i1 %96, label %97, label %121

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

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

108:                                              ; preds = %104, %97
  br label %109

109:                                              ; preds = %104, %108
  %.str.25.sink172 = phi ptr [ @.str.25, %108 ], [ @.str.22, %104 ]
  store i32 %99, ptr %98, align 4, !tbaa !5
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = load i32, ptr @test_count, align 4, !tbaa !5
  %112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = call ptr @s2n_strerror(i32 noundef %113, ptr noundef nonnull @.str.24) #10
  %115 = load i32, ptr %112, align 4, !tbaa !5
  %116 = call ptr @s2n_strerror_debug(i32 noundef %115, ptr noundef nonnull @.str.24) #10
  %117 = load i32, ptr %98, align 4, !tbaa !5
  %118 = call ptr @strerror(i32 noundef %117) #10
  %119 = load i32, ptr %98, align 4, !tbaa !5
  %120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %110, ptr noundef nonnull %.str.25.sink172, i32 noundef %111, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 49, ptr noundef %114, ptr noundef %116, ptr noundef %118, i32 noundef %119) #12
  call void @exit(i32 noundef 1) #13
  unreachable

121:                                              ; preds = %92
  store ptr @s2n_blocking_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 16), align 16, !tbaa !9
  store ptr @s2n_error_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 40), align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  store i32 0, ptr %4, align 4, !tbaa !5
  %122 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %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 = call i32 @s2n_connection_set_io_stuffers(ptr noundef null, ptr noundef nonnull %3, ptr noundef %122) #10
  %126 = icmp eq i32 %125, -1
  br i1 %126, label %127, label %151

127:                                              ; preds = %121
  %128 = tail call ptr @__errno_location() #11
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = call i32 @s2n_print_stacktrace(ptr noundef %130) #10
  %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 = call i32 @fileno(ptr noundef %135) #10
  %137 = call i32 @isatty(i32 noundef %136) #10
  %.not116 = icmp eq i32 %137, 0
  br i1 %.not116, label %138, label %139

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

139:                                              ; preds = %134, %138
  %.str.25.sink183 = phi ptr [ @.str.25, %138 ], [ @.str.22, %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 = 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(i32 noundef %143, ptr noundef nonnull @.str.24) #10
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.24) #10
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = call ptr @strerror(i32 noundef %147) #10
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.25.sink183, i32 noundef %141, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 58, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #12
  call void @exit(i32 noundef 1) #13
  unreachable

151:                                              ; preds = %121
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr @test_count, align 4, !tbaa !5
  %154 = call i32 @s2n_conn_choose_state_machine(ptr noundef %122, i8 noundef zeroext 34)
  %155 = call zeroext i1 @s2n_result_is_ok(i32 %154)
  br i1 %155, label %180, label %156

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

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

167:                                              ; preds = %163, %156
  br label %168

168:                                              ; preds = %163, %167
  %.str.25.sink194 = phi ptr [ @.str.25, %167 ], [ @.str.22, %163 ]
  store i32 %158, ptr %157, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror(i32 noundef %172, ptr noundef nonnull @.str.24) #10
  %174 = load i32, ptr %171, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef nonnull @.str.24) #10
  %176 = load i32, ptr %157, align 4, !tbaa !5
  %177 = call ptr @strerror(i32 noundef %176) #10
  %178 = load i32, ptr %157, align 4, !tbaa !5
  %179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef nonnull %.str.25.sink194, i32 noundef %170, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.21, i32 noundef 59, ptr noundef %173, ptr noundef %175, ptr noundef %177, i32 noundef %178) #12
  call void @exit(i32 noundef 1) #13
  unreachable

180:                                              ; preds = %151
  store i8 1, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  %181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = getelementptr inbounds i8, ptr %3, i64 28
  %183 = getelementptr inbounds i8, ptr %3, i64 24
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %190

184:                                              ; preds = %301
  %185 = add nuw nsw i64 %.0126, 1
  %exitcond.not = icmp eq i64 %185, 10
  br i1 %exitcond.not, label %186, label %190, !llvm.loop !17

186:                                              ; preds = %184
  %187 = add nsw i32 %275, 3
  store i32 %187, ptr @test_count, align 4, !tbaa !5
  %188 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %189 = icmp eq i64 %188, 10
  br i1 %189, label %350, label %328

190:                                              ; preds = %180, %184
  %191 = phi i32 [ %.pre, %180 ], [ %302, %184 ]
  %.0126 = phi i64 [ 0, %180 ], [ %185, %184 ]
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = call i32 @s2n_negotiate(ptr noundef %122, ptr noundef nonnull %4)
  %194 = icmp eq i32 %193, -1
  br i1 %194, label %218, label %195

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

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

206:                                              ; preds = %202, %195
  br label %207

207:                                              ; preds = %202, %206
  %.str.25.sink205 = phi ptr [ @.str.25, %206 ], [ @.str.22, %202 ]
  store i32 %197, ptr %196, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = load i32, ptr %181, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.24) #10
  %212 = load i32, ptr %181, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.24) #10
  %214 = load i32, ptr %196, align 4, !tbaa !5
  %215 = call ptr @strerror(i32 noundef %214) #10
  %216 = load i32, ptr %196, align 4, !tbaa !5
  %217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %208, ptr noundef nonnull %.str.25.sink205, i32 noundef %209, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 65, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #12
  call void @exit(i32 noundef 1) #13
  unreachable

218:                                              ; preds = %190
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = load i32, ptr %181, align 4, !tbaa !5
  %222 = icmp eq i32 %221, 201326593
  br i1 %222, label %246, label %223

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

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

234:                                              ; preds = %230, %223
  br label %235

235:                                              ; preds = %230, %234
  %.str.25.sink214 = phi ptr [ @.str.25, %234 ], [ @.str.22, %230 ]
  store i32 %225, ptr %224, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = load i32, ptr %181, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror(i32 noundef %238, ptr noundef nonnull @.str.24) #10
  %240 = load i32, ptr %181, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef nonnull @.str.24) #10
  %242 = load i32, ptr %224, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #10
  %244 = load i32, ptr %224, align 4, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull %.str.25.sink214, i32 noundef %237, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.21, i32 noundef 65, ptr noundef %239, ptr noundef %241, ptr noundef %243, i32 noundef %244) #12
  call void @exit(i32 noundef 1) #13
  unreachable

246:                                              ; preds = %218
  %247 = add nsw i32 %219, 2
  store i32 %247, ptr @test_count, align 4, !tbaa !5
  %248 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.24) #10
  %249 = icmp eq ptr %248, null
  br i1 %249, label %250, label %273

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

257:                                              ; preds = %250
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = call i32 @fileno(ptr noundef %258) #10
  %260 = call i32 @isatty(i32 noundef %259) #10
  %.not115 = icmp eq i32 %260, 0
  br i1 %.not115, label %261, label %262

261:                                              ; preds = %257, %250
  br label %262

262:                                              ; preds = %257, %261
  %.str.25.sink223 = phi ptr [ @.str.25, %261 ], [ @.str.22, %257 ]
  store i32 %252, ptr %251, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = load i32, ptr %181, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror(i32 noundef %265, ptr noundef nonnull @.str.24) #10
  %267 = load i32, ptr %181, align 4, !tbaa !5
  %268 = call ptr @s2n_strerror_debug(i32 noundef %267, ptr noundef nonnull @.str.24) #10
  %269 = load i32, ptr %251, align 4, !tbaa !5
  %270 = call ptr @strerror(i32 noundef %269) #10
  %271 = load i32, ptr %251, align 4, !tbaa !5
  %272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef nonnull %.str.25.sink223, i32 noundef %264, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 65, ptr noundef %266, ptr noundef %268, ptr noundef %270, i32 noundef %271) #12
  call void @exit(i32 noundef 1) #13
  unreachable

273:                                              ; preds = %246
  store i32 0, ptr %181, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %274 = tail call ptr @__errno_location() #11
  store i32 0, ptr %274, align 4, !tbaa !5
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr @test_count, align 4, !tbaa !5
  %277 = load i32, ptr %4, align 4, !tbaa !5
  %278 = icmp eq i32 %277, 3
  br i1 %278, label %301, label %279

279:                                              ; preds = %273
  %280 = load i32, ptr %274, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @s2n_print_stacktrace(ptr noundef %281) #10
  %283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %284 = trunc nuw i8 %283 to i1
  br i1 %284, label %285, label %289

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

289:                                              ; preds = %285, %279
  br label %290

290:                                              ; preds = %285, %289
  %.str.25.sink232 = phi ptr [ @.str.25, %289 ], [ @.str.22, %285 ]
  store i32 %280, ptr %274, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = load i32, ptr %181, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror(i32 noundef %293, ptr noundef nonnull @.str.24) #10
  %295 = load i32, ptr %181, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror_debug(i32 noundef %295, ptr noundef nonnull @.str.24) #10
  %297 = load i32, ptr %274, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #10
  %299 = load i32, ptr %274, align 4, !tbaa !5
  %300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %291, ptr noundef nonnull %.str.25.sink232, i32 noundef %292, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 66, ptr noundef %294, ptr noundef %296, ptr noundef %298, i32 noundef %299) #12
  call void @exit(i32 noundef 1) #13
  unreachable

301:                                              ; preds = %273
  %302 = add nsw i32 %275, 2
  store i32 %302, ptr @test_count, align 4, !tbaa !5
  %303 = load i32, ptr %182, align 4, !tbaa !19
  %304 = load i32, ptr %183, align 8, !tbaa !22
  %305 = icmp eq i32 %303, %304
  br i1 %305, label %184, label %306

306:                                              ; preds = %301
  %307 = load i32, ptr %274, align 4, !tbaa !5
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = call i32 @s2n_print_stacktrace(ptr noundef %308) #10
  %310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %311 = trunc nuw i8 %310 to i1
  br i1 %311, label %312, label %316

312:                                              ; preds = %306
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = call i32 @fileno(ptr noundef %313) #10
  %315 = call i32 @isatty(i32 noundef %314) #10
  %.not114 = icmp eq i32 %315, 0
  br i1 %.not114, label %316, label %317

316:                                              ; preds = %312, %306
  br label %317

317:                                              ; preds = %312, %316
  %.str.25.sink241 = phi ptr [ @.str.25, %316 ], [ @.str.22, %312 ]
  store i32 %307, ptr %274, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = load i32, ptr %181, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror(i32 noundef %320, ptr noundef nonnull @.str.24) #10
  %322 = load i32, ptr %181, align 4, !tbaa !5
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef nonnull @.str.24) #10
  %324 = load i32, ptr %274, align 4, !tbaa !5
  %325 = call ptr @strerror(i32 noundef %324) #10
  %326 = load i32, ptr %274, align 4, !tbaa !5
  %327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef nonnull %.str.25.sink241, i32 noundef %319, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 67, ptr noundef %321, ptr noundef %323, ptr noundef %325, i32 noundef %326) #12
  call void @exit(i32 noundef 1) #13
  unreachable

328:                                              ; preds = %186
  %329 = load i32, ptr %274, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @s2n_print_stacktrace(ptr noundef %330) #10
  %332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %333 = trunc nuw i8 %332 to i1
  br i1 %333, label %334, label %338

334:                                              ; preds = %328
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @fileno(ptr noundef %335) #10
  %337 = call i32 @isatty(i32 noundef %336) #10
  %.not85 = icmp eq i32 %337, 0
  br i1 %.not85, label %338, label %339

338:                                              ; preds = %334, %328
  br label %339

339:                                              ; preds = %334, %338
  %.str.25.sink250 = phi ptr [ @.str.25, %338 ], [ @.str.22, %334 ]
  store i32 %329, ptr %274, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = load i32, ptr %181, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror(i32 noundef %342, ptr noundef nonnull @.str.24) #10
  %344 = load i32, ptr %181, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror_debug(i32 noundef %344, ptr noundef nonnull @.str.24) #10
  %346 = load i32, ptr %274, align 4, !tbaa !5
  %347 = call ptr @strerror(i32 noundef %346) #10
  %348 = load i32, ptr %274, align 4, !tbaa !5
  %349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull %.str.25.sink250, i32 noundef %341, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 69, ptr noundef %343, ptr noundef %345, ptr noundef %347, i32 noundef %348) #12
  call void @exit(i32 noundef 1) #13
  unreachable

350:                                              ; preds = %186
  store i8 0, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  %351 = add nsw i32 %275, 4
  store i32 %351, ptr @test_count, align 4, !tbaa !5
  %352 = call i32 @s2n_negotiate(ptr noundef %122, ptr noundef nonnull %4)
  %353 = icmp eq i32 %352, -1
  br i1 %353, label %376, label %354

354:                                              ; preds = %350
  %355 = load i32, ptr %274, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call i32 @s2n_print_stacktrace(ptr noundef %356) #10
  %358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %359 = trunc nuw i8 %358 to i1
  br i1 %359, label %360, label %364

360:                                              ; preds = %354
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @fileno(ptr noundef %361) #10
  %363 = call i32 @isatty(i32 noundef %362) #10
  %.not86 = icmp eq i32 %363, 0
  br i1 %.not86, label %364, label %365

364:                                              ; preds = %360, %354
  br label %365

365:                                              ; preds = %360, %364
  %.str.25.sink259 = phi ptr [ @.str.25, %364 ], [ @.str.22, %360 ]
  store i32 %355, ptr %274, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = load i32, ptr %181, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror(i32 noundef %368, ptr noundef nonnull @.str.24) #10
  %370 = load i32, ptr %181, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror_debug(i32 noundef %370, ptr noundef nonnull @.str.24) #10
  %372 = load i32, ptr %274, align 4, !tbaa !5
  %373 = call ptr @strerror(i32 noundef %372) #10
  %374 = load i32, ptr %274, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.25.sink259, i32 noundef %367, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %369, ptr noundef %371, ptr noundef %373, i32 noundef %374) #12
  call void @exit(i32 noundef 1) #13
  unreachable

376:                                              ; preds = %350
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr @test_count, align 4, !tbaa !5
  %379 = load i32, ptr %181, align 4, !tbaa !5
  %380 = icmp eq i32 %379, 67108864
  br i1 %380, label %403, label %381

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

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

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

392:                                              ; preds = %387, %391
  %.str.25.sink268 = phi ptr [ @.str.25, %391 ], [ @.str.22, %387 ]
  store i32 %382, ptr %274, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = load i32, ptr %181, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror(i32 noundef %395, ptr noundef nonnull @.str.24) #10
  %397 = load i32, ptr %181, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef nonnull @.str.24) #10
  %399 = load i32, ptr %274, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #10
  %401 = load i32, ptr %274, align 4, !tbaa !5
  %402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %393, ptr noundef nonnull %.str.25.sink268, i32 noundef %394, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %396, ptr noundef %398, ptr noundef %400, i32 noundef %401) #12
  call void @exit(i32 noundef 1) #13
  unreachable

403:                                              ; preds = %376
  %404 = add nsw i32 %377, 2
  store i32 %404, ptr @test_count, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror_debug(i32 noundef 67108864, ptr noundef nonnull @.str.24) #10
  %406 = icmp eq ptr %405, null
  br i1 %406, label %407, label %429

407:                                              ; preds = %403
  %408 = load i32, ptr %274, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = call i32 @s2n_print_stacktrace(ptr noundef %409) #10
  %411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %412 = trunc nuw i8 %411 to i1
  br i1 %412, label %413, label %417

413:                                              ; preds = %407
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = call i32 @fileno(ptr noundef %414) #10
  %416 = call i32 @isatty(i32 noundef %415) #10
  %.not110 = icmp eq i32 %416, 0
  br i1 %.not110, label %417, label %418

417:                                              ; preds = %413, %407
  br label %418

418:                                              ; preds = %413, %417
  %.str.25.sink277 = phi ptr [ @.str.25, %417 ], [ @.str.22, %413 ]
  store i32 %408, ptr %274, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = load i32, ptr @test_count, align 4, !tbaa !5
  %421 = load i32, ptr %181, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror(i32 noundef %421, ptr noundef nonnull @.str.24) #10
  %423 = load i32, ptr %181, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror_debug(i32 noundef %423, ptr noundef nonnull @.str.24) #10
  %425 = load i32, ptr %274, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #10
  %427 = load i32, ptr %274, align 4, !tbaa !5
  %428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %419, ptr noundef nonnull %.str.25.sink277, i32 noundef %420, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %422, ptr noundef %424, ptr noundef %426, i32 noundef %427) #12
  call void @exit(i32 noundef 1) #13
  unreachable

429:                                              ; preds = %403
  store i32 0, ptr %181, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %274, align 4, !tbaa !5
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = add nsw i32 %430, 1
  store i32 %431, ptr @test_count, align 4, !tbaa !5
  %432 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %433 = icmp eq i64 %432, 1
  br i1 %433, label %456, label %434

434:                                              ; preds = %429
  %435 = load i32, ptr %274, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @s2n_print_stacktrace(ptr noundef %436) #10
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %444

440:                                              ; preds = %434
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @fileno(ptr noundef %441) #10
  %443 = call i32 @isatty(i32 noundef %442) #10
  %.not88 = icmp eq i32 %443, 0
  br i1 %.not88, label %444, label %445

444:                                              ; preds = %440, %434
  br label %445

445:                                              ; preds = %440, %444
  %.str.25.sink286 = phi ptr [ @.str.25, %444 ], [ @.str.22, %440 ]
  store i32 %435, ptr %274, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = load i32, ptr %181, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror(i32 noundef %448, ptr noundef nonnull @.str.24) #10
  %450 = load i32, ptr %181, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror_debug(i32 noundef %450, ptr noundef nonnull @.str.24) #10
  %452 = load i32, ptr %274, align 4, !tbaa !5
  %453 = call ptr @strerror(i32 noundef %452) #10
  %454 = load i32, ptr %274, align 4, !tbaa !5
  %455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef nonnull %.str.25.sink286, i32 noundef %447, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 75, ptr noundef %449, ptr noundef %451, ptr noundef %453, i32 noundef %454) #12
  call void @exit(i32 noundef 1) #13
  unreachable

456:                                              ; preds = %429
  %457 = add nsw i32 %430, 2
  store i32 %457, ptr @test_count, align 4, !tbaa !5
  %458 = load i32, ptr %182, align 4, !tbaa !19
  %459 = load i32, ptr %183, align 8, !tbaa !22
  %460 = sub i32 %458, %459
  %461 = icmp eq i32 %460, 9
  br i1 %461, label %484, label %462

462:                                              ; preds = %456
  %463 = load i32, ptr %274, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @s2n_print_stacktrace(ptr noundef %464) #10
  %466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %467 = trunc nuw i8 %466 to i1
  br i1 %467, label %468, label %472

468:                                              ; preds = %462
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @fileno(ptr noundef %469) #10
  %471 = call i32 @isatty(i32 noundef %470) #10
  %.not89 = icmp eq i32 %471, 0
  br i1 %.not89, label %472, label %473

472:                                              ; preds = %468, %462
  br label %473

473:                                              ; preds = %468, %472
  %.str.25.sink295 = phi ptr [ @.str.25, %472 ], [ @.str.22, %468 ]
  store i32 %463, ptr %274, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = load i32, ptr %181, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror(i32 noundef %476, ptr noundef nonnull @.str.24) #10
  %478 = load i32, ptr %181, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror_debug(i32 noundef %478, ptr noundef nonnull @.str.24) #10
  %480 = load i32, ptr %274, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #10
  %482 = load i32, ptr %274, align 4, !tbaa !5
  %483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull %.str.25.sink295, i32 noundef %475, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 78, ptr noundef %477, ptr noundef %479, ptr noundef %481, i32 noundef %482) #12
  call void @exit(i32 noundef 1) #13
  unreachable

484:                                              ; preds = %456
  %485 = add nsw i32 %430, 3
  store i32 %485, ptr @test_count, align 4, !tbaa !5
  %486 = call i32 @s2n_connection_free(ptr noundef %122) #10
  %487 = icmp eq i32 %486, -1
  br i1 %487, label %488, label %510

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

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

498:                                              ; preds = %494, %488
  br label %499

499:                                              ; preds = %494, %498
  %.str.25.sink304 = phi ptr [ @.str.25, %498 ], [ @.str.22, %494 ]
  store i32 %489, ptr %274, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = load i32, ptr %181, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror(i32 noundef %502, ptr noundef nonnull @.str.24) #10
  %504 = load i32, ptr %181, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror_debug(i32 noundef %504, ptr noundef nonnull @.str.24) #10
  %506 = load i32, ptr %274, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #10
  %508 = load i32, ptr %274, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull %.str.25.sink304, i32 noundef %501, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 80, ptr noundef %503, ptr noundef %505, ptr noundef %507, i32 noundef %508) #12
  call void @exit(i32 noundef 1) #13
  unreachable

510:                                              ; preds = %484
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = add nsw i32 %511, 1
  store i32 %512, ptr @test_count, align 4, !tbaa !5
  %513 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %3) #10
  %514 = icmp eq i32 %513, -1
  br i1 %514, label %515, label %537

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

521:                                              ; preds = %515
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 @fileno(ptr noundef %522) #10
  %524 = call i32 @isatty(i32 noundef %523) #10
  %.not108 = icmp eq i32 %524, 0
  br i1 %.not108, label %525, label %526

525:                                              ; preds = %521, %515
  br label %526

526:                                              ; preds = %521, %525
  %.str.25.sink313 = phi ptr [ @.str.25, %525 ], [ @.str.22, %521 ]
  store i32 %516, ptr %274, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = load i32, ptr %181, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef nonnull @.str.24) #10
  %531 = load i32, ptr %181, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.24) #10
  %533 = load i32, ptr %274, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #10
  %535 = load i32, ptr %274, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef nonnull %.str.25.sink313, i32 noundef %528, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 84, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #12
  call void @exit(i32 noundef 1) #13
  unreachable

537:                                              ; preds = %510
  store ptr @s2n_blocking_handler, ptr getelementptr inbounds (i8, ptr @state_machine, i64 8), align 8, !tbaa !9
  store ptr @s2n_error_handler, ptr getelementptr inbounds (i8, ptr @state_machine, i64 32), align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 0, ptr %5, align 4, !tbaa !5
  %538 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr @test_count, align 4, !tbaa !5
  %541 = call i32 @s2n_connection_set_blinding(ptr noundef %538, i32 noundef 1) #10
  %542 = icmp eq i32 %541, -1
  br i1 %542, label %543, label %565

543:                                              ; preds = %537
  %544 = load i32, ptr %274, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @s2n_print_stacktrace(ptr noundef %545) #10
  %547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %548 = trunc nuw i8 %547 to i1
  br i1 %548, label %549, label %553

549:                                              ; preds = %543
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @fileno(ptr noundef %550) #10
  %552 = call i32 @isatty(i32 noundef %551) #10
  %.not107 = icmp eq i32 %552, 0
  br i1 %.not107, label %553, label %554

553:                                              ; preds = %549, %543
  br label %554

554:                                              ; preds = %549, %553
  %.str.25.sink322 = phi ptr [ @.str.25, %553 ], [ @.str.22, %549 ]
  store i32 %544, ptr %274, align 4, !tbaa !5
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = load i32, ptr %181, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef nonnull @.str.24) #10
  %559 = load i32, ptr %181, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef nonnull @.str.24) #10
  %561 = load i32, ptr %274, align 4, !tbaa !5
  %562 = call ptr @strerror(i32 noundef %561) #10
  %563 = load i32, ptr %274, align 4, !tbaa !5
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %555, ptr noundef nonnull %.str.25.sink322, i32 noundef %556, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 93, ptr noundef %558, ptr noundef %560, ptr noundef %562, i32 noundef %563) #12
  call void @exit(i32 noundef 1) #13
  unreachable

565:                                              ; preds = %537
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %3, ptr noundef null, ptr noundef %538) #10
  %569 = icmp eq i32 %568, -1
  br i1 %569, label %570, label %592

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

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

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

581:                                              ; preds = %576, %580
  %.str.25.sink331 = phi ptr [ @.str.25, %580 ], [ @.str.22, %576 ]
  store i32 %571, ptr %274, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = load i32, ptr %181, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef nonnull @.str.24) #10
  %586 = load i32, ptr %181, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.24) #10
  %588 = load i32, ptr %274, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #10
  %590 = load i32, ptr %274, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.25.sink331, i32 noundef %583, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 94, ptr noundef %585, ptr noundef %587, ptr noundef %589, i32 noundef %590) #12
  call void @exit(i32 noundef 1) #13
  unreachable

592:                                              ; preds = %565
  store i8 1, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  %.pre131 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %599

593:                                              ; preds = %706
  %594 = add nuw nsw i64 %.082127, 1
  %exitcond130.not = icmp eq i64 %594, 10
  br i1 %exitcond130.not, label %595, label %599, !llvm.loop !23

595:                                              ; preds = %593
  %596 = add nsw i32 %680, 3
  store i32 %596, ptr @test_count, align 4, !tbaa !5
  %597 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %598 = icmp eq i64 %597, 10
  br i1 %598, label %755, label %733

599:                                              ; preds = %592, %593
  %600 = phi i32 [ %.pre131, %592 ], [ %707, %593 ]
  %.082127 = phi i64 [ 0, %592 ], [ %594, %593 ]
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr @test_count, align 4, !tbaa !5
  %602 = call i32 @s2n_negotiate(ptr noundef %538, ptr noundef nonnull %5)
  %603 = icmp eq i32 %602, -1
  br i1 %603, label %626, label %604

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

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

614:                                              ; preds = %610, %604
  br label %615

615:                                              ; preds = %610, %614
  %.str.25.sink340 = phi ptr [ @.str.25, %614 ], [ @.str.22, %610 ]
  store i32 %605, ptr %274, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = load i32, ptr %181, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror(i32 noundef %618, ptr noundef nonnull @.str.24) #10
  %620 = load i32, ptr %181, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror_debug(i32 noundef %620, ptr noundef nonnull @.str.24) #10
  %622 = load i32, ptr %274, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #10
  %624 = load i32, ptr %274, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef nonnull %.str.25.sink340, i32 noundef %617, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 100, ptr noundef %619, ptr noundef %621, ptr noundef %623, i32 noundef %624) #12
  call void @exit(i32 noundef 1) #13
  unreachable

626:                                              ; preds = %599
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = load i32, ptr %181, align 4, !tbaa !5
  %630 = icmp eq i32 %629, 201326593
  br i1 %630, label %653, label %631

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

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

641:                                              ; preds = %637, %631
  br label %642

642:                                              ; preds = %637, %641
  %.str.25.sink349 = phi ptr [ @.str.25, %641 ], [ @.str.22, %637 ]
  store i32 %632, ptr %274, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = load i32, ptr %181, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef nonnull @.str.24) #10
  %647 = load i32, ptr %181, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef nonnull @.str.24) #10
  %649 = load i32, ptr %274, align 4, !tbaa !5
  %650 = call ptr @strerror(i32 noundef %649) #10
  %651 = load i32, ptr %274, align 4, !tbaa !5
  %652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef nonnull %.str.25.sink349, i32 noundef %644, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.21, i32 noundef 100, ptr noundef %646, ptr noundef %648, ptr noundef %650, i32 noundef %651) #12
  call void @exit(i32 noundef 1) #13
  unreachable

653:                                              ; preds = %626
  %654 = add nsw i32 %627, 2
  store i32 %654, ptr @test_count, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.24) #10
  %656 = icmp eq ptr %655, null
  br i1 %656, label %657, label %679

657:                                              ; preds = %653
  %658 = load i32, ptr %274, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659) #10
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc nuw i8 %661 to i1
  br i1 %662, label %663, label %667

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

667:                                              ; preds = %663, %657
  br label %668

668:                                              ; preds = %663, %667
  %.str.25.sink358 = phi ptr [ @.str.25, %667 ], [ @.str.22, %663 ]
  store i32 %658, ptr %274, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = load i32, ptr %181, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.24) #10
  %673 = load i32, ptr %181, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.24) #10
  %675 = load i32, ptr %274, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #10
  %677 = load i32, ptr %274, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef nonnull %.str.25.sink358, i32 noundef %670, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 100, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #12
  call void @exit(i32 noundef 1) #13
  unreachable

679:                                              ; preds = %653
  store i32 0, ptr %181, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %274, align 4, !tbaa !5
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = load i32, ptr %5, align 4, !tbaa !5
  %683 = icmp eq i32 %682, 3
  br i1 %683, label %706, label %684

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

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

694:                                              ; preds = %690, %684
  br label %695

695:                                              ; preds = %690, %694
  %.str.25.sink367 = phi ptr [ @.str.25, %694 ], [ @.str.22, %690 ]
  store i32 %685, ptr %274, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = load i32, ptr %181, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror(i32 noundef %698, ptr noundef nonnull @.str.24) #10
  %700 = load i32, ptr %181, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef nonnull @.str.24) #10
  %702 = load i32, ptr %274, align 4, !tbaa !5
  %703 = call ptr @strerror(i32 noundef %702) #10
  %704 = load i32, ptr %274, align 4, !tbaa !5
  %705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %696, ptr noundef nonnull %.str.25.sink367, i32 noundef %697, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 101, ptr noundef %699, ptr noundef %701, ptr noundef %703, i32 noundef %704) #12
  call void @exit(i32 noundef 1) #13
  unreachable

706:                                              ; preds = %679
  %707 = add nsw i32 %680, 2
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %182, align 4, !tbaa !19
  %709 = load i32, ptr %183, align 8, !tbaa !22
  %710 = icmp eq i32 %708, %709
  br i1 %710, label %593, label %711

711:                                              ; preds = %706
  %712 = load i32, ptr %274, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @s2n_print_stacktrace(ptr noundef %713) #10
  %715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %716 = trunc nuw i8 %715 to i1
  br i1 %716, label %717, label %721

717:                                              ; preds = %711
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = call i32 @fileno(ptr noundef %718) #10
  %720 = call i32 @isatty(i32 noundef %719) #10
  %.not104 = icmp eq i32 %720, 0
  br i1 %.not104, label %721, label %722

721:                                              ; preds = %717, %711
  br label %722

722:                                              ; preds = %717, %721
  %.str.25.sink376 = phi ptr [ @.str.25, %721 ], [ @.str.22, %717 ]
  store i32 %712, ptr %274, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = load i32, ptr @test_count, align 4, !tbaa !5
  %725 = load i32, ptr %181, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror(i32 noundef %725, ptr noundef nonnull @.str.24) #10
  %727 = load i32, ptr %181, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror_debug(i32 noundef %727, ptr noundef nonnull @.str.24) #10
  %729 = load i32, ptr %274, align 4, !tbaa !5
  %730 = call ptr @strerror(i32 noundef %729) #10
  %731 = load i32, ptr %274, align 4, !tbaa !5
  %732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %723, ptr noundef nonnull %.str.25.sink376, i32 noundef %724, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 102, ptr noundef %726, ptr noundef %728, ptr noundef %730, i32 noundef %731) #12
  call void @exit(i32 noundef 1) #13
  unreachable

733:                                              ; preds = %595
  %734 = load i32, ptr %274, align 4, !tbaa !5
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @s2n_print_stacktrace(ptr noundef %735) #10
  %737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %738 = trunc nuw i8 %737 to i1
  br i1 %738, label %739, label %743

739:                                              ; preds = %733
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @fileno(ptr noundef %740) #10
  %742 = call i32 @isatty(i32 noundef %741) #10
  %.not90 = icmp eq i32 %742, 0
  br i1 %.not90, label %743, label %744

743:                                              ; preds = %739, %733
  br label %744

744:                                              ; preds = %739, %743
  %.str.25.sink385 = phi ptr [ @.str.25, %743 ], [ @.str.22, %739 ]
  store i32 %734, ptr %274, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = load i32, ptr %181, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror(i32 noundef %747, ptr noundef nonnull @.str.24) #10
  %749 = load i32, ptr %181, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror_debug(i32 noundef %749, ptr noundef nonnull @.str.24) #10
  %751 = load i32, ptr %274, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #10
  %753 = load i32, ptr %274, align 4, !tbaa !5
  %754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %745, ptr noundef nonnull %.str.25.sink385, i32 noundef %746, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 104, ptr noundef %748, ptr noundef %750, ptr noundef %752, i32 noundef %753) #12
  call void @exit(i32 noundef 1) #13
  unreachable

755:                                              ; preds = %595
  store i8 0, ptr @async_blocked, align 1, !tbaa !11
  store i64 0, ptr @blocking_handler_count, align 8, !tbaa !15
  %756 = add nsw i32 %680, 4
  store i32 %756, ptr @test_count, align 4, !tbaa !5
  %757 = call i32 @s2n_negotiate(ptr noundef %538, ptr noundef nonnull %5)
  %758 = icmp eq i32 %757, -1
  br i1 %758, label %781, label %759

759:                                              ; preds = %755
  %760 = load i32, ptr %274, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = call i32 @s2n_print_stacktrace(ptr noundef %761) #10
  %763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %764 = trunc nuw i8 %763 to i1
  br i1 %764, label %765, label %769

765:                                              ; preds = %759
  %766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %767 = call i32 @fileno(ptr noundef %766) #10
  %768 = call i32 @isatty(i32 noundef %767) #10
  %.not91 = icmp eq i32 %768, 0
  br i1 %.not91, label %769, label %770

769:                                              ; preds = %765, %759
  br label %770

770:                                              ; preds = %765, %769
  %.str.25.sink394 = phi ptr [ @.str.25, %769 ], [ @.str.22, %765 ]
  store i32 %760, ptr %274, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = load i32, ptr %181, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror(i32 noundef %773, ptr noundef nonnull @.str.24) #10
  %775 = load i32, ptr %181, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef nonnull @.str.24) #10
  %777 = load i32, ptr %274, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #10
  %779 = load i32, ptr %274, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef nonnull %.str.25.sink394, i32 noundef %772, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 109, ptr noundef %774, ptr noundef %776, ptr noundef %778, i32 noundef %779) #12
  call void @exit(i32 noundef 1) #13
  unreachable

781:                                              ; preds = %755
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = load i32, ptr %181, align 4, !tbaa !5
  %785 = icmp eq i32 %784, 402653231
  br i1 %785, label %808, label %786

786:                                              ; preds = %781
  %787 = load i32, ptr %274, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = call i32 @s2n_print_stacktrace(ptr noundef %788) #10
  %790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %791 = trunc nuw i8 %790 to i1
  br i1 %791, label %792, label %796

792:                                              ; preds = %786
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = call i32 @fileno(ptr noundef %793) #10
  %795 = call i32 @isatty(i32 noundef %794) #10
  %.not92 = icmp eq i32 %795, 0
  br i1 %.not92, label %796, label %797

796:                                              ; preds = %792, %786
  br label %797

797:                                              ; preds = %792, %796
  %.str.25.sink403 = phi ptr [ @.str.25, %796 ], [ @.str.22, %792 ]
  store i32 %787, ptr %274, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = load i32, ptr %181, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef nonnull @.str.24) #10
  %802 = load i32, ptr %181, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef nonnull @.str.24) #10
  %804 = load i32, ptr %274, align 4, !tbaa !5
  %805 = call ptr @strerror(i32 noundef %804) #10
  %806 = load i32, ptr %274, align 4, !tbaa !5
  %807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef nonnull %.str.25.sink403, i32 noundef %799, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 109, ptr noundef %801, ptr noundef %803, ptr noundef %805, i32 noundef %806) #12
  call void @exit(i32 noundef 1) #13
  unreachable

808:                                              ; preds = %781
  %809 = add nsw i32 %782, 2
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.24) #10
  %811 = icmp eq ptr %810, null
  br i1 %811, label %812, label %834

812:                                              ; preds = %808
  %813 = load i32, ptr %274, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814) #10
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc nuw i8 %816 to i1
  br i1 %817, label %818, label %822

818:                                              ; preds = %812
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @fileno(ptr noundef %819) #10
  %821 = call i32 @isatty(i32 noundef %820) #10
  %.not100 = icmp eq i32 %821, 0
  br i1 %.not100, label %822, label %823

822:                                              ; preds = %818, %812
  br label %823

823:                                              ; preds = %818, %822
  %.str.25.sink412 = phi ptr [ @.str.25, %822 ], [ @.str.22, %818 ]
  store i32 %813, ptr %274, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = load i32, ptr %181, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror(i32 noundef %826, ptr noundef nonnull @.str.24) #10
  %828 = load i32, ptr %181, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef nonnull @.str.24) #10
  %830 = load i32, ptr %274, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #10
  %832 = load i32, ptr %274, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef nonnull %.str.25.sink412, i32 noundef %825, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 109, ptr noundef %827, ptr noundef %829, ptr noundef %831, i32 noundef %832) #12
  call void @exit(i32 noundef 1) #13
  unreachable

834:                                              ; preds = %808
  store i32 0, ptr %181, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %274, align 4, !tbaa !5
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = load i64, ptr @blocking_handler_count, align 8, !tbaa !15
  %838 = icmp eq i64 %837, 1
  br i1 %838, label %861, label %839

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

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

849:                                              ; preds = %845, %839
  br label %850

850:                                              ; preds = %845, %849
  %.str.25.sink421 = phi ptr [ @.str.25, %849 ], [ @.str.22, %845 ]
  store i32 %840, ptr %274, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = load i32, ptr %181, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef nonnull @.str.24) #10
  %855 = load i32, ptr %181, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef nonnull @.str.24) #10
  %857 = load i32, ptr %274, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #10
  %859 = load i32, ptr %274, align 4, !tbaa !5
  %860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef nonnull %.str.25.sink421, i32 noundef %852, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 110, ptr noundef %854, ptr noundef %856, ptr noundef %858, i32 noundef %859) #12
  call void @exit(i32 noundef 1) #13
  unreachable

861:                                              ; preds = %834
  %862 = add nsw i32 %835, 2
  store i32 %862, ptr @test_count, align 4, !tbaa !5
  %863 = call i32 @s2n_connection_free(ptr noundef %538) #10
  %864 = icmp eq i32 %863, -1
  br i1 %864, label %865, label %887

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

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

875:                                              ; preds = %871, %865
  br label %876

876:                                              ; preds = %871, %875
  %.str.25.sink430 = phi ptr [ @.str.25, %875 ], [ @.str.22, %871 ]
  store i32 %866, ptr %274, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = load i32, ptr %181, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror(i32 noundef %879, ptr noundef nonnull @.str.24) #10
  %881 = load i32, ptr %181, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef nonnull @.str.24) #10
  %883 = load i32, ptr %274, align 4, !tbaa !5
  %884 = call ptr @strerror(i32 noundef %883) #10
  %885 = load i32, ptr %274, align 4, !tbaa !5
  %886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %877, ptr noundef nonnull %.str.25.sink430, i32 noundef %878, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 112, ptr noundef %880, ptr noundef %882, ptr noundef %884, i32 noundef %885) #12
  call void @exit(i32 noundef 1) #13
  unreachable

887:                                              ; preds = %861
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  %888 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #10
  %889 = call i32 @s2n_cleanup() #10
  %890 = icmp eq i32 %889, -1
  br i1 %890, label %891, label %913

891:                                              ; preds = %887
  %892 = load i32, ptr %274, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @s2n_print_stacktrace(ptr noundef %893) #10
  %895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %896 = trunc nuw i8 %895 to i1
  br i1 %896, label %897, label %901

897:                                              ; preds = %891
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @fileno(ptr noundef %898) #10
  %900 = call i32 @isatty(i32 noundef %899) #10
  %.not98 = icmp eq i32 %900, 0
  br i1 %.not98, label %901, label %902

901:                                              ; preds = %897, %891
  br label %902

902:                                              ; preds = %897, %901
  %.str.25.sink439 = phi ptr [ @.str.25, %901 ], [ @.str.22, %897 ]
  store i32 %892, ptr %274, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = load i32, ptr @test_count, align 4, !tbaa !5
  %905 = load i32, ptr %181, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror(i32 noundef %905, ptr noundef nonnull @.str.24) #10
  %907 = load i32, ptr %181, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror_debug(i32 noundef %907, ptr noundef nonnull @.str.24) #10
  %909 = load i32, ptr %274, align 4, !tbaa !5
  %910 = call ptr @strerror(i32 noundef %909) #10
  %911 = load i32, ptr %274, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %903, ptr noundef nonnull %.str.25.sink439, i32 noundef %904, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 116, ptr noundef %906, ptr noundef %908, ptr noundef %910, i32 noundef %911) #12
  call void @exit(i32 noundef 1) #13
  unreachable

913:                                              ; preds = %887
  %914 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %915 = icmp eq i32 %914, -1
  br i1 %915, label %916, label %938

916:                                              ; preds = %913
  %917 = load i32, ptr %274, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @s2n_print_stacktrace(ptr noundef %918) #10
  %920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %921 = trunc nuw i8 %920 to i1
  br i1 %921, label %922, label %926

922:                                              ; preds = %916
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = call i32 @fileno(ptr noundef %923) #10
  %925 = call i32 @isatty(i32 noundef %924) #10
  %.not97 = icmp eq i32 %925, 0
  br i1 %.not97, label %926, label %927

926:                                              ; preds = %922, %916
  br label %927

927:                                              ; preds = %922, %926
  %.str.25.sink448 = phi ptr [ @.str.25, %926 ], [ @.str.22, %922 ]
  store i32 %917, ptr %274, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = load i32, ptr %181, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef nonnull @.str.24) #10
  %932 = load i32, ptr %181, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror_debug(i32 noundef %932, ptr noundef nonnull @.str.24) #10
  %934 = load i32, ptr %274, align 4, !tbaa !5
  %935 = call ptr @strerror(i32 noundef %934) #10
  %936 = load i32, ptr %274, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull %.str.25.sink448, i32 noundef %929, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 116, ptr noundef %931, ptr noundef %933, ptr noundef %935, i32 noundef %936) #12
  call void @exit(i32 noundef 1) #13
  unreachable

938:                                              ; preds = %913
  %939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %940 = trunc nuw i8 %939 to i1
  br i1 %940, label %941, label %952

941:                                              ; preds = %938
  %942 = load ptr, ptr @stdout, align 8, !tbaa !9
  %943 = call i32 @fileno(ptr noundef %942) #10
  %944 = call i32 @isatty(i32 noundef %943) #10
  %.not94 = icmp eq i32 %944, 0
  br i1 %.not94, label %952, label %945

945:                                              ; preds = %941
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not96 = icmp eq i32 %946, 0
  %947 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not96, label %950, label %948

948:                                              ; preds = %945
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull @.str.47, i32 noundef %946) #10
  br label %959

950:                                              ; preds = %945
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull @.str.48) #10
  br label %959

952:                                              ; preds = %941, %938
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not95 = icmp eq i32 %953, 0
  %954 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not95, label %957, label %955

955:                                              ; preds = %952
  %956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %954, ptr noundef nonnull @.str.49, i32 noundef %953) #10
  br label %959

957:                                              ; preds = %952
  %958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %954, ptr noundef nonnull @.str.50) #10
  br label %959

959:                                              ; preds = %955, %957, %948, %950
  ret i32 0
}

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #7

declare i32 @s2n_init() local_unnamed_addr #7

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #7

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_blocking_handler(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_error_handler(ptr noundef) #4

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #7

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

declare void @s2n_debug_info_reset() local_unnamed_addr #7

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #7

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #7

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

declare i32 @s2n_cleanup() local_unnamed_addr #7

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = !{!20, !6, i64 28}
!20 = !{!"s2n_stuffer", !21, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!21 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!22 = !{!20, !6, i64 24}
!23 = distinct !{!23, !18}


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