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

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

%struct.s2n_result = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_custom_send_fn_called = 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 [80 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 [72 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = 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 %struct.s2n_result, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %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
  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 %23

23:                                               ; preds = %2
  br label %24

24:                                               ; preds = %23
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %25 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25, ptr noundef @.str, ptr noundef @.str.1) #8
  %27 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28 = call i32 @fflush(ptr noundef %27)
  br label %29

29:                                               ; preds = %24
  %30 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %31 = icmp eq i32 %30, -1
  br i1 %31, label %32, label %83

32:                                               ; preds = %29
  br label %33

33:                                               ; preds = %32
  br label %34

34:                                               ; preds = %33
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %35 = call ptr @__errno_location() #9
  %36 = load i32, ptr %35, align 4, !tbaa !5
  store i32 %36, ptr %6, align 4, !tbaa !5
  %37 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38 = call i32 @s2n_print_stacktrace(ptr noundef %37)
  %39 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %40 = trunc i8 %39 to i1
  br i1 %40, label %41, label %63

41:                                               ; preds = %34
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = call i32 @fileno(ptr noundef %42) #8
  %44 = call i32 @isatty(i32 noundef %43) #8
  %45 = icmp ne i32 %44, 0
  br i1 %45, label %46, label %63

46:                                               ; preds = %41
  %47 = load i32, ptr %6, align 4, !tbaa !5
  %48 = call ptr @__errno_location() #9
  store i32 %47, ptr %48, align 4, !tbaa !5
  %49 = load ptr, ptr @stderr, align 8, !tbaa !9
  %50 = load i32, ptr @test_count, align 4, !tbaa !5
  %51 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %52 = load i32, ptr %51, align 4, !tbaa !5
  %53 = call ptr @s2n_strerror(i32 noundef %52, ptr noundef @.str.4)
  %54 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = call ptr @s2n_strerror_debug(i32 noundef %55, ptr noundef @.str.4)
  %57 = call ptr @__errno_location() #9
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = call ptr @strerror(i32 noundef %58) #8
  %60 = call ptr @__errno_location() #9
  %61 = load i32, ptr %60, align 4, !tbaa !5
  %62 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %49, ptr noundef @.str.2, i32 noundef %50, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 35, ptr noundef %53, ptr noundef %56, ptr noundef %59, i32 noundef %61) #8
  br label %80

63:                                               ; preds = %41, %34
  %64 = load i32, ptr %6, align 4, !tbaa !5
  %65 = call ptr @__errno_location() #9
  store i32 %64, ptr %65, align 4, !tbaa !5
  %66 = load ptr, ptr @stderr, align 8, !tbaa !9
  %67 = load i32, ptr @test_count, align 4, !tbaa !5
  %68 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %69 = load i32, ptr %68, align 4, !tbaa !5
  %70 = call ptr @s2n_strerror(i32 noundef %69, ptr noundef @.str.4)
  %71 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = call ptr @s2n_strerror_debug(i32 noundef %72, ptr noundef @.str.4)
  %74 = call ptr @__errno_location() #9
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = call ptr @strerror(i32 noundef %75) #8
  %77 = call ptr @__errno_location() #9
  %78 = load i32, ptr %77, align 4, !tbaa !5
  %79 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %66, ptr noundef @.str.5, i32 noundef %67, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 35, ptr noundef %70, ptr noundef %73, ptr noundef %76, i32 noundef %78) #8
  br label %80

80:                                               ; preds = %63, %46
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %81

81:                                               ; preds = %80
  call void @exit(i32 noundef 1) #10
  unreachable

82:                                               ; No predecessors!
  br label %83

83:                                               ; preds = %82, %29
  br label %84

84:                                               ; preds = %83
  br label %85

85:                                               ; preds = %84
  %86 = load i32, ptr @test_count, align 4, !tbaa !5
  %87 = add nsw i32 %86, 1
  store i32 %87, ptr @test_count, align 4, !tbaa !5
  %88 = call i32 @s2n_enable_atexit()
  %89 = icmp eq i32 %88, -1
  br i1 %89, label %90, label %141

90:                                               ; preds = %85
  br label %91

91:                                               ; preds = %90
  br label %92

92:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %93 = call ptr @__errno_location() #9
  %94 = load i32, ptr %93, align 4, !tbaa !5
  store i32 %94, ptr %7, align 4, !tbaa !5
  %95 = load ptr, ptr @stderr, align 8, !tbaa !9
  %96 = call i32 @s2n_print_stacktrace(ptr noundef %95)
  %97 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %98 = trunc i8 %97 to i1
  br i1 %98, label %99, label %121

99:                                               ; preds = %92
  %100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %101 = call i32 @fileno(ptr noundef %100) #8
  %102 = call i32 @isatty(i32 noundef %101) #8
  %103 = icmp ne i32 %102, 0
  br i1 %103, label %104, label %121

104:                                              ; preds = %99
  %105 = load i32, ptr %7, align 4, !tbaa !5
  %106 = call ptr @__errno_location() #9
  store i32 %105, ptr %106, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = call ptr @s2n_strerror(i32 noundef %110, ptr noundef @.str.4)
  %112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef @.str.4)
  %115 = call ptr @__errno_location() #9
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = call ptr @strerror(i32 noundef %116) #8
  %118 = call ptr @__errno_location() #9
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %107, ptr noundef @.str.2, i32 noundef %108, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 35, ptr noundef %111, ptr noundef %114, ptr noundef %117, i32 noundef %119) #8
  br label %138

