; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_io_errors_test)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [87 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [25 x i8], align 1

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

74:                                               ; preds = %2
  br label %75

75:                                               ; preds = %74
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %76 = load ptr, ptr @stdout, align 8, !tbaa !9
  %77 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef @.str, ptr noundef @.str.1) #9
  %78 = load ptr, ptr @stdout, align 8, !tbaa !9
  %79 = call i32 @fflush(ptr noundef %78)
  br label %80

80:                                               ; preds = %75
  %81 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %82 = icmp eq i32 %81, -1
  br i1 %82, label %83, label %134

83:                                               ; preds = %80
  br label %84

84:                                               ; preds = %83
  br label %85

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

92:                                               ; preds = %85
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = call i32 @fileno(ptr noundef %93) #9
  %95 = call i32 @isatty(i32 noundef %94) #9
  %96 = icmp ne i32 %95, 0
  br i1 %96, label %97, label %114

97:                                               ; preds = %92
  %98 = load i32, ptr %6, align 4, !tbaa !5
  %99 = call ptr @__errno_location() #10
  store i32 %98, ptr %99, align 4, !tbaa !5
  %100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = call ptr @s2n_strerror(i32 noundef %103, ptr noundef @.str.4)
  %105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = call ptr @s2n_strerror_debug(i32 noundef %106, ptr noundef @.str.4)
  %108 = call ptr @__errno_location() #10
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = call ptr @strerror(i32 noundef %109) #9
  %111 = call ptr @__errno_location() #10
  %112 = load i32, ptr %111, align 4, !tbaa !5
  %113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %100, ptr noundef @.str.2, i32 noundef %101, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 23, ptr noundef %104, ptr noundef %107, ptr noundef %110, i32 noundef %112) #9
  br label %131

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

131:                                              ; preds = %114, %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %132

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

133:                                              ; No predecessors!
  br label %134

134:                                              ; preds = %133, %80
  br label %135

135:                                              ; preds = %134
  br label %136

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

141:                                              ; preds = %136
  br label %142

142:                                              ; preds = %141
  br label %143

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

150:                                              ; preds = %143
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = call i32 @fileno(ptr noundef %151) #9
  %153 = call i32 @isatty(i32 noundef %152) #9
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %172

155:                                              ; preds = %150
  %156 = load i32, ptr %7, align 4, !tbaa !5
  %157 = call ptr @__errno_location() #10
  store i32 %156, ptr %157, align 4, !tbaa !5
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call ptr @s2n_strerror(i32 noundef %161, ptr noundef @.str.4)
  %163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call ptr @s2n_strerror_debug(i32 noundef %164, ptr noundef @.str.4)
  %166 = call ptr @__errno_location() #10
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @strerror(i32 noundef %167) #9
  %169 = call ptr @__errno_location() #10
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef @.str.2, i32 noundef %159, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 23, ptr noundef %162, ptr noundef %165, ptr noundef %168, i32 noundef %170) #9
  br label %189

172:                                              ; preds = %150, %143
  %173 = load i32, ptr %7, align 4, !tbaa !5
  %174 = call ptr @__errno_location() #10
  store i32 %173, ptr %174, align 4, !tbaa !5
  %175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %176 = load i32, ptr @test_count, align 4, !tbaa !5
  %177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = call ptr @s2n_strerror(i32 noundef %178, ptr noundef @.str.4)
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror_debug(i32 noundef %181, ptr noundef @.str.4)
  %183 = call ptr @__errno_location() #10
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @strerror(i32 noundef %184) #9
  %186 = call ptr @__errno_location() #10
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str.5, i32 noundef %176, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 23, ptr noundef %179, ptr noundef %182, ptr noundef %185, i32 noundef %187) #9
  br label %189

189:                                              ; preds = %172, %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %190

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

191:                                              ; No predecessors!
  br label %192

192:                                              ; preds = %191, %136
  br label %193

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  %196 = call i32 @s2n_init()
  %197 = icmp eq i32 %196, -1
  br i1 %197, label %198, label %249

198:                                              ; preds = %195
  br label %199

199:                                              ; preds = %198
  br label %200

200:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %201 = call ptr @__errno_location() #10
  %202 = load i32, ptr %201, align 4, !tbaa !5
  store i32 %202, ptr %8, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = call i32 @s2n_print_stacktrace(ptr noundef %203)
  %205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %206 = trunc i8 %205 to i1
  br i1 %206, label %207, label %229

207:                                              ; preds = %200
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = call i32 @fileno(ptr noundef %208) #9
  %210 = call i32 @isatty(i32 noundef %209) #9
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %212, label %229

212:                                              ; preds = %207
  %213 = load i32, ptr %8, align 4, !tbaa !5
  %214 = call ptr @__errno_location() #10
  store i32 %213, ptr %214, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror(i32 noundef %218, ptr noundef @.str.4)
  %220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @s2n_strerror_debug(i32 noundef %221, ptr noundef @.str.4)
  %223 = call ptr @__errno_location() #10
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call ptr @strerror(i32 noundef %224) #9
  %226 = call ptr @__errno_location() #10
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef @.str.2, i32 noundef %216, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 23, ptr noundef %219, ptr noundef %222, ptr noundef %225, i32 noundef %227) #9
  br label %246

229:                                              ; preds = %207, %200
  %230 = load i32, ptr %8, align 4, !tbaa !5
  %231 = call ptr @__errno_location() #10
  store i32 %230, ptr %231, align 4, !tbaa !5
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = load i32, ptr @test_count, align 4, !tbaa !5
  %234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror(i32 noundef %235, ptr noundef @.str.4)
  %237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror_debug(i32 noundef %238, ptr noundef @.str.4)
  %240 = call ptr @__errno_location() #10
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @strerror(i32 noundef %241) #9
  %243 = call ptr @__errno_location() #10
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef @.str.5, i32 noundef %233, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 23, ptr noundef %236, ptr noundef %239, ptr noundef %242, i32 noundef %244) #9
  br label %246

246:                                              ; preds = %229, %212
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %247

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

248:                                              ; No predecessors!
  br label %249

249:                                              ; preds = %248, %195
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %252 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %252, ptr %9, align 8, !tbaa !9
  br label %253

253:                                              ; preds = %251
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  store i32 %255, ptr @test_count, align 4, !tbaa !5
  %256 = load ptr, ptr %9, align 8, !tbaa !9
  %257 = icmp eq ptr %256, null
  br i1 %257, label %258, label %311

258:                                              ; preds = %253
  br label %259

259:                                              ; preds = %258
  br label %260

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %261 = call ptr @__errno_location() #10
  %262 = load i32, ptr %261, align 4, !tbaa !5
  store i32 %262, ptr %10, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 @s2n_print_stacktrace(ptr noundef %263)
  %265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %266 = trunc i8 %265 to i1
  br i1 %266, label %267, label %289

267:                                              ; preds = %260
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = call i32 @fileno(ptr noundef %268) #9
  %270 = call i32 @isatty(i32 noundef %269) #9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %289

272:                                              ; preds = %267
  %273 = load i32, ptr %10, align 4, !tbaa !5
  %274 = call ptr @__errno_location() #10
  store i32 %273, ptr %274, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = call ptr @s2n_strerror(i32 noundef %278, ptr noundef @.str.4)
  %280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %282 = call ptr @s2n_strerror_debug(i32 noundef %281, ptr noundef @.str.4)
  %283 = call ptr @__errno_location() #10
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call ptr @strerror(i32 noundef %284) #9
  %286 = call ptr @__errno_location() #10
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %275, ptr noundef @.str.2, i32 noundef %276, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 28, ptr noundef %279, ptr noundef %282, ptr noundef %285, i32 noundef %287) #9
  br label %306

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

306:                                              ; preds = %289, %272
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %307

307:                                              ; preds = %306
  br label %308

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

309:                                              ; No predecessors!
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310, %253
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = load ptr, ptr %9, align 8, !tbaa !9
  %318 = call i32 @s2n_connection_set_blinding(ptr noundef %317, i32 noundef 1)
  %319 = icmp eq i32 %318, -1
  br i1 %319, label %320, label %373

320:                                              ; preds = %314
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %323 = call ptr @__errno_location() #10
  %324 = load i32, ptr %323, align 4, !tbaa !5
  store i32 %324, ptr %11, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @s2n_print_stacktrace(ptr noundef %325)
  %327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %328 = trunc i8 %327 to i1
  br i1 %328, label %329, label %351

329:                                              ; preds = %322
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @fileno(ptr noundef %330) #9
  %332 = call i32 @isatty(i32 noundef %331) #9
  %333 = icmp ne i32 %332, 0
  br i1 %333, label %334, label %351

334:                                              ; preds = %329
  %335 = load i32, ptr %11, align 4, !tbaa !5
  %336 = call ptr @__errno_location() #10
  store i32 %335, ptr %336, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror(i32 noundef %340, ptr noundef @.str.4)
  %342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror_debug(i32 noundef %343, ptr noundef @.str.4)
  %345 = call ptr @__errno_location() #10
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = call ptr @strerror(i32 noundef %346) #9
  %348 = call ptr @__errno_location() #10
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef @.str.2, i32 noundef %338, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 29, ptr noundef %341, ptr noundef %344, ptr noundef %347, i32 noundef %349) #9
  br label %368

351:                                              ; preds = %329, %322
  %352 = load i32, ptr %11, align 4, !tbaa !5
  %353 = call ptr @__errno_location() #10
  store i32 %352, ptr %353, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror(i32 noundef %357, ptr noundef @.str.4)
  %359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror_debug(i32 noundef %360, ptr noundef @.str.4)
  %362 = call ptr @__errno_location() #10
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @strerror(i32 noundef %363) #9
  %365 = call ptr @__errno_location() #10
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef @.str.5, i32 noundef %355, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 29, ptr noundef %358, ptr noundef %361, ptr noundef %364, i32 noundef %366) #9
  br label %368

368:                                              ; preds = %351, %334
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %369

369:                                              ; preds = %368
  br label %370

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

371:                                              ; No predecessors!
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372, %314
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375
  %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 ptr, ptr %9, align 8, !tbaa !9
  %380 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %379, ptr noundef @.str.10)
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %435

382:                                              ; preds = %376
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %385 = call ptr @__errno_location() #10
  %386 = load i32, ptr %385, align 4, !tbaa !5
  store i32 %386, ptr %12, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @s2n_print_stacktrace(ptr noundef %387)
  %389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %390 = trunc i8 %389 to i1
  br i1 %390, label %391, label %413

391:                                              ; preds = %384
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @fileno(ptr noundef %392) #9
  %394 = call i32 @isatty(i32 noundef %393) #9
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %396, label %413

396:                                              ; preds = %391
  %397 = load i32, ptr %12, align 4, !tbaa !5
  %398 = call ptr @__errno_location() #10
  store i32 %397, ptr %398, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror(i32 noundef %402, ptr noundef @.str.4)
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef @.str.4)
  %407 = call ptr @__errno_location() #10
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #9
  %410 = call ptr @__errno_location() #10
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef @.str.2, i32 noundef %400, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 30, ptr noundef %403, ptr noundef %406, ptr noundef %409, i32 noundef %411) #9
  br label %430

413:                                              ; preds = %391, %384
  %414 = load i32, ptr %12, align 4, !tbaa !5
  %415 = call ptr @__errno_location() #10
  store i32 %414, ptr %415, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef @.str.4)
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef @.str.4)
  %424 = call ptr @__errno_location() #10
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #9
  %427 = call ptr @__errno_location() #10
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef @.str.5, i32 noundef %417, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 30, ptr noundef %420, ptr noundef %423, ptr noundef %426, i32 noundef %428) #9
  br label %430

430:                                              ; preds = %413, %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %431

431:                                              ; preds = %430
  br label %432

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

433:                                              ; No predecessors!
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434, %376
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 40, ptr %13) #9
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 40, i1 false)
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %13, i32 noundef 0)
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %443, label %496

443:                                              ; preds = %438
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %446 = call ptr @__errno_location() #10
  %447 = load i32, ptr %446, align 4, !tbaa !5
  store i32 %447, ptr %14, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448)
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc i8 %450 to i1
  br i1 %451, label %452, label %474

452:                                              ; preds = %445
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @fileno(ptr noundef %453) #9
  %455 = call i32 @isatty(i32 noundef %454) #9
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %474

457:                                              ; preds = %452
  %458 = load i32, ptr %14, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #10
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef @.str.4)
  %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_debug(i32 noundef %466, ptr noundef @.str.4)
  %468 = call ptr @__errno_location() #10
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #9
  %471 = call ptr @__errno_location() #10
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.2, i32 noundef %461, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #9
  br label %491

474:                                              ; preds = %452, %445
  %475 = load i32, ptr %14, align 4, !tbaa !5
  %476 = call ptr @__errno_location() #10
  store i32 %475, ptr %476, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror(i32 noundef %480, ptr noundef @.str.4)
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror_debug(i32 noundef %483, ptr noundef @.str.4)
  %485 = call ptr @__errno_location() #10
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #9
  %488 = call ptr @__errno_location() #10
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef @.str.5, i32 noundef %478, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %481, ptr noundef %484, ptr noundef %487, i32 noundef %489) #9
  br label %491

491:                                              ; preds = %474, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %492

492:                                              ; preds = %491
  br label %493

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

494:                                              ; No predecessors!
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495, %438
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr @test_count, align 4, !tbaa !5
  %502 = load ptr, ptr %9, align 8, !tbaa !9
  %503 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %13, ptr noundef %13, ptr noundef %502)
  %504 = icmp eq i32 %503, -1
  br i1 %504, label %505, label %558

505:                                              ; preds = %499
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %508 = call ptr @__errno_location() #10
  %509 = load i32, ptr %508, align 4, !tbaa !5
  store i32 %509, ptr %15, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = call i32 @s2n_print_stacktrace(ptr noundef %510)
  %512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %513 = trunc i8 %512 to i1
  br i1 %513, label %514, label %536

514:                                              ; preds = %507
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @fileno(ptr noundef %515) #9
  %517 = call i32 @isatty(i32 noundef %516) #9
  %518 = icmp ne i32 %517, 0
  br i1 %518, label %519, label %536

519:                                              ; preds = %514
  %520 = load i32, ptr %15, align 4, !tbaa !5
  %521 = call ptr @__errno_location() #10
  store i32 %520, ptr %521, align 4, !tbaa !5
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror(i32 noundef %525, ptr noundef @.str.4)
  %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_debug(i32 noundef %528, ptr noundef @.str.4)
  %530 = call ptr @__errno_location() #10
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call ptr @strerror(i32 noundef %531) #9
  %533 = call ptr @__errno_location() #10
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %522, ptr noundef @.str.2, i32 noundef %523, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 34, ptr noundef %526, ptr noundef %529, ptr noundef %532, i32 noundef %534) #9
  br label %553

536:                                              ; preds = %514, %507
  %537 = load i32, ptr %15, align 4, !tbaa !5
  %538 = call ptr @__errno_location() #10
  store i32 %537, ptr %538, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror(i32 noundef %542, ptr noundef @.str.4)
  %544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @s2n_strerror_debug(i32 noundef %545, ptr noundef @.str.4)
  %547 = call ptr @__errno_location() #10
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call ptr @strerror(i32 noundef %548) #9
  %550 = call ptr @__errno_location() #10
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef @.str.5, i32 noundef %540, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 34, ptr noundef %543, ptr noundef %546, ptr noundef %549, i32 noundef %551) #9
  br label %553

553:                                              ; preds = %536, %519
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %554

554:                                              ; preds = %553
  br label %555

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

556:                                              ; No predecessors!
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557, %499
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = load ptr, ptr %9, align 8, !tbaa !9
  %567 = call i32 @s2n_negotiate(ptr noundef %566, ptr noundef %16)
  %568 = icmp eq i32 %567, -1
  br i1 %568, label %622, label %569

569:                                              ; preds = %563
  br label %570

570:                                              ; preds = %569
  br label %571

571:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %572 = call ptr @__errno_location() #10
  %573 = load i32, ptr %572, align 4, !tbaa !5
  store i32 %573, ptr %17, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = call i32 @s2n_print_stacktrace(ptr noundef %574)
  %576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %577 = trunc i8 %576 to i1
  br i1 %577, label %578, label %600

578:                                              ; preds = %571
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = call i32 @fileno(ptr noundef %579) #9
  %581 = call i32 @isatty(i32 noundef %580) #9
  %582 = icmp ne i32 %581, 0
  br i1 %582, label %583, label %600

583:                                              ; preds = %578
  %584 = load i32, ptr %17, align 4, !tbaa !5
  %585 = call ptr @__errno_location() #10
  store i32 %584, ptr %585, align 4, !tbaa !5
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror(i32 noundef %589, ptr noundef @.str.4)
  %591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = call ptr @s2n_strerror_debug(i32 noundef %592, ptr noundef @.str.4)
  %594 = call ptr @__errno_location() #10
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call ptr @strerror(i32 noundef %595) #9
  %597 = call ptr @__errno_location() #10
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %586, ptr noundef @.str.2, i32 noundef %587, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 38, ptr noundef %590, ptr noundef %593, ptr noundef %596, i32 noundef %598) #9
  br label %617

600:                                              ; preds = %578, %571
  %601 = load i32, ptr %17, align 4, !tbaa !5
  %602 = call ptr @__errno_location() #10
  store i32 %601, ptr %602, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror(i32 noundef %606, ptr noundef @.str.4)
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef @.str.4)
  %611 = call ptr @__errno_location() #10
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @strerror(i32 noundef %612) #9
  %614 = call ptr @__errno_location() #10
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef @.str.5, i32 noundef %604, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 38, ptr noundef %607, ptr noundef %610, ptr noundef %613, i32 noundef %615) #9
  br label %617

617:                                              ; preds = %600, %583
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %618

618:                                              ; preds = %617
  br label %619

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

620:                                              ; No predecessors!
  br label %621

621:                                              ; preds = %620
  br label %622

622:                                              ; preds = %621, %563
  br label %623

623:                                              ; preds = %622
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr @test_count, align 4, !tbaa !5
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = icmp eq i32 %629, 201326592
  br i1 %630, label %684, label %631

631:                                              ; preds = %625
  br label %632

632:                                              ; preds = %631
  br label %633

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

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

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

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

679:                                              ; preds = %662, %645
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %680

680:                                              ; preds = %679
  br label %681

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

682:                                              ; No predecessors!
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683, %625
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr @test_count, align 4, !tbaa !5
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef @.str.4)
  %693 = icmp eq ptr %692, null
  br i1 %693, label %694, label %747

694:                                              ; preds = %687
  br label %695

695:                                              ; preds = %694
  br label %696

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

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

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

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

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

743:                                              ; preds = %742
  br label %744

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

745:                                              ; No predecessors!
  br label %746

746:                                              ; preds = %745
  br label %747

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

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %753, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %754 = call ptr @__errno_location() #10
  store i32 0, ptr %754, align 4, !tbaa !5
  br label %755

755:                                              ; preds = %752
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr @test_count, align 4, !tbaa !5
  %762 = load ptr, ptr %9, align 8, !tbaa !9
  %763 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %762, i32 noundef 2)
  br i1 %763, label %817, label %764

764:                                              ; preds = %759
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %767 = call ptr @__errno_location() #10
  %768 = load i32, ptr %767, align 4, !tbaa !5
  store i32 %768, ptr %20, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769)
  %771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc i8 %771 to i1
  br i1 %772, label %773, label %795

773:                                              ; preds = %766
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #9
  %776 = call i32 @isatty(i32 noundef %775) #9
  %777 = icmp ne i32 %776, 0
  br i1 %777, label %778, label %795

778:                                              ; preds = %773
  %779 = load i32, ptr %20, align 4, !tbaa !5
  %780 = call ptr @__errno_location() #10
  store i32 %779, ptr %780, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror(i32 noundef %784, ptr noundef @.str.4)
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef @.str.4)
  %789 = call ptr @__errno_location() #10
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #9
  %792 = call ptr @__errno_location() #10
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef @.str.2, i32 noundef %782, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 41, ptr noundef %785, ptr noundef %788, ptr noundef %791, i32 noundef %793) #9
  br label %812

795:                                              ; preds = %773, %766
  %796 = load i32, ptr %20, align 4, !tbaa !5
  %797 = call ptr @__errno_location() #10
  store i32 %796, ptr %797, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef @.str.4)
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef @.str.4)
  %806 = call ptr @__errno_location() #10
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #9
  %809 = call ptr @__errno_location() #10
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef @.str.5, i32 noundef %799, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 41, ptr noundef %802, ptr noundef %805, ptr noundef %808, i32 noundef %810) #9
  br label %812

812:                                              ; preds = %795, %778
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %813

813:                                              ; preds = %812
  br label %814

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

815:                                              ; No predecessors!
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816, %759
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = load ptr, ptr %9, align 8, !tbaa !9
  %824 = call i64 @s2n_connection_get_delay(ptr noundef %823)
  %825 = icmp eq i64 %824, 0
  br i1 %825, label %879, label %826

826:                                              ; preds = %820
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %829 = call ptr @__errno_location() #10
  %830 = load i32, ptr %829, align 4, !tbaa !5
  store i32 %830, ptr %21, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = call i32 @s2n_print_stacktrace(ptr noundef %831)
  %833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %834 = trunc i8 %833 to i1
  br i1 %834, label %835, label %857

835:                                              ; preds = %828
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @fileno(ptr noundef %836) #9
  %838 = call i32 @isatty(i32 noundef %837) #9
  %839 = icmp ne i32 %838, 0
  br i1 %839, label %840, label %857