121:                                              ; preds = %99, %92
  %122 = load i32, ptr %7, align 4, !tbaa !5
  %123 = call ptr @__errno_location() #9
  store i32 %122, ptr %123, align 4, !tbaa !5
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call ptr @s2n_strerror(i32 noundef %127, ptr noundef @.str.4)
  %129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call ptr @s2n_strerror_debug(i32 noundef %130, ptr noundef @.str.4)
  %132 = call ptr @__errno_location() #9
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call ptr @strerror(i32 noundef %133) #8
  %135 = call ptr @__errno_location() #9
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef @.str.5, i32 noundef %125, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 35, ptr noundef %128, ptr noundef %131, ptr noundef %134, i32 noundef %136) #8
  br label %138

138:                                              ; preds = %121, %104
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %139

139:                                              ; preds = %138
  call void @exit(i32 noundef 1) #10
  unreachable

140:                                              ; No predecessors!
  br label %141

141:                                              ; preds = %140, %85
  br label %142

142:                                              ; preds = %141
  br label %143

143:                                              ; preds = %142
  br label %144

144:                                              ; preds = %143
  %145 = call i32 @s2n_init()
  %146 = icmp eq i32 %145, -1
  br i1 %146, label %147, label %198

147:                                              ; preds = %144
  br label %148

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %150 = call ptr @__errno_location() #9
  %151 = load i32, ptr %150, align 4, !tbaa !5
  store i32 %151, ptr %8, align 4, !tbaa !5
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = call i32 @s2n_print_stacktrace(ptr noundef %152)
  %154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %155 = trunc i8 %154 to i1
  br i1 %155, label %156, label %178

156:                                              ; preds = %149
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = call i32 @fileno(ptr noundef %157) #8
  %159 = call i32 @isatty(i32 noundef %158) #8
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %161, label %178

161:                                              ; preds = %156
  %162 = load i32, ptr %8, align 4, !tbaa !5
  %163 = call ptr @__errno_location() #9
  store i32 %162, ptr %163, align 4, !tbaa !5
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @s2n_strerror(i32 noundef %167, ptr noundef @.str.4)
  %169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call ptr @s2n_strerror_debug(i32 noundef %170, ptr noundef @.str.4)
  %172 = call ptr @__errno_location() #9
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call ptr @strerror(i32 noundef %173) #8
  %175 = call ptr @__errno_location() #9
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %164, ptr noundef @.str.2, i32 noundef %165, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 35, ptr noundef %168, ptr noundef %171, ptr noundef %174, i32 noundef %176) #8
  br label %195

178:                                              ; preds = %156, %149
  %179 = load i32, ptr %8, align 4, !tbaa !5
  %180 = call ptr @__errno_location() #9
  store i32 %179, ptr %180, align 4, !tbaa !5
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror(i32 noundef %184, ptr noundef @.str.4)
  %186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call ptr @s2n_strerror_debug(i32 noundef %187, ptr noundef @.str.4)
  %189 = call ptr @__errno_location() #9
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call ptr @strerror(i32 noundef %190) #8
  %192 = call ptr @__errno_location() #9
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %181, ptr noundef @.str.5, i32 noundef %182, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 35, ptr noundef %185, ptr noundef %188, ptr noundef %191, i32 noundef %193) #8
  br label %195

195:                                              ; preds = %178, %161
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %196

196:                                              ; preds = %195
  call void @exit(i32 noundef 1) #10
  unreachable

197:                                              ; No predecessors!
  br label %198

198:                                              ; preds = %197, %144
  br label %199

199:                                              ; preds = %198
  br label %200

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

201:                                              ; preds = %200
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = add nsw i32 %202, 1
  store i32 %203, ptr @test_count, align 4, !tbaa !5
  %204 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %204, ptr %9, align 8, !tbaa !9
  %205 = icmp eq ptr %204, null
  br i1 %205, label %206, label %259

206:                                              ; preds = %201
  br label %207

207:                                              ; preds = %206
  br label %208

208:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %209 = call ptr @__errno_location() #9
  %210 = load i32, ptr %209, align 4, !tbaa !5
  store i32 %210, ptr %10, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = call i32 @s2n_print_stacktrace(ptr noundef %211)
  %213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %214 = trunc i8 %213 to i1
  br i1 %214, label %215, label %237

215:                                              ; preds = %208
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = call i32 @fileno(ptr noundef %216) #8
  %218 = call i32 @isatty(i32 noundef %217) #8
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %220, label %237

220:                                              ; preds = %215
  %221 = load i32, ptr %10, align 4, !tbaa !5
  %222 = call ptr @__errno_location() #9
  store i32 %221, ptr %222, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror(i32 noundef %226, ptr noundef @.str.4)
  %228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef @.str.4)
  %231 = call ptr @__errno_location() #9
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @strerror(i32 noundef %232) #8
  %234 = call ptr @__errno_location() #9
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef @.str.2, i32 noundef %224, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 41, ptr noundef %227, ptr noundef %230, ptr noundef %233, i32 noundef %235) #8
  br label %254

237:                                              ; preds = %215, %208
  %238 = load i32, ptr %10, align 4, !tbaa !5
  %239 = call ptr @__errno_location() #9
  store i32 %238, ptr %239, align 4, !tbaa !5
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror(i32 noundef %243, ptr noundef @.str.4)
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror_debug(i32 noundef %246, ptr noundef @.str.4)
  %248 = call ptr @__errno_location() #9
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @strerror(i32 noundef %249) #8
  %251 = call ptr @__errno_location() #9
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %240, ptr noundef @.str.5, i32 noundef %241, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 41, ptr noundef %244, ptr noundef %247, ptr noundef %250, i32 noundef %252) #8
  br label %254

254:                                              ; preds = %237, %220
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  call void @exit(i32 noundef 1) #10
  unreachable

257:                                              ; No predecessors!
  br label %258

258:                                              ; preds = %257
  br label %259

259:                                              ; preds = %258, %201
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  %263 = load i32, ptr @test_count, align 4, !tbaa !5
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr @test_count, align 4, !tbaa !5
  %265 = load ptr, ptr %9, align 8, !tbaa !9
  %266 = call i32 @s2n_connection_set_secrets(ptr noundef %265)
  %267 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %266, ptr %267, align 4
  %268 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %269 = load i32, ptr %268, align 4
  %270 = call zeroext i1 @s2n_result_is_ok(i32 %269)
  br i1 %270, label %324, label %271

271:                                              ; preds = %262
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %274 = call ptr @__errno_location() #9
  %275 = load i32, ptr %274, align 4, !tbaa !5
  store i32 %275, ptr %12, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @s2n_print_stacktrace(ptr noundef %276)
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc i8 %278 to i1
  br i1 %279, label %280, label %302

280:                                              ; preds = %273
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @fileno(ptr noundef %281) #8
  %283 = call i32 @isatty(i32 noundef %282) #8
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %302

285:                                              ; preds = %280
  %286 = load i32, ptr %12, align 4, !tbaa !5
  %287 = call ptr @__errno_location() #9
  store i32 %286, ptr %287, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror(i32 noundef %291, ptr noundef @.str.4)
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef @.str.4)
  %296 = call ptr @__errno_location() #9
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #8
  %299 = call ptr @__errno_location() #9
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef @.str.2, i32 noundef %289, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 42, ptr noundef %292, ptr noundef %295, ptr noundef %298, i32 noundef %300) #8
  br label %319

302:                                              ; preds = %280, %273
  %303 = load i32, ptr %12, align 4, !tbaa !5
  %304 = call ptr @__errno_location() #9
  store i32 %303, ptr %304, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef @.str.4)
  %310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror_debug(i32 noundef %311, ptr noundef @.str.4)
  %313 = call ptr @__errno_location() #9
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @strerror(i32 noundef %314) #8
  %316 = call ptr @__errno_location() #9
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef @.str.5, i32 noundef %306, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 42, ptr noundef %309, ptr noundef %312, ptr noundef %315, i32 noundef %317) #8
  br label %319

319:                                              ; preds = %302, %285
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %320

320:                                              ; preds = %319
  br label %321

321:                                              ; preds = %320
  call void @exit(i32 noundef 1) #10
  unreachable

322:                                              ; No predecessors!
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323, %262
  br label %325

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325
  br label %327

327:                                              ; preds = %326
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  store i32 %329, ptr @test_count, align 4, !tbaa !5
  %330 = load ptr, ptr %9, align 8, !tbaa !9
  %331 = call i32 @s2n_connection_set_send_cb(ptr noundef %330, ptr noundef @s2n_expect_concurrent_error_send_fn)
  %332 = icmp eq i32 %331, -1
  br i1 %332, label %333, label %386

333:                                              ; preds = %327
  br label %334

334:                                              ; preds = %333
  br label %335

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

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

347:                                              ; preds = %342
  %348 = load i32, ptr %13, align 4, !tbaa !5
  %349 = call ptr @__errno_location() #9
  store i32 %348, ptr %349, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = load i32, ptr @test_count, align 4, !tbaa !5
  %352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call ptr @s2n_strerror(i32 noundef %353, ptr noundef @.str.4)
  %355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef @.str.4)
  %358 = call ptr @__errno_location() #9
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call ptr @strerror(i32 noundef %359) #8
  %361 = call ptr @__errno_location() #9
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %350, ptr noundef @.str.2, i32 noundef %351, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 45, ptr noundef %354, ptr noundef %357, ptr noundef %360, i32 noundef %362) #8
  br label %381

364:                                              ; preds = %342, %335
  %365 = load i32, ptr %13, align 4, !tbaa !5
  %366 = call ptr @__errno_location() #9
  store i32 %365, ptr %366, align 4, !tbaa !5
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror(i32 noundef %370, ptr noundef @.str.4)
  %372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror_debug(i32 noundef %373, ptr noundef @.str.4)
  %375 = call ptr @__errno_location() #9
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @strerror(i32 noundef %376) #8
  %378 = call ptr @__errno_location() #9
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %367, ptr noundef @.str.5, i32 noundef %368, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 45, ptr noundef %371, ptr noundef %374, ptr noundef %377, i32 noundef %379) #8
  br label %381

381:                                              ; preds = %364, %347
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %382

382:                                              ; preds = %381
  br label %383

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

384:                                              ; No predecessors!
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385, %327
  br label %387

387:                                              ; preds = %386
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = add nsw i32 %390, 1
  store i32 %391, ptr @test_count, align 4, !tbaa !5
  %392 = load ptr, ptr %9, align 8, !tbaa !9
  %393 = load ptr, ptr %9, align 8, !tbaa !9
  %394 = call i32 @s2n_connection_set_send_ctx(ptr noundef %392, ptr noundef %393)
  %395 = icmp eq i32 %394, -1
  br i1 %395, label %396, label %449

396:                                              ; preds = %389
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %399 = call ptr @__errno_location() #9
  %400 = load i32, ptr %399, align 4, !tbaa !5
  store i32 %400, ptr %14, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = call i32 @s2n_print_stacktrace(ptr noundef %401)
  %403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %404 = trunc i8 %403 to i1
  br i1 %404, label %405, label %427

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