840:                                              ; preds = %835
  %841 = load i32, ptr %21, align 4, !tbaa !5
  %842 = call ptr @__errno_location() #10
  store i32 %841, ptr %842, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror(i32 noundef %846, ptr noundef @.str.4)
  %848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror_debug(i32 noundef %849, ptr noundef @.str.4)
  %851 = call ptr @__errno_location() #10
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @strerror(i32 noundef %852) #9
  %854 = call ptr @__errno_location() #10
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %843, ptr noundef @.str.2, i32 noundef %844, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 44, ptr noundef %847, ptr noundef %850, ptr noundef %853, i32 noundef %855) #9
  br label %874

857:                                              ; preds = %835, %828
  %858 = load i32, ptr %21, align 4, !tbaa !5
  %859 = call ptr @__errno_location() #10
  store i32 %858, ptr %859, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror(i32 noundef %863, ptr noundef @.str.4)
  %865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef @.str.4)
  %868 = call ptr @__errno_location() #10
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @strerror(i32 noundef %869) #9
  %871 = call ptr @__errno_location() #10
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %860, ptr noundef @.str.5, i32 noundef %861, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 44, ptr noundef %864, ptr noundef %867, ptr noundef %870, i32 noundef %872) #9
  br label %874

874:                                              ; preds = %857, %840
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %875

875:                                              ; preds = %874
  br label %876

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

877:                                              ; No predecessors!
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878, %820
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = add nsw i32 %883, 1
  store i32 %884, ptr @test_count, align 4, !tbaa !5
  %885 = load ptr, ptr %9, align 8, !tbaa !9
  %886 = call i32 @s2n_connection_free(ptr noundef %885)
  %887 = icmp eq i32 %886, -1
  br i1 %887, label %888, label %941

888:                                              ; preds = %882
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %891 = call ptr @__errno_location() #10
  %892 = load i32, ptr %891, align 4, !tbaa !5
  store i32 %892, ptr %22, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @s2n_print_stacktrace(ptr noundef %893)
  %895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %896 = trunc i8 %895 to i1
  br i1 %896, label %897, label %919

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

902:                                              ; preds = %897
  %903 = load i32, ptr %22, align 4, !tbaa !5
  %904 = call ptr @__errno_location() #10
  store i32 %903, ptr %904, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef @.str.4)
  %910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror_debug(i32 noundef %911, ptr noundef @.str.4)
  %913 = call ptr @__errno_location() #10
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #9
  %916 = call ptr @__errno_location() #10
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef @.str.2, i32 noundef %906, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 46, ptr noundef %909, ptr noundef %912, ptr noundef %915, i32 noundef %917) #9
  br label %936

919:                                              ; preds = %897, %890
  %920 = load i32, ptr %22, align 4, !tbaa !5
  %921 = call ptr @__errno_location() #10
  store i32 %920, ptr %921, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef @.str.4)
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef @.str.4)
  %930 = call ptr @__errno_location() #10
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #9
  %933 = call ptr @__errno_location() #10
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str.5, i32 noundef %923, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 46, ptr noundef %926, ptr noundef %929, ptr noundef %932, i32 noundef %934) #9
  br label %936

936:                                              ; preds = %919, %902
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %937

937:                                              ; preds = %936
  br label %938

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

939:                                              ; No predecessors!
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940, %882
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  %944 = call i32 @s2n_stuffer_free(ptr noundef %13)
  call void @llvm.lifetime.end.p0(i64 40, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  store i32 0, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %945 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %945, ptr %24, align 8, !tbaa !9
  br label %946

946:                                              ; preds = %943
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr @test_count, align 4, !tbaa !5
  %949 = load ptr, ptr %24, align 8, !tbaa !9
  %950 = icmp eq ptr %949, null
  br i1 %950, label %951, label %1004

951:                                              ; preds = %946
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %954 = call ptr @__errno_location() #10
  %955 = load i32, ptr %954, align 4, !tbaa !5
  store i32 %955, ptr %25, align 4, !tbaa !5
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @s2n_print_stacktrace(ptr noundef %956)
  %958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %959 = trunc i8 %958 to i1
  br i1 %959, label %960, label %982

960:                                              ; preds = %953
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @fileno(ptr noundef %961) #9
  %963 = call i32 @isatty(i32 noundef %962) #9
  %964 = icmp ne i32 %963, 0
  br i1 %964, label %965, label %982

965:                                              ; preds = %960
  %966 = load i32, ptr %25, align 4, !tbaa !5
  %967 = call ptr @__errno_location() #10
  store i32 %966, ptr %967, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef @.str.4)
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef @.str.4)
  %976 = call ptr @__errno_location() #10
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @strerror(i32 noundef %977) #9
  %979 = call ptr @__errno_location() #10
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef @.str.2, i32 noundef %969, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 54, ptr noundef %972, ptr noundef %975, ptr noundef %978, i32 noundef %980) #9
  br label %999

982:                                              ; preds = %960, %953
  %983 = load i32, ptr %25, align 4, !tbaa !5
  %984 = call ptr @__errno_location() #10
  store i32 %983, ptr %984, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror(i32 noundef %988, ptr noundef @.str.4)
  %990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror_debug(i32 noundef %991, ptr noundef @.str.4)
  %993 = call ptr @__errno_location() #10
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call ptr @strerror(i32 noundef %994) #9
  %996 = call ptr @__errno_location() #10
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef @.str.5, i32 noundef %986, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 54, ptr noundef %989, ptr noundef %992, ptr noundef %995, i32 noundef %997) #9
  br label %999

999:                                              ; preds = %982, %965
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1000

1000:                                             ; preds = %999
  br label %1001

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

1002:                                             ; No predecessors!
  br label %1003

1003:                                             ; preds = %1002
  br label %1004

1004:                                             ; preds = %1003, %946
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

1007:                                             ; preds = %1006
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr @test_count, align 4, !tbaa !5
  %1010 = load ptr, ptr %24, align 8, !tbaa !9
  %1011 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1010, ptr noundef @.str.10)
  %1012 = icmp eq i32 %1011, -1
  br i1 %1012, label %1013, label %1066

1013:                                             ; preds = %1007
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %1016 = call ptr @__errno_location() #10
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  store i32 %1017, ptr %26, 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 %26, 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.4)
  %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.4)
  %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.2, i32 noundef %1031, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 55, ptr noundef %1034, ptr noundef %1037, ptr noundef %1040, i32 noundef %1042) #9
  br label %1061

1044:                                             ; preds = %1022, %1015
  %1045 = load i32, ptr %26, 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.4)
  %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.4)
  %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.5, i32 noundef %1048, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 55, 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 %26) #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, %1007
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %1069 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1069, ptr %27, align 8, !tbaa !9
  br label %1070

1070:                                             ; preds = %1068
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = load ptr, ptr %27, align 8, !tbaa !9
  %1074 = icmp eq ptr %1073, null
  br i1 %1074, label %1075, label %1128

1075:                                             ; preds = %1070
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

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

1084:                                             ; preds = %1077
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @fileno(ptr noundef %1085) #9
  %1087 = call i32 @isatty(i32 noundef %1086) #9
  %1088 = icmp ne i32 %1087, 0
  br i1 %1088, label %1089, label %1106

1089:                                             ; preds = %1084
  %1090 = load i32, ptr %28, align 4, !tbaa !5
  %1091 = call ptr @__errno_location() #10
  store i32 %1090, ptr %1091, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror(i32 noundef %1095, ptr noundef @.str.4)
  %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_debug(i32 noundef %1098, ptr noundef @.str.4)
  %1100 = call ptr @__errno_location() #10
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #9
  %1103 = call ptr @__errno_location() #10
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef @.str.2, i32 noundef %1093, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1096, ptr noundef %1099, ptr noundef %1102, i32 noundef %1104) #9
  br label %1123

1106:                                             ; preds = %1084, %1077
  %1107 = load i32, ptr %28, align 4, !tbaa !5
  %1108 = call ptr @__errno_location() #10
  store i32 %1107, ptr %1108, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef @.str.4)
  %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_debug(i32 noundef %1115, ptr noundef @.str.4)
  %1117 = call ptr @__errno_location() #10
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  %1119 = call ptr @strerror(i32 noundef %1118) #9
  %1120 = call ptr @__errno_location() #10
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1109, ptr noundef @.str.5, i32 noundef %1110, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1113, ptr noundef %1116, ptr noundef %1119, i32 noundef %1121) #9
  br label %1123

1123:                                             ; preds = %1106, %1089
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

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

1126:                                             ; No predecessors!
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127, %1070
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129
  br label %1131

1131:                                             ; preds = %1130
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr @test_count, align 4, !tbaa !5
  %1134 = load ptr, ptr %27, align 8, !tbaa !9
  %1135 = call i32 @s2n_connection_set_blinding(ptr noundef %1134, i32 noundef 1)
  %1136 = icmp eq i32 %1135, -1
  br i1 %1136, label %1137, label %1190

1137:                                             ; preds = %1131
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

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

1146:                                             ; preds = %1139
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #9
  %1149 = call i32 @isatty(i32 noundef %1148) #9
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1168

1151:                                             ; preds = %1146
  %1152 = load i32, ptr %29, align 4, !tbaa !5
  %1153 = call ptr @__errno_location() #10
  store i32 %1152, ptr %1153, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef @.str.4)
  %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_debug(i32 noundef %1160, ptr noundef @.str.4)
  %1162 = call ptr @__errno_location() #10
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #9
  %1165 = call ptr @__errno_location() #10
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef @.str.2, i32 noundef %1155, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1158, ptr noundef %1161, ptr noundef %1164, i32 noundef %1166) #9
  br label %1185

1168:                                             ; preds = %1146, %1139
  %1169 = load i32, ptr %29, align 4, !tbaa !5
  %1170 = call ptr @__errno_location() #10
  store i32 %1169, ptr %1170, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef @.str.4)
  %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_debug(i32 noundef %1177, ptr noundef @.str.4)
  %1179 = call ptr @__errno_location() #10
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @strerror(i32 noundef %1180) #9
  %1182 = call ptr @__errno_location() #10
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef @.str.5, i32 noundef %1172, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1175, ptr noundef %1178, ptr noundef %1181, i32 noundef %1183) #9
  br label %1185

1185:                                             ; preds = %1168, %1151
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

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

1188:                                             ; No predecessors!
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

1190:                                             ; preds = %1189, %1131
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = add nsw i32 %1194, 1
  store i32 %1195, ptr @test_count, align 4, !tbaa !5
  %1196 = load ptr, ptr %27, align 8, !tbaa !9
  %1197 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1196, ptr noundef @.str.10)
  %1198 = icmp eq i32 %1197, -1
  br i1 %1198, label %1199, label %1252

1199:                                             ; preds = %1193
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

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

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

1213:                                             ; preds = %1208
  %1214 = load i32, ptr %30, align 4, !tbaa !5
  %1215 = call ptr @__errno_location() #10
  store i32 %1214, ptr %1215, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror(i32 noundef %1219, ptr noundef @.str.4)
  %1221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef @.str.4)
  %1224 = call ptr @__errno_location() #10
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call ptr @strerror(i32 noundef %1225) #9
  %1227 = call ptr @__errno_location() #10
  %1228 = load i32, ptr %1227, align 4, !tbaa !5
  %1229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1216, ptr noundef @.str.2, i32 noundef %1217, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1220, ptr noundef %1223, ptr noundef %1226, i32 noundef %1228) #9
  br label %1247

1230:                                             ; preds = %1208, %1201
  %1231 = load i32, ptr %30, align 4, !tbaa !5
  %1232 = call ptr @__errno_location() #10
  store i32 %1231, ptr %1232, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror_debug(i32 noundef %1239, ptr noundef @.str.4)
  %1241 = call ptr @__errno_location() #10
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call ptr @strerror(i32 noundef %1242) #9
  %1244 = call ptr @__errno_location() #10
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef @.str.5, i32 noundef %1234, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1237, ptr noundef %1240, ptr noundef %1243, i32 noundef %1245) #9
  br label %1247

1247:                                             ; preds = %1230, %1213
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

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

1250:                                             ; No predecessors!
  br label %1251

1251:                                             ; preds = %1250
  br label %1252

1252:                                             ; preds = %1251, %1193
  br label %1253

1253:                                             ; preds = %1252
  br label %1254

1254:                                             ; preds = %1253
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #9
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 40, i1 false)
  br label %1255

1255:                                             ; preds = %1254
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = add nsw i32 %1256, 1
  store i32 %1257, ptr @test_count, align 4, !tbaa !5
  %1258 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %31, i32 noundef 0)
  %1259 = icmp eq i32 %1258, -1
  br i1 %1259, label %1260, label %1313

1260:                                             ; preds = %1255
  br label %1261

1261:                                             ; preds = %1260
  br label %1262

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

1269:                                             ; preds = %1262
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @fileno(ptr noundef %1270) #9
  %1272 = call i32 @isatty(i32 noundef %1271) #9
  %1273 = icmp ne i32 %1272, 0
  br i1 %1273, label %1274, label %1291

1274:                                             ; preds = %1269
  %1275 = load i32, ptr %32, align 4, !tbaa !5
  %1276 = call ptr @__errno_location() #10
  store i32 %1275, ptr %1276, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef @.str.4)
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef @.str.4)
  %1285 = call ptr @__errno_location() #10
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @strerror(i32 noundef %1286) #9
  %1288 = call ptr @__errno_location() #10
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1277, ptr noundef @.str.2, i32 noundef %1278, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1281, ptr noundef %1284, ptr noundef %1287, i32 noundef %1289) #9
  br label %1308

1291:                                             ; preds = %1269, %1262
  %1292 = load i32, ptr %32, align 4, !tbaa !5
  %1293 = call ptr @__errno_location() #10
  store i32 %1292, ptr %1293, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef @.str.4)
  %1299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror_debug(i32 noundef %1300, ptr noundef @.str.4)
  %1302 = call ptr @__errno_location() #10
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @strerror(i32 noundef %1303) #9
  %1305 = call ptr @__errno_location() #10
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1294, ptr noundef @.str.5, i32 noundef %1295, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1298, ptr noundef %1301, ptr noundef %1304, i32 noundef %1306) #9
  br label %1308

1308:                                             ; preds = %1291, %1274
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

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

1311:                                             ; No predecessors!
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312, %1255
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

1316:                                             ; preds = %1315
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = add nsw i32 %1317, 1
  store i32 %1318, ptr @test_count, align 4, !tbaa !5
  %1319 = load ptr, ptr %24, align 8, !tbaa !9
  %1320 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %31, ptr noundef %31, ptr noundef %1319)
  %1321 = icmp eq i32 %1320, -1
  br i1 %1321, label %1322, label %1375

1322:                                             ; preds = %1316
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

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

1331:                                             ; preds = %1324
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = call i32 @fileno(ptr noundef %1332) #9
  %1334 = call i32 @isatty(i32 noundef %1333) #9
  %1335 = icmp ne i32 %1334, 0
  br i1 %1335, label %1336, label %1353

1336:                                             ; preds = %1331
  %1337 = load i32, ptr %33, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #10
  store i32 %1337, ptr %1338, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef @.str.4)
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef @.str.4)
  %1347 = call ptr @__errno_location() #10
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #9
  %1350 = call ptr @__errno_location() #10
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.2, i32 noundef %1340, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #9
  br label %1370

1353:                                             ; preds = %1331, %1324
  %1354 = load i32, ptr %33, align 4, !tbaa !5
  %1355 = call ptr @__errno_location() #10
  store i32 %1354, ptr %1355, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror_debug(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call ptr @__errno_location() #10
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #9
  %1367 = call ptr @__errno_location() #10
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef @.str.5, i32 noundef %1357, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, i32 noundef %1368) #9
  br label %1370

1370:                                             ; preds = %1353, %1336
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; No predecessors!
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374, %1316
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load ptr, ptr %27, align 8, !tbaa !9
  %1382 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %31, ptr noundef %31, ptr noundef %1381)
  %1383 = icmp eq i32 %1382, -1
  br i1 %1383, label %1384, label %1437

1384:                                             ; preds = %1378
  br label %1385

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1387 = call ptr @__errno_location() #10
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  store i32 %1388, ptr %34, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @s2n_print_stacktrace(ptr noundef %1389)
  %1391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1392 = trunc i8 %1391 to i1
  br i1 %1392, label %1393, label %1415

1393:                                             ; preds = %1386
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @fileno(ptr noundef %1394) #9
  %1396 = call i32 @isatty(i32 noundef %1395) #9
  %1397 = icmp ne i32 %1396, 0
  br i1 %1397, label %1398, label %1415

1398:                                             ; preds = %1393
  %1399 = load i32, ptr %34, align 4, !tbaa !5
  %1400 = call ptr @__errno_location() #10
  store i32 %1399, ptr %1400, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef @.str.4)
  %1409 = call ptr @__errno_location() #10
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #9
  %1412 = call ptr @__errno_location() #10
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef @.str.2, i32 noundef %1402, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1405, ptr noundef %1408, ptr noundef %1411, i32 noundef %1413) #9
  br label %1432

1415:                                             ; preds = %1393, %1386
  %1416 = load i32, ptr %34, align 4, !tbaa !5
  %1417 = call ptr @__errno_location() #10
  store i32 %1416, ptr %1417, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call ptr @__errno_location() #10
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #9
  %1429 = call ptr @__errno_location() #10
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.5, i32 noundef %1419, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #9
  br label %1432

1432:                                             ; preds = %1415, %1398
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

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

1435:                                             ; No predecessors!
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436, %1378
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = add nsw i32 %1441, 1
  store i32 %1442, ptr @test_count, align 4, !tbaa !5
  %1443 = load ptr, ptr %24, align 8, !tbaa !9
  %1444 = call i32 @s2n_negotiate_until_message(ptr noundef %1443, ptr noundef %23, i32 noundef 1)
  %1445 = getelementptr inbounds %struct.s2n_result, ptr %35, i32 0, i32 0
  store i32 %1444, ptr %1445, align 4
  %1446 = getelementptr inbounds %struct.s2n_result, ptr %35, i32 0, i32 0
  %1447 = load i32, ptr %1446, align 4
  %1448 = call zeroext i1 @s2n_result_is_ok(i32 %1447)
  br i1 %1448, label %1502, label %1449

1449:                                             ; preds = %1440
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

1451:                                             ; preds = %1450
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1452 = call ptr @__errno_location() #10
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  store i32 %1453, ptr %36, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @s2n_print_stacktrace(ptr noundef %1454)
  %1456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1457 = trunc i8 %1456 to i1
  br i1 %1457, label %1458, label %1480

1458:                                             ; preds = %1451
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = call i32 @fileno(ptr noundef %1459) #9
  %1461 = call i32 @isatty(i32 noundef %1460) #9
  %1462 = icmp ne i32 %1461, 0
  br i1 %1462, label %1463, label %1480

1463:                                             ; preds = %1458
  %1464 = load i32, ptr %36, align 4, !tbaa !5
  %1465 = call ptr @__errno_location() #10
  store i32 %1464, ptr %1465, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror(i32 noundef %1469, ptr noundef @.str.4)
  %1471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call ptr @s2n_strerror_debug(i32 noundef %1472, ptr noundef @.str.4)
  %1474 = call ptr @__errno_location() #10
  %1475 = load i32, ptr %1474, align 4, !tbaa !5
  %1476 = call ptr @strerror(i32 noundef %1475) #9
  %1477 = call ptr @__errno_location() #10
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  %1479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1466, ptr noundef @.str.2, i32 noundef %1467, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1470, ptr noundef %1473, ptr noundef %1476, i32 noundef %1478) #9
  br label %1497

1480:                                             ; preds = %1458, %1451
  %1481 = load i32, ptr %36, align 4, !tbaa !5
  %1482 = call ptr @__errno_location() #10
  store i32 %1481, ptr %1482, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef @.str.4)
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror_debug(i32 noundef %1489, ptr noundef @.str.4)
  %1491 = call ptr @__errno_location() #10
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #9
  %1494 = call ptr @__errno_location() #10
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef @.str.5, i32 noundef %1484, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1487, ptr noundef %1490, ptr noundef %1493, i32 noundef %1495) #9
  br label %1497

1497:                                             ; preds = %1480, %1463
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

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

1500:                                             ; No predecessors!
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501, %1440
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1505 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 2
  %1506 = load i32, ptr %1505, align 4, !tbaa !15
  %1507 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 1
  %1508 = load i32, ptr %1507, align 8, !tbaa !18
  %1509 = sub i32 %1506, %1508
  %1510 = sub i32 %1509, 5
  %1511 = sub i32 %1510, 4
  store i32 %1511, ptr %37, align 4, !tbaa !5
  br label %1512

1512:                                             ; preds = %1504
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = add nsw i32 %1513, 1
  store i32 %1514, ptr @test_count, align 4, !tbaa !5
  %1515 = load i32, ptr %37, align 4, !tbaa !5
  %1516 = call i32 @s2n_stuffer_wipe_n(ptr noundef %31, i32 noundef %1515)
  %1517 = icmp eq i32 %1516, -1
  br i1 %1517, label %1518, label %1571

1518:                                             ; preds = %1512
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

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

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

1532:                                             ; preds = %1527
  %1533 = load i32, ptr %38, align 4, !tbaa !5
  %1534 = call ptr @__errno_location() #10
  store i32 %1533, ptr %1534, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror(i32 noundef %1538, ptr noundef @.str.4)
  %1540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror_debug(i32 noundef %1541, ptr noundef @.str.4)
  %1543 = call ptr @__errno_location() #10
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @strerror(i32 noundef %1544) #9
  %1546 = call ptr @__errno_location() #10
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1535, ptr noundef @.str.2, i32 noundef %1536, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1539, ptr noundef %1542, ptr noundef %1545, i32 noundef %1547) #9
  br label %1566

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

1566:                                             ; preds = %1549, %1532
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

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

1569:                                             ; No predecessors!
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570, %1512
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = add nsw i32 %1575, 1
  store i32 %1576, ptr @test_count, align 4, !tbaa !5
  %1577 = load i32, ptr %37, align 4, !tbaa !5
  %1578 = call i32 @s2n_stuffer_skip_write(ptr noundef %31, i32 noundef %1577)
  %1579 = icmp eq i32 %1578, -1
  br i1 %1579, label %1580, label %1633

1580:                                             ; preds = %1574
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1583 = call ptr @__errno_location() #10
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  store i32 %1584, ptr %39, align 4, !tbaa !5
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @s2n_print_stacktrace(ptr noundef %1585)
  %1587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1588 = trunc i8 %1587 to i1
  br i1 %1588, label %1589, label %1611

1589:                                             ; preds = %1582
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = call i32 @fileno(ptr noundef %1590) #9
  %1592 = call i32 @isatty(i32 noundef %1591) #9
  %1593 = icmp ne i32 %1592, 0
  br i1 %1593, label %1594, label %1611

1594:                                             ; preds = %1589
  %1595 = load i32, ptr %39, align 4, !tbaa !5
  %1596 = call ptr @__errno_location() #10
  store i32 %1595, ptr %1596, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef @.str.4)
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror_debug(i32 noundef %1603, ptr noundef @.str.4)
  %1605 = call ptr @__errno_location() #10
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @strerror(i32 noundef %1606) #9
  %1608 = call ptr @__errno_location() #10
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef @.str.2, i32 noundef %1598, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1601, ptr noundef %1604, ptr noundef %1607, i32 noundef %1609) #9
  br label %1628

1611:                                             ; preds = %1589, %1582
  %1612 = load i32, ptr %39, align 4, !tbaa !5
  %1613 = call ptr @__errno_location() #10
  store i32 %1612, ptr %1613, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror(i32 noundef %1617, ptr noundef @.str.4)
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef @.str.4)
  %1622 = call ptr @__errno_location() #10
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @strerror(i32 noundef %1623) #9
  %1625 = call ptr @__errno_location() #10
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef @.str.5, i32 noundef %1615, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1618, ptr noundef %1621, ptr noundef %1624, i32 noundef %1626) #9
  br label %1628

1628:                                             ; preds = %1611, %1594
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

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

1631:                                             ; No predecessors!
  br label %1632

1632:                                             ; preds = %1631
  br label %1633

1633:                                             ; preds = %1632, %1574
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr @test_count, align 4, !tbaa !5
  %1641 = load ptr, ptr %27, align 8, !tbaa !9
  %1642 = call i32 @s2n_negotiate_until_message(ptr noundef %1641, ptr noundef %23, i32 noundef 1)
  %1643 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1642, ptr %1643, align 4
  %1644 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1645 = load i32, ptr %1644, align 4
  %1646 = call zeroext i1 @s2n_result_is_error(i32 %1645)
  br i1 %1646, label %1700, label %1647

1647:                                             ; preds = %1638
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1650 = call ptr @__errno_location() #10
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  store i32 %1651, ptr %41, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = call i32 @s2n_print_stacktrace(ptr noundef %1652)
  %1654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1655 = trunc i8 %1654 to i1
  br i1 %1655, label %1656, label %1678

1656:                                             ; preds = %1649
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @fileno(ptr noundef %1657) #9
  %1659 = call i32 @isatty(i32 noundef %1658) #9
  %1660 = icmp ne i32 %1659, 0
  br i1 %1660, label %1661, label %1678

1661:                                             ; preds = %1656
  %1662 = load i32, ptr %41, align 4, !tbaa !5
  %1663 = call ptr @__errno_location() #10
  store i32 %1662, ptr %1663, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror(i32 noundef %1667, ptr noundef @.str.4)
  %1669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror_debug(i32 noundef %1670, ptr noundef @.str.4)
  %1672 = call ptr @__errno_location() #10
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #9
  %1675 = call ptr @__errno_location() #10
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef @.str.2, i32 noundef %1665, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1668, ptr noundef %1671, ptr noundef %1674, i32 noundef %1676) #9
  br label %1695

1678:                                             ; preds = %1656, %1649
  %1679 = load i32, ptr %41, align 4, !tbaa !5
  %1680 = call ptr @__errno_location() #10
  store i32 %1679, ptr %1680, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = load i32, ptr @test_count, align 4, !tbaa !5
  %1683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror(i32 noundef %1684, ptr noundef @.str.4)
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef @.str.4)
  %1689 = call ptr @__errno_location() #10
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @strerror(i32 noundef %1690) #9
  %1692 = call ptr @__errno_location() #10
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1681, ptr noundef @.str.5, i32 noundef %1682, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1685, ptr noundef %1688, ptr noundef %1691, i32 noundef %1693) #9
  br label %1695

1695:                                             ; preds = %1678, %1661
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

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

1698:                                             ; No predecessors!
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699, %1638
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

1702:                                             ; preds = %1701
  br label %1703

1703:                                             ; preds = %1702
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = add nsw i32 %1704, 1
  store i32 %1705, ptr @test_count, align 4, !tbaa !5
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = icmp eq i32 %1707, 335544322
  br i1 %1708, label %1762, label %1709

1709:                                             ; preds = %1703
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

1711:                                             ; preds = %1710
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1712 = call ptr @__errno_location() #10
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  store i32 %1713, ptr %42, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @s2n_print_stacktrace(ptr noundef %1714)
  %1716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1717 = trunc i8 %1716 to i1
  br i1 %1717, label %1718, label %1740

1718:                                             ; preds = %1711
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @fileno(ptr noundef %1719) #9
  %1721 = call i32 @isatty(i32 noundef %1720) #9
  %1722 = icmp ne i32 %1721, 0
  br i1 %1722, label %1723, label %1740

1723:                                             ; preds = %1718
  %1724 = load i32, ptr %42, align 4, !tbaa !5
  %1725 = call ptr @__errno_location() #10
  store i32 %1724, ptr %1725, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = load i32, ptr @test_count, align 4, !tbaa !5
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror(i32 noundef %1729, ptr noundef @.str.4)
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef @.str.4)
  %1734 = call ptr @__errno_location() #10
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @strerror(i32 noundef %1735) #9
  %1737 = call ptr @__errno_location() #10
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1726, ptr noundef @.str.2, i32 noundef %1727, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1730, ptr noundef %1733, ptr noundef %1736, i32 noundef %1738) #9
  br label %1757

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

1757:                                             ; preds = %1740, %1723
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

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

1760:                                             ; No predecessors!
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761, %1703
  br label %1763

1763:                                             ; preds = %1762
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr @test_count, align 4, !tbaa !5
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror_debug(i32 noundef %1769, ptr noundef @.str.4)
  %1771 = icmp eq ptr %1770, null
  br i1 %1771, label %1772, label %1825

1772:                                             ; preds = %1765
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1775 = call ptr @__errno_location() #10
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  store i32 %1776, ptr %43, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777)
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc i8 %1779 to i1
  br i1 %1780, label %1781, label %1803

1781:                                             ; preds = %1774
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #9
  %1784 = call i32 @isatty(i32 noundef %1783) #9
  %1785 = icmp ne i32 %1784, 0
  br i1 %1785, label %1786, label %1803

1786:                                             ; preds = %1781
  %1787 = load i32, ptr %43, align 4, !tbaa !5
  %1788 = call ptr @__errno_location() #10
  store i32 %1787, ptr %1788, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef @.str.4)
  %1797 = call ptr @__errno_location() #10
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @strerror(i32 noundef %1798) #9
  %1800 = call ptr @__errno_location() #10
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef @.str.2, i32 noundef %1790, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1793, ptr noundef %1796, ptr noundef %1799, i32 noundef %1801) #9
  br label %1820

1803:                                             ; preds = %1781, %1774
  %1804 = load i32, ptr %43, align 4, !tbaa !5
  %1805 = call ptr @__errno_location() #10
  store i32 %1804, ptr %1805, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror_debug(i32 noundef %1812, ptr noundef @.str.4)
  %1814 = call ptr @__errno_location() #10
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #9
  %1817 = call ptr @__errno_location() #10
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef @.str.5, i32 noundef %1807, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1810, ptr noundef %1813, ptr noundef %1816, i32 noundef %1818) #9
  br label %1820

1820:                                             ; preds = %1803, %1786
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

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

1823:                                             ; No predecessors!
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824, %1765
  br label %1826

1826:                                             ; preds = %1825
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827
  br label %1829

1829:                                             ; preds = %1828
  br label %1830

1830:                                             ; preds = %1829
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1831, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1832 = call ptr @__errno_location() #10
  store i32 0, ptr %1832, align 4, !tbaa !5
  br label %1833

1833:                                             ; preds = %1830
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = add nsw i32 %1838, 1
  store i32 %1839, ptr @test_count, align 4, !tbaa !5
  %1840 = load ptr, ptr %27, align 8, !tbaa !9
  %1841 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %1840, i32 noundef 3)
  br i1 %1841, label %1895, label %1842

1842:                                             ; preds = %1837
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

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

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

1856:                                             ; preds = %1851
  %1857 = load i32, ptr %44, align 4, !tbaa !5
  %1858 = call ptr @__errno_location() #10
  store i32 %1857, ptr %1858, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1862 = load i32, ptr %1861, align 4, !tbaa !5
  %1863 = call ptr @s2n_strerror(i32 noundef %1862, ptr noundef @.str.4)
  %1864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1865 = load i32, ptr %1864, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror_debug(i32 noundef %1865, ptr noundef @.str.4)
  %1867 = call ptr @__errno_location() #10
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  %1869 = call ptr @strerror(i32 noundef %1868) #9
  %1870 = call ptr @__errno_location() #10
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1859, ptr noundef @.str.2, i32 noundef %1860, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1863, ptr noundef %1866, ptr noundef %1869, i32 noundef %1871) #9
  br label %1890

1873:                                             ; preds = %1851, %1844
  %1874 = load i32, ptr %44, align 4, !tbaa !5
  %1875 = call ptr @__errno_location() #10
  store i32 %1874, ptr %1875, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror(i32 noundef %1879, ptr noundef @.str.4)
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call ptr @__errno_location() #10
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #9
  %1887 = call ptr @__errno_location() #10
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef @.str.5, i32 noundef %1877, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1880, ptr noundef %1883, ptr noundef %1886, i32 noundef %1888) #9
  br label %1890

1890:                                             ; preds = %1873, %1856
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

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

1893:                                             ; No predecessors!
  br label %1894

1894:                                             ; preds = %1893
  br label %1895

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

1896:                                             ; preds = %1895
  br label %1897

1897:                                             ; preds = %1896
  br label %1898

1898:                                             ; preds = %1897
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = add nsw i32 %1899, 1
  store i32 %1900, ptr @test_count, align 4, !tbaa !5
  %1901 = load ptr, ptr %27, align 8, !tbaa !9
  %1902 = call i64 @s2n_connection_get_delay(ptr noundef %1901)
  %1903 = icmp eq i64 %1902, 0
  br i1 %1903, label %1904, label %1957

1904:                                             ; preds = %1898
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

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

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

1918:                                             ; preds = %1913
  %1919 = load i32, ptr %45, align 4, !tbaa !5
  %1920 = call ptr @__errno_location() #10
  store i32 %1919, ptr %1920, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror(i32 noundef %1924, ptr noundef @.str.4)
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call ptr @__errno_location() #10
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @strerror(i32 noundef %1930) #9
  %1932 = call ptr @__errno_location() #10
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1921, ptr noundef @.str.2, i32 noundef %1922, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1925, ptr noundef %1928, ptr noundef %1931, i32 noundef %1933) #9
  br label %1952

1935:                                             ; preds = %1913, %1906
  %1936 = load i32, ptr %45, align 4, !tbaa !5
  %1937 = call ptr @__errno_location() #10
  store i32 %1936, ptr %1937, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call ptr @__errno_location() #10
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #9
  %1949 = call ptr @__errno_location() #10
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef @.str.5, i32 noundef %1939, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1942, ptr noundef %1945, ptr noundef %1948, i32 noundef %1950) #9
  br label %1952

1952:                                             ; preds = %1935, %1918
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

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

1955:                                             ; No predecessors!
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956, %1898
  br label %1958

1958:                                             ; preds = %1957
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = add nsw i32 %1961, 1
  store i32 %1962, ptr @test_count, align 4, !tbaa !5
  %1963 = load ptr, ptr %24, align 8, !tbaa !9
  %1964 = call i32 @s2n_connection_free(ptr noundef %1963)
  %1965 = icmp eq i32 %1964, -1
  br i1 %1965, label %1966, label %2019

1966:                                             ; preds = %1960
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

1968:                                             ; preds = %1967
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %1969 = call ptr @__errno_location() #10
  %1970 = load i32, ptr %1969, align 4, !tbaa !5
  store i32 %1970, ptr %46, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = call i32 @s2n_print_stacktrace(ptr noundef %1971)
  %1973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1974 = trunc i8 %1973 to i1
  br i1 %1974, label %1975, label %1997

1975:                                             ; preds = %1968
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @fileno(ptr noundef %1976) #9
  %1978 = call i32 @isatty(i32 noundef %1977) #9
  %1979 = icmp ne i32 %1978, 0
  br i1 %1979, label %1980, label %1997

1980:                                             ; preds = %1975
  %1981 = load i32, ptr %46, align 4, !tbaa !5
  %1982 = call ptr @__errno_location() #10
  store i32 %1981, ptr %1982, align 4, !tbaa !5
  %1983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1984 = load i32, ptr @test_count, align 4, !tbaa !5
  %1985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror(i32 noundef %1986, ptr noundef @.str.4)
  %1988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror_debug(i32 noundef %1989, ptr noundef @.str.4)
  %1991 = call ptr @__errno_location() #10
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call ptr @strerror(i32 noundef %1992) #9
  %1994 = call ptr @__errno_location() #10
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1983, ptr noundef @.str.2, i32 noundef %1984, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1987, ptr noundef %1990, ptr noundef %1993, i32 noundef %1995) #9
  br label %2014

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

2014:                                             ; preds = %1997, %1980
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

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

2017:                                             ; No predecessors!
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

2019:                                             ; preds = %2018, %1960
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

2022:                                             ; preds = %2021
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = add nsw i32 %2023, 1
  store i32 %2024, ptr @test_count, align 4, !tbaa !5
  %2025 = load ptr, ptr %27, align 8, !tbaa !9
  %2026 = call i32 @s2n_connection_free(ptr noundef %2025)
  %2027 = icmp eq i32 %2026, -1
  br i1 %2027, label %2028, label %2081

2028:                                             ; preds = %2022
  br label %2029

2029:                                             ; preds = %2028
  br label %2030

2030:                                             ; preds = %2029
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %2031 = call ptr @__errno_location() #10
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  store i32 %2032, ptr %47, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = call i32 @s2n_print_stacktrace(ptr noundef %2033)
  %2035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2036 = trunc i8 %2035 to i1
  br i1 %2036, label %2037, label %2059

2037:                                             ; preds = %2030
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @fileno(ptr noundef %2038) #9
  %2040 = call i32 @isatty(i32 noundef %2039) #9
  %2041 = icmp ne i32 %2040, 0
  br i1 %2041, label %2042, label %2059

2042:                                             ; preds = %2037
  %2043 = load i32, ptr %47, align 4, !tbaa !5
  %2044 = call ptr @__errno_location() #10
  store i32 %2043, ptr %2044, align 4, !tbaa !5
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = load i32, ptr @test_count, align 4, !tbaa !5
  %2047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror(i32 noundef %2048, ptr noundef @.str.4)
  %2050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef @.str.4)
  %2053 = call ptr @__errno_location() #10
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call ptr @strerror(i32 noundef %2054) #9
  %2056 = call ptr @__errno_location() #10
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  %2058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2045, ptr noundef @.str.2, i32 noundef %2046, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2049, ptr noundef %2052, ptr noundef %2055, i32 noundef %2057) #9
  br label %2076

2059:                                             ; preds = %2037, %2030
  %2060 = load i32, ptr %47, align 4, !tbaa !5
  %2061 = call ptr @__errno_location() #10
  store i32 %2060, ptr %2061, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror(i32 noundef %2065, ptr noundef @.str.4)
  %2067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef @.str.4)
  %2070 = call ptr @__errno_location() #10
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call ptr @strerror(i32 noundef %2071) #9
  %2073 = call ptr @__errno_location() #10
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2062, ptr noundef @.str.5, i32 noundef %2063, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2066, ptr noundef %2069, ptr noundef %2072, i32 noundef %2074) #9
  br label %2076

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

2077:                                             ; preds = %2076
  br label %2078

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

2079:                                             ; No predecessors!
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080, %2022
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  %2084 = call i32 @s2n_stuffer_free(ptr noundef %31)
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  store i32 0, ptr %48, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %2085 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2085, ptr %49, align 8, !tbaa !9
  br label %2086

2086:                                             ; preds = %2083
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = add nsw i32 %2087, 1
  store i32 %2088, ptr @test_count, align 4, !tbaa !5
  %2089 = load ptr, ptr %49, align 8, !tbaa !9
  %2090 = icmp eq ptr %2089, null
  br i1 %2090, label %2091, label %2144

2091:                                             ; preds = %2086
  br label %2092

2092:                                             ; preds = %2091
  br label %2093

2093:                                             ; preds = %2092
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %2094 = call ptr @__errno_location() #10
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  store i32 %2095, ptr %50, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @s2n_print_stacktrace(ptr noundef %2096)
  %2098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2099 = trunc i8 %2098 to i1
  br i1 %2099, label %2100, label %2122

2100:                                             ; preds = %2093
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @fileno(ptr noundef %2101) #9
  %2103 = call i32 @isatty(i32 noundef %2102) #9
  %2104 = icmp ne i32 %2103, 0
  br i1 %2104, label %2105, label %2122

2105:                                             ; preds = %2100
  %2106 = load i32, ptr %50, align 4, !tbaa !5
  %2107 = call ptr @__errno_location() #10
  store i32 %2106, ptr %2107, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call ptr @s2n_strerror(i32 noundef %2111, ptr noundef @.str.4)
  %2113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror_debug(i32 noundef %2114, ptr noundef @.str.4)
  %2116 = call ptr @__errno_location() #10
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @strerror(i32 noundef %2117) #9
  %2119 = call ptr @__errno_location() #10
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2108, ptr noundef @.str.2, i32 noundef %2109, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2112, ptr noundef %2115, ptr noundef %2118, i32 noundef %2120) #9
  br label %2139

2122:                                             ; preds = %2100, %2093
  %2123 = load i32, ptr %50, align 4, !tbaa !5
  %2124 = call ptr @__errno_location() #10
  store i32 %2123, ptr %2124, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror(i32 noundef %2128, ptr noundef @.str.4)
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror_debug(i32 noundef %2131, ptr noundef @.str.4)
  %2133 = call ptr @__errno_location() #10
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @strerror(i32 noundef %2134) #9
  %2136 = call ptr @__errno_location() #10
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2125, ptr noundef @.str.5, i32 noundef %2126, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2129, ptr noundef %2132, ptr noundef %2135, i32 noundef %2137) #9
  br label %2139

2139:                                             ; preds = %2122, %2105
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

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

2142:                                             ; No predecessors!
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143, %2086
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = add nsw i32 %2148, 1
  store i32 %2149, ptr @test_count, align 4, !tbaa !5
  %2150 = load ptr, ptr %49, align 8, !tbaa !9
  %2151 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2150, ptr noundef @.str.10)
  %2152 = icmp eq i32 %2151, -1
  br i1 %2152, label %2153, label %2206

2153:                                             ; preds = %2147
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2156 = call ptr @__errno_location() #10
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  store i32 %2157, ptr %51, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @s2n_print_stacktrace(ptr noundef %2158)
  %2160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2161 = trunc i8 %2160 to i1
  br i1 %2161, label %2162, label %2184

2162:                                             ; preds = %2155
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @fileno(ptr noundef %2163) #9
  %2165 = call i32 @isatty(i32 noundef %2164) #9
  %2166 = icmp ne i32 %2165, 0
  br i1 %2166, label %2167, label %2184

2167:                                             ; preds = %2162
  %2168 = load i32, ptr %51, align 4, !tbaa !5
  %2169 = call ptr @__errno_location() #10
  store i32 %2168, ptr %2169, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror(i32 noundef %2173, ptr noundef @.str.4)
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror_debug(i32 noundef %2176, ptr noundef @.str.4)
  %2178 = call ptr @__errno_location() #10
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @strerror(i32 noundef %2179) #9
  %2181 = call ptr @__errno_location() #10
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2170, ptr noundef @.str.2, i32 noundef %2171, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2174, ptr noundef %2177, ptr noundef %2180, i32 noundef %2182) #9
  br label %2201

2184:                                             ; preds = %2162, %2155
  %2185 = load i32, ptr %51, align 4, !tbaa !5
  %2186 = call ptr @__errno_location() #10
  store i32 %2185, ptr %2186, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror(i32 noundef %2190, ptr noundef @.str.4)
  %2192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror_debug(i32 noundef %2193, ptr noundef @.str.4)
  %2195 = call ptr @__errno_location() #10
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @strerror(i32 noundef %2196) #9
  %2198 = call ptr @__errno_location() #10
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2187, ptr noundef @.str.5, i32 noundef %2188, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2191, ptr noundef %2194, ptr noundef %2197, i32 noundef %2199) #9
  br label %2201

2201:                                             ; preds = %2184, %2167
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2202

2202:                                             ; preds = %2201
  br label %2203

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

2204:                                             ; No predecessors!
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

2206:                                             ; preds = %2205, %2147
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %2209 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2209, ptr %52, align 8, !tbaa !9
  br label %2210

2210:                                             ; preds = %2208
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = add nsw i32 %2211, 1
  store i32 %2212, ptr @test_count, align 4, !tbaa !5
  %2213 = load ptr, ptr %52, align 8, !tbaa !9
  %2214 = icmp eq ptr %2213, null
  br i1 %2214, label %2215, label %2268