410:                                              ; preds = %405
  %411 = load i32, ptr %14, align 4, !tbaa !5
  %412 = call ptr @__errno_location() #9
  store i32 %411, ptr %412, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef @.str.4)
  %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_debug(i32 noundef %419, ptr noundef @.str.4)
  %421 = call ptr @__errno_location() #9
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #8
  %424 = call ptr @__errno_location() #9
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef @.str.2, i32 noundef %414, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 46, ptr noundef %417, ptr noundef %420, ptr noundef %423, i32 noundef %425) #8
  br label %444

427:                                              ; preds = %405, %398
  %428 = load i32, ptr %14, align 4, !tbaa !5
  %429 = call ptr @__errno_location() #9
  store i32 %428, ptr %429, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef @.str.4)
  %435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef @.str.4)
  %438 = call ptr @__errno_location() #9
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @strerror(i32 noundef %439) #8
  %441 = call ptr @__errno_location() #9
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef @.str.5, i32 noundef %431, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 46, ptr noundef %434, ptr noundef %437, ptr noundef %440, i32 noundef %442) #8
  br label %444

444:                                              ; preds = %427, %410
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445
  call void @exit(i32 noundef 1) #10
  unreachable

447:                                              ; No predecessors!
  br label %448

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448, %389
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  store i8 0, ptr @s2n_custom_send_fn_called, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = add nsw i32 %455, 1
  store i32 %456, ptr @test_count, align 4, !tbaa !5
  %457 = load ptr, ptr %9, align 8, !tbaa !9
  %458 = call i32 @s2n_negotiate(ptr noundef %457, ptr noundef %15)
  %459 = icmp eq i32 %458, -1
  br i1 %459, label %513, label %460

460:                                              ; preds = %454
  br label %461

461:                                              ; preds = %460
  br label %462

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

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

474:                                              ; preds = %469
  %475 = load i32, ptr %16, align 4, !tbaa !5
  %476 = call ptr @__errno_location() #9
  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() #9
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #8
  %488 = call ptr @__errno_location() #9
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef @.str.2, i32 noundef %478, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 53, ptr noundef %481, ptr noundef %484, ptr noundef %487, i32 noundef %489) #8
  br label %508

491:                                              ; preds = %469, %462
  %492 = load i32, ptr %16, align 4, !tbaa !5
  %493 = call ptr @__errno_location() #9
  store i32 %492, ptr %493, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef @.str.4)
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror_debug(i32 noundef %500, ptr noundef @.str.4)
  %502 = call ptr @__errno_location() #9
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @strerror(i32 noundef %503) #8
  %505 = call ptr @__errno_location() #9
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef @.str.5, i32 noundef %495, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 53, ptr noundef %498, ptr noundef %501, ptr noundef %504, i32 noundef %506) #8
  br label %508

508:                                              ; preds = %491, %474
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509
  call void @exit(i32 noundef 1) #10
  unreachable

511:                                              ; No predecessors!
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512, %454
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = icmp eq i32 %520, 67108864
  br i1 %521, label %575, label %522

522:                                              ; preds = %516
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %525 = call ptr @__errno_location() #9
  %526 = load i32, ptr %525, align 4, !tbaa !5
  store i32 %526, ptr %17, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @s2n_print_stacktrace(ptr noundef %527)
  %529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %530 = trunc i8 %529 to i1
  br i1 %530, label %531, label %553

531:                                              ; preds = %524
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @fileno(ptr noundef %532) #8
  %534 = call i32 @isatty(i32 noundef %533) #8
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %536, label %553

536:                                              ; preds = %531
  %537 = load i32, ptr %17, align 4, !tbaa !5
  %538 = call ptr @__errno_location() #9
  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() #9
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call ptr @strerror(i32 noundef %548) #8
  %550 = call ptr @__errno_location() #9
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef @.str.2, i32 noundef %540, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 53, ptr noundef %543, ptr noundef %546, ptr noundef %549, i32 noundef %551) #8
  br label %570

553:                                              ; preds = %531, %524
  %554 = load i32, ptr %17, align 4, !tbaa !5
  %555 = call ptr @__errno_location() #9
  store i32 %554, ptr %555, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror(i32 noundef %559, ptr noundef @.str.4)
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror_debug(i32 noundef %562, ptr noundef @.str.4)
  %564 = call ptr @__errno_location() #9
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #8
  %567 = call ptr @__errno_location() #9
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef @.str.5, i32 noundef %557, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 53, ptr noundef %560, ptr noundef %563, ptr noundef %566, i32 noundef %568) #8
  br label %570

570:                                              ; preds = %553, %536
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  call void @exit(i32 noundef 1) #10
  unreachable

573:                                              ; No predecessors!
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574, %516
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr @test_count, align 4, !tbaa !5
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef @.str.4)
  %584 = icmp eq ptr %583, null
  br i1 %584, label %585, label %638

585:                                              ; preds = %578
  br label %586

586:                                              ; preds = %585
  br label %587

587:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %588 = call ptr @__errno_location() #9
  %589 = load i32, ptr %588, align 4, !tbaa !5
  store i32 %589, ptr %18, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @s2n_print_stacktrace(ptr noundef %590)
  %592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %593 = trunc i8 %592 to i1
  br i1 %593, label %594, label %616

594:                                              ; preds = %587
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @fileno(ptr noundef %595) #8
  %597 = call i32 @isatty(i32 noundef %596) #8
  %598 = icmp ne i32 %597, 0
  br i1 %598, label %599, label %616

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

616:                                              ; preds = %594, %587
  %617 = load i32, ptr %18, align 4, !tbaa !5
  %618 = call ptr @__errno_location() #9
  store i32 %617, ptr %618, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror(i32 noundef %622, ptr noundef @.str.4)
  %624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror_debug(i32 noundef %625, ptr noundef @.str.4)
  %627 = call ptr @__errno_location() #9
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = call ptr @strerror(i32 noundef %628) #8
  %630 = call ptr @__errno_location() #9
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %619, ptr noundef @.str.5, i32 noundef %620, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 53, ptr noundef %623, ptr noundef %626, ptr noundef %629, i32 noundef %631) #8
  br label %633

633:                                              ; preds = %616, %599
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  call void @exit(i32 noundef 1) #10
  unreachable

636:                                              ; No predecessors!
  br label %637

637:                                              ; preds = %636
  br label %638

638:                                              ; preds = %637, %578
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %644, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %645 = call ptr @__errno_location() #9
  store i32 0, ptr %645, align 4, !tbaa !5
  br label %646

646:                                              ; preds = %643
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = load i8, ptr @s2n_custom_send_fn_called, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc i8 %653 to i1
  br i1 %654, label %708, label %655

655:                                              ; preds = %650
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %658 = call ptr @__errno_location() #9
  %659 = load i32, ptr %658, align 4, !tbaa !5
  store i32 %659, ptr %19, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = call i32 @s2n_print_stacktrace(ptr noundef %660)
  %662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %663 = trunc i8 %662 to i1
  br i1 %663, label %664, label %686

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

669:                                              ; preds = %664
  %670 = load i32, ptr %19, align 4, !tbaa !5
  %671 = call ptr @__errno_location() #9
  store i32 %670, ptr %671, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef @.str.4)
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef @.str.4)
  %680 = call ptr @__errno_location() #9
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #8
  %683 = call ptr @__errno_location() #9
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef @.str.2, i32 noundef %673, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 54, ptr noundef %676, ptr noundef %679, ptr noundef %682, i32 noundef %684) #8
  br label %703

686:                                              ; preds = %664, %657
  %687 = load i32, ptr %19, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #9
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.4)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.4)
  %697 = call ptr @__errno_location() #9
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #8
  %700 = call ptr @__errno_location() #9
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.5, i32 noundef %690, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 54, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #8
  br label %703

703:                                              ; preds = %686, %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @exit(i32 noundef 1) #10
  unreachable

706:                                              ; No predecessors!
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707, %650
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = load ptr, ptr %9, align 8, !tbaa !9
  %715 = call i32 @s2n_connection_free(ptr noundef %714)
  %716 = icmp eq i32 %715, -1
  br i1 %716, label %717, label %770

717:                                              ; preds = %711
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %720 = call ptr @__errno_location() #9
  %721 = load i32, ptr %720, align 4, !tbaa !5
  store i32 %721, ptr %20, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @s2n_print_stacktrace(ptr noundef %722)
  %724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %725 = trunc i8 %724 to i1
  br i1 %725, label %726, label %748

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

731:                                              ; preds = %726
  %732 = load i32, ptr %20, align 4, !tbaa !5
  %733 = call ptr @__errno_location() #9
  store i32 %732, ptr %733, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror(i32 noundef %737, ptr noundef @.str.4)
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef @.str.4)
  %742 = call ptr @__errno_location() #9
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @strerror(i32 noundef %743) #8
  %745 = call ptr @__errno_location() #9
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef @.str.2, i32 noundef %735, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %738, ptr noundef %741, ptr noundef %744, i32 noundef %746) #8
  br label %765

748:                                              ; preds = %726, %719
  %749 = load i32, ptr %20, align 4, !tbaa !5
  %750 = call ptr @__errno_location() #9
  store i32 %749, ptr %750, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef @.str.4)
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef @.str.4)
  %759 = call ptr @__errno_location() #9
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #8
  %762 = call ptr @__errno_location() #9
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef @.str.5, i32 noundef %752, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %755, ptr noundef %758, ptr noundef %761, i32 noundef %763) #8
  br label %765

765:                                              ; preds = %748, %731
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  call void @exit(i32 noundef 1) #10
  unreachable

768:                                              ; No predecessors!
  br label %769

769:                                              ; preds = %768
  br label %770

770:                                              ; preds = %769, %711
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  %775 = call i32 @s2n_cleanup()
  %776 = icmp eq i32 %775, -1
  br i1 %776, label %777, label %828

777:                                              ; preds = %774
  br label %778

778:                                              ; preds = %777
  br label %779

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

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

791:                                              ; preds = %786
  %792 = load i32, ptr %21, align 4, !tbaa !5
  %793 = call ptr @__errno_location() #9
  store i32 %792, ptr %793, align 4, !tbaa !5
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror(i32 noundef %797, ptr noundef @.str.4)
  %799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror_debug(i32 noundef %800, ptr noundef @.str.4)
  %802 = call ptr @__errno_location() #9
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @strerror(i32 noundef %803) #8
  %805 = call ptr @__errno_location() #9
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %794, ptr noundef @.str.2, i32 noundef %795, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 60, ptr noundef %798, ptr noundef %801, ptr noundef %804, i32 noundef %806) #8
  br label %825