2215:                                             ; preds = %2210
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2218 = call ptr @__errno_location() #10
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  store i32 %2219, ptr %53, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @s2n_print_stacktrace(ptr noundef %2220)
  %2222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2223 = trunc i8 %2222 to i1
  br i1 %2223, label %2224, label %2246

2224:                                             ; preds = %2217
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #9
  %2227 = call i32 @isatty(i32 noundef %2226) #9
  %2228 = icmp ne i32 %2227, 0
  br i1 %2228, label %2229, label %2246

2229:                                             ; preds = %2224
  %2230 = load i32, ptr %53, align 4, !tbaa !5
  %2231 = call ptr @__errno_location() #10
  store i32 %2230, ptr %2231, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef @.str.4)
  %2237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef @.str.4)
  %2240 = call ptr @__errno_location() #10
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @strerror(i32 noundef %2241) #9
  %2243 = call ptr @__errno_location() #10
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef @.str.2, i32 noundef %2233, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2236, ptr noundef %2239, ptr noundef %2242, i32 noundef %2244) #9
  br label %2263

2246:                                             ; preds = %2224, %2217
  %2247 = load i32, ptr %53, align 4, !tbaa !5
  %2248 = call ptr @__errno_location() #10
  store i32 %2247, ptr %2248, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef @.str.4)
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef @.str.4)
  %2257 = call ptr @__errno_location() #10
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #9
  %2260 = call ptr @__errno_location() #10
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef @.str.5, i32 noundef %2250, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2253, ptr noundef %2256, ptr noundef %2259, i32 noundef %2261) #9
  br label %2263

2263:                                             ; preds = %2246, %2229
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2264

2264:                                             ; preds = %2263
  br label %2265

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

2266:                                             ; No predecessors!
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267, %2210
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

2271:                                             ; preds = %2270
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = add nsw i32 %2272, 1
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = load ptr, ptr %52, align 8, !tbaa !9
  %2275 = call i32 @s2n_connection_set_blinding(ptr noundef %2274, i32 noundef 1)
  %2276 = icmp eq i32 %2275, -1
  br i1 %2276, label %2277, label %2330

2277:                                             ; preds = %2271
  br label %2278

2278:                                             ; preds = %2277
  br label %2279

2279:                                             ; preds = %2278
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2280 = call ptr @__errno_location() #10
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  store i32 %2281, ptr %54, align 4, !tbaa !5
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = call i32 @s2n_print_stacktrace(ptr noundef %2282)
  %2284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2285 = trunc i8 %2284 to i1
  br i1 %2285, label %2286, label %2308

2286:                                             ; preds = %2279
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = call i32 @fileno(ptr noundef %2287) #9
  %2289 = call i32 @isatty(i32 noundef %2288) #9
  %2290 = icmp ne i32 %2289, 0
  br i1 %2290, label %2291, label %2308

2291:                                             ; preds = %2286
  %2292 = load i32, ptr %54, align 4, !tbaa !5
  %2293 = call ptr @__errno_location() #10
  store i32 %2292, ptr %2293, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef @.str.4)
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef @.str.4)
  %2302 = call ptr @__errno_location() #10
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @strerror(i32 noundef %2303) #9
  %2305 = call ptr @__errno_location() #10
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2294, ptr noundef @.str.2, i32 noundef %2295, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2298, ptr noundef %2301, ptr noundef %2304, i32 noundef %2306) #9
  br label %2325

2308:                                             ; preds = %2286, %2279
  %2309 = load i32, ptr %54, align 4, !tbaa !5
  %2310 = call ptr @__errno_location() #10
  store i32 %2309, ptr %2310, align 4, !tbaa !5
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = load i32, ptr @test_count, align 4, !tbaa !5
  %2313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @s2n_strerror(i32 noundef %2314, ptr noundef @.str.4)
  %2316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror_debug(i32 noundef %2317, ptr noundef @.str.4)
  %2319 = call ptr @__errno_location() #10
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @strerror(i32 noundef %2320) #9
  %2322 = call ptr @__errno_location() #10
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2311, ptr noundef @.str.5, i32 noundef %2312, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2315, ptr noundef %2318, ptr noundef %2321, i32 noundef %2323) #9
  br label %2325

2325:                                             ; preds = %2308, %2291
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2326

2326:                                             ; preds = %2325
  br label %2327

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

2328:                                             ; No predecessors!
  br label %2329

2329:                                             ; preds = %2328
  br label %2330

2330:                                             ; preds = %2329, %2271
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331
  br label %2333

2333:                                             ; preds = %2332
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = add nsw i32 %2334, 1
  store i32 %2335, ptr @test_count, align 4, !tbaa !5
  %2336 = load ptr, ptr %52, align 8, !tbaa !9
  %2337 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2336, ptr noundef @.str.10)
  %2338 = icmp eq i32 %2337, -1
  br i1 %2338, label %2339, label %2392

2339:                                             ; preds = %2333
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

2341:                                             ; preds = %2340
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2342 = call ptr @__errno_location() #10
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  store i32 %2343, ptr %55, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = call i32 @s2n_print_stacktrace(ptr noundef %2344)
  %2346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2347 = trunc i8 %2346 to i1
  br i1 %2347, label %2348, label %2370

2348:                                             ; preds = %2341
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = call i32 @fileno(ptr noundef %2349) #9
  %2351 = call i32 @isatty(i32 noundef %2350) #9
  %2352 = icmp ne i32 %2351, 0
  br i1 %2352, label %2353, label %2370

2353:                                             ; preds = %2348
  %2354 = load i32, ptr %55, align 4, !tbaa !5
  %2355 = call ptr @__errno_location() #10
  store i32 %2354, ptr %2355, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror(i32 noundef %2359, ptr noundef @.str.4)
  %2361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror_debug(i32 noundef %2362, ptr noundef @.str.4)
  %2364 = call ptr @__errno_location() #10
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call ptr @strerror(i32 noundef %2365) #9
  %2367 = call ptr @__errno_location() #10
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2356, ptr noundef @.str.2, i32 noundef %2357, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2360, ptr noundef %2363, ptr noundef %2366, i32 noundef %2368) #9
  br label %2387

2370:                                             ; preds = %2348, %2341
  %2371 = load i32, ptr %55, align 4, !tbaa !5
  %2372 = call ptr @__errno_location() #10
  store i32 %2371, ptr %2372, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror(i32 noundef %2376, ptr noundef @.str.4)
  %2378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call ptr @s2n_strerror_debug(i32 noundef %2379, ptr noundef @.str.4)
  %2381 = call ptr @__errno_location() #10
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #9
  %2384 = call ptr @__errno_location() #10
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  %2386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2373, ptr noundef @.str.5, i32 noundef %2374, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2377, ptr noundef %2380, ptr noundef %2383, i32 noundef %2385) #9
  br label %2387

2387:                                             ; preds = %2370, %2353
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

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

2390:                                             ; No predecessors!
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391, %2333
  br label %2393

2393:                                             ; preds = %2392
  br label %2394

2394:                                             ; preds = %2393
  call void @llvm.lifetime.start.p0(i64 40, ptr %56) #9
  call void @llvm.memset.p0.i64(ptr align 8 %56, i8 0, i64 40, i1 false)
  br label %2395

2395:                                             ; preds = %2394
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr @test_count, align 4, !tbaa !5
  %2398 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %56, i32 noundef 0)
  %2399 = icmp eq i32 %2398, -1
  br i1 %2399, label %2400, label %2453

2400:                                             ; preds = %2395
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

2402:                                             ; preds = %2401
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2403 = call ptr @__errno_location() #10
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  store i32 %2404, ptr %57, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = call i32 @s2n_print_stacktrace(ptr noundef %2405)
  %2407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2408 = trunc i8 %2407 to i1
  br i1 %2408, label %2409, label %2431

2409:                                             ; preds = %2402
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = call i32 @fileno(ptr noundef %2410) #9
  %2412 = call i32 @isatty(i32 noundef %2411) #9
  %2413 = icmp ne i32 %2412, 0
  br i1 %2413, label %2414, label %2431

2414:                                             ; preds = %2409
  %2415 = load i32, ptr %57, align 4, !tbaa !5
  %2416 = call ptr @__errno_location() #10
  store i32 %2415, ptr %2416, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror_debug(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = call ptr @__errno_location() #10
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #9
  %2428 = call ptr @__errno_location() #10
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef @.str.2, i32 noundef %2418, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2421, ptr noundef %2424, ptr noundef %2427, i32 noundef %2429) #9
  br label %2448

2431:                                             ; preds = %2409, %2402
  %2432 = load i32, ptr %57, align 4, !tbaa !5
  %2433 = call ptr @__errno_location() #10
  store i32 %2432, ptr %2433, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef @.str.4)
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror_debug(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call ptr @__errno_location() #10
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #9
  %2445 = call ptr @__errno_location() #10
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2434, ptr noundef @.str.5, i32 noundef %2435, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2438, ptr noundef %2441, ptr noundef %2444, i32 noundef %2446) #9
  br label %2448

2448:                                             ; preds = %2431, %2414
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

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

2451:                                             ; No predecessors!
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

2453:                                             ; preds = %2452, %2395
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

2456:                                             ; preds = %2455
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = add nsw i32 %2457, 1
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = load ptr, ptr %49, align 8, !tbaa !9
  %2460 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %56, ptr noundef %56, ptr noundef %2459)
  %2461 = icmp eq i32 %2460, -1
  br i1 %2461, label %2462, label %2515

2462:                                             ; preds = %2456
  br label %2463

2463:                                             ; preds = %2462
  br label %2464

2464:                                             ; preds = %2463
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2465 = call ptr @__errno_location() #10
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  store i32 %2466, ptr %58, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467)
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc i8 %2469 to i1
  br i1 %2470, label %2471, label %2493

2471:                                             ; preds = %2464
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #9
  %2474 = call i32 @isatty(i32 noundef %2473) #9
  %2475 = icmp ne i32 %2474, 0
  br i1 %2475, label %2476, label %2493

2476:                                             ; preds = %2471
  %2477 = load i32, ptr %58, align 4, !tbaa !5
  %2478 = call ptr @__errno_location() #10
  store i32 %2477, ptr %2478, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror(i32 noundef %2482, ptr noundef @.str.4)
  %2484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror_debug(i32 noundef %2485, ptr noundef @.str.4)
  %2487 = call ptr @__errno_location() #10
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @strerror(i32 noundef %2488) #9
  %2490 = call ptr @__errno_location() #10
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2479, ptr noundef @.str.2, i32 noundef %2480, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2483, ptr noundef %2486, ptr noundef %2489, i32 noundef %2491) #9
  br label %2510

2493:                                             ; preds = %2471, %2464
  %2494 = load i32, ptr %58, align 4, !tbaa !5
  %2495 = call ptr @__errno_location() #10
  store i32 %2494, ptr %2495, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror(i32 noundef %2499, ptr noundef @.str.4)
  %2501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2502, ptr noundef @.str.4)
  %2504 = call ptr @__errno_location() #10
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @strerror(i32 noundef %2505) #9
  %2507 = call ptr @__errno_location() #10
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2496, ptr noundef @.str.5, i32 noundef %2497, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2500, ptr noundef %2503, ptr noundef %2506, i32 noundef %2508) #9
  br label %2510

2510:                                             ; preds = %2493, %2476
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

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

2513:                                             ; No predecessors!
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514, %2456
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  br label %2518

2518:                                             ; preds = %2517
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = add nsw i32 %2519, 1
  store i32 %2520, ptr @test_count, align 4, !tbaa !5
  %2521 = load ptr, ptr %52, align 8, !tbaa !9
  %2522 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %56, ptr noundef %56, ptr noundef %2521)
  %2523 = icmp eq i32 %2522, -1
  br i1 %2523, label %2524, label %2577

2524:                                             ; preds = %2518
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %2527 = call ptr @__errno_location() #10
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  store i32 %2528, ptr %59, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @s2n_print_stacktrace(ptr noundef %2529)
  %2531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2532 = trunc i8 %2531 to i1
  br i1 %2532, label %2533, label %2555

2533:                                             ; preds = %2526
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @fileno(ptr noundef %2534) #9
  %2536 = call i32 @isatty(i32 noundef %2535) #9
  %2537 = icmp ne i32 %2536, 0
  br i1 %2537, label %2538, label %2555

2538:                                             ; preds = %2533
  %2539 = load i32, ptr %59, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #10
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call ptr @__errno_location() #10
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #9
  %2552 = call ptr @__errno_location() #10
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.2, i32 noundef %2542, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #9
  br label %2572

2555:                                             ; preds = %2533, %2526
  %2556 = load i32, ptr %59, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #10
  store i32 %2556, ptr %2557, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef @.str.4)
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef @.str.4)
  %2566 = call ptr @__errno_location() #10
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #9
  %2569 = call ptr @__errno_location() #10
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.5, i32 noundef %2559, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #9
  br label %2572

2572:                                             ; preds = %2555, %2538
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

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

2575:                                             ; No predecessors!
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576, %2518
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  %2581 = load i32, ptr @test_count, align 4, !tbaa !5
  %2582 = add nsw i32 %2581, 1
  store i32 %2582, ptr @test_count, align 4, !tbaa !5
  %2583 = load ptr, ptr %49, align 8, !tbaa !9
  %2584 = call i32 @s2n_negotiate_until_message(ptr noundef %2583, ptr noundef %48, i32 noundef 1)
  %2585 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2584, ptr %2585, align 4
  %2586 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2587 = load i32, ptr %2586, align 4
  %2588 = call zeroext i1 @s2n_result_is_ok(i32 %2587)
  br i1 %2588, label %2642, label %2589

2589:                                             ; preds = %2580
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2592 = call ptr @__errno_location() #10
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  store i32 %2593, ptr %61, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @s2n_print_stacktrace(ptr noundef %2594)
  %2596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2597 = trunc i8 %2596 to i1
  br i1 %2597, label %2598, label %2620

2598:                                             ; preds = %2591
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = call i32 @fileno(ptr noundef %2599) #9
  %2601 = call i32 @isatty(i32 noundef %2600) #9
  %2602 = icmp ne i32 %2601, 0
  br i1 %2602, label %2603, label %2620

2603:                                             ; preds = %2598
  %2604 = load i32, ptr %61, align 4, !tbaa !5
  %2605 = call ptr @__errno_location() #10
  store i32 %2604, ptr %2605, align 4, !tbaa !5
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = load i32, ptr @test_count, align 4, !tbaa !5
  %2608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror(i32 noundef %2609, ptr noundef @.str.4)
  %2611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @s2n_strerror_debug(i32 noundef %2612, ptr noundef @.str.4)
  %2614 = call ptr @__errno_location() #10
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @strerror(i32 noundef %2615) #9
  %2617 = call ptr @__errno_location() #10
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2606, ptr noundef @.str.2, i32 noundef %2607, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2610, ptr noundef %2613, ptr noundef %2616, i32 noundef %2618) #9
  br label %2637

2620:                                             ; preds = %2598, %2591
  %2621 = load i32, ptr %61, align 4, !tbaa !5
  %2622 = call ptr @__errno_location() #10
  store i32 %2621, ptr %2622, align 4, !tbaa !5
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror(i32 noundef %2626, ptr noundef @.str.4)
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef @.str.4)
  %2631 = call ptr @__errno_location() #10
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #9
  %2634 = call ptr @__errno_location() #10
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2623, ptr noundef @.str.5, i32 noundef %2624, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2627, ptr noundef %2630, ptr noundef %2633, i32 noundef %2635) #9
  br label %2637

2637:                                             ; preds = %2620, %2603
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

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

2640:                                             ; No predecessors!
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

2642:                                             ; preds = %2641, %2580
  br label %2643

2643:                                             ; preds = %2642
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

2645:                                             ; preds = %2644
  %2646 = load i32, ptr @test_count, align 4, !tbaa !5
  %2647 = add nsw i32 %2646, 1
  store i32 %2647, ptr @test_count, align 4, !tbaa !5
  %2648 = load ptr, ptr %52, align 8, !tbaa !9
  %2649 = call i32 @s2n_connection_set_secrets(ptr noundef %2648)
  %2650 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  store i32 %2649, ptr %2650, align 4
  %2651 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  %2652 = load i32, ptr %2651, align 4
  %2653 = call zeroext i1 @s2n_result_is_ok(i32 %2652)
  br i1 %2653, label %2707, label %2654

2654:                                             ; preds = %2645
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2657 = call ptr @__errno_location() #10
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  store i32 %2658, ptr %63, align 4, !tbaa !5
  %2659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2660 = call i32 @s2n_print_stacktrace(ptr noundef %2659)
  %2661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2662 = trunc i8 %2661 to i1
  br i1 %2662, label %2663, label %2685

2663:                                             ; preds = %2656
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @fileno(ptr noundef %2664) #9
  %2666 = call i32 @isatty(i32 noundef %2665) #9
  %2667 = icmp ne i32 %2666, 0
  br i1 %2667, label %2668, label %2685

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %63, align 4, !tbaa !5
  %2670 = call ptr @__errno_location() #10
  store i32 %2669, ptr %2670, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef @.str.4)
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef @.str.4)
  %2679 = call ptr @__errno_location() #10
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #9
  %2682 = call ptr @__errno_location() #10
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef @.str.2, i32 noundef %2672, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2675, ptr noundef %2678, ptr noundef %2681, i32 noundef %2683) #9
  br label %2702

2685:                                             ; preds = %2663, %2656
  %2686 = load i32, ptr %63, align 4, !tbaa !5
  %2687 = call ptr @__errno_location() #10
  store i32 %2686, ptr %2687, align 4, !tbaa !5
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror(i32 noundef %2691, ptr noundef @.str.4)
  %2693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call ptr @s2n_strerror_debug(i32 noundef %2694, ptr noundef @.str.4)
  %2696 = call ptr @__errno_location() #10
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @strerror(i32 noundef %2697) #9
  %2699 = call ptr @__errno_location() #10
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2688, ptr noundef @.str.5, i32 noundef %2689, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2692, ptr noundef %2695, ptr noundef %2698, i32 noundef %2700) #9
  br label %2702

2702:                                             ; preds = %2685, %2668
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

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

2705:                                             ; No predecessors!
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

2707:                                             ; preds = %2706, %2645
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

2710:                                             ; preds = %2709
  br label %2711

2711:                                             ; preds = %2710
  br label %2712

2712:                                             ; preds = %2711
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = add nsw i32 %2713, 1
  store i32 %2714, ptr @test_count, align 4, !tbaa !5
  %2715 = load ptr, ptr %52, align 8, !tbaa !9
  %2716 = call i32 @s2n_negotiate_until_message(ptr noundef %2715, ptr noundef %48, i32 noundef 1)
  %2717 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %2716, ptr %2717, align 4
  %2718 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %2719 = load i32, ptr %2718, align 4
  %2720 = call zeroext i1 @s2n_result_is_error(i32 %2719)
  br i1 %2720, label %2774, label %2721

2721:                                             ; preds = %2712
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2724 = call ptr @__errno_location() #10
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  store i32 %2725, ptr %65, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @s2n_print_stacktrace(ptr noundef %2726)
  %2728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2729 = trunc i8 %2728 to i1
  br i1 %2729, label %2730, label %2752

2730:                                             ; preds = %2723
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @fileno(ptr noundef %2731) #9
  %2733 = call i32 @isatty(i32 noundef %2732) #9
  %2734 = icmp ne i32 %2733, 0
  br i1 %2734, label %2735, label %2752

2735:                                             ; preds = %2730
  %2736 = load i32, ptr %65, align 4, !tbaa !5
  %2737 = call ptr @__errno_location() #10
  store i32 %2736, ptr %2737, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef @.str.4)
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror_debug(i32 noundef %2744, ptr noundef @.str.4)
  %2746 = call ptr @__errno_location() #10
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #9
  %2749 = call ptr @__errno_location() #10
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef @.str.2, i32 noundef %2739, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2742, ptr noundef %2745, ptr noundef %2748, i32 noundef %2750) #9
  br label %2769

2752:                                             ; preds = %2730, %2723
  %2753 = load i32, ptr %65, align 4, !tbaa !5
  %2754 = call ptr @__errno_location() #10
  store i32 %2753, ptr %2754, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = load i32, ptr @test_count, align 4, !tbaa !5
  %2757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef @.str.4)
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror_debug(i32 noundef %2761, ptr noundef @.str.4)
  %2763 = call ptr @__errno_location() #10
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @strerror(i32 noundef %2764) #9
  %2766 = call ptr @__errno_location() #10
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2755, ptr noundef @.str.5, i32 noundef %2756, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2759, ptr noundef %2762, ptr noundef %2765, i32 noundef %2767) #9
  br label %2769

2769:                                             ; preds = %2752, %2735
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2770

2770:                                             ; preds = %2769
  br label %2771

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

2772:                                             ; No predecessors!
  br label %2773

2773:                                             ; preds = %2772
  br label %2774

2774:                                             ; preds = %2773, %2712
  br label %2775

2775:                                             ; preds = %2774
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

2777:                                             ; preds = %2776
  %2778 = load i32, ptr @test_count, align 4, !tbaa !5
  %2779 = add nsw i32 %2778, 1
  store i32 %2779, ptr @test_count, align 4, !tbaa !5
  %2780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = icmp eq i32 %2781, 335544321
  br i1 %2782, label %2836, label %2783

2783:                                             ; preds = %2777
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

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

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

2797:                                             ; preds = %2792
  %2798 = load i32, ptr %66, align 4, !tbaa !5
  %2799 = call ptr @__errno_location() #10
  store i32 %2798, ptr %2799, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef @.str.4)
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef @.str.4)
  %2808 = call ptr @__errno_location() #10
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @strerror(i32 noundef %2809) #9
  %2811 = call ptr @__errno_location() #10
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef @.str.2, i32 noundef %2801, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2804, ptr noundef %2807, ptr noundef %2810, i32 noundef %2812) #9
  br label %2831