808:                                              ; preds = %786, %779
  %809 = load i32, ptr %21, align 4, !tbaa !5
  %810 = call ptr @__errno_location() #9
  store i32 %809, ptr %810, align 4, !tbaa !5
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror(i32 noundef %814, ptr noundef @.str.4)
  %816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror_debug(i32 noundef %817, ptr noundef @.str.4)
  %819 = call ptr @__errno_location() #9
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #8
  %822 = call ptr @__errno_location() #9
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %811, ptr noundef @.str.5, i32 noundef %812, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 60, ptr noundef %815, ptr noundef %818, ptr noundef %821, i32 noundef %823) #8
  br label %825

825:                                              ; preds = %808, %791
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %826

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

827:                                              ; No predecessors!
  br label %828

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

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  %832 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %885

834:                                              ; preds = %831
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %837 = call ptr @__errno_location() #9
  %838 = load i32, ptr %837, align 4, !tbaa !5
  store i32 %838, ptr %22, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839)
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc i8 %841 to i1
  br i1 %842, label %843, label %865

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #8
  %846 = call i32 @isatty(i32 noundef %845) #8
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %865

848:                                              ; preds = %843
  %849 = load i32, ptr %22, align 4, !tbaa !5
  %850 = call ptr @__errno_location() #9
  store i32 %849, ptr %850, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef @.str.4)
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef @.str.4)
  %859 = call ptr @__errno_location() #9
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #8
  %862 = call ptr @__errno_location() #9
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef @.str.2, i32 noundef %852, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %855, ptr noundef %858, ptr noundef %861, i32 noundef %863) #8
  br label %882

865:                                              ; preds = %843, %836
  %866 = load i32, ptr %22, align 4, !tbaa !5
  %867 = call ptr @__errno_location() #9
  store i32 %866, ptr %867, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef @.str.4)
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef @.str.4)
  %876 = call ptr @__errno_location() #9
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @strerror(i32 noundef %877) #8
  %879 = call ptr @__errno_location() #9
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef @.str.5, i32 noundef %869, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %872, ptr noundef %875, ptr noundef %878, i32 noundef %880) #8
  br label %882

882:                                              ; preds = %865, %848
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %883

883:                                              ; preds = %882
  call void @exit(i32 noundef 1) #10
  unreachable

884:                                              ; No predecessors!
  br label %885

885:                                              ; preds = %884, %831
  br label %886

886:                                              ; preds = %885
  %887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %888 = trunc i8 %887 to i1
  br i1 %888, label %889, label %905

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

894:                                              ; preds = %889
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = icmp ne i32 %895, 0
  br i1 %896, label %897, label %901

897:                                              ; preds = %894
  %898 = load ptr, ptr @stdout, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef @.str.19, i32 noundef %899) #8
  br label %904

901:                                              ; preds = %894
  %902 = load ptr, ptr @stdout, align 8, !tbaa !9
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef @.str.20) #8
  br label %904

904:                                              ; preds = %901, %897
  br label %916

905:                                              ; preds = %889, %886
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = icmp ne i32 %906, 0
  br i1 %907, label %908, label %912

908:                                              ; preds = %905
  %909 = load ptr, ptr @stdout, align 8, !tbaa !9
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %909, ptr noundef @.str.21, i32 noundef %910) #8
  br label %915

912:                                              ; preds = %905
  %913 = load ptr, ptr @stdout, align 8, !tbaa !9
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.22) #8
  br label %915

915:                                              ; preds = %912, %908
  br label %916

916:                                              ; preds = %915, %904
  store i32 0, ptr %3, align 4
  br label %918

917:                                              ; No predecessors!
  br label %918

918:                                              ; preds = %917, %916
  %919 = load i32, ptr %3, align 4
  ret i32 %919
}

; 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

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