2814:                                             ; preds = %2792, %2785
  %2815 = load i32, ptr %66, align 4, !tbaa !5
  %2816 = call ptr @__errno_location() #10
  store i32 %2815, ptr %2816, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = call ptr @s2n_strerror(i32 noundef %2820, ptr noundef @.str.4)
  %2822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror_debug(i32 noundef %2823, ptr noundef @.str.4)
  %2825 = call ptr @__errno_location() #10
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @strerror(i32 noundef %2826) #9
  %2828 = call ptr @__errno_location() #10
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef @.str.5, i32 noundef %2818, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2821, ptr noundef %2824, ptr noundef %2827, i32 noundef %2829) #9
  br label %2831

2831:                                             ; preds = %2814, %2797
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

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

2834:                                             ; No predecessors!
  br label %2835

2835:                                             ; preds = %2834
  br label %2836

2836:                                             ; preds = %2835, %2777
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

2839:                                             ; preds = %2838
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = add nsw i32 %2840, 1
  store i32 %2841, ptr @test_count, align 4, !tbaa !5
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.4)
  %2845 = icmp eq ptr %2844, null
  br i1 %2845, label %2846, label %2899

2846:                                             ; preds = %2839
  br label %2847

2847:                                             ; preds = %2846
  br label %2848

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

2855:                                             ; preds = %2848
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = call i32 @fileno(ptr noundef %2856) #9
  %2858 = call i32 @isatty(i32 noundef %2857) #9
  %2859 = icmp ne i32 %2858, 0
  br i1 %2859, label %2860, label %2877

2860:                                             ; preds = %2855
  %2861 = load i32, ptr %67, align 4, !tbaa !5
  %2862 = call ptr @__errno_location() #10
  store i32 %2861, ptr %2862, align 4, !tbaa !5
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = load i32, ptr @test_count, align 4, !tbaa !5
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror(i32 noundef %2866, ptr noundef @.str.4)
  %2868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror_debug(i32 noundef %2869, ptr noundef @.str.4)
  %2871 = call ptr @__errno_location() #10
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @strerror(i32 noundef %2872) #9
  %2874 = call ptr @__errno_location() #10
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2863, ptr noundef @.str.2, i32 noundef %2864, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2867, ptr noundef %2870, ptr noundef %2873, i32 noundef %2875) #9
  br label %2894

2877:                                             ; preds = %2855, %2848
  %2878 = load i32, ptr %67, align 4, !tbaa !5
  %2879 = call ptr @__errno_location() #10
  store i32 %2878, ptr %2879, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = load i32, ptr @test_count, align 4, !tbaa !5
  %2882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror(i32 noundef %2883, ptr noundef @.str.4)
  %2885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror_debug(i32 noundef %2886, ptr noundef @.str.4)
  %2888 = call ptr @__errno_location() #10
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @strerror(i32 noundef %2889) #9
  %2891 = call ptr @__errno_location() #10
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2880, ptr noundef @.str.5, i32 noundef %2881, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2884, ptr noundef %2887, ptr noundef %2890, i32 noundef %2892) #9
  br label %2894

2894:                                             ; preds = %2877, %2860
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %2895

2895:                                             ; preds = %2894
  br label %2896

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

2897:                                             ; No predecessors!
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

2899:                                             ; preds = %2898, %2839
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

2902:                                             ; preds = %2901
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2905, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2906 = call ptr @__errno_location() #10
  store i32 0, ptr %2906, align 4, !tbaa !5
  br label %2907

2907:                                             ; preds = %2904
  br label %2908

2908:                                             ; preds = %2907
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

2911:                                             ; preds = %2910
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = add nsw i32 %2912, 1
  store i32 %2913, ptr @test_count, align 4, !tbaa !5
  %2914 = load ptr, ptr %52, align 8, !tbaa !9
  %2915 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %2914, i32 noundef 3)
  br i1 %2915, label %2969, label %2916

2916:                                             ; preds = %2911
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

2918:                                             ; preds = %2917
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %2919 = call ptr @__errno_location() #10
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  store i32 %2920, ptr %68, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = call i32 @s2n_print_stacktrace(ptr noundef %2921)
  %2923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2924 = trunc i8 %2923 to i1
  br i1 %2924, label %2925, label %2947

2925:                                             ; preds = %2918
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = call i32 @fileno(ptr noundef %2926) #9
  %2928 = call i32 @isatty(i32 noundef %2927) #9
  %2929 = icmp ne i32 %2928, 0
  br i1 %2929, label %2930, label %2947

2930:                                             ; preds = %2925
  %2931 = load i32, ptr %68, align 4, !tbaa !5
  %2932 = call ptr @__errno_location() #10
  store i32 %2931, ptr %2932, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror(i32 noundef %2936, ptr noundef @.str.4)
  %2938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call ptr @s2n_strerror_debug(i32 noundef %2939, ptr noundef @.str.4)
  %2941 = call ptr @__errno_location() #10
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @strerror(i32 noundef %2942) #9
  %2944 = call ptr @__errno_location() #10
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2933, ptr noundef @.str.2, i32 noundef %2934, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2937, ptr noundef %2940, ptr noundef %2943, i32 noundef %2945) #9
  br label %2964

2947:                                             ; preds = %2925, %2918
  %2948 = load i32, ptr %68, align 4, !tbaa !5
  %2949 = call ptr @__errno_location() #10
  store i32 %2948, ptr %2949, align 4, !tbaa !5
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = load i32, ptr @test_count, align 4, !tbaa !5
  %2952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2953 = load i32, ptr %2952, align 4, !tbaa !5
  %2954 = call ptr @s2n_strerror(i32 noundef %2953, ptr noundef @.str.4)
  %2955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2956 = load i32, ptr %2955, align 4, !tbaa !5
  %2957 = call ptr @s2n_strerror_debug(i32 noundef %2956, ptr noundef @.str.4)
  %2958 = call ptr @__errno_location() #10
  %2959 = load i32, ptr %2958, align 4, !tbaa !5
  %2960 = call ptr @strerror(i32 noundef %2959) #9
  %2961 = call ptr @__errno_location() #10
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2950, ptr noundef @.str.5, i32 noundef %2951, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2954, ptr noundef %2957, ptr noundef %2960, i32 noundef %2962) #9
  br label %2964

2964:                                             ; preds = %2947, %2930
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %2965

2965:                                             ; preds = %2964
  br label %2966

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

2967:                                             ; No predecessors!
  br label %2968

2968:                                             ; preds = %2967
  br label %2969

2969:                                             ; preds = %2968, %2911
  br label %2970

2970:                                             ; preds = %2969
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

2972:                                             ; preds = %2971
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = add nsw i32 %2973, 1
  store i32 %2974, ptr @test_count, align 4, !tbaa !5
  %2975 = load ptr, ptr %52, align 8, !tbaa !9
  %2976 = call i64 @s2n_connection_get_delay(ptr noundef %2975)
  %2977 = icmp eq i64 %2976, 0
  br i1 %2977, label %2978, label %3031

2978:                                             ; preds = %2972
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %2981 = call ptr @__errno_location() #10
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  store i32 %2982, ptr %69, align 4, !tbaa !5
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = call i32 @s2n_print_stacktrace(ptr noundef %2983)
  %2985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2986 = trunc i8 %2985 to i1
  br i1 %2986, label %2987, label %3009

2987:                                             ; preds = %2980
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = call i32 @fileno(ptr noundef %2988) #9
  %2990 = call i32 @isatty(i32 noundef %2989) #9
  %2991 = icmp ne i32 %2990, 0
  br i1 %2991, label %2992, label %3009

2992:                                             ; preds = %2987
  %2993 = load i32, ptr %69, align 4, !tbaa !5
  %2994 = call ptr @__errno_location() #10
  store i32 %2993, ptr %2994, align 4, !tbaa !5
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = load i32, ptr @test_count, align 4, !tbaa !5
  %2997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror(i32 noundef %2998, ptr noundef @.str.4)
  %3000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror_debug(i32 noundef %3001, ptr noundef @.str.4)
  %3003 = call ptr @__errno_location() #10
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #9
  %3006 = call ptr @__errno_location() #10
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2995, ptr noundef @.str.2, i32 noundef %2996, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2999, ptr noundef %3002, ptr noundef %3005, i32 noundef %3007) #9
  br label %3026

3009:                                             ; preds = %2987, %2980
  %3010 = load i32, ptr %69, align 4, !tbaa !5
  %3011 = call ptr @__errno_location() #10
  store i32 %3010, ptr %3011, align 4, !tbaa !5
  %3012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3013 = load i32, ptr @test_count, align 4, !tbaa !5
  %3014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = call ptr @s2n_strerror(i32 noundef %3015, ptr noundef @.str.4)
  %3017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  %3019 = call ptr @s2n_strerror_debug(i32 noundef %3018, ptr noundef @.str.4)
  %3020 = call ptr @__errno_location() #10
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call ptr @strerror(i32 noundef %3021) #9
  %3023 = call ptr @__errno_location() #10
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3012, ptr noundef @.str.5, i32 noundef %3013, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 122, ptr noundef %3016, ptr noundef %3019, ptr noundef %3022, i32 noundef %3024) #9
  br label %3026

3026:                                             ; preds = %3009, %2992
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

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

3029:                                             ; No predecessors!
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030, %2972
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

3033:                                             ; preds = %3032
  br label %3034

3034:                                             ; preds = %3033
  %3035 = load i32, ptr @test_count, align 4, !tbaa !5
  %3036 = add nsw i32 %3035, 1
  store i32 %3036, ptr @test_count, align 4, !tbaa !5
  %3037 = load ptr, ptr %49, align 8, !tbaa !9
  %3038 = call i32 @s2n_connection_free(ptr noundef %3037)
  %3039 = icmp eq i32 %3038, -1
  br i1 %3039, label %3040, label %3093

3040:                                             ; preds = %3034
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %3043 = call ptr @__errno_location() #10
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  store i32 %3044, ptr %70, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = call i32 @s2n_print_stacktrace(ptr noundef %3045)
  %3047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3048 = trunc i8 %3047 to i1
  br i1 %3048, label %3049, label %3071

3049:                                             ; preds = %3042
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = call i32 @fileno(ptr noundef %3050) #9
  %3052 = call i32 @isatty(i32 noundef %3051) #9
  %3053 = icmp ne i32 %3052, 0
  br i1 %3053, label %3054, label %3071

3054:                                             ; preds = %3049
  %3055 = load i32, ptr %70, align 4, !tbaa !5
  %3056 = call ptr @__errno_location() #10
  store i32 %3055, ptr %3056, align 4, !tbaa !5
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror(i32 noundef %3060, ptr noundef @.str.4)
  %3062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror_debug(i32 noundef %3063, ptr noundef @.str.4)
  %3065 = call ptr @__errno_location() #10
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @strerror(i32 noundef %3066) #9
  %3068 = call ptr @__errno_location() #10
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3057, ptr noundef @.str.2, i32 noundef %3058, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 124, ptr noundef %3061, ptr noundef %3064, ptr noundef %3067, i32 noundef %3069) #9
  br label %3088

3071:                                             ; preds = %3049, %3042
  %3072 = load i32, ptr %70, align 4, !tbaa !5
  %3073 = call ptr @__errno_location() #10
  store i32 %3072, ptr %3073, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror(i32 noundef %3077, ptr noundef @.str.4)
  %3079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror_debug(i32 noundef %3080, ptr noundef @.str.4)
  %3082 = call ptr @__errno_location() #10
  %3083 = load i32, ptr %3082, align 4, !tbaa !5
  %3084 = call ptr @strerror(i32 noundef %3083) #9
  %3085 = call ptr @__errno_location() #10
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3074, ptr noundef @.str.5, i32 noundef %3075, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 124, ptr noundef %3078, ptr noundef %3081, ptr noundef %3084, i32 noundef %3086) #9
  br label %3088

3088:                                             ; preds = %3071, %3054
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

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

3091:                                             ; No predecessors!
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092, %3034
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

3095:                                             ; preds = %3094
  br label %3096

3096:                                             ; preds = %3095
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = add nsw i32 %3097, 1
  store i32 %3098, ptr @test_count, align 4, !tbaa !5
  %3099 = load ptr, ptr %52, align 8, !tbaa !9
  %3100 = call i32 @s2n_connection_free(ptr noundef %3099)
  %3101 = icmp eq i32 %3100, -1
  br i1 %3101, label %3102, label %3155

3102:                                             ; preds = %3096
  br label %3103

3103:                                             ; preds = %3102
  br label %3104

3104:                                             ; preds = %3103
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %3105 = call ptr @__errno_location() #10
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  store i32 %3106, ptr %71, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = call i32 @s2n_print_stacktrace(ptr noundef %3107)
  %3109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3110 = trunc i8 %3109 to i1
  br i1 %3110, label %3111, label %3133

3111:                                             ; preds = %3104
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @fileno(ptr noundef %3112) #9
  %3114 = call i32 @isatty(i32 noundef %3113) #9
  %3115 = icmp ne i32 %3114, 0
  br i1 %3115, label %3116, label %3133

3116:                                             ; preds = %3111
  %3117 = load i32, ptr %71, align 4, !tbaa !5
  %3118 = call ptr @__errno_location() #10
  store i32 %3117, ptr %3118, align 4, !tbaa !5
  %3119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3120 = load i32, ptr @test_count, align 4, !tbaa !5
  %3121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror(i32 noundef %3122, ptr noundef @.str.4)
  %3124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call ptr @s2n_strerror_debug(i32 noundef %3125, ptr noundef @.str.4)
  %3127 = call ptr @__errno_location() #10
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call ptr @strerror(i32 noundef %3128) #9
  %3130 = call ptr @__errno_location() #10
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3119, ptr noundef @.str.2, i32 noundef %3120, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 125, ptr noundef %3123, ptr noundef %3126, ptr noundef %3129, i32 noundef %3131) #9
  br label %3150

3133:                                             ; preds = %3111, %3104
  %3134 = load i32, ptr %71, align 4, !tbaa !5
  %3135 = call ptr @__errno_location() #10
  store i32 %3134, ptr %3135, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call ptr @s2n_strerror(i32 noundef %3139, ptr noundef @.str.4)
  %3141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call ptr @s2n_strerror_debug(i32 noundef %3142, ptr noundef @.str.4)
  %3144 = call ptr @__errno_location() #10
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @strerror(i32 noundef %3145) #9
  %3147 = call ptr @__errno_location() #10
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3136, ptr noundef @.str.5, i32 noundef %3137, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 125, ptr noundef %3140, ptr noundef %3143, ptr noundef %3146, i32 noundef %3148) #9
  br label %3150

3150:                                             ; preds = %3133, %3116
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

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

3153:                                             ; No predecessors!
  br label %3154

3154:                                             ; preds = %3153
  br label %3155

3155:                                             ; preds = %3154, %3096
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  %3158 = call i32 @s2n_stuffer_free(ptr noundef %56)
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %3159

3159:                                             ; preds = %3157
  br label %3160

3160:                                             ; preds = %3159
  %3161 = call i32 @s2n_cleanup()
  %3162 = icmp eq i32 %3161, -1
  br i1 %3162, label %3163, label %3214

3163:                                             ; preds = %3160
  br label %3164

3164:                                             ; preds = %3163
  br label %3165

3165:                                             ; preds = %3164
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3166 = call ptr @__errno_location() #10
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  store i32 %3167, ptr %72, align 4, !tbaa !5
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = call i32 @s2n_print_stacktrace(ptr noundef %3168)
  %3170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3171 = trunc i8 %3170 to i1
  br i1 %3171, label %3172, label %3194

3172:                                             ; preds = %3165
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = call i32 @fileno(ptr noundef %3173) #9
  %3175 = call i32 @isatty(i32 noundef %3174) #9
  %3176 = icmp ne i32 %3175, 0
  br i1 %3176, label %3177, label %3194

3177:                                             ; preds = %3172
  %3178 = load i32, ptr %72, align 4, !tbaa !5
  %3179 = call ptr @__errno_location() #10
  store i32 %3178, ptr %3179, align 4, !tbaa !5
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  %3182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror(i32 noundef %3183, ptr noundef @.str.4)
  %3185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3186 = load i32, ptr %3185, align 4, !tbaa !5
  %3187 = call ptr @s2n_strerror_debug(i32 noundef %3186, ptr noundef @.str.4)
  %3188 = call ptr @__errno_location() #10
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call ptr @strerror(i32 noundef %3189) #9
  %3191 = call ptr @__errno_location() #10
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3180, ptr noundef @.str.2, i32 noundef %3181, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3184, ptr noundef %3187, ptr noundef %3190, i32 noundef %3192) #9
  br label %3211

3194:                                             ; preds = %3172, %3165
  %3195 = load i32, ptr %72, align 4, !tbaa !5
  %3196 = call ptr @__errno_location() #10
  store i32 %3195, ptr %3196, align 4, !tbaa !5
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3200 = load i32, ptr %3199, align 4, !tbaa !5
  %3201 = call ptr @s2n_strerror(i32 noundef %3200, ptr noundef @.str.4)
  %3202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3203 = load i32, ptr %3202, align 4, !tbaa !5
  %3204 = call ptr @s2n_strerror_debug(i32 noundef %3203, ptr noundef @.str.4)
  %3205 = call ptr @__errno_location() #10
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  %3207 = call ptr @strerror(i32 noundef %3206) #9
  %3208 = call ptr @__errno_location() #10
  %3209 = load i32, ptr %3208, align 4, !tbaa !5
  %3210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3197, ptr noundef @.str.5, i32 noundef %3198, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3201, ptr noundef %3204, ptr noundef %3207, i32 noundef %3209) #9
  br label %3211

3211:                                             ; preds = %3194, %3177
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3212

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

3213:                                             ; No predecessors!
  br label %3214

3214:                                             ; preds = %3213, %3160
  br label %3215

3215:                                             ; preds = %3214
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216
  %3218 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3219 = icmp eq i32 %3218, -1
  br i1 %3219, label %3220, label %3271

3220:                                             ; preds = %3217
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3223 = call ptr @__errno_location() #10
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  store i32 %3224, ptr %73, align 4, !tbaa !5
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @s2n_print_stacktrace(ptr noundef %3225)
  %3227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3228 = trunc i8 %3227 to i1
  br i1 %3228, label %3229, label %3251

3229:                                             ; preds = %3222
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @fileno(ptr noundef %3230) #9
  %3232 = call i32 @isatty(i32 noundef %3231) #9
  %3233 = icmp ne i32 %3232, 0
  br i1 %3233, label %3234, label %3251

3234:                                             ; preds = %3229
  %3235 = load i32, ptr %73, align 4, !tbaa !5
  %3236 = call ptr @__errno_location() #10
  store i32 %3235, ptr %3236, align 4, !tbaa !5
  %3237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3238 = load i32, ptr @test_count, align 4, !tbaa !5
  %3239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3240 = load i32, ptr %3239, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror(i32 noundef %3240, ptr noundef @.str.4)
  %3242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror_debug(i32 noundef %3243, ptr noundef @.str.4)
  %3245 = call ptr @__errno_location() #10
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @strerror(i32 noundef %3246) #9
  %3248 = call ptr @__errno_location() #10
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3237, ptr noundef @.str.2, i32 noundef %3238, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3241, ptr noundef %3244, ptr noundef %3247, i32 noundef %3249) #9
  br label %3268

3251:                                             ; preds = %3229, %3222
  %3252 = load i32, ptr %73, align 4, !tbaa !5
  %3253 = call ptr @__errno_location() #10
  store i32 %3252, ptr %3253, align 4, !tbaa !5
  %3254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3255 = load i32, ptr @test_count, align 4, !tbaa !5
  %3256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror(i32 noundef %3257, ptr noundef @.str.4)
  %3259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3260 = load i32, ptr %3259, align 4, !tbaa !5
  %3261 = call ptr @s2n_strerror_debug(i32 noundef %3260, ptr noundef @.str.4)
  %3262 = call ptr @__errno_location() #10
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @strerror(i32 noundef %3263) #9
  %3265 = call ptr @__errno_location() #10
  %3266 = load i32, ptr %3265, align 4, !tbaa !5
  %3267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3254, ptr noundef @.str.5, i32 noundef %3255, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3258, ptr noundef %3261, ptr noundef %3264, i32 noundef %3266) #9
  br label %3268

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

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

3270:                                             ; No predecessors!
  br label %3271

3271:                                             ; preds = %3270, %3217
  br label %3272

3272:                                             ; preds = %3271
  %3273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3274 = trunc i8 %3273 to i1
  br i1 %3274, label %3275, label %3291

3275:                                             ; preds = %3272
  %3276 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3277 = call i32 @fileno(ptr noundef %3276) #9
  %3278 = call i32 @isatty(i32 noundef %3277) #9
  %3279 = icmp ne i32 %3278, 0
  br i1 %3279, label %3280, label %3291

3280:                                             ; preds = %3275
  %3281 = load i32, ptr @test_count, align 4, !tbaa !5
  %3282 = icmp ne i32 %3281, 0
  br i1 %3282, label %3283, label %3287

3283:                                             ; preds = %3280
  %3284 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3284, ptr noundef @.str.35, i32 noundef %3285) #9
  br label %3290

3287:                                             ; preds = %3280
  %3288 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3288, ptr noundef @.str.36) #9
  br label %3290

3290:                                             ; preds = %3287, %3283
  br label %3302

3291:                                             ; preds = %3275, %3272
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = icmp ne i32 %3292, 0
  br i1 %3293, label %3294, label %3298

3294:                                             ; preds = %3291
  %3295 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %3297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3295, ptr noundef @.str.37, i32 noundef %3296) #9
  br label %3301

3298:                                             ; preds = %3291
  %3299 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3299, ptr noundef @.str.38) #9
  br label %3301

3301:                                             ; preds = %3298, %3294
  br label %3302

3302:                                             ; preds = %3301, %3290
  store i32 0, ptr %3, align 4
  br label %3304

3303:                                             ; No predecessors!
  br label %3304

3304:                                             ; preds = %3303, %3302
  %3305 = load i32, ptr %3, align 4
  ret i32 %3305
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

declare void @s2n_debug_info_reset() #2

declare zeroext i1 @s2n_connection_check_io_status(ptr noundef, i32 noundef) #2

declare i64 @s2n_connection_get_delay(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

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

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

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

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

declare i32 @s2n_connection_set_secrets(ptr noundef) #2

declare i32 @s2n_cleanup() #2

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


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

%struct.s2n_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
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [87 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

22:                                               ; preds = %15
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = tail call i32 @fileno(ptr noundef %23) #10
  %25 = tail call i32 @isatty(i32 noundef %24) #10
  %.not201 = icmp eq i32 %25, 0
  br i1 %.not201, label %26, label %27

26:                                               ; preds = %22, %15
  br label %27

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

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

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

51:                                               ; preds = %44
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @fileno(ptr noundef %52) #10
  %54 = tail call i32 @isatty(i32 noundef %53) #10
  %.not200 = icmp eq i32 %54, 0
  br i1 %.not200, label %55, label %56

55:                                               ; preds = %51, %44
  br label %56

56:                                               ; preds = %51, %55
  %.str.5.sink212 = phi ptr [ @.str.5, %55 ], [ @.str.2, %51 ]
  store i32 %46, ptr %45, align 4, !tbaa !5
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = load i32, ptr @test_count, align 4, !tbaa !5
  %59 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror(i32 noundef %60, ptr noundef nonnull @.str.4) #10
  %62 = load i32, ptr %59, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror_debug(i32 noundef %62, ptr noundef nonnull @.str.4) #10
  %64 = load i32, ptr %45, align 4, !tbaa !5
  %65 = tail call ptr @strerror(i32 noundef %64) #10
  %66 = load i32, ptr %45, align 4, !tbaa !5
  %67 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %57, ptr noundef nonnull %.str.5.sink212, i32 noundef %58, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %61, ptr noundef %63, ptr noundef %65, i32 noundef %66) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

68:                                               ; preds = %39
  %69 = tail call i32 @s2n_init() #10
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %95

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

78:                                               ; preds = %71
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = tail call i32 @fileno(ptr noundef %79) #10
  %81 = tail call i32 @isatty(i32 noundef %80) #10
  %.not199 = icmp eq i32 %81, 0
  br i1 %.not199, label %82, label %83

82:                                               ; preds = %78, %71
  br label %83

83:                                               ; preds = %78, %82
  %.str.5.sink223 = phi ptr [ @.str.5, %82 ], [ @.str.2, %78 ]
  store i32 %73, ptr %72, align 4, !tbaa !5
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = load i32, ptr @test_count, align 4, !tbaa !5
  %86 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror(i32 noundef %87, ptr noundef nonnull @.str.4) #10
  %89 = load i32, ptr %86, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror_debug(i32 noundef %89, ptr noundef nonnull @.str.4) #10
  %91 = load i32, ptr %72, align 4, !tbaa !5
  %92 = tail call ptr @strerror(i32 noundef %91) #10
  %93 = load i32, ptr %72, align 4, !tbaa !5
  %94 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %84, ptr noundef nonnull %.str.5.sink223, i32 noundef %85, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %88, ptr noundef %90, ptr noundef %92, i32 noundef %93) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

95:                                               ; preds = %68
  %96 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr @test_count, align 4, !tbaa !5
  %99 = icmp eq ptr %96, null
  br i1 %99, label %100, label %124

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

107:                                              ; preds = %100
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @fileno(ptr noundef %108) #10
  %110 = tail call i32 @isatty(i32 noundef %109) #10
  %.not198 = icmp eq i32 %110, 0
  br i1 %.not198, label %111, label %112

111:                                              ; preds = %107, %100
  br label %112

112:                                              ; preds = %107, %111
  %.str.5.sink234 = phi ptr [ @.str.5, %111 ], [ @.str.2, %107 ]
  store i32 %102, ptr %101, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %115 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror(i32 noundef %116, ptr noundef nonnull @.str.4) #10
  %118 = load i32, ptr %115, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror_debug(i32 noundef %118, ptr noundef nonnull @.str.4) #10
  %120 = load i32, ptr %101, align 4, !tbaa !5
  %121 = tail call ptr @strerror(i32 noundef %120) #10
  %122 = load i32, ptr %101, align 4, !tbaa !5
  %123 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef nonnull %.str.5.sink234, i32 noundef %114, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %117, ptr noundef %119, ptr noundef %121, i32 noundef %122) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

124:                                              ; preds = %95
  %125 = add nsw i32 %97, 2
  store i32 %125, ptr @test_count, align 4, !tbaa !5
  %126 = tail call i32 @s2n_connection_set_blinding(ptr noundef nonnull %96, i32 noundef 1) #10
  %127 = icmp eq i32 %126, -1
  br i1 %127, label %128, label %152

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

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

139:                                              ; preds = %135, %128
  br label %140

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

152:                                              ; preds = %124
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr @test_count, align 4, !tbaa !5
  %155 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %96, ptr noundef nonnull @.str.10) #10
  %156 = icmp eq i32 %155, -1
  br i1 %156, label %157, label %181

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

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

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

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

181:                                              ; preds = %152
  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)
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  store i32 %183, ptr @test_count, align 4, !tbaa !5
  %184 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #10
  %185 = icmp eq i32 %184, -1
  br i1 %185, label %186, label %210

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

193:                                              ; preds = %186
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @fileno(ptr noundef %194) #10
  %196 = call i32 @isatty(i32 noundef %195) #10
  %.not195 = icmp eq i32 %196, 0
  br i1 %.not195, label %197, label %198

197:                                              ; preds = %193, %186
  br label %198

198:                                              ; preds = %193, %197
  %.str.5.sink267 = phi ptr [ @.str.5, %197 ], [ @.str.2, %193 ]
  store i32 %188, ptr %187, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = load i32, ptr @test_count, align 4, !tbaa !5
  %201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call ptr @s2n_strerror(i32 noundef %202, ptr noundef nonnull @.str.4) #10
  %204 = load i32, ptr %201, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef nonnull @.str.4) #10
  %206 = load i32, ptr %187, align 4, !tbaa !5
  %207 = call ptr @strerror(i32 noundef %206) #10
  %208 = load i32, ptr %187, align 4, !tbaa !5
  %209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %199, ptr noundef nonnull %.str.5.sink267, i32 noundef %200, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %203, ptr noundef %205, ptr noundef %207, i32 noundef %208) #12
  call void @exit(i32 noundef 1) #13
  unreachable

210:                                              ; preds = %181
  %211 = load i32, ptr @test_count, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr @test_count, align 4, !tbaa !5
  %213 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull %96) #10
  %214 = icmp eq i32 %213, -1
  br i1 %214, label %215, label %239

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

222:                                              ; preds = %215
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 @fileno(ptr noundef %223) #10
  %225 = call i32 @isatty(i32 noundef %224) #10
  %.not194 = icmp eq i32 %225, 0
  br i1 %.not194, label %226, label %227

226:                                              ; preds = %222, %215
  br label %227

227:                                              ; preds = %222, %226
  %.str.5.sink278 = phi ptr [ @.str.5, %226 ], [ @.str.2, %222 ]
  store i32 %217, ptr %216, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #10
  %233 = load i32, ptr %230, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #10
  %235 = load i32, ptr %216, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #10
  %237 = load i32, ptr %216, align 4, !tbaa !5
  %238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef nonnull %.str.5.sink278, i32 noundef %229, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #12
  call void @exit(i32 noundef 1) #13
  unreachable

239:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  store i32 0, ptr %4, align 4, !tbaa !5
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr @test_count, align 4, !tbaa !5
  %242 = call i32 @s2n_negotiate(ptr noundef nonnull %96, ptr noundef nonnull %4) #10
  %243 = icmp eq i32 %242, -1
  br i1 %243, label %268, label %244

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

251:                                              ; preds = %244
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = call i32 @fileno(ptr noundef %252) #10
  %254 = call i32 @isatty(i32 noundef %253) #10
  %.not = icmp eq i32 %254, 0
  br i1 %.not, label %255, label %256

255:                                              ; preds = %251, %244
  br label %256

256:                                              ; preds = %251, %255
  %.str.5.sink289 = phi ptr [ @.str.5, %255 ], [ @.str.2, %251 ]
  store i32 %246, ptr %245, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror(i32 noundef %260, ptr noundef nonnull @.str.4) #10
  %262 = load i32, ptr %259, align 4, !tbaa !5
  %263 = call ptr @s2n_strerror_debug(i32 noundef %262, ptr noundef nonnull @.str.4) #10
  %264 = load i32, ptr %245, align 4, !tbaa !5
  %265 = call ptr @strerror(i32 noundef %264) #10
  %266 = load i32, ptr %245, align 4, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef nonnull %.str.5.sink289, i32 noundef %258, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %261, ptr noundef %263, ptr noundef %265, i32 noundef %266) #12
  call void @exit(i32 noundef 1) #13
  unreachable

268:                                              ; preds = %239
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr @test_count, align 4, !tbaa !5
  %271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = icmp eq i32 %272, 201326592
  br i1 %273, label %297, label %274

274:                                              ; preds = %268
  %275 = tail call ptr @__errno_location() #11
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @s2n_print_stacktrace(ptr noundef %277) #10
  %279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %280 = trunc nuw i8 %279 to i1
  br i1 %280, label %281, label %285

281:                                              ; preds = %274
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = call i32 @fileno(ptr noundef %282) #10
  %284 = call i32 @isatty(i32 noundef %283) #10
  %.not149 = icmp eq i32 %284, 0
  br i1 %.not149, label %285, label %286

285:                                              ; preds = %281, %274
  br label %286

286:                                              ; preds = %281, %285
  %.str.5.sink300 = phi ptr [ @.str.5, %285 ], [ @.str.2, %281 ]
  store i32 %276, ptr %275, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = load i32, ptr %271, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef nonnull @.str.4) #10
  %291 = load i32, ptr %271, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror_debug(i32 noundef %291, ptr noundef nonnull @.str.4) #10
  %293 = load i32, ptr %275, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #10
  %295 = load i32, ptr %275, align 4, !tbaa !5
  %296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %287, ptr noundef nonnull %.str.5.sink300, i32 noundef %288, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %290, ptr noundef %292, ptr noundef %294, i32 noundef %295) #12
  call void @exit(i32 noundef 1) #13
  unreachable

297:                                              ; preds = %268
  %298 = add nsw i32 %269, 2
  store i32 %298, ptr @test_count, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror_debug(i32 noundef 201326592, ptr noundef nonnull @.str.4) #10
  %300 = icmp eq ptr %299, null
  br i1 %300, label %301, label %324

301:                                              ; preds = %297
  %302 = tail call ptr @__errno_location() #11
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @s2n_print_stacktrace(ptr noundef %304) #10
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %307 = trunc nuw i8 %306 to i1
  br i1 %307, label %308, label %312

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

312:                                              ; preds = %308, %301
  br label %313

313:                                              ; preds = %308, %312
  %.str.5.sink309 = phi ptr [ @.str.5, %312 ], [ @.str.2, %308 ]
  store i32 %303, ptr %302, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = load i32, ptr %271, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror(i32 noundef %316, ptr noundef nonnull @.str.4) #10
  %318 = load i32, ptr %271, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef nonnull @.str.4) #10
  %320 = load i32, ptr %302, align 4, !tbaa !5
  %321 = call ptr @strerror(i32 noundef %320) #10
  %322 = load i32, ptr %302, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef nonnull %.str.5.sink309, i32 noundef %315, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %317, ptr noundef %319, ptr noundef %321, i32 noundef %322) #12
  call void @exit(i32 noundef 1) #13
  unreachable

324:                                              ; preds = %297
  store i32 0, ptr %271, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %325 = tail call ptr @__errno_location() #11
  store i32 0, ptr %325, align 4, !tbaa !5
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @test_count, align 4, !tbaa !5
  %328 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef nonnull %96, i32 noundef 2) #10
  br i1 %328, label %351, label %329

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

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

339:                                              ; preds = %335, %329
  br label %340

340:                                              ; preds = %335, %339
  %.str.5.sink318 = phi ptr [ @.str.5, %339 ], [ @.str.2, %335 ]
  store i32 %330, ptr %325, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = load i32, ptr %271, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror(i32 noundef %343, ptr noundef nonnull @.str.4) #10
  %345 = load i32, ptr %271, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef nonnull @.str.4) #10
  %347 = load i32, ptr %325, align 4, !tbaa !5
  %348 = call ptr @strerror(i32 noundef %347) #10
  %349 = load i32, ptr %325, align 4, !tbaa !5
  %350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef nonnull %.str.5.sink318, i32 noundef %342, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %344, ptr noundef %346, ptr noundef %348, i32 noundef %349) #12
  call void @exit(i32 noundef 1) #13
  unreachable

351:                                              ; preds = %324
  %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 = call i64 @s2n_connection_get_delay(ptr noundef nonnull %96) #10
  %355 = icmp eq i64 %354, 0
  br i1 %355, label %378, label %356

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

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

366:                                              ; preds = %362, %356
  br label %367

367:                                              ; preds = %362, %366
  %.str.5.sink327 = phi ptr [ @.str.5, %366 ], [ @.str.2, %362 ]
  store i32 %357, ptr %325, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = load i32, ptr %271, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror(i32 noundef %370, ptr noundef nonnull @.str.4) #10
  %372 = load i32, ptr %271, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef nonnull @.str.4) #10
  %374 = load i32, ptr %325, align 4, !tbaa !5
  %375 = call ptr @strerror(i32 noundef %374) #10
  %376 = load i32, ptr %325, align 4, !tbaa !5
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef nonnull %.str.5.sink327, i32 noundef %369, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %371, ptr noundef %373, ptr noundef %375, i32 noundef %376) #12
  call void @exit(i32 noundef 1) #13
  unreachable

378:                                              ; preds = %351
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = call i32 @s2n_connection_free(ptr noundef nonnull %96) #10
  %382 = icmp eq i32 %381, -1
  br i1 %382, label %383, label %405

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

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

393:                                              ; preds = %389, %383
  br label %394

394:                                              ; preds = %389, %393
  %.str.5.sink336 = phi ptr [ @.str.5, %393 ], [ @.str.2, %389 ]
  store i32 %384, ptr %325, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = load i32, ptr %271, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef nonnull @.str.4) #10
  %399 = load i32, ptr %271, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror_debug(i32 noundef %399, ptr noundef nonnull @.str.4) #10
  %401 = load i32, ptr %325, align 4, !tbaa !5
  %402 = call ptr @strerror(i32 noundef %401) #10
  %403 = load i32, ptr %325, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef nonnull %.str.5.sink336, i32 noundef %396, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %398, ptr noundef %400, ptr noundef %402, i32 noundef %403) #12
  call void @exit(i32 noundef 1) #13
  unreachable

405:                                              ; preds = %378
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  %406 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 0, ptr %5, align 4, !tbaa !5
  %407 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = icmp eq ptr %407, null
  br i1 %410, label %411, label %433

411:                                              ; preds = %405
  %412 = load i32, ptr %325, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = call i32 @s2n_print_stacktrace(ptr noundef %413) #10
  %415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %416 = trunc nuw i8 %415 to i1
  br i1 %416, label %417, label %421

417:                                              ; preds = %411
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @fileno(ptr noundef %418) #10
  %420 = call i32 @isatty(i32 noundef %419) #10
  %.not191 = icmp eq i32 %420, 0
  br i1 %.not191, label %421, label %422

421:                                              ; preds = %417, %411
  br label %422

422:                                              ; preds = %417, %421
  %.str.5.sink345 = phi ptr [ @.str.5, %421 ], [ @.str.2, %417 ]
  store i32 %412, ptr %325, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = load i32, ptr %271, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef nonnull @.str.4) #10
  %427 = load i32, ptr %271, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef nonnull @.str.4) #10
  %429 = load i32, ptr %325, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #10
  %431 = load i32, ptr %325, align 4, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %423, ptr noundef nonnull %.str.5.sink345, i32 noundef %424, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %426, ptr noundef %428, ptr noundef %430, i32 noundef %431) #12
  call void @exit(i32 noundef 1) #13
  unreachable

433:                                              ; preds = %405
  %434 = add nsw i32 %408, 2
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %407, ptr noundef nonnull @.str.10) #10
  %436 = icmp eq i32 %435, -1
  br i1 %436, label %437, label %459

437:                                              ; preds = %433
  %438 = load i32, ptr %325, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @s2n_print_stacktrace(ptr noundef %439) #10
  %441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %442 = trunc nuw i8 %441 to i1
  br i1 %442, label %443, label %447

443:                                              ; preds = %437
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = call i32 @fileno(ptr noundef %444) #10
  %446 = call i32 @isatty(i32 noundef %445) #10
  %.not190 = icmp eq i32 %446, 0
  br i1 %.not190, label %447, label %448

447:                                              ; preds = %443, %437
  br label %448

448:                                              ; preds = %443, %447
  %.str.5.sink354 = phi ptr [ @.str.5, %447 ], [ @.str.2, %443 ]
  store i32 %438, ptr %325, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = load i32, ptr %271, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef nonnull @.str.4) #10
  %453 = load i32, ptr %271, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef nonnull @.str.4) #10
  %455 = load i32, ptr %325, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #10
  %457 = load i32, ptr %325, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef nonnull %.str.5.sink354, i32 noundef %450, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %452, ptr noundef %454, ptr noundef %456, i32 noundef %457) #12
  call void @exit(i32 noundef 1) #13
  unreachable

459:                                              ; preds = %433
  %460 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = add nsw i32 %461, 1
  store i32 %462, ptr @test_count, align 4, !tbaa !5
  %463 = icmp eq ptr %460, null
  br i1 %463, label %464, label %486

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

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

474:                                              ; preds = %470, %464
  br label %475

475:                                              ; preds = %470, %474
  %.str.5.sink363 = phi ptr [ @.str.5, %474 ], [ @.str.2, %470 ]
  store i32 %465, ptr %325, align 4, !tbaa !5
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = load i32, ptr %271, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef nonnull @.str.4) #10
  %480 = load i32, ptr %271, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror_debug(i32 noundef %480, ptr noundef nonnull @.str.4) #10
  %482 = load i32, ptr %325, align 4, !tbaa !5
  %483 = call ptr @strerror(i32 noundef %482) #10
  %484 = load i32, ptr %325, align 4, !tbaa !5
  %485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %476, ptr noundef nonnull %.str.5.sink363, i32 noundef %477, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %479, ptr noundef %481, ptr noundef %483, i32 noundef %484) #12
  call void @exit(i32 noundef 1) #13
  unreachable

486:                                              ; preds = %459
  %487 = add nsw i32 %461, 2
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %460, i32 noundef 1) #10
  %489 = icmp eq i32 %488, -1
  br i1 %489, label %490, label %512

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

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

500:                                              ; preds = %496, %490
  br label %501

501:                                              ; preds = %496, %500
  %.str.5.sink372 = phi ptr [ @.str.5, %500 ], [ @.str.2, %496 ]
  store i32 %491, ptr %325, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = load i32, ptr %271, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror(i32 noundef %504, ptr noundef nonnull @.str.4) #10
  %506 = load i32, ptr %271, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef nonnull @.str.4) #10
  %508 = load i32, ptr %325, align 4, !tbaa !5
  %509 = call ptr @strerror(i32 noundef %508) #10
  %510 = load i32, ptr %325, align 4, !tbaa !5
  %511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef nonnull %.str.5.sink372, i32 noundef %503, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %505, ptr noundef %507, ptr noundef %509, i32 noundef %510) #12
  call void @exit(i32 noundef 1) #13
  unreachable

512:                                              ; preds = %486
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  %515 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %460, ptr noundef nonnull @.str.10) #10
  %516 = icmp eq i32 %515, -1
  br i1 %516, label %517, label %539

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

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

527:                                              ; preds = %523, %517
  br label %528

528:                                              ; preds = %523, %527
  %.str.5.sink381 = phi ptr [ @.str.5, %527 ], [ @.str.2, %523 ]
  store i32 %518, ptr %325, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = load i32, ptr %271, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror(i32 noundef %531, ptr noundef nonnull @.str.4) #10
  %533 = load i32, ptr %271, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror_debug(i32 noundef %533, ptr noundef nonnull @.str.4) #10
  %535 = load i32, ptr %325, align 4, !tbaa !5
  %536 = call ptr @strerror(i32 noundef %535) #10
  %537 = load i32, ptr %325, align 4, !tbaa !5
  %538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef nonnull %.str.5.sink381, i32 noundef %530, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %532, ptr noundef %534, ptr noundef %536, i32 noundef %537) #12
  call void @exit(i32 noundef 1) #13
  unreachable

539:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr @test_count, align 4, !tbaa !5
  %542 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #10
  %543 = icmp eq i32 %542, -1
  br i1 %543, label %544, label %566

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

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

554:                                              ; preds = %550, %544
  br label %555

555:                                              ; preds = %550, %554
  %.str.5.sink390 = phi ptr [ @.str.5, %554 ], [ @.str.2, %550 ]
  store i32 %545, ptr %325, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = load i32, ptr %271, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror(i32 noundef %558, ptr noundef nonnull @.str.4) #10
  %560 = load i32, ptr %271, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef nonnull @.str.4) #10
  %562 = load i32, ptr %325, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #10
  %564 = load i32, ptr %325, align 4, !tbaa !5
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef nonnull %.str.5.sink390, i32 noundef %557, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %559, ptr noundef %561, ptr noundef %563, i32 noundef %564) #12
  call void @exit(i32 noundef 1) #13
  unreachable