declare i32 @s2n_connection_set_secrets(ptr noundef) #2

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

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

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_free(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 = { 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 #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { 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 = !{}


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_custom_send_fn_called = 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 [80 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 [72 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = 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 i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %4 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %6 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7 = tail call i32 @fflush(ptr noundef %6)
  %8 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %9 = icmp eq i32 %8, -1
  br i1 %9, label %10, label %34

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

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

21:                                               ; preds = %17, %10
  br label %22

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

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

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

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #9
  %49 = tail call i32 @isatty(i32 noundef %48) #9
  %.not50 = icmp eq i32 %49, 0
  br i1 %.not50, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink62 = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #9
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #9
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #9
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink62, i32 noundef %53, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

63:                                               ; preds = %34
  %64 = tail call i32 @s2n_init() #9
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

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

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #9
  %76 = tail call i32 @isatty(i32 noundef %75) #9
  %.not49 = icmp eq i32 %76, 0
  br i1 %.not49, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

78:                                               ; preds = %73, %77
  %.str.5.sink73 = phi ptr [ @.str.5, %77 ], [ @.str.2, %73 ]
  store i32 %68, ptr %67, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror(i32 noundef %82, ptr noundef nonnull @.str.4) #9
  %84 = load i32, ptr %81, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror_debug(i32 noundef %84, ptr noundef nonnull @.str.4) #9
  %86 = load i32, ptr %67, align 4, !tbaa !5
  %87 = tail call ptr @strerror(i32 noundef %86) #9
  %88 = load i32, ptr %67, align 4, !tbaa !5
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull %.str.5.sink73, i32 noundef %80, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %83, ptr noundef %85, ptr noundef %87, i32 noundef %88) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

90:                                               ; preds = %63
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr @test_count, align 4, !tbaa !5
  %93 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  %94 = icmp eq ptr %93, null
  br i1 %94, label %95, label %119

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

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #9
  %105 = tail call i32 @isatty(i32 noundef %104) #9
  %.not48 = icmp eq i32 %105, 0
  br i1 %.not48, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink84 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #9
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #9
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #9
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink84, i32 noundef %109, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

119:                                              ; preds = %90
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 @s2n_connection_set_secrets(ptr noundef nonnull %93) #9
  %123 = tail call zeroext i1 @s2n_result_is_ok(i32 %122)
  br i1 %123, label %148, label %124

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

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #9
  %134 = tail call i32 @isatty(i32 noundef %133) #9
  %.not = icmp eq i32 %134, 0
  br i1 %.not, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink95 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #9
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #9
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #9
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink95, i32 noundef %138, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

148:                                              ; preds = %119
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = tail call i32 @s2n_connection_set_send_cb(ptr noundef nonnull %93, ptr noundef nonnull @s2n_expect_concurrent_error_send_fn) #9
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %177

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

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = tail call i32 @fileno(ptr noundef %161) #9
  %163 = tail call i32 @isatty(i32 noundef %162) #9
  %.not47 = icmp eq i32 %163, 0
  br i1 %.not47, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink106 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = tail call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #9
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = tail call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #9
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = tail call ptr @strerror(i32 noundef %173) #9
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink106, i32 noundef %167, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

177:                                              ; preds = %148
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = tail call i32 @s2n_connection_set_send_ctx(ptr noundef nonnull %93, ptr noundef nonnull %93) #9
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %206

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

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = tail call i32 @fileno(ptr noundef %190) #9
  %192 = tail call i32 @isatty(i32 noundef %191) #9
  %.not46 = icmp eq i32 %192, 0
  br i1 %.not46, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink117 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = tail call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #9
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = tail call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #9
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = tail call ptr @strerror(i32 noundef %202) #9
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink117, i32 noundef %196, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

206:                                              ; preds = %177
  store i8 0, ptr @s2n_custom_send_fn_called, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #9
  store i32 0, ptr %3, align 4, !tbaa !5
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 @s2n_negotiate(ptr noundef nonnull %93, ptr noundef nonnull %3) #9
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %235, label %211

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

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #9
  %221 = call i32 @isatty(i32 noundef %220) #9
  %.not36 = icmp eq i32 %221, 0
  br i1 %.not36, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink128 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #9
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #9
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = call ptr @strerror(i32 noundef %231) #9
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink128, i32 noundef %225, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #11
  call void @exit(i32 noundef 1) #12
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = icmp eq i32 %239, 67108864
  br i1 %240, label %264, label %241

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

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @fileno(ptr noundef %249) #9
  %251 = call i32 @isatty(i32 noundef %250) #9
  %.not37 = icmp eq i32 %251, 0
  br i1 %.not37, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink139 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = load i32, ptr %238, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef nonnull @.str.4) #9
  %258 = load i32, ptr %238, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #9
  %260 = load i32, ptr %242, align 4, !tbaa !5
  %261 = call ptr @strerror(i32 noundef %260) #9
  %262 = load i32, ptr %242, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink139, i32 noundef %255, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #11
  call void @exit(i32 noundef 1) #12
  unreachable

264:                                              ; preds = %235
  %265 = add nsw i32 %236, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef 67108864, ptr noundef nonnull @.str.4) #9
  %267 = icmp eq ptr %266, null
  br i1 %267, label %268, label %291

268:                                              ; preds = %264
  %269 = tail call ptr @__errno_location() #10
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @s2n_print_stacktrace(ptr noundef %271) #9
  %273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %274 = trunc nuw i8 %273 to i1
  br i1 %274, label %275, label %279

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @fileno(ptr noundef %276) #9
  %278 = call i32 @isatty(i32 noundef %277) #9
  %.not45 = icmp eq i32 %278, 0
  br i1 %.not45, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink148 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = load i32, ptr %238, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.4) #9
  %285 = load i32, ptr %238, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.4) #9
  %287 = load i32, ptr %269, align 4, !tbaa !5
  %288 = call ptr @strerror(i32 noundef %287) #9
  %289 = load i32, ptr %269, align 4, !tbaa !5
  %290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink148, i32 noundef %282, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #11
  call void @exit(i32 noundef 1) #12
  unreachable

291:                                              ; preds = %264
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %292 = tail call ptr @__errno_location() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = load i8, ptr @s2n_custom_send_fn_called, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc nuw i8 %295 to i1
  br i1 %296, label %319, label %297

297:                                              ; preds = %291
  %298 = load i32, ptr %292, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @s2n_print_stacktrace(ptr noundef %299) #9
  %301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %302 = trunc nuw i8 %301 to i1
  br i1 %302, label %303, label %307

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

307:                                              ; preds = %303, %297
  br label %308

308:                                              ; preds = %303, %307
  %.str.5.sink157 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %292, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = load i32, ptr %238, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror(i32 noundef %311, ptr noundef nonnull @.str.4) #9
  %313 = load i32, ptr %238, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef nonnull @.str.4) #9
  %315 = load i32, ptr %292, align 4, !tbaa !5
  %316 = call ptr @strerror(i32 noundef %315) #9
  %317 = load i32, ptr %292, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink157, i32 noundef %310, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef %317) #11
  call void @exit(i32 noundef 1) #12
  unreachable

319:                                              ; preds = %291
  %320 = add nsw i32 %293, 2
  store i32 %320, ptr @test_count, align 4, !tbaa !5
  %321 = call i32 @s2n_connection_free(ptr noundef nonnull %93) #9
  %322 = icmp eq i32 %321, -1
  br i1 %322, label %323, label %345