566:                                              ; preds = %539
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr @test_count, align 4, !tbaa !5
  %569 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %6, ptr noundef nonnull %6, ptr noundef nonnull %407) #10
  %570 = icmp eq i32 %569, -1
  br i1 %570, label %571, label %593

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

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

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

582:                                              ; preds = %577, %581
  %.str.5.sink399 = phi ptr [ @.str.5, %581 ], [ @.str.2, %577 ]
  store i32 %572, ptr %325, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = load i32, ptr %271, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef nonnull @.str.4) #10
  %587 = load i32, ptr %271, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef nonnull @.str.4) #10
  %589 = load i32, ptr %325, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #10
  %591 = load i32, ptr %325, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull %.str.5.sink399, i32 noundef %584, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %586, ptr noundef %588, ptr noundef %590, i32 noundef %591) #12
  call void @exit(i32 noundef 1) #13
  unreachable

593:                                              ; preds = %566
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %6, ptr noundef nonnull %6, ptr noundef nonnull %460) #10
  %597 = icmp eq i32 %596, -1
  br i1 %597, label %598, label %620

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

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

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

609:                                              ; preds = %604, %608
  %.str.5.sink408 = phi ptr [ @.str.5, %608 ], [ @.str.2, %604 ]
  store i32 %599, ptr %325, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %271, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.4) #10
  %614 = load i32, ptr %271, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.4) #10
  %616 = load i32, ptr %325, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #10
  %618 = load i32, ptr %325, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.5.sink408, i32 noundef %611, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #12
  call void @exit(i32 noundef 1) #13
  unreachable

620:                                              ; preds = %593
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %407, ptr noundef nonnull %5, i32 noundef 1) #10
  %624 = call zeroext i1 @s2n_result_is_ok(i32 %623)
  br i1 %624, label %647, label %625

625:                                              ; preds = %620
  %626 = load i32, ptr %325, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = call i32 @s2n_print_stacktrace(ptr noundef %627) #10
  %629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %630 = trunc nuw i8 %629 to i1
  br i1 %630, label %631, label %635

631:                                              ; preds = %625
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = call i32 @fileno(ptr noundef %632) #10
  %634 = call i32 @isatty(i32 noundef %633) #10
  %.not152 = icmp eq i32 %634, 0
  br i1 %.not152, label %635, label %636

635:                                              ; preds = %631, %625
  br label %636

636:                                              ; preds = %631, %635
  %.str.5.sink417 = phi ptr [ @.str.5, %635 ], [ @.str.2, %631 ]
  store i32 %626, ptr %325, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = load i32, ptr %271, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror(i32 noundef %639, ptr noundef nonnull @.str.4) #10
  %641 = load i32, ptr %271, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef nonnull @.str.4) #10
  %643 = load i32, ptr %325, align 4, !tbaa !5
  %644 = call ptr @strerror(i32 noundef %643) #10
  %645 = load i32, ptr %325, align 4, !tbaa !5
  %646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef nonnull %.str.5.sink417, i32 noundef %638, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %640, ptr noundef %642, ptr noundef %644, i32 noundef %645) #12
  call void @exit(i32 noundef 1) #13
  unreachable

647:                                              ; preds = %620
  %648 = getelementptr inbounds i8, ptr %6, i64 28
  %649 = load i32, ptr %648, align 4, !tbaa !15
  %650 = getelementptr inbounds i8, ptr %6, i64 24
  %651 = load i32, ptr %650, align 8, !tbaa !18
  %652 = sub i32 %649, %651
  %653 = add i32 %652, -9
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %6, i32 noundef %653) #10
  %657 = icmp eq i32 %656, -1
  br i1 %657, label %658, label %680

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

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

668:                                              ; preds = %664, %658
  br label %669

669:                                              ; preds = %664, %668
  %.str.5.sink426 = phi ptr [ @.str.5, %668 ], [ @.str.2, %664 ]
  store i32 %659, ptr %325, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = load i32, ptr @test_count, align 4, !tbaa !5
  %672 = load i32, ptr %271, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror(i32 noundef %672, ptr noundef nonnull @.str.4) #10
  %674 = load i32, ptr %271, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef nonnull @.str.4) #10
  %676 = load i32, ptr %325, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #10
  %678 = load i32, ptr %325, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef nonnull %.str.5.sink426, i32 noundef %671, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %673, ptr noundef %675, ptr noundef %677, i32 noundef %678) #12
  call void @exit(i32 noundef 1) #13
  unreachable

680:                                              ; preds = %647
  %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 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %6, i32 noundef %653) #10
  %684 = icmp eq i32 %683, -1
  br i1 %684, label %685, label %707

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

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

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

696:                                              ; preds = %691, %695
  %.str.5.sink435 = phi ptr [ @.str.5, %695 ], [ @.str.2, %691 ]
  store i32 %686, ptr %325, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = load i32, ptr %271, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef nonnull @.str.4) #10
  %701 = load i32, ptr %271, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef nonnull @.str.4) #10
  %703 = load i32, ptr %325, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #10
  %705 = load i32, ptr %325, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.5.sink435, i32 noundef %698, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %700, ptr noundef %702, ptr noundef %704, i32 noundef %705) #12
  call void @exit(i32 noundef 1) #13
  unreachable

707:                                              ; preds = %680
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %460, ptr noundef nonnull %5, i32 noundef 1) #10
  %711 = call zeroext i1 @s2n_result_is_error(i32 %710)
  br i1 %711, label %734, label %712

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

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

722:                                              ; preds = %718, %712
  br label %723

723:                                              ; preds = %718, %722
  %.str.5.sink444 = phi ptr [ @.str.5, %722 ], [ @.str.2, %718 ]
  store i32 %713, ptr %325, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = load i32, ptr %271, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror(i32 noundef %726, ptr noundef nonnull @.str.4) #10
  %728 = load i32, ptr %271, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror_debug(i32 noundef %728, ptr noundef nonnull @.str.4) #10
  %730 = load i32, ptr %325, align 4, !tbaa !5
  %731 = call ptr @strerror(i32 noundef %730) #10
  %732 = load i32, ptr %325, align 4, !tbaa !5
  %733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef nonnull %.str.5.sink444, i32 noundef %725, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %727, ptr noundef %729, ptr noundef %731, i32 noundef %732) #12
  call void @exit(i32 noundef 1) #13
  unreachable

734:                                              ; preds = %707
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr @test_count, align 4, !tbaa !5
  %737 = load i32, ptr %271, align 4, !tbaa !5
  %738 = icmp eq i32 %737, 335544322
  br i1 %738, label %761, label %739

739:                                              ; preds = %734
  %740 = load i32, ptr %325, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @s2n_print_stacktrace(ptr noundef %741) #10
  %743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %744 = trunc nuw i8 %743 to i1
  br i1 %744, label %745, label %749

745:                                              ; preds = %739
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = call i32 @fileno(ptr noundef %746) #10
  %748 = call i32 @isatty(i32 noundef %747) #10
  %.not154 = icmp eq i32 %748, 0
  br i1 %.not154, label %749, label %750

749:                                              ; preds = %745, %739
  br label %750

750:                                              ; preds = %745, %749
  %.str.5.sink453 = phi ptr [ @.str.5, %749 ], [ @.str.2, %745 ]
  store i32 %740, ptr %325, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = load i32, ptr %271, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef nonnull @.str.4) #10
  %755 = load i32, ptr %271, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror_debug(i32 noundef %755, ptr noundef nonnull @.str.4) #10
  %757 = load i32, ptr %325, align 4, !tbaa !5
  %758 = call ptr @strerror(i32 noundef %757) #10
  %759 = load i32, ptr %325, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef nonnull %.str.5.sink453, i32 noundef %752, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %754, ptr noundef %756, ptr noundef %758, i32 noundef %759) #12
  call void @exit(i32 noundef 1) #13
  unreachable

761:                                              ; preds = %734
  %762 = add nsw i32 %735, 2
  store i32 %762, ptr @test_count, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #10
  %764 = icmp eq ptr %763, null
  br i1 %764, label %765, label %787

765:                                              ; preds = %761
  %766 = load i32, ptr %325, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @s2n_print_stacktrace(ptr noundef %767) #10
  %769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %770 = trunc nuw i8 %769 to i1
  br i1 %770, label %771, label %775

771:                                              ; preds = %765
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @fileno(ptr noundef %772) #10
  %774 = call i32 @isatty(i32 noundef %773) #10
  %.not181 = icmp eq i32 %774, 0
  br i1 %.not181, label %775, label %776

775:                                              ; preds = %771, %765
  br label %776

776:                                              ; preds = %771, %775
  %.str.5.sink462 = phi ptr [ @.str.5, %775 ], [ @.str.2, %771 ]
  store i32 %766, ptr %325, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = load i32, ptr @test_count, align 4, !tbaa !5
  %779 = load i32, ptr %271, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror(i32 noundef %779, ptr noundef nonnull @.str.4) #10
  %781 = load i32, ptr %271, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror_debug(i32 noundef %781, ptr noundef nonnull @.str.4) #10
  %783 = load i32, ptr %325, align 4, !tbaa !5
  %784 = call ptr @strerror(i32 noundef %783) #10
  %785 = load i32, ptr %325, align 4, !tbaa !5
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %777, ptr noundef nonnull %.str.5.sink462, i32 noundef %778, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %780, ptr noundef %782, ptr noundef %784, i32 noundef %785) #12
  call void @exit(i32 noundef 1) #13
  unreachable

787:                                              ; preds = %761
  store i32 0, ptr %271, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %325, align 4, !tbaa !5
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr @test_count, align 4, !tbaa !5
  %790 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef nonnull %460, i32 noundef 3) #10
  br i1 %790, label %813, label %791

791:                                              ; preds = %787
  %792 = load i32, ptr %325, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = call i32 @s2n_print_stacktrace(ptr noundef %793) #10
  %795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %796 = trunc nuw i8 %795 to i1
  br i1 %796, label %797, label %801

797:                                              ; preds = %791
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = call i32 @fileno(ptr noundef %798) #10
  %800 = call i32 @isatty(i32 noundef %799) #10
  %.not155 = icmp eq i32 %800, 0
  br i1 %.not155, label %801, label %802

801:                                              ; preds = %797, %791
  br label %802

802:                                              ; preds = %797, %801
  %.str.5.sink471 = phi ptr [ @.str.5, %801 ], [ @.str.2, %797 ]
  store i32 %792, ptr %325, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = load i32, ptr %271, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror(i32 noundef %805, ptr noundef nonnull @.str.4) #10
  %807 = load i32, ptr %271, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef nonnull @.str.4) #10
  %809 = load i32, ptr %325, align 4, !tbaa !5
  %810 = call ptr @strerror(i32 noundef %809) #10
  %811 = load i32, ptr %325, align 4, !tbaa !5
  %812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %803, ptr noundef nonnull %.str.5.sink471, i32 noundef %804, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %806, ptr noundef %808, ptr noundef %810, i32 noundef %811) #12
  call void @exit(i32 noundef 1) #13
  unreachable

813:                                              ; preds = %787
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = add nsw i32 %814, 1
  store i32 %815, ptr @test_count, align 4, !tbaa !5
  %816 = call i64 @s2n_connection_get_delay(ptr noundef nonnull %460) #10
  %817 = icmp eq i64 %816, 0
  br i1 %817, label %818, label %840

818:                                              ; preds = %813
  %819 = load i32, ptr %325, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820) #10
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc nuw i8 %822 to i1
  br i1 %823, label %824, label %828

824:                                              ; preds = %818
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #10
  %827 = call i32 @isatty(i32 noundef %826) #10
  %.not180 = icmp eq i32 %827, 0
  br i1 %.not180, label %828, label %829

828:                                              ; preds = %824, %818
  br label %829

829:                                              ; preds = %824, %828
  %.str.5.sink480 = phi ptr [ @.str.5, %828 ], [ @.str.2, %824 ]
  store i32 %819, ptr %325, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = load i32, ptr %271, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.4) #10
  %834 = load i32, ptr %271, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.4) #10
  %836 = load i32, ptr %325, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #10
  %838 = load i32, ptr %325, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef nonnull %.str.5.sink480, i32 noundef %831, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #12
  call void @exit(i32 noundef 1) #13
  unreachable

840:                                              ; preds = %813
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = call i32 @s2n_connection_free(ptr noundef nonnull %407) #10
  %844 = icmp eq i32 %843, -1
  br i1 %844, label %845, label %867

845:                                              ; preds = %840
  %846 = load i32, ptr %325, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @s2n_print_stacktrace(ptr noundef %847) #10
  %849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %850 = trunc nuw i8 %849 to i1
  br i1 %850, label %851, label %855

851:                                              ; preds = %845
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @fileno(ptr noundef %852) #10
  %854 = call i32 @isatty(i32 noundef %853) #10
  %.not179 = icmp eq i32 %854, 0
  br i1 %.not179, label %855, label %856

855:                                              ; preds = %851, %845
  br label %856

856:                                              ; preds = %851, %855
  %.str.5.sink489 = phi ptr [ @.str.5, %855 ], [ @.str.2, %851 ]
  store i32 %846, ptr %325, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = load i32, ptr %271, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror(i32 noundef %859, ptr noundef nonnull @.str.4) #10
  %861 = load i32, ptr %271, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror_debug(i32 noundef %861, ptr noundef nonnull @.str.4) #10
  %863 = load i32, ptr %325, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #10
  %865 = load i32, ptr %325, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef nonnull %.str.5.sink489, i32 noundef %858, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %860, ptr noundef %862, ptr noundef %864, i32 noundef %865) #12
  call void @exit(i32 noundef 1) #13
  unreachable

867:                                              ; preds = %840
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = call i32 @s2n_connection_free(ptr noundef nonnull %460) #10
  %871 = icmp eq i32 %870, -1
  br i1 %871, label %872, label %894

872:                                              ; preds = %867
  %873 = load i32, ptr %325, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @s2n_print_stacktrace(ptr noundef %874) #10
  %876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %877 = trunc nuw i8 %876 to i1
  br i1 %877, label %878, label %882

878:                                              ; preds = %872
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @fileno(ptr noundef %879) #10
  %881 = call i32 @isatty(i32 noundef %880) #10
  %.not178 = icmp eq i32 %881, 0
  br i1 %.not178, label %882, label %883

882:                                              ; preds = %878, %872
  br label %883

883:                                              ; preds = %878, %882
  %.str.5.sink498 = phi ptr [ @.str.5, %882 ], [ @.str.2, %878 ]
  store i32 %873, ptr %325, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = load i32, ptr %271, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror(i32 noundef %886, ptr noundef nonnull @.str.4) #10
  %888 = load i32, ptr %271, align 4, !tbaa !5
  %889 = call ptr @s2n_strerror_debug(i32 noundef %888, ptr noundef nonnull @.str.4) #10
  %890 = load i32, ptr %325, align 4, !tbaa !5
  %891 = call ptr @strerror(i32 noundef %890) #10
  %892 = load i32, ptr %325, align 4, !tbaa !5
  %893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %884, ptr noundef nonnull %.str.5.sink498, i32 noundef %885, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %887, ptr noundef %889, ptr noundef %891, i32 noundef %892) #12
  call void @exit(i32 noundef 1) #13
  unreachable

894:                                              ; preds = %867
  %895 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #10
  store i32 0, ptr %7, align 4, !tbaa !5
  %896 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = icmp eq ptr %896, null
  br i1 %899, label %900, label %922

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

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

910:                                              ; preds = %906, %900
  br label %911

911:                                              ; preds = %906, %910
  %.str.5.sink507 = phi ptr [ @.str.5, %910 ], [ @.str.2, %906 ]
  store i32 %901, ptr %325, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = load i32, ptr %271, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef nonnull @.str.4) #10
  %916 = load i32, ptr %271, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef nonnull @.str.4) #10
  %918 = load i32, ptr %325, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #10
  %920 = load i32, ptr %325, align 4, !tbaa !5
  %921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef nonnull %.str.5.sink507, i32 noundef %913, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %915, ptr noundef %917, ptr noundef %919, i32 noundef %920) #12
  call void @exit(i32 noundef 1) #13
  unreachable

922:                                              ; preds = %894
  %923 = add nsw i32 %897, 2
  store i32 %923, ptr @test_count, align 4, !tbaa !5
  %924 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %896, ptr noundef nonnull @.str.10) #10
  %925 = icmp eq i32 %924, -1
  br i1 %925, label %926, label %948

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

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

936:                                              ; preds = %932, %926
  br label %937

937:                                              ; preds = %932, %936
  %.str.5.sink516 = phi ptr [ @.str.5, %936 ], [ @.str.2, %932 ]
  store i32 %927, ptr %325, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = load i32, ptr %271, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef nonnull @.str.4) #10
  %942 = load i32, ptr %271, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.4) #10
  %944 = load i32, ptr %325, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #10
  %946 = load i32, ptr %325, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef nonnull %.str.5.sink516, i32 noundef %939, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #12
  call void @exit(i32 noundef 1) #13
  unreachable

948:                                              ; preds = %922
  %949 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = icmp eq ptr %949, null
  br i1 %952, label %953, label %975

953:                                              ; preds = %948
  %954 = load i32, ptr %325, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @s2n_print_stacktrace(ptr noundef %955) #10
  %957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %958 = trunc nuw i8 %957 to i1
  br i1 %958, label %959, label %963

959:                                              ; preds = %953
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @fileno(ptr noundef %960) #10
  %962 = call i32 @isatty(i32 noundef %961) #10
  %.not175 = icmp eq i32 %962, 0
  br i1 %.not175, label %963, label %964

963:                                              ; preds = %959, %953
  br label %964

964:                                              ; preds = %959, %963
  %.str.5.sink525 = phi ptr [ @.str.5, %963 ], [ @.str.2, %959 ]
  store i32 %954, ptr %325, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = load i32, ptr %271, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror(i32 noundef %967, ptr noundef nonnull @.str.4) #10
  %969 = load i32, ptr %271, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef nonnull @.str.4) #10
  %971 = load i32, ptr %325, align 4, !tbaa !5
  %972 = call ptr @strerror(i32 noundef %971) #10
  %973 = load i32, ptr %325, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef nonnull %.str.5.sink525, i32 noundef %966, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %968, ptr noundef %970, ptr noundef %972, i32 noundef %973) #12
  call void @exit(i32 noundef 1) #13
  unreachable

975:                                              ; preds = %948
  %976 = add nsw i32 %950, 2
  store i32 %976, ptr @test_count, align 4, !tbaa !5
  %977 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %949, i32 noundef 1) #10
  %978 = icmp eq i32 %977, -1
  br i1 %978, label %979, label %1001

979:                                              ; preds = %975
  %980 = load i32, ptr %325, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = call i32 @s2n_print_stacktrace(ptr noundef %981) #10
  %983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %984 = trunc nuw i8 %983 to i1
  br i1 %984, label %985, label %989

985:                                              ; preds = %979
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @fileno(ptr noundef %986) #10
  %988 = call i32 @isatty(i32 noundef %987) #10
  %.not174 = icmp eq i32 %988, 0
  br i1 %.not174, label %989, label %990

989:                                              ; preds = %985, %979
  br label %990

990:                                              ; preds = %985, %989
  %.str.5.sink534 = phi ptr [ @.str.5, %989 ], [ @.str.2, %985 ]
  store i32 %980, ptr %325, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = load i32, ptr %271, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef nonnull @.str.4) #10
  %995 = load i32, ptr %271, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef nonnull @.str.4) #10
  %997 = load i32, ptr %325, align 4, !tbaa !5
  %998 = call ptr @strerror(i32 noundef %997) #10
  %999 = load i32, ptr %325, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %991, ptr noundef nonnull %.str.5.sink534, i32 noundef %992, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %994, ptr noundef %996, ptr noundef %998, i32 noundef %999) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1001:                                             ; preds = %975
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %949, ptr noundef nonnull @.str.10) #10
  %1005 = icmp eq i32 %1004, -1
  br i1 %1005, label %1006, label %1028

1006:                                             ; preds = %1001
  %1007 = load i32, ptr %325, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @s2n_print_stacktrace(ptr noundef %1008) #10
  %1010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1011 = trunc nuw i8 %1010 to i1
  br i1 %1011, label %1012, label %1016

1012:                                             ; preds = %1006
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #10
  %1015 = call i32 @isatty(i32 noundef %1014) #10
  %.not173 = icmp eq i32 %1015, 0
  br i1 %.not173, label %1016, label %1017

1016:                                             ; preds = %1012, %1006
  br label %1017

1017:                                             ; preds = %1012, %1016
  %.str.5.sink543 = phi ptr [ @.str.5, %1016 ], [ @.str.2, %1012 ]
  store i32 %1007, ptr %325, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = load i32, ptr %271, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #10
  %1022 = load i32, ptr %271, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #10
  %1024 = load i32, ptr %325, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #10
  %1026 = load i32, ptr %325, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef nonnull %.str.5.sink543, i32 noundef %1019, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1028:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 1
  store i32 %1030, ptr @test_count, align 4, !tbaa !5
  %1031 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #10
  %1032 = icmp eq i32 %1031, -1
  br i1 %1032, label %1033, label %1055

1033:                                             ; preds = %1028
  %1034 = load i32, ptr %325, align 4, !tbaa !5
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = call i32 @s2n_print_stacktrace(ptr noundef %1035) #10
  %1037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1038 = trunc nuw i8 %1037 to i1
  br i1 %1038, label %1039, label %1043