323:                                              ; preds = %319
  %324 = load i32, ptr %292, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @s2n_print_stacktrace(ptr noundef %325) #9
  %327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %328 = trunc nuw i8 %327 to i1
  br i1 %328, label %329, label %333

329:                                              ; preds = %323
  %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
  %.not44 = icmp eq i32 %332, 0
  br i1 %.not44, label %333, label %334

333:                                              ; preds = %329, %323
  br label %334

334:                                              ; preds = %329, %333
  %.str.5.sink166 = phi ptr [ @.str.5, %333 ], [ @.str.2, %329 ]
  store i32 %324, ptr %292, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = load i32, ptr %238, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror(i32 noundef %337, ptr noundef nonnull @.str.4) #9
  %339 = load i32, ptr %238, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef nonnull @.str.4) #9
  %341 = load i32, ptr %292, align 4, !tbaa !5
  %342 = call ptr @strerror(i32 noundef %341) #9
  %343 = load i32, ptr %292, align 4, !tbaa !5
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef nonnull %.str.5.sink166, i32 noundef %336, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %338, ptr noundef %340, ptr noundef %342, i32 noundef %343) #11
  call void @exit(i32 noundef 1) #12
  unreachable

345:                                              ; preds = %319
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #9
  %346 = call i32 @s2n_cleanup() #9
  %347 = icmp eq i32 %346, -1
  br i1 %347, label %348, label %370

348:                                              ; preds = %345
  %349 = load i32, ptr %292, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @s2n_print_stacktrace(ptr noundef %350) #9
  %352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %353 = trunc nuw i8 %352 to i1
  br i1 %353, label %354, label %358

354:                                              ; preds = %348
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @fileno(ptr noundef %355) #9
  %357 = call i32 @isatty(i32 noundef %356) #9
  %.not43 = icmp eq i32 %357, 0
  br i1 %.not43, label %358, label %359

358:                                              ; preds = %354, %348
  br label %359

359:                                              ; preds = %354, %358
  %.str.5.sink175 = phi ptr [ @.str.5, %358 ], [ @.str.2, %354 ]
  store i32 %349, ptr %292, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = load i32, ptr %238, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror(i32 noundef %362, ptr noundef nonnull @.str.4) #9
  %364 = load i32, ptr %238, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef nonnull @.str.4) #9
  %366 = load i32, ptr %292, align 4, !tbaa !5
  %367 = call ptr @strerror(i32 noundef %366) #9
  %368 = load i32, ptr %292, align 4, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull %.str.5.sink175, i32 noundef %361, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %363, ptr noundef %365, ptr noundef %367, i32 noundef %368) #11
  call void @exit(i32 noundef 1) #12
  unreachable

370:                                              ; preds = %345
  %371 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %373, label %395

373:                                              ; preds = %370
  %374 = load i32, ptr %292, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = call i32 @s2n_print_stacktrace(ptr noundef %375) #9
  %377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %378 = trunc nuw i8 %377 to i1
  br i1 %378, label %379, label %383

379:                                              ; preds = %373
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = call i32 @fileno(ptr noundef %380) #9
  %382 = call i32 @isatty(i32 noundef %381) #9
  %.not42 = icmp eq i32 %382, 0
  br i1 %.not42, label %383, label %384

383:                                              ; preds = %379, %373
  br label %384

384:                                              ; preds = %379, %383
  %.str.5.sink184 = phi ptr [ @.str.5, %383 ], [ @.str.2, %379 ]
  store i32 %374, ptr %292, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = load i32, ptr %238, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror(i32 noundef %387, ptr noundef nonnull @.str.4) #9
  %389 = load i32, ptr %238, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror_debug(i32 noundef %389, ptr noundef nonnull @.str.4) #9
  %391 = load i32, ptr %292, align 4, !tbaa !5
  %392 = call ptr @strerror(i32 noundef %391) #9
  %393 = load i32, ptr %292, align 4, !tbaa !5
  %394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull %.str.5.sink184, i32 noundef %386, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %388, ptr noundef %390, ptr noundef %392, i32 noundef %393) #11
  call void @exit(i32 noundef 1) #12
  unreachable

395:                                              ; preds = %370
  %396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %397 = trunc nuw i8 %396 to i1
  br i1 %397, label %398, label %409

398:                                              ; preds = %395
  %399 = load ptr, ptr @stdout, align 8, !tbaa !9
  %400 = call i32 @fileno(ptr noundef %399) #9
  %401 = call i32 @isatty(i32 noundef %400) #9
  %.not39 = icmp eq i32 %401, 0
  br i1 %.not39, label %409, label %402

402:                                              ; preds = %398
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not41 = icmp eq i32 %403, 0
  %404 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not41, label %407, label %405

405:                                              ; preds = %402
  %406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef nonnull @.str.19, i32 noundef %403) #9
  br label %416

407:                                              ; preds = %402
  %408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef nonnull @.str.20) #9
  br label %416

409:                                              ; preds = %398, %395
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not40 = icmp eq i32 %410, 0
  %411 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not40, label %414, label %412

412:                                              ; preds = %409
  %413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef nonnull @.str.21, i32 noundef %410) #9
  br label %416

414:                                              ; preds = %409
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef nonnull @.str.22) #9
  br label %416

416:                                              ; preds = %412, %414, %405, %407
  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

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

declare i32 @s2n_connection_set_secrets(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_connection_set_send_ctx(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 i32 @s2n_connection_free(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 = { 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 = { cold nounwind }
attributes #12 = { 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 = !{}


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