1039:                                             ; preds = %1033
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @fileno(ptr noundef %1040) #10
  %1042 = call i32 @isatty(i32 noundef %1041) #10
  %.not172 = icmp eq i32 %1042, 0
  br i1 %.not172, label %1043, label %1044

1043:                                             ; preds = %1039, %1033
  br label %1044

1044:                                             ; preds = %1039, %1043
  %.str.5.sink552 = phi ptr [ @.str.5, %1043 ], [ @.str.2, %1039 ]
  store i32 %1034, ptr %325, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = load i32, ptr %271, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror(i32 noundef %1047, ptr noundef nonnull @.str.4) #10
  %1049 = load i32, ptr %271, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror_debug(i32 noundef %1049, ptr noundef nonnull @.str.4) #10
  %1051 = load i32, ptr %325, align 4, !tbaa !5
  %1052 = call ptr @strerror(i32 noundef %1051) #10
  %1053 = load i32, ptr %325, align 4, !tbaa !5
  %1054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef nonnull %.str.5.sink552, i32 noundef %1046, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %1048, ptr noundef %1050, ptr noundef %1052, i32 noundef %1053) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1055:                                             ; preds = %1028
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %8, ptr noundef nonnull %8, ptr noundef nonnull %896) #10
  %1059 = icmp eq i32 %1058, -1
  br i1 %1059, label %1060, label %1082

1060:                                             ; preds = %1055
  %1061 = load i32, ptr %325, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @s2n_print_stacktrace(ptr noundef %1062) #10
  %1064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1065 = trunc nuw i8 %1064 to i1
  br i1 %1065, label %1066, label %1070

1066:                                             ; preds = %1060
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @fileno(ptr noundef %1067) #10
  %1069 = call i32 @isatty(i32 noundef %1068) #10
  %.not171 = icmp eq i32 %1069, 0
  br i1 %.not171, label %1070, label %1071

1070:                                             ; preds = %1066, %1060
  br label %1071

1071:                                             ; preds = %1066, %1070
  %.str.5.sink561 = phi ptr [ @.str.5, %1070 ], [ @.str.2, %1066 ]
  store i32 %1061, ptr %325, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = load i32, ptr %271, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef nonnull @.str.4) #10
  %1076 = load i32, ptr %271, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror_debug(i32 noundef %1076, ptr noundef nonnull @.str.4) #10
  %1078 = load i32, ptr %325, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #10
  %1080 = load i32, ptr %325, align 4, !tbaa !5
  %1081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef nonnull %.str.5.sink561, i32 noundef %1073, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1075, ptr noundef %1077, ptr noundef %1079, i32 noundef %1080) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1082:                                             ; preds = %1055
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr @test_count, align 4, !tbaa !5
  %1085 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %8, ptr noundef nonnull %8, ptr noundef nonnull %949) #10
  %1086 = icmp eq i32 %1085, -1
  br i1 %1086, label %1087, label %1109

1087:                                             ; preds = %1082
  %1088 = load i32, ptr %325, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @s2n_print_stacktrace(ptr noundef %1089) #10
  %1091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1092 = trunc nuw i8 %1091 to i1
  br i1 %1092, label %1093, label %1097

1093:                                             ; preds = %1087
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @fileno(ptr noundef %1094) #10
  %1096 = call i32 @isatty(i32 noundef %1095) #10
  %.not170 = icmp eq i32 %1096, 0
  br i1 %.not170, label %1097, label %1098

1097:                                             ; preds = %1093, %1087
  br label %1098

1098:                                             ; preds = %1093, %1097
  %.str.5.sink570 = phi ptr [ @.str.5, %1097 ], [ @.str.2, %1093 ]
  store i32 %1088, ptr %325, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = load i32, ptr %271, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror(i32 noundef %1101, ptr noundef nonnull @.str.4) #10
  %1103 = load i32, ptr %271, align 4, !tbaa !5
  %1104 = call ptr @s2n_strerror_debug(i32 noundef %1103, ptr noundef nonnull @.str.4) #10
  %1105 = load i32, ptr %325, align 4, !tbaa !5
  %1106 = call ptr @strerror(i32 noundef %1105) #10
  %1107 = load i32, ptr %325, align 4, !tbaa !5
  %1108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef nonnull %.str.5.sink570, i32 noundef %1100, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %1102, ptr noundef %1104, ptr noundef %1106, i32 noundef %1107) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1109:                                             ; preds = %1082
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = add nsw i32 %1110, 1
  store i32 %1111, ptr @test_count, align 4, !tbaa !5
  %1112 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %896, ptr noundef nonnull %7, i32 noundef 1) #10
  %1113 = call zeroext i1 @s2n_result_is_ok(i32 %1112)
  br i1 %1113, label %1136, label %1114

1114:                                             ; preds = %1109
  %1115 = load i32, ptr %325, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @s2n_print_stacktrace(ptr noundef %1116) #10
  %1118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1119 = trunc nuw i8 %1118 to i1
  br i1 %1119, label %1120, label %1124

1120:                                             ; preds = %1114
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @fileno(ptr noundef %1121) #10
  %1123 = call i32 @isatty(i32 noundef %1122) #10
  %.not156 = icmp eq i32 %1123, 0
  br i1 %.not156, label %1124, label %1125

1124:                                             ; preds = %1120, %1114
  br label %1125

1125:                                             ; preds = %1120, %1124
  %.str.5.sink579 = phi ptr [ @.str.5, %1124 ], [ @.str.2, %1120 ]
  store i32 %1115, ptr %325, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = load i32, ptr %271, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror(i32 noundef %1128, ptr noundef nonnull @.str.4) #10
  %1130 = load i32, ptr %271, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef nonnull @.str.4) #10
  %1132 = load i32, ptr %325, align 4, !tbaa !5
  %1133 = call ptr @strerror(i32 noundef %1132) #10
  %1134 = load i32, ptr %325, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1126, ptr noundef nonnull %.str.5.sink579, i32 noundef %1127, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1129, ptr noundef %1131, ptr noundef %1133, i32 noundef %1134) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1136:                                             ; preds = %1109
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = add nsw i32 %1137, 1
  store i32 %1138, ptr @test_count, align 4, !tbaa !5
  %1139 = call i32 @s2n_connection_set_secrets(ptr noundef nonnull %949) #10
  %1140 = call zeroext i1 @s2n_result_is_ok(i32 %1139)
  br i1 %1140, label %1163, label %1141

1141:                                             ; preds = %1136
  %1142 = load i32, ptr %325, align 4, !tbaa !5
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = call i32 @s2n_print_stacktrace(ptr noundef %1143) #10
  %1145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1146 = trunc nuw i8 %1145 to i1
  br i1 %1146, label %1147, label %1151

1147:                                             ; preds = %1141
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = call i32 @fileno(ptr noundef %1148) #10
  %1150 = call i32 @isatty(i32 noundef %1149) #10
  %.not157 = icmp eq i32 %1150, 0
  br i1 %.not157, label %1151, label %1152

1151:                                             ; preds = %1147, %1141
  br label %1152

1152:                                             ; preds = %1147, %1151
  %.str.5.sink588 = phi ptr [ @.str.5, %1151 ], [ @.str.2, %1147 ]
  store i32 %1142, ptr %325, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = load i32, ptr @test_count, align 4, !tbaa !5
  %1155 = load i32, ptr %271, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror(i32 noundef %1155, ptr noundef nonnull @.str.4) #10
  %1157 = load i32, ptr %271, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror_debug(i32 noundef %1157, ptr noundef nonnull @.str.4) #10
  %1159 = load i32, ptr %325, align 4, !tbaa !5
  %1160 = call ptr @strerror(i32 noundef %1159) #10
  %1161 = load i32, ptr %325, align 4, !tbaa !5
  %1162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1153, ptr noundef nonnull %.str.5.sink588, i32 noundef %1154, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %1156, ptr noundef %1158, ptr noundef %1160, i32 noundef %1161) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1163:                                             ; preds = %1136
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = add nsw i32 %1164, 1
  store i32 %1165, ptr @test_count, align 4, !tbaa !5
  %1166 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %949, ptr noundef nonnull %7, i32 noundef 1) #10
  %1167 = call zeroext i1 @s2n_result_is_error(i32 %1166)
  br i1 %1167, label %1190, label %1168

1168:                                             ; preds = %1163
  %1169 = load i32, ptr %325, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @s2n_print_stacktrace(ptr noundef %1170) #10
  %1172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1173 = trunc nuw i8 %1172 to i1
  br i1 %1173, label %1174, label %1178

1174:                                             ; preds = %1168
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @fileno(ptr noundef %1175) #10
  %1177 = call i32 @isatty(i32 noundef %1176) #10
  %.not158 = icmp eq i32 %1177, 0
  br i1 %.not158, label %1178, label %1179

1178:                                             ; preds = %1174, %1168
  br label %1179

1179:                                             ; preds = %1174, %1178
  %.str.5.sink597 = phi ptr [ @.str.5, %1178 ], [ @.str.2, %1174 ]
  store i32 %1169, ptr %325, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = load i32, ptr %271, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.4) #10
  %1184 = load i32, ptr %271, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.4) #10
  %1186 = load i32, ptr %325, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #10
  %1188 = load i32, ptr %325, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef nonnull %.str.5.sink597, i32 noundef %1181, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1190:                                             ; preds = %1163
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %271, align 4, !tbaa !5
  %1194 = icmp eq i32 %1193, 335544321
  br i1 %1194, label %1217, label %1195

1195:                                             ; preds = %1190
  %1196 = load i32, ptr %325, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @s2n_print_stacktrace(ptr noundef %1197) #10
  %1199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1200 = trunc nuw i8 %1199 to i1
  br i1 %1200, label %1201, label %1205

1201:                                             ; preds = %1195
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @fileno(ptr noundef %1202) #10
  %1204 = call i32 @isatty(i32 noundef %1203) #10
  %.not159 = icmp eq i32 %1204, 0
  br i1 %.not159, label %1205, label %1206

1205:                                             ; preds = %1201, %1195
  br label %1206

1206:                                             ; preds = %1201, %1205
  %.str.5.sink606 = phi ptr [ @.str.5, %1205 ], [ @.str.2, %1201 ]
  store i32 %1196, ptr %325, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = load i32, ptr @test_count, align 4, !tbaa !5
  %1209 = load i32, ptr %271, align 4, !tbaa !5
  %1210 = call ptr @s2n_strerror(i32 noundef %1209, ptr noundef nonnull @.str.4) #10
  %1211 = load i32, ptr %271, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef nonnull @.str.4) #10
  %1213 = load i32, ptr %325, align 4, !tbaa !5
  %1214 = call ptr @strerror(i32 noundef %1213) #10
  %1215 = load i32, ptr %325, align 4, !tbaa !5
  %1216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1207, ptr noundef nonnull %.str.5.sink606, i32 noundef %1208, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1210, ptr noundef %1212, ptr noundef %1214, i32 noundef %1215) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1217:                                             ; preds = %1190
  %1218 = add nsw i32 %1191, 2
  store i32 %1218, ptr @test_count, align 4, !tbaa !5
  %1219 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #10
  %1220 = icmp eq ptr %1219, null
  br i1 %1220, label %1221, label %1243

1221:                                             ; preds = %1217
  %1222 = load i32, ptr %325, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @s2n_print_stacktrace(ptr noundef %1223) #10
  %1225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1226 = trunc nuw i8 %1225 to i1
  br i1 %1226, label %1227, label %1231

1227:                                             ; preds = %1221
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @fileno(ptr noundef %1228) #10
  %1230 = call i32 @isatty(i32 noundef %1229) #10
  %.not169 = icmp eq i32 %1230, 0
  br i1 %.not169, label %1231, label %1232

1231:                                             ; preds = %1227, %1221
  br label %1232

1232:                                             ; preds = %1227, %1231
  %.str.5.sink615 = phi ptr [ @.str.5, %1231 ], [ @.str.2, %1227 ]
  store i32 %1222, ptr %325, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = load i32, ptr %271, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.4) #10
  %1237 = load i32, ptr %271, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.4) #10
  %1239 = load i32, ptr %325, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #10
  %1241 = load i32, ptr %325, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef nonnull %.str.5.sink615, i32 noundef %1234, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1243:                                             ; preds = %1217
  store i32 0, ptr %271, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %325, align 4, !tbaa !5
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr @test_count, align 4, !tbaa !5
  %1246 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef nonnull %949, i32 noundef 3) #10
  br i1 %1246, label %1269, label %1247

1247:                                             ; preds = %1243
  %1248 = load i32, ptr %325, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @s2n_print_stacktrace(ptr noundef %1249) #10
  %1251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1252 = trunc nuw i8 %1251 to i1
  br i1 %1252, label %1253, label %1257

1253:                                             ; preds = %1247
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @fileno(ptr noundef %1254) #10
  %1256 = call i32 @isatty(i32 noundef %1255) #10
  %.not160 = icmp eq i32 %1256, 0
  br i1 %.not160, label %1257, label %1258

1257:                                             ; preds = %1253, %1247
  br label %1258

1258:                                             ; preds = %1253, %1257
  %.str.5.sink624 = phi ptr [ @.str.5, %1257 ], [ @.str.2, %1253 ]
  store i32 %1248, ptr %325, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = load i32, ptr %271, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef nonnull @.str.4) #10
  %1263 = load i32, ptr %271, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef nonnull @.str.4) #10
  %1265 = load i32, ptr %325, align 4, !tbaa !5
  %1266 = call ptr @strerror(i32 noundef %1265) #10
  %1267 = load i32, ptr %325, align 4, !tbaa !5
  %1268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1259, ptr noundef nonnull %.str.5.sink624, i32 noundef %1260, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1262, ptr noundef %1264, ptr noundef %1266, i32 noundef %1267) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1269:                                             ; preds = %1243
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr @test_count, align 4, !tbaa !5
  %1272 = call i64 @s2n_connection_get_delay(ptr noundef nonnull %949) #10
  %1273 = icmp eq i64 %1272, 0
  br i1 %1273, label %1274, label %1296

1274:                                             ; preds = %1269
  %1275 = load i32, ptr %325, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @s2n_print_stacktrace(ptr noundef %1276) #10
  %1278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1279 = trunc nuw i8 %1278 to i1
  br i1 %1279, label %1280, label %1284

1280:                                             ; preds = %1274
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @fileno(ptr noundef %1281) #10
  %1283 = call i32 @isatty(i32 noundef %1282) #10
  %.not168 = icmp eq i32 %1283, 0
  br i1 %.not168, label %1284, label %1285

1284:                                             ; preds = %1280, %1274
  br label %1285

1285:                                             ; preds = %1280, %1284
  %.str.5.sink633 = phi ptr [ @.str.5, %1284 ], [ @.str.2, %1280 ]
  store i32 %1275, ptr %325, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = load i32, ptr %271, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef nonnull @.str.4) #10
  %1290 = load i32, ptr %271, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef nonnull @.str.4) #10
  %1292 = load i32, ptr %325, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #10
  %1294 = load i32, ptr %325, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef nonnull %.str.5.sink633, i32 noundef %1287, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, i32 noundef %1294) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1296:                                             ; preds = %1269
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = call i32 @s2n_connection_free(ptr noundef nonnull %896) #10
  %1300 = icmp eq i32 %1299, -1
  br i1 %1300, label %1301, label %1323

1301:                                             ; preds = %1296
  %1302 = load i32, ptr %325, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = call i32 @s2n_print_stacktrace(ptr noundef %1303) #10
  %1305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc nuw i8 %1305 to i1
  br i1 %1306, label %1307, label %1311

1307:                                             ; preds = %1301
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #10
  %1310 = call i32 @isatty(i32 noundef %1309) #10
  %.not167 = icmp eq i32 %1310, 0
  br i1 %.not167, label %1311, label %1312

1311:                                             ; preds = %1307, %1301
  br label %1312

1312:                                             ; preds = %1307, %1311
  %.str.5.sink642 = phi ptr [ @.str.5, %1311 ], [ @.str.2, %1307 ]
  store i32 %1302, ptr %325, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = load i32, ptr %271, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef nonnull @.str.4) #10
  %1317 = load i32, ptr %271, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef nonnull @.str.4) #10
  %1319 = load i32, ptr %325, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #10
  %1321 = load i32, ptr %325, align 4, !tbaa !5
  %1322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef nonnull %.str.5.sink642, i32 noundef %1314, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1316, ptr noundef %1318, ptr noundef %1320, i32 noundef %1321) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1323:                                             ; preds = %1296
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = call i32 @s2n_connection_free(ptr noundef nonnull %949) #10
  %1327 = icmp eq i32 %1326, -1
  br i1 %1327, label %1328, label %1350

1328:                                             ; preds = %1323
  %1329 = load i32, ptr %325, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330) #10
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc nuw i8 %1332 to i1
  br i1 %1333, label %1334, label %1338

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

1338:                                             ; preds = %1334, %1328
  br label %1339

1339:                                             ; preds = %1334, %1338
  %.str.5.sink651 = phi ptr [ @.str.5, %1338 ], [ @.str.2, %1334 ]
  store i32 %1329, ptr %325, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = load i32, ptr %271, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef nonnull @.str.4) #10
  %1344 = load i32, ptr %271, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef nonnull @.str.4) #10
  %1346 = load i32, ptr %325, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #10
  %1348 = load i32, ptr %325, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef nonnull %.str.5.sink651, i32 noundef %1341, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1343, ptr noundef %1345, ptr noundef %1347, i32 noundef %1348) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1350:                                             ; preds = %1323
  %1351 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  %1352 = call i32 @s2n_cleanup() #10
  %1353 = icmp eq i32 %1352, -1
  br i1 %1353, label %1354, label %1376

1354:                                             ; preds = %1350
  %1355 = load i32, ptr %325, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = call i32 @s2n_print_stacktrace(ptr noundef %1356) #10
  %1358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1359 = trunc nuw i8 %1358 to i1
  br i1 %1359, label %1360, label %1364

1360:                                             ; preds = %1354
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = call i32 @fileno(ptr noundef %1361) #10
  %1363 = call i32 @isatty(i32 noundef %1362) #10
  %.not165 = icmp eq i32 %1363, 0
  br i1 %.not165, label %1364, label %1365

1364:                                             ; preds = %1360, %1354
  br label %1365

1365:                                             ; preds = %1360, %1364
  %.str.5.sink660 = phi ptr [ @.str.5, %1364 ], [ @.str.2, %1360 ]
  store i32 %1355, ptr %325, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = load i32, ptr @test_count, align 4, !tbaa !5
  %1368 = load i32, ptr %271, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef nonnull @.str.4) #10
  %1370 = load i32, ptr %271, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef nonnull @.str.4) #10
  %1372 = load i32, ptr %325, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #10
  %1374 = load i32, ptr %325, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1366, ptr noundef nonnull %.str.5.sink660, i32 noundef %1367, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1369, ptr noundef %1371, ptr noundef %1373, i32 noundef %1374) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1376:                                             ; preds = %1350
  %1377 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1378 = icmp eq i32 %1377, -1
  br i1 %1378, label %1379, label %1401

1379:                                             ; preds = %1376
  %1380 = load i32, ptr %325, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = call i32 @s2n_print_stacktrace(ptr noundef %1381) #10
  %1383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1384 = trunc nuw i8 %1383 to i1
  br i1 %1384, label %1385, label %1389

1385:                                             ; preds = %1379
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @fileno(ptr noundef %1386) #10
  %1388 = call i32 @isatty(i32 noundef %1387) #10
  %.not164 = icmp eq i32 %1388, 0
  br i1 %.not164, label %1389, label %1390

1389:                                             ; preds = %1385, %1379
  br label %1390

1390:                                             ; preds = %1385, %1389
  %.str.5.sink669 = phi ptr [ @.str.5, %1389 ], [ @.str.2, %1385 ]
  store i32 %1380, ptr %325, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = load i32, ptr %271, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror(i32 noundef %1393, ptr noundef nonnull @.str.4) #10
  %1395 = load i32, ptr %271, align 4, !tbaa !5
  %1396 = call ptr @s2n_strerror_debug(i32 noundef %1395, ptr noundef nonnull @.str.4) #10
  %1397 = load i32, ptr %325, align 4, !tbaa !5
  %1398 = call ptr @strerror(i32 noundef %1397) #10
  %1399 = load i32, ptr %325, align 4, !tbaa !5
  %1400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1391, ptr noundef nonnull %.str.5.sink669, i32 noundef %1392, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1394, ptr noundef %1396, ptr noundef %1398, i32 noundef %1399) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1401:                                             ; preds = %1376
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc nuw i8 %1402 to i1
  br i1 %1403, label %1404, label %1415

1404:                                             ; preds = %1401
  %1405 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #10
  %1407 = call i32 @isatty(i32 noundef %1406) #10
  %.not161 = icmp eq i32 %1407, 0
  br i1 %.not161, label %1415, label %1408

1408:                                             ; preds = %1404
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not163 = icmp eq i32 %1409, 0
  %1410 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not163, label %1413, label %1411

1411:                                             ; preds = %1408
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1410, ptr noundef nonnull @.str.35, i32 noundef %1409) #10
  br label %1422

1413:                                             ; preds = %1408
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1410, ptr noundef nonnull @.str.36) #10
  br label %1422

1415:                                             ; preds = %1404, %1401
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not162 = icmp eq i32 %1416, 0
  %1417 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not162, label %1420, label %1418

1418:                                             ; preds = %1415
  %1419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef nonnull @.str.37, i32 noundef %1416) #10
  br label %1422

1420:                                             ; preds = %1415
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef nonnull @.str.38) #10
  br label %1422

1422:                                             ; preds = %1418, %1420, %1411, %1413
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare zeroext i1 @s2n_connection_check_io_status(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i64 @s2n_connection_get_delay(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare i32 @s2n_connection_set_secrets(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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


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