; LLVM IR from aws/s2n-tls :: tests/unit (s2n_error_type_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"

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [78 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, 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
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  br label %25

25:                                               ; preds = %0
  br label %26

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

31:                                               ; preds = %26
  %32 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %33 = icmp eq i32 %32, -1
  br i1 %33, label %34, label %85

34:                                               ; preds = %31
  br label %35

35:                                               ; preds = %34
  br label %36

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

43:                                               ; preds = %36
  %44 = load ptr, ptr @stderr, align 8, !tbaa !9
  %45 = call i32 @fileno(ptr noundef %44) #7
  %46 = call i32 @isatty(i32 noundef %45) #7
  %47 = icmp ne i32 %46, 0
  br i1 %47, label %48, label %65

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

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

82:                                               ; preds = %65, %48
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  br label %83

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

84:                                               ; No predecessors!
  br label %85

85:                                               ; preds = %84, %31
  br label %86

86:                                               ; preds = %85
  br label %87

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

92:                                               ; preds = %87
  br label %93

93:                                               ; preds = %92
  br label %94

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

101:                                              ; preds = %94
  %102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %103 = call i32 @fileno(ptr noundef %102) #7
  %104 = call i32 @isatty(i32 noundef %103) #7
  %105 = icmp ne i32 %104, 0
  br i1 %105, label %106, label %123

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

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

140:                                              ; preds = %123, %106
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  br label %141

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

142:                                              ; No predecessors!
  br label %143

143:                                              ; preds = %142, %87
  br label %144

144:                                              ; preds = %143
  br label %145

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145
  %147 = call i32 @s2n_init()
  %148 = icmp eq i32 %147, -1
  br i1 %148, label %149, label %200

149:                                              ; preds = %146
  br label %150

150:                                              ; preds = %149
  br label %151

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

158:                                              ; preds = %151
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = call i32 @fileno(ptr noundef %159) #7
  %161 = call i32 @isatty(i32 noundef %160) #7
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %163, label %180

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

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

197:                                              ; preds = %180, %163
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  br label %198

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

199:                                              ; No predecessors!
  br label %200

200:                                              ; preds = %199, %146
  br label %201

201:                                              ; preds = %200
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr @test_count, align 4, !tbaa !5
  %206 = call i32 (...) @s2n_disable_tls13_in_test()
  %207 = icmp eq i32 %206, -1
  br i1 %207, label %208, label %259

208:                                              ; preds = %203
  br label %209

209:                                              ; preds = %208
  br label %210

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

217:                                              ; preds = %210
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = call i32 @fileno(ptr noundef %218) #7
  %220 = call i32 @isatty(i32 noundef %219) #7
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %239

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

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

256:                                              ; preds = %239, %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  br label %257

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

258:                                              ; No predecessors!
  br label %259

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

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %265 = call ptr @s2n_errno_location()
  %266 = icmp eq ptr %264, %265
  br i1 %266, label %318, label %267

267:                                              ; preds = %261
  br label %268

268:                                              ; preds = %267
  br label %269

269:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %270 = call ptr @__errno_location() #8
  %271 = load i32, ptr %270, align 4, !tbaa !5
  store i32 %271, ptr %6, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = call i32 @s2n_print_stacktrace(ptr noundef %272)
  %274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %275 = trunc i8 %274 to i1
  br i1 %275, label %276, label %298

276:                                              ; preds = %269
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @fileno(ptr noundef %277) #7
  %279 = call i32 @isatty(i32 noundef %278) #7
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %281, label %298

281:                                              ; preds = %276
  %282 = load i32, ptr %6, align 4, !tbaa !5
  %283 = call ptr @__errno_location() #8
  store i32 %282, ptr %283, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror(i32 noundef %287, ptr noundef @.str.4)
  %289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef @.str.4)
  %292 = call ptr @__errno_location() #8
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #7
  %295 = call ptr @__errno_location() #8
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef @.str.2, i32 noundef %285, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 27, ptr noundef %288, ptr noundef %291, ptr noundef %294, i32 noundef %296) #7
  br label %315

298:                                              ; preds = %276, %269
  %299 = load i32, ptr %6, align 4, !tbaa !5
  %300 = call ptr @__errno_location() #8
  store i32 %299, ptr %300, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef @.str.4)
  %306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef @.str.4)
  %309 = call ptr @__errno_location() #8
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @strerror(i32 noundef %310) #7
  %312 = call ptr @__errno_location() #8
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef @.str.5, i32 noundef %302, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 27, ptr noundef %305, ptr noundef %308, ptr noundef %311, i32 noundef %313) #7
  br label %315

315:                                              ; preds = %298, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %316

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

317:                                              ; No predecessors!
  br label %318

318:                                              ; preds = %317, %261
  br label %319

319:                                              ; preds = %318
  %320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %320, align 4, !tbaa !5
  br label %321

321:                                              ; preds = %319
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = add nsw i32 %322, 1
  store i32 %323, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call i32 @s2n_error_get_type(i32 noundef %325)
  %327 = icmp eq i32 0, %326
  br i1 %327, label %379, label %328

328:                                              ; preds = %321
  br label %329

329:                                              ; preds = %328
  br label %330

330:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %331 = call ptr @__errno_location() #8
  %332 = load i32, ptr %331, align 4, !tbaa !5
  store i32 %332, ptr %7, align 4, !tbaa !5
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = call i32 @s2n_print_stacktrace(ptr noundef %333)
  %335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %336 = trunc i8 %335 to i1
  br i1 %336, label %337, label %359

337:                                              ; preds = %330
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = call i32 @fileno(ptr noundef %338) #7
  %340 = call i32 @isatty(i32 noundef %339) #7
  %341 = icmp ne i32 %340, 0
  br i1 %341, label %342, label %359

342:                                              ; preds = %337
  %343 = load i32, ptr %7, align 4, !tbaa !5
  %344 = call ptr @__errno_location() #8
  store i32 %343, ptr %344, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror(i32 noundef %348, ptr noundef @.str.4)
  %350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call ptr @s2n_strerror_debug(i32 noundef %351, ptr noundef @.str.4)
  %353 = call ptr @__errno_location() #8
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @strerror(i32 noundef %354) #7
  %356 = call ptr @__errno_location() #8
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef @.str.2, i32 noundef %346, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 30, ptr noundef %349, ptr noundef %352, ptr noundef %355, i32 noundef %357) #7
  br label %376

359:                                              ; preds = %337, %330
  %360 = load i32, ptr %7, align 4, !tbaa !5
  %361 = call ptr @__errno_location() #8
  store i32 %360, ptr %361, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror(i32 noundef %365, ptr noundef @.str.4)
  %367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef @.str.4)
  %370 = call ptr @__errno_location() #8
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #7
  %373 = call ptr @__errno_location() #8
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str.5, i32 noundef %363, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 30, ptr noundef %366, ptr noundef %369, ptr noundef %372, i32 noundef %374) #7
  br label %376

376:                                              ; preds = %359, %342
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %377

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

378:                                              ; No predecessors!
  br label %379

379:                                              ; preds = %378, %321
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = call ptr @s2n_errno_location()
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call i32 @s2n_error_get_type(i32 noundef %385)
  %387 = icmp eq i32 0, %386
  br i1 %387, label %439, label %388

388:                                              ; preds = %381
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %391 = call ptr @__errno_location() #8
  %392 = load i32, ptr %391, align 4, !tbaa !5
  store i32 %392, ptr %8, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = call i32 @s2n_print_stacktrace(ptr noundef %393)
  %395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %396 = trunc i8 %395 to i1
  br i1 %396, label %397, label %419

397:                                              ; preds = %390
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @fileno(ptr noundef %398) #7
  %400 = call i32 @isatty(i32 noundef %399) #7
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %402, label %419

402:                                              ; preds = %397
  %403 = load i32, ptr %8, align 4, !tbaa !5
  %404 = call ptr @__errno_location() #8
  store i32 %403, ptr %404, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror(i32 noundef %408, ptr noundef @.str.4)
  %410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror_debug(i32 noundef %411, ptr noundef @.str.4)
  %413 = call ptr @__errno_location() #8
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @strerror(i32 noundef %414) #7
  %416 = call ptr @__errno_location() #8
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %405, ptr noundef @.str.2, i32 noundef %406, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 31, ptr noundef %409, ptr noundef %412, ptr noundef %415, i32 noundef %417) #7
  br label %436

419:                                              ; preds = %397, %390
  %420 = load i32, ptr %8, align 4, !tbaa !5
  %421 = call ptr @__errno_location() #8
  store i32 %420, ptr %421, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef @.str.4)
  %427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror_debug(i32 noundef %428, ptr noundef @.str.4)
  %430 = call ptr @__errno_location() #8
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @strerror(i32 noundef %431) #7
  %433 = call ptr @__errno_location() #8
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef @.str.5, i32 noundef %423, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 31, ptr noundef %426, ptr noundef %429, ptr noundef %432, i32 noundef %434) #7
  br label %436

436:                                              ; preds = %419, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  br label %437

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

438:                                              ; No predecessors!
  br label %439

439:                                              ; preds = %438, %381
  br label %440

440:                                              ; preds = %439
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 67108864, ptr %441, align 4, !tbaa !5
  br label %442

442:                                              ; preds = %440
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call i32 @s2n_error_get_type(i32 noundef %446)
  %448 = icmp eq i32 1, %447
  br i1 %448, label %500, label %449

449:                                              ; preds = %442
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %452 = call ptr @__errno_location() #8
  %453 = load i32, ptr %452, align 4, !tbaa !5
  store i32 %453, ptr %9, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @s2n_print_stacktrace(ptr noundef %454)
  %456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %480

458:                                              ; preds = %451
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @fileno(ptr noundef %459) #7
  %461 = call i32 @isatty(i32 noundef %460) #7
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %480

463:                                              ; preds = %458
  %464 = load i32, ptr %9, align 4, !tbaa !5
  %465 = call ptr @__errno_location() #8
  store i32 %464, ptr %465, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror(i32 noundef %469, ptr noundef @.str.4)
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror_debug(i32 noundef %472, ptr noundef @.str.4)
  %474 = call ptr @__errno_location() #8
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #7
  %477 = call ptr @__errno_location() #8
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %466, ptr noundef @.str.2, i32 noundef %467, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %470, ptr noundef %473, ptr noundef %476, i32 noundef %478) #7
  br label %497

480:                                              ; preds = %458, %451
  %481 = load i32, ptr %9, align 4, !tbaa !5
  %482 = call ptr @__errno_location() #8
  store i32 %481, ptr %482, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror(i32 noundef %486, ptr noundef @.str.4)
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror_debug(i32 noundef %489, ptr noundef @.str.4)
  %491 = call ptr @__errno_location() #8
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @strerror(i32 noundef %492) #7
  %494 = call ptr @__errno_location() #8
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef @.str.5, i32 noundef %484, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %487, ptr noundef %490, ptr noundef %493, i32 noundef %495) #7
  br label %497

497:                                              ; preds = %480, %463
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %498

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

499:                                              ; No predecessors!
  br label %500

500:                                              ; preds = %499, %442
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = call ptr @s2n_errno_location()
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call i32 @s2n_error_get_type(i32 noundef %506)
  %508 = icmp eq i32 1, %507
  br i1 %508, label %560, label %509

509:                                              ; preds = %502
  br label %510

510:                                              ; preds = %509
  br label %511

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

518:                                              ; preds = %511
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @fileno(ptr noundef %519) #7
  %521 = call i32 @isatty(i32 noundef %520) #7
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %540

523:                                              ; preds = %518
  %524 = load i32, ptr %10, align 4, !tbaa !5
  %525 = call ptr @__errno_location() #8
  store i32 %524, ptr %525, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef @.str.4)
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror_debug(i32 noundef %532, ptr noundef @.str.4)
  %534 = call ptr @__errno_location() #8
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @strerror(i32 noundef %535) #7
  %537 = call ptr @__errno_location() #8
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef @.str.2, i32 noundef %527, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 34, ptr noundef %530, ptr noundef %533, ptr noundef %536, i32 noundef %538) #7
  br label %557

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

557:                                              ; preds = %540, %523
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %558

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

559:                                              ; No predecessors!
  br label %560

560:                                              ; preds = %559, %502
  br label %561

561:                                              ; preds = %560
  %562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 134217728, ptr %562, align 4, !tbaa !5
  br label %563

563:                                              ; preds = %561
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call i32 @s2n_error_get_type(i32 noundef %567)
  %569 = icmp eq i32 2, %568
  br i1 %569, label %621, label %570

570:                                              ; preds = %563
  br label %571

571:                                              ; preds = %570
  br label %572

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

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

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

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

618:                                              ; preds = %601, %584
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %619

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

620:                                              ; No predecessors!
  br label %621

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

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = call ptr @s2n_errno_location()
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call i32 @s2n_error_get_type(i32 noundef %627)
  %629 = icmp eq i32 2, %628
  br i1 %629, label %681, label %630

630:                                              ; preds = %623
  br label %631

631:                                              ; preds = %630
  br label %632

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

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

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

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

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

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

680:                                              ; No predecessors!
  br label %681

681:                                              ; preds = %680, %623
  br label %682

682:                                              ; preds = %681
  %683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 201326592, ptr %683, align 4, !tbaa !5
  br label %684

684:                                              ; preds = %682
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr @test_count, align 4, !tbaa !5
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call i32 @s2n_error_get_type(i32 noundef %688)
  %690 = icmp eq i32 3, %689
  br i1 %690, label %742, label %691

691:                                              ; preds = %684
  br label %692

692:                                              ; preds = %691
  br label %693

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

700:                                              ; preds = %693
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @fileno(ptr noundef %701) #7
  %703 = call i32 @isatty(i32 noundef %702) #7
  %704 = icmp ne i32 %703, 0
  br i1 %704, label %705, label %722

705:                                              ; preds = %700
  %706 = load i32, ptr %13, align 4, !tbaa !5
  %707 = call ptr @__errno_location() #8
  store i32 %706, ptr %707, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror(i32 noundef %711, ptr noundef @.str.4)
  %713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror_debug(i32 noundef %714, ptr noundef @.str.4)
  %716 = call ptr @__errno_location() #8
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @strerror(i32 noundef %717) #7
  %719 = call ptr @__errno_location() #8
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %708, ptr noundef @.str.2, i32 noundef %709, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 39, ptr noundef %712, ptr noundef %715, ptr noundef %718, i32 noundef %720) #7
  br label %739

722:                                              ; preds = %700, %693
  %723 = load i32, ptr %13, align 4, !tbaa !5
  %724 = call ptr @__errno_location() #8
  store i32 %723, ptr %724, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef @.str.4)
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef @.str.4)
  %733 = call ptr @__errno_location() #8
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #7
  %736 = call ptr @__errno_location() #8
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef @.str.5, i32 noundef %726, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 39, ptr noundef %729, ptr noundef %732, ptr noundef %735, i32 noundef %737) #7
  br label %739

739:                                              ; preds = %722, %705
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %740

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

741:                                              ; No predecessors!
  br label %742

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

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call ptr @s2n_errno_location()
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call i32 @s2n_error_get_type(i32 noundef %748)
  %750 = icmp eq i32 3, %749
  br i1 %750, label %802, label %751

751:                                              ; preds = %744
  br label %752

752:                                              ; preds = %751
  br label %753

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

760:                                              ; preds = %753
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = call i32 @fileno(ptr noundef %761) #7
  %763 = call i32 @isatty(i32 noundef %762) #7
  %764 = icmp ne i32 %763, 0
  br i1 %764, label %765, label %782

765:                                              ; preds = %760
  %766 = load i32, ptr %14, align 4, !tbaa !5
  %767 = call ptr @__errno_location() #8
  store i32 %766, ptr %767, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef @.str.4)
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef @.str.4)
  %776 = call ptr @__errno_location() #8
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #7
  %779 = call ptr @__errno_location() #8
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.2, i32 noundef %769, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 40, ptr noundef %772, ptr noundef %775, ptr noundef %778, i32 noundef %780) #7
  br label %799

782:                                              ; preds = %760, %753
  %783 = load i32, ptr %14, align 4, !tbaa !5
  %784 = call ptr @__errno_location() #8
  store i32 %783, ptr %784, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = load i32, ptr @test_count, align 4, !tbaa !5
  %787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror(i32 noundef %788, ptr noundef @.str.4)
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef @.str.4)
  %793 = call ptr @__errno_location() #8
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #7
  %796 = call ptr @__errno_location() #8
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %785, ptr noundef @.str.5, i32 noundef %786, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 40, ptr noundef %789, ptr noundef %792, ptr noundef %795, i32 noundef %797) #7
  br label %799

799:                                              ; preds = %782, %765
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %800

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

801:                                              ; No predecessors!
  br label %802

802:                                              ; preds = %801, %744
  br label %803

803:                                              ; preds = %802
  %804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 268435456, ptr %804, align 4, !tbaa !5
  br label %805

805:                                              ; preds = %803
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr @test_count, align 4, !tbaa !5
  %808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call i32 @s2n_error_get_type(i32 noundef %809)
  %811 = icmp eq i32 4, %810
  br i1 %811, label %863, label %812

812:                                              ; preds = %805
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %815 = call ptr @__errno_location() #8
  %816 = load i32, ptr %815, align 4, !tbaa !5
  store i32 %816, ptr %15, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @s2n_print_stacktrace(ptr noundef %817)
  %819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %820 = trunc i8 %819 to i1
  br i1 %820, label %821, label %843

821:                                              ; preds = %814
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = call i32 @fileno(ptr noundef %822) #7
  %824 = call i32 @isatty(i32 noundef %823) #7
  %825 = icmp ne i32 %824, 0
  br i1 %825, label %826, label %843

826:                                              ; preds = %821
  %827 = load i32, ptr %15, align 4, !tbaa !5
  %828 = call ptr @__errno_location() #8
  store i32 %827, ptr %828, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef @.str.4)
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef @.str.4)
  %837 = call ptr @__errno_location() #8
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #7
  %840 = call ptr @__errno_location() #8
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.2, i32 noundef %830, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 42, ptr noundef %833, ptr noundef %836, ptr noundef %839, i32 noundef %841) #7
  br label %860

843:                                              ; preds = %821, %814
  %844 = load i32, ptr %15, align 4, !tbaa !5
  %845 = call ptr @__errno_location() #8
  store i32 %844, ptr %845, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror(i32 noundef %849, ptr noundef @.str.4)
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef @.str.4)
  %854 = call ptr @__errno_location() #8
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #7
  %857 = call ptr @__errno_location() #8
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef @.str.5, i32 noundef %847, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 42, ptr noundef %850, ptr noundef %853, ptr noundef %856, i32 noundef %858) #7
  br label %860

860:                                              ; preds = %843, %826
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %861

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

862:                                              ; No predecessors!
  br label %863

863:                                              ; preds = %862, %805
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = call ptr @s2n_errno_location()
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call i32 @s2n_error_get_type(i32 noundef %869)
  %871 = icmp eq i32 4, %870
  br i1 %871, label %923, label %872

872:                                              ; preds = %865
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %875 = call ptr @__errno_location() #8
  %876 = load i32, ptr %875, align 4, !tbaa !5
  store i32 %876, ptr %16, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877)
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc i8 %879 to i1
  br i1 %880, label %881, label %903

881:                                              ; preds = %874
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #7
  %884 = call i32 @isatty(i32 noundef %883) #7
  %885 = icmp ne i32 %884, 0
  br i1 %885, label %886, label %903

886:                                              ; preds = %881
  %887 = load i32, ptr %16, align 4, !tbaa !5
  %888 = call ptr @__errno_location() #8
  store i32 %887, ptr %888, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror(i32 noundef %892, ptr noundef @.str.4)
  %894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror_debug(i32 noundef %895, ptr noundef @.str.4)
  %897 = call ptr @__errno_location() #8
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @strerror(i32 noundef %898) #7
  %900 = call ptr @__errno_location() #8
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %889, ptr noundef @.str.2, i32 noundef %890, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 43, ptr noundef %893, ptr noundef %896, ptr noundef %899, i32 noundef %901) #7
  br label %920

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

920:                                              ; preds = %903, %886
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %921

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

922:                                              ; No predecessors!
  br label %923

923:                                              ; preds = %922, %865
  br label %924

924:                                              ; preds = %923
  %925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 335544322, ptr %925, align 4, !tbaa !5
  br label %926

926:                                              ; preds = %924
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr @test_count, align 4, !tbaa !5
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call i32 @s2n_error_get_type(i32 noundef %930)
  %932 = icmp eq i32 5, %931
  br i1 %932, label %984, label %933

933:                                              ; preds = %926
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %936 = call ptr @__errno_location() #8
  %937 = load i32, ptr %936, align 4, !tbaa !5
  store i32 %937, ptr %17, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = call i32 @s2n_print_stacktrace(ptr noundef %938)
  %940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %941 = trunc i8 %940 to i1
  br i1 %941, label %942, label %964

942:                                              ; preds = %935
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @fileno(ptr noundef %943) #7
  %945 = call i32 @isatty(i32 noundef %944) #7
  %946 = icmp ne i32 %945, 0
  br i1 %946, label %947, label %964

947:                                              ; preds = %942
  %948 = load i32, ptr %17, align 4, !tbaa !5
  %949 = call ptr @__errno_location() #8
  store i32 %948, ptr %949, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @s2n_strerror(i32 noundef %953, ptr noundef @.str.4)
  %955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror_debug(i32 noundef %956, ptr noundef @.str.4)
  %958 = call ptr @__errno_location() #8
  %959 = load i32, ptr %958, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #7
  %961 = call ptr @__errno_location() #8
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef @.str.2, i32 noundef %951, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 45, ptr noundef %954, ptr noundef %957, ptr noundef %960, i32 noundef %962) #7
  br label %981

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

981:                                              ; preds = %964, %947
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %982

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

983:                                              ; No predecessors!
  br label %984

984:                                              ; preds = %983, %926
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = add nsw i32 %987, 1
  store i32 %988, ptr @test_count, align 4, !tbaa !5
  %989 = call ptr @s2n_errno_location()
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call i32 @s2n_error_get_type(i32 noundef %990)
  %992 = icmp eq i32 5, %991
  br i1 %992, label %1044, label %993

993:                                              ; preds = %986
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %996 = call ptr @__errno_location() #8
  %997 = load i32, ptr %996, align 4, !tbaa !5
  store i32 %997, ptr %18, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @s2n_print_stacktrace(ptr noundef %998)
  %1000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1001 = trunc i8 %1000 to i1
  br i1 %1001, label %1002, label %1024

1002:                                             ; preds = %995
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @fileno(ptr noundef %1003) #7
  %1005 = call i32 @isatty(i32 noundef %1004) #7
  %1006 = icmp ne i32 %1005, 0
  br i1 %1006, label %1007, label %1024

1007:                                             ; preds = %1002
  %1008 = load i32, ptr %18, align 4, !tbaa !5
  %1009 = call ptr @__errno_location() #8
  store i32 %1008, ptr %1009, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror(i32 noundef %1013, ptr noundef @.str.4)
  %1015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef %1016, ptr noundef @.str.4)
  %1018 = call ptr @__errno_location() #8
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #7
  %1021 = call ptr @__errno_location() #8
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1010, ptr noundef @.str.2, i32 noundef %1011, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 46, ptr noundef %1014, ptr noundef %1017, ptr noundef %1020, i32 noundef %1022) #7
  br label %1041

1024:                                             ; preds = %1002, %995
  %1025 = load i32, ptr %18, align 4, !tbaa !5
  %1026 = call ptr @__errno_location() #8
  store i32 %1025, ptr %1026, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror(i32 noundef %1030, ptr noundef @.str.4)
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef %1033, ptr noundef @.str.4)
  %1035 = call ptr @__errno_location() #8
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @strerror(i32 noundef %1036) #7
  %1038 = call ptr @__errno_location() #8
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef @.str.5, i32 noundef %1028, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 46, ptr noundef %1031, ptr noundef %1034, ptr noundef %1037, i32 noundef %1039) #7
  br label %1041

1041:                                             ; preds = %1024, %1007
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %1042

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

1043:                                             ; No predecessors!
  br label %1044

1044:                                             ; preds = %1043, %986
  br label %1045

1045:                                             ; preds = %1044
  %1046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653188, ptr %1046, align 4, !tbaa !5
  br label %1047

1047:                                             ; preds = %1045
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = add nsw i32 %1048, 1
  store i32 %1049, ptr @test_count, align 4, !tbaa !5
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call i32 @s2n_error_get_type(i32 noundef %1051)
  %1053 = icmp eq i32 6, %1052
  br i1 %1053, label %1105, label %1054

1054:                                             ; preds = %1047
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %1057 = call ptr @__errno_location() #8
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  store i32 %1058, ptr %19, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = call i32 @s2n_print_stacktrace(ptr noundef %1059)
  %1061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1062 = trunc i8 %1061 to i1
  br i1 %1062, label %1063, label %1085

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @fileno(ptr noundef %1064) #7
  %1066 = call i32 @isatty(i32 noundef %1065) #7
  %1067 = icmp ne i32 %1066, 0
  br i1 %1067, label %1068, label %1085

1068:                                             ; preds = %1063
  %1069 = load i32, ptr %19, align 4, !tbaa !5
  %1070 = call ptr @__errno_location() #8
  store i32 %1069, ptr %1070, align 4, !tbaa !5
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef @.str.4)
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef @.str.4)
  %1079 = call ptr @__errno_location() #8
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #7
  %1082 = call ptr @__errno_location() #8
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef @.str.2, i32 noundef %1072, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 48, ptr noundef %1075, ptr noundef %1078, ptr noundef %1081, i32 noundef %1083) #7
  br label %1102

1085:                                             ; preds = %1063, %1056
  %1086 = load i32, ptr %19, align 4, !tbaa !5
  %1087 = call ptr @__errno_location() #8
  store i32 %1086, ptr %1087, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @s2n_strerror(i32 noundef %1091, ptr noundef @.str.4)
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef @.str.4)
  %1096 = call ptr @__errno_location() #8
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #7
  %1099 = call ptr @__errno_location() #8
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef @.str.5, i32 noundef %1089, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 48, ptr noundef %1092, ptr noundef %1095, ptr noundef %1098, i32 noundef %1100) #7
  br label %1102

1102:                                             ; preds = %1085, %1068
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %1103

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

1104:                                             ; No predecessors!
  br label %1105

1105:                                             ; preds = %1104, %1047
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = add nsw i32 %1108, 1
  store i32 %1109, ptr @test_count, align 4, !tbaa !5
  %1110 = call ptr @s2n_errno_location()
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call i32 @s2n_error_get_type(i32 noundef %1111)
  %1113 = icmp eq i32 6, %1112
  br i1 %1113, label %1165, label %1114

1114:                                             ; preds = %1107
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

1116:                                             ; preds = %1115
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %1117 = call ptr @__errno_location() #8
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  store i32 %1118, ptr %20, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @s2n_print_stacktrace(ptr noundef %1119)
  %1121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1122 = trunc i8 %1121 to i1
  br i1 %1122, label %1123, label %1145

1123:                                             ; preds = %1116
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @fileno(ptr noundef %1124) #7
  %1126 = call i32 @isatty(i32 noundef %1125) #7
  %1127 = icmp ne i32 %1126, 0
  br i1 %1127, label %1128, label %1145

1128:                                             ; preds = %1123
  %1129 = load i32, ptr %20, align 4, !tbaa !5
  %1130 = call ptr @__errno_location() #8
  store i32 %1129, ptr %1130, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror(i32 noundef %1134, ptr noundef @.str.4)
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef @.str.4)
  %1139 = call ptr @__errno_location() #8
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #7
  %1142 = call ptr @__errno_location() #8
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef @.str.2, i32 noundef %1132, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 49, ptr noundef %1135, ptr noundef %1138, ptr noundef %1141, i32 noundef %1143) #7
  br label %1162

1145:                                             ; preds = %1123, %1116
  %1146 = load i32, ptr %20, align 4, !tbaa !5
  %1147 = call ptr @__errno_location() #8
  store i32 %1146, ptr %1147, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef @.str.4)
  %1156 = call ptr @__errno_location() #8
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #7
  %1159 = call ptr @__errno_location() #8
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1148, ptr noundef @.str.5, i32 noundef %1149, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 49, ptr noundef %1152, ptr noundef %1155, ptr noundef %1158, i32 noundef %1160) #7
  br label %1162

1162:                                             ; preds = %1145, %1128
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %1163

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

1164:                                             ; No predecessors!
  br label %1165

1165:                                             ; preds = %1164, %1107
  br label %1166

1166:                                             ; preds = %1165
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 469762055, ptr %1167, align 4, !tbaa !5
  br label %1168

1168:                                             ; preds = %1166
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr @test_count, align 4, !tbaa !5
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call i32 @s2n_error_get_type(i32 noundef %1172)
  %1174 = icmp eq i32 7, %1173
  br i1 %1174, label %1226, label %1175

1175:                                             ; preds = %1168
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %1178 = call ptr @__errno_location() #8
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  store i32 %1179, ptr %21, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180)
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1183 = trunc i8 %1182 to i1
  br i1 %1183, label %1184, label %1206

1184:                                             ; preds = %1177
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = call i32 @fileno(ptr noundef %1185) #7
  %1187 = call i32 @isatty(i32 noundef %1186) #7
  %1188 = icmp ne i32 %1187, 0
  br i1 %1188, label %1189, label %1206

1189:                                             ; preds = %1184
  %1190 = load i32, ptr %21, align 4, !tbaa !5
  %1191 = call ptr @__errno_location() #8
  store i32 %1190, ptr %1191, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef @.str.4)
  %1197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef @.str.4)
  %1200 = call ptr @__errno_location() #8
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #7
  %1203 = call ptr @__errno_location() #8
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef @.str.2, i32 noundef %1193, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 51, ptr noundef %1196, ptr noundef %1199, ptr noundef %1202, i32 noundef %1204) #7
  br label %1223

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

1223:                                             ; preds = %1206, %1189
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %1224

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

1225:                                             ; No predecessors!
  br label %1226

1226:                                             ; preds = %1225, %1168
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

1228:                                             ; preds = %1227
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr @test_count, align 4, !tbaa !5
  %1231 = call ptr @s2n_errno_location()
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call i32 @s2n_error_get_type(i32 noundef %1232)
  %1234 = icmp eq i32 7, %1233
  br i1 %1234, label %1286, label %1235

1235:                                             ; preds = %1228
  br label %1236

1236:                                             ; preds = %1235
  br label %1237

1237:                                             ; preds = %1236
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %1238 = call ptr @__errno_location() #8
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  store i32 %1239, ptr %22, align 4, !tbaa !5
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @s2n_print_stacktrace(ptr noundef %1240)
  %1242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1243 = trunc i8 %1242 to i1
  br i1 %1243, label %1244, label %1266

1244:                                             ; preds = %1237
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @fileno(ptr noundef %1245) #7
  %1247 = call i32 @isatty(i32 noundef %1246) #7
  %1248 = icmp ne i32 %1247, 0
  br i1 %1248, label %1249, label %1266

1249:                                             ; preds = %1244
  %1250 = load i32, ptr %22, align 4, !tbaa !5
  %1251 = call ptr @__errno_location() #8
  store i32 %1250, ptr %1251, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror(i32 noundef %1255, ptr noundef @.str.4)
  %1257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror_debug(i32 noundef %1258, ptr noundef @.str.4)
  %1260 = call ptr @__errno_location() #8
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @strerror(i32 noundef %1261) #7
  %1263 = call ptr @__errno_location() #8
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef @.str.2, i32 noundef %1253, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 52, ptr noundef %1256, ptr noundef %1259, ptr noundef %1262, i32 noundef %1264) #7
  br label %1283

1266:                                             ; preds = %1244, %1237
  %1267 = load i32, ptr %22, align 4, !tbaa !5
  %1268 = call ptr @__errno_location() #8
  store i32 %1267, ptr %1268, align 4, !tbaa !5
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror(i32 noundef %1272, ptr noundef @.str.4)
  %1274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror_debug(i32 noundef %1275, ptr noundef @.str.4)
  %1277 = call ptr @__errno_location() #8
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @strerror(i32 noundef %1278) #7
  %1280 = call ptr @__errno_location() #8
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1269, ptr noundef @.str.5, i32 noundef %1270, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 52, ptr noundef %1273, ptr noundef %1276, ptr noundef %1279, i32 noundef %1281) #7
  br label %1283

1283:                                             ; preds = %1266, %1249
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %1284

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

1285:                                             ; No predecessors!
  br label %1286

1286:                                             ; preds = %1285, %1228
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288
  %1290 = call i32 @s2n_cleanup()
  %1291 = icmp eq i32 %1290, -1
  br i1 %1291, label %1292, label %1343

1292:                                             ; preds = %1289
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %1295 = call ptr @__errno_location() #8
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  store i32 %1296, ptr %23, align 4, !tbaa !5
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = call i32 @s2n_print_stacktrace(ptr noundef %1297)
  %1299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1300 = trunc i8 %1299 to i1
  br i1 %1300, label %1301, label %1323

1301:                                             ; preds = %1294
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @fileno(ptr noundef %1302) #7
  %1304 = call i32 @isatty(i32 noundef %1303) #7
  %1305 = icmp ne i32 %1304, 0
  br i1 %1305, label %1306, label %1323

1306:                                             ; preds = %1301
  %1307 = load i32, ptr %23, align 4, !tbaa !5
  %1308 = call ptr @__errno_location() #8
  store i32 %1307, ptr %1308, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror(i32 noundef %1312, ptr noundef @.str.4)
  %1314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror_debug(i32 noundef %1315, ptr noundef @.str.4)
  %1317 = call ptr @__errno_location() #8
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #7
  %1320 = call ptr @__errno_location() #8
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef @.str.2, i32 noundef %1310, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1313, ptr noundef %1316, ptr noundef %1319, i32 noundef %1321) #7
  br label %1340

1323:                                             ; preds = %1301, %1294
  %1324 = load i32, ptr %23, align 4, !tbaa !5
  %1325 = call ptr @__errno_location() #8
  store i32 %1324, ptr %1325, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef @.str.4)
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef %1332, ptr noundef @.str.4)
  %1334 = call ptr @__errno_location() #8
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #7
  %1337 = call ptr @__errno_location() #8
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef @.str.5, i32 noundef %1327, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1330, ptr noundef %1333, ptr noundef %1336, i32 noundef %1338) #7
  br label %1340

1340:                                             ; preds = %1323, %1306
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %1341

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

1342:                                             ; No predecessors!
  br label %1343

1343:                                             ; preds = %1342, %1289
  br label %1344

1344:                                             ; preds = %1343
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

1346:                                             ; preds = %1345
  %1347 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1348 = icmp eq i32 %1347, -1
  br i1 %1348, label %1349, label %1400

1349:                                             ; preds = %1346
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

1351:                                             ; preds = %1350
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %1352 = call ptr @__errno_location() #8
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  store i32 %1353, ptr %24, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = call i32 @s2n_print_stacktrace(ptr noundef %1354)
  %1356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1357 = trunc i8 %1356 to i1
  br i1 %1357, label %1358, label %1380

1358:                                             ; preds = %1351
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @fileno(ptr noundef %1359) #7
  %1361 = call i32 @isatty(i32 noundef %1360) #7
  %1362 = icmp ne i32 %1361, 0
  br i1 %1362, label %1363, label %1380

1363:                                             ; preds = %1358
  %1364 = load i32, ptr %24, align 4, !tbaa !5
  %1365 = call ptr @__errno_location() #8
  store i32 %1364, ptr %1365, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = load i32, ptr @test_count, align 4, !tbaa !5
  %1368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror(i32 noundef %1369, ptr noundef @.str.4)
  %1371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef @.str.4)
  %1374 = call ptr @__errno_location() #8
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #7
  %1377 = call ptr @__errno_location() #8
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1366, ptr noundef @.str.2, i32 noundef %1367, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1370, ptr noundef %1373, ptr noundef %1376, i32 noundef %1378) #7
  br label %1397

1380:                                             ; preds = %1358, %1351
  %1381 = load i32, ptr %24, align 4, !tbaa !5
  %1382 = call ptr @__errno_location() #8
  store i32 %1381, ptr %1382, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror_debug(i32 noundef %1389, ptr noundef @.str.4)
  %1391 = call ptr @__errno_location() #8
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @strerror(i32 noundef %1392) #7
  %1394 = call ptr @__errno_location() #8
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef @.str.5, i32 noundef %1384, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1387, ptr noundef %1390, ptr noundef %1393, i32 noundef %1395) #7
  br label %1397

1397:                                             ; preds = %1380, %1363
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %1398

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

1399:                                             ; No predecessors!
  br label %1400

1400:                                             ; preds = %1399, %1346
  br label %1401

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

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

1409:                                             ; preds = %1404
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = icmp ne i32 %1410, 0
  br i1 %1411, label %1412, label %1416

1412:                                             ; preds = %1409
  %1413 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1413, ptr noundef @.str.28, i32 noundef %1414) #7
  br label %1419

1416:                                             ; preds = %1409
  %1417 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef @.str.29) #7
  br label %1419

1419:                                             ; preds = %1416, %1412
  br label %1431

1420:                                             ; preds = %1404, %1401
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = icmp ne i32 %1421, 0
  br i1 %1422, label %1423, label %1427

1423:                                             ; preds = %1420
  %1424 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef @.str.30, i32 noundef %1425) #7
  br label %1430

1427:                                             ; preds = %1420
  %1428 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef @.str.31) #7
  br label %1430

1430:                                             ; preds = %1427, %1423
  br label %1431

1431:                                             ; preds = %1430, %1419
  store i32 0, ptr %1, align 4
  br label %1433

1432:                                             ; No predecessors!
  br label %1433

1433:                                             ; preds = %1432, %1431
  %1434 = load i32, ptr %1, align 4
  ret i32 %1434
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_errno_location() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [78 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 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

14:                                               ; preds = %7
  %15 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16 = tail call i32 @fileno(ptr noundef %15) #7
  %17 = tail call i32 @isatty(i32 noundef %16) #7
  %.not73 = icmp eq i32 %17, 0
  br i1 %.not73, label %18, label %19

18:                                               ; preds = %14, %7
  br label %19

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

31:                                               ; preds = %0
  %32 = load i32, ptr @test_count, align 4, !tbaa !5
  %33 = add nsw i32 %32, 1
  store i32 %33, ptr @test_count, align 4, !tbaa !5
  %34 = tail call i32 @s2n_enable_atexit() #7
  %35 = icmp eq i32 %34, -1
  br i1 %35, label %36, label %60

36:                                               ; preds = %31
  %37 = tail call ptr @__errno_location() #8
  %38 = load i32, ptr %37, align 4, !tbaa !5
  %39 = load ptr, ptr @stderr, align 8, !tbaa !9
  %40 = tail call i32 @s2n_print_stacktrace(ptr noundef %39) #7
  %41 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %42 = trunc nuw i8 %41 to i1
  br i1 %42, label %43, label %47

43:                                               ; preds = %36
  %44 = load ptr, ptr @stderr, align 8, !tbaa !9
  %45 = tail call i32 @fileno(ptr noundef %44) #7
  %46 = tail call i32 @isatty(i32 noundef %45) #7
  %.not72 = icmp eq i32 %46, 0
  br i1 %.not72, label %47, label %48

47:                                               ; preds = %43, %36
  br label %48

48:                                               ; preds = %43, %47
  %.str.5.sink84 = phi ptr [ @.str.5, %47 ], [ @.str.2, %43 ]
  store i32 %38, ptr %37, align 4, !tbaa !5
  %49 = load ptr, ptr @stderr, align 8, !tbaa !9
  %50 = load i32, ptr @test_count, align 4, !tbaa !5
  %51 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %52 = load i32, ptr %51, align 4, !tbaa !5
  %53 = tail call ptr @s2n_strerror(i32 noundef %52, ptr noundef nonnull @.str.4) #7
  %54 = load i32, ptr %51, align 4, !tbaa !5
  %55 = tail call ptr @s2n_strerror_debug(i32 noundef %54, ptr noundef nonnull @.str.4) #7
  %56 = load i32, ptr %37, align 4, !tbaa !5
  %57 = tail call ptr @strerror(i32 noundef %56) #7
  %58 = load i32, ptr %37, align 4, !tbaa !5
  %59 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %49, ptr noundef nonnull %.str.5.sink84, i32 noundef %50, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %53, ptr noundef %55, ptr noundef %57, i32 noundef %58) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

60:                                               ; preds = %31
  %61 = tail call i32 @s2n_init() #7
  %62 = icmp eq i32 %61, -1
  br i1 %62, label %63, label %87

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

70:                                               ; preds = %63
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @fileno(ptr noundef %71) #7
  %73 = tail call i32 @isatty(i32 noundef %72) #7
  %.not71 = icmp eq i32 %73, 0
  br i1 %.not71, label %74, label %75

74:                                               ; preds = %70, %63
  br label %75

75:                                               ; preds = %70, %74
  %.str.5.sink95 = phi ptr [ @.str.5, %74 ], [ @.str.2, %70 ]
  store i32 %65, ptr %64, align 4, !tbaa !5
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = load i32, ptr @test_count, align 4, !tbaa !5
  %78 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = tail call ptr @s2n_strerror(i32 noundef %79, ptr noundef nonnull @.str.4) #7
  %81 = load i32, ptr %78, align 4, !tbaa !5
  %82 = tail call ptr @s2n_strerror_debug(i32 noundef %81, ptr noundef nonnull @.str.4) #7
  %83 = load i32, ptr %64, align 4, !tbaa !5
  %84 = tail call ptr @strerror(i32 noundef %83) #7
  %85 = load i32, ptr %64, align 4, !tbaa !5
  %86 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef nonnull %.str.5.sink95, i32 noundef %77, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %80, ptr noundef %82, ptr noundef %84, i32 noundef %85) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

87:                                               ; preds = %60
  %88 = load i32, ptr @test_count, align 4, !tbaa !5
  %89 = add nsw i32 %88, 1
  store i32 %89, ptr @test_count, align 4, !tbaa !5
  %90 = tail call i32 (...) @s2n_disable_tls13_in_test() #7
  %91 = icmp eq i32 %90, -1
  br i1 %91, label %92, label %116

92:                                               ; preds = %87
  %93 = tail call ptr @__errno_location() #8
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = load ptr, ptr @stderr, align 8, !tbaa !9
  %96 = tail call i32 @s2n_print_stacktrace(ptr noundef %95) #7
  %97 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %98 = trunc nuw i8 %97 to i1
  br i1 %98, label %99, label %103

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

103:                                              ; preds = %99, %92
  br label %104

104:                                              ; preds = %99, %103
  %.str.5.sink106 = phi ptr [ @.str.5, %103 ], [ @.str.2, %99 ]
  store i32 %94, ptr %93, align 4, !tbaa !5
  %105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %106 = load i32, ptr @test_count, align 4, !tbaa !5
  %107 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = tail call ptr @s2n_strerror(i32 noundef %108, ptr noundef nonnull @.str.4) #7
  %110 = load i32, ptr %107, align 4, !tbaa !5
  %111 = tail call ptr @s2n_strerror_debug(i32 noundef %110, ptr noundef nonnull @.str.4) #7
  %112 = load i32, ptr %93, align 4, !tbaa !5
  %113 = tail call ptr @strerror(i32 noundef %112) #7
  %114 = load i32, ptr %93, align 4, !tbaa !5
  %115 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %105, ptr noundef nonnull %.str.5.sink106, i32 noundef %106, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %109, ptr noundef %111, ptr noundef %113, i32 noundef %114) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

116:                                              ; preds = %87
  %117 = load i32, ptr @test_count, align 4, !tbaa !5
  %118 = add nsw i32 %117, 1
  store i32 %118, ptr @test_count, align 4, !tbaa !5
  %119 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %120 = tail call ptr @s2n_errno_location() #7
  %121 = icmp eq ptr %119, %120
  br i1 %121, label %145, label %122

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

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

133:                                              ; preds = %129, %122
  br label %134

134:                                              ; preds = %129, %133
  %.str.5.sink117 = phi ptr [ @.str.5, %133 ], [ @.str.2, %129 ]
  store i32 %124, ptr %123, align 4, !tbaa !5
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = load i32, ptr @test_count, align 4, !tbaa !5
  %137 = load i32, ptr %119, align 4, !tbaa !5
  %138 = tail call ptr @s2n_strerror(i32 noundef %137, ptr noundef nonnull @.str.4) #7
  %139 = load i32, ptr %119, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror_debug(i32 noundef %139, ptr noundef nonnull @.str.4) #7
  %141 = load i32, ptr %123, align 4, !tbaa !5
  %142 = tail call ptr @strerror(i32 noundef %141) #7
  %143 = load i32, ptr %123, align 4, !tbaa !5
  %144 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef nonnull %.str.5.sink117, i32 noundef %136, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef %138, ptr noundef %140, ptr noundef %142, i32 noundef %143) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

145:                                              ; preds = %116
  store i32 0, ptr %119, align 4, !tbaa !5
  %146 = load i32, ptr @test_count, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr @test_count, align 4, !tbaa !5
  %148 = tail call i32 @s2n_error_get_type(i32 noundef 0) #7
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %173, label %150

150:                                              ; preds = %145
  %151 = tail call ptr @__errno_location() #8
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = tail call i32 @s2n_print_stacktrace(ptr noundef %153) #7
  %155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %156 = trunc nuw i8 %155 to i1
  br i1 %156, label %157, label %161

157:                                              ; preds = %150
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = tail call i32 @fileno(ptr noundef %158) #7
  %160 = tail call i32 @isatty(i32 noundef %159) #7
  %.not49 = icmp eq i32 %160, 0
  br i1 %.not49, label %161, label %162

161:                                              ; preds = %157, %150
  br label %162

162:                                              ; preds = %157, %161
  %.str.5.sink126 = phi ptr [ @.str.5, %161 ], [ @.str.2, %157 ]
  store i32 %152, ptr %151, align 4, !tbaa !5
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = load i32, ptr %119, align 4, !tbaa !5
  %166 = tail call ptr @s2n_strerror(i32 noundef %165, ptr noundef nonnull @.str.4) #7
  %167 = load i32, ptr %119, align 4, !tbaa !5
  %168 = tail call ptr @s2n_strerror_debug(i32 noundef %167, ptr noundef nonnull @.str.4) #7
  %169 = load i32, ptr %151, align 4, !tbaa !5
  %170 = tail call ptr @strerror(i32 noundef %169) #7
  %171 = load i32, ptr %151, align 4, !tbaa !5
  %172 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull %.str.5.sink126, i32 noundef %164, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %166, ptr noundef %168, ptr noundef %170, i32 noundef %171) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

173:                                              ; preds = %145
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %175 = add nsw i32 %174, 1
  store i32 %175, ptr @test_count, align 4, !tbaa !5
  %176 = tail call ptr @s2n_errno_location() #7
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = tail call i32 @s2n_error_get_type(i32 noundef %177) #7
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %203, label %180

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

187:                                              ; preds = %180
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = tail call i32 @fileno(ptr noundef %188) #7
  %190 = tail call i32 @isatty(i32 noundef %189) #7
  %.not50 = icmp eq i32 %190, 0
  br i1 %.not50, label %191, label %192

191:                                              ; preds = %187, %180
  br label %192

192:                                              ; preds = %187, %191
  %.str.5.sink135 = phi ptr [ @.str.5, %191 ], [ @.str.2, %187 ]
  store i32 %182, ptr %181, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = load i32, ptr %119, align 4, !tbaa !5
  %196 = tail call ptr @s2n_strerror(i32 noundef %195, ptr noundef nonnull @.str.4) #7
  %197 = load i32, ptr %119, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef nonnull @.str.4) #7
  %199 = load i32, ptr %181, align 4, !tbaa !5
  %200 = tail call ptr @strerror(i32 noundef %199) #7
  %201 = load i32, ptr %181, align 4, !tbaa !5
  %202 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull %.str.5.sink135, i32 noundef %194, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %196, ptr noundef %198, ptr noundef %200, i32 noundef %201) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

203:                                              ; preds = %173
  store i32 67108864, ptr %119, align 4, !tbaa !5
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr @test_count, align 4, !tbaa !5
  %206 = tail call i32 @s2n_error_get_type(i32 noundef 67108864) #7
  %207 = icmp eq i32 %206, 1
  br i1 %207, label %231, label %208

208:                                              ; preds = %203
  %209 = tail call ptr @__errno_location() #8
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = tail call i32 @s2n_print_stacktrace(ptr noundef %211) #7
  %213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %214 = trunc nuw i8 %213 to i1
  br i1 %214, label %215, label %219

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

219:                                              ; preds = %215, %208
  br label %220

220:                                              ; preds = %215, %219
  %.str.5.sink144 = phi ptr [ @.str.5, %219 ], [ @.str.2, %215 ]
  store i32 %210, ptr %209, align 4, !tbaa !5
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = load i32, ptr @test_count, align 4, !tbaa !5
  %223 = load i32, ptr %119, align 4, !tbaa !5
  %224 = tail call ptr @s2n_strerror(i32 noundef %223, ptr noundef nonnull @.str.4) #7
  %225 = load i32, ptr %119, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef nonnull @.str.4) #7
  %227 = load i32, ptr %209, align 4, !tbaa !5
  %228 = tail call ptr @strerror(i32 noundef %227) #7
  %229 = load i32, ptr %209, align 4, !tbaa !5
  %230 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %221, ptr noundef nonnull %.str.5.sink144, i32 noundef %222, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %224, ptr noundef %226, ptr noundef %228, i32 noundef %229) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

231:                                              ; preds = %203
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr @test_count, align 4, !tbaa !5
  %234 = tail call ptr @s2n_errno_location() #7
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = tail call i32 @s2n_error_get_type(i32 noundef %235) #7
  %237 = icmp eq i32 %236, 1
  br i1 %237, label %261, label %238

238:                                              ; preds = %231
  %239 = tail call ptr @__errno_location() #8
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = tail call i32 @s2n_print_stacktrace(ptr noundef %241) #7
  %243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %244 = trunc nuw i8 %243 to i1
  br i1 %244, label %245, label %249

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

249:                                              ; preds = %245, %238
  br label %250

250:                                              ; preds = %245, %249
  %.str.5.sink153 = phi ptr [ @.str.5, %249 ], [ @.str.2, %245 ]
  store i32 %240, ptr %239, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = load i32, ptr %119, align 4, !tbaa !5
  %254 = tail call ptr @s2n_strerror(i32 noundef %253, ptr noundef nonnull @.str.4) #7
  %255 = load i32, ptr %119, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror_debug(i32 noundef %255, ptr noundef nonnull @.str.4) #7
  %257 = load i32, ptr %239, align 4, !tbaa !5
  %258 = tail call ptr @strerror(i32 noundef %257) #7
  %259 = load i32, ptr %239, align 4, !tbaa !5
  %260 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull %.str.5.sink153, i32 noundef %252, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %254, ptr noundef %256, ptr noundef %258, i32 noundef %259) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

261:                                              ; preds = %231
  store i32 134217728, ptr %119, align 4, !tbaa !5
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = tail call i32 @s2n_error_get_type(i32 noundef 134217728) #7
  %265 = icmp eq i32 %264, 2
  br i1 %265, label %289, label %266

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

273:                                              ; preds = %266
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = tail call i32 @fileno(ptr noundef %274) #7
  %276 = tail call i32 @isatty(i32 noundef %275) #7
  %.not53 = icmp eq i32 %276, 0
  br i1 %.not53, label %277, label %278

277:                                              ; preds = %273, %266
  br label %278

278:                                              ; preds = %273, %277
  %.str.5.sink162 = phi ptr [ @.str.5, %277 ], [ @.str.2, %273 ]
  store i32 %268, ptr %267, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = load i32, ptr %119, align 4, !tbaa !5
  %282 = tail call ptr @s2n_strerror(i32 noundef %281, ptr noundef nonnull @.str.4) #7
  %283 = load i32, ptr %119, align 4, !tbaa !5
  %284 = tail call ptr @s2n_strerror_debug(i32 noundef %283, ptr noundef nonnull @.str.4) #7
  %285 = load i32, ptr %267, align 4, !tbaa !5
  %286 = tail call ptr @strerror(i32 noundef %285) #7
  %287 = load i32, ptr %267, align 4, !tbaa !5
  %288 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %279, ptr noundef nonnull %.str.5.sink162, i32 noundef %280, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %282, ptr noundef %284, ptr noundef %286, i32 noundef %287) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

289:                                              ; preds = %261
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr @test_count, align 4, !tbaa !5
  %292 = tail call ptr @s2n_errno_location() #7
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = tail call i32 @s2n_error_get_type(i32 noundef %293) #7
  %295 = icmp eq i32 %294, 2
  br i1 %295, label %319, label %296

296:                                              ; preds = %289
  %297 = tail call ptr @__errno_location() #8
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = tail call i32 @s2n_print_stacktrace(ptr noundef %299) #7
  %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 = %296
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = tail call i32 @fileno(ptr noundef %304) #7
  %306 = tail call i32 @isatty(i32 noundef %305) #7
  %.not54 = icmp eq i32 %306, 0
  br i1 %.not54, label %307, label %308

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

308:                                              ; preds = %303, %307
  %.str.5.sink171 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %297, 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 %119, align 4, !tbaa !5
  %312 = tail call ptr @s2n_strerror(i32 noundef %311, ptr noundef nonnull @.str.4) #7
  %313 = load i32, ptr %119, align 4, !tbaa !5
  %314 = tail call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef nonnull @.str.4) #7
  %315 = load i32, ptr %297, align 4, !tbaa !5
  %316 = tail call ptr @strerror(i32 noundef %315) #7
  %317 = load i32, ptr %297, align 4, !tbaa !5
  %318 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink171, i32 noundef %310, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef %317) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

319:                                              ; preds = %289
  store i32 201326592, ptr %119, align 4, !tbaa !5
  %320 = load i32, ptr @test_count, align 4, !tbaa !5
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr @test_count, align 4, !tbaa !5
  %322 = tail call i32 @s2n_error_get_type(i32 noundef 201326592) #7
  %323 = icmp eq i32 %322, 3
  br i1 %323, label %347, label %324

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

331:                                              ; preds = %324
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = tail call i32 @fileno(ptr noundef %332) #7
  %334 = tail call i32 @isatty(i32 noundef %333) #7
  %.not55 = icmp eq i32 %334, 0
  br i1 %.not55, label %335, label %336

335:                                              ; preds = %331, %324
  br label %336

336:                                              ; preds = %331, %335
  %.str.5.sink180 = phi ptr [ @.str.5, %335 ], [ @.str.2, %331 ]
  store i32 %326, ptr %325, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = load i32, ptr %119, align 4, !tbaa !5
  %340 = tail call ptr @s2n_strerror(i32 noundef %339, ptr noundef nonnull @.str.4) #7
  %341 = load i32, ptr %119, align 4, !tbaa !5
  %342 = tail call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef nonnull @.str.4) #7
  %343 = load i32, ptr %325, align 4, !tbaa !5
  %344 = tail call ptr @strerror(i32 noundef %343) #7
  %345 = load i32, ptr %325, align 4, !tbaa !5
  %346 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef nonnull %.str.5.sink180, i32 noundef %338, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %340, ptr noundef %342, ptr noundef %344, i32 noundef %345) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

347:                                              ; preds = %319
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr @test_count, align 4, !tbaa !5
  %350 = tail call ptr @s2n_errno_location() #7
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = tail call i32 @s2n_error_get_type(i32 noundef %351) #7
  %353 = icmp eq i32 %352, 3
  br i1 %353, label %377, label %354

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

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

365:                                              ; preds = %361, %354
  br label %366

366:                                              ; preds = %361, %365
  %.str.5.sink189 = phi ptr [ @.str.5, %365 ], [ @.str.2, %361 ]
  store i32 %356, ptr %355, align 4, !tbaa !5
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = load i32, ptr %119, align 4, !tbaa !5
  %370 = tail call ptr @s2n_strerror(i32 noundef %369, ptr noundef nonnull @.str.4) #7
  %371 = load i32, ptr %119, align 4, !tbaa !5
  %372 = tail call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef nonnull @.str.4) #7
  %373 = load i32, ptr %355, align 4, !tbaa !5
  %374 = tail call ptr @strerror(i32 noundef %373) #7
  %375 = load i32, ptr %355, align 4, !tbaa !5
  %376 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %367, ptr noundef nonnull %.str.5.sink189, i32 noundef %368, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %370, ptr noundef %372, ptr noundef %374, i32 noundef %375) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

377:                                              ; preds = %347
  store i32 268435456, ptr %119, align 4, !tbaa !5
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr @test_count, align 4, !tbaa !5
  %380 = tail call i32 @s2n_error_get_type(i32 noundef 268435456) #7
  %381 = icmp eq i32 %380, 4
  br i1 %381, label %405, label %382

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

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

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

394:                                              ; preds = %389, %393
  %.str.5.sink198 = phi ptr [ @.str.5, %393 ], [ @.str.2, %389 ]
  store i32 %384, ptr %383, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = load i32, ptr %119, align 4, !tbaa !5
  %398 = tail call ptr @s2n_strerror(i32 noundef %397, ptr noundef nonnull @.str.4) #7
  %399 = load i32, ptr %119, align 4, !tbaa !5
  %400 = tail call ptr @s2n_strerror_debug(i32 noundef %399, ptr noundef nonnull @.str.4) #7
  %401 = load i32, ptr %383, align 4, !tbaa !5
  %402 = tail call ptr @strerror(i32 noundef %401) #7
  %403 = load i32, ptr %383, align 4, !tbaa !5
  %404 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef nonnull %.str.5.sink198, i32 noundef %396, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %398, ptr noundef %400, ptr noundef %402, i32 noundef %403) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

405:                                              ; preds = %377
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = add nsw i32 %406, 1
  store i32 %407, ptr @test_count, align 4, !tbaa !5
  %408 = tail call ptr @s2n_errno_location() #7
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = tail call i32 @s2n_error_get_type(i32 noundef %409) #7
  %411 = icmp eq i32 %410, 4
  br i1 %411, label %435, label %412

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

419:                                              ; preds = %412
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = tail call i32 @fileno(ptr noundef %420) #7
  %422 = tail call i32 @isatty(i32 noundef %421) #7
  %.not58 = icmp eq i32 %422, 0
  br i1 %.not58, label %423, label %424

423:                                              ; preds = %419, %412
  br label %424

424:                                              ; preds = %419, %423
  %.str.5.sink207 = phi ptr [ @.str.5, %423 ], [ @.str.2, %419 ]
  store i32 %414, ptr %413, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = load i32, ptr %119, align 4, !tbaa !5
  %428 = tail call ptr @s2n_strerror(i32 noundef %427, ptr noundef nonnull @.str.4) #7
  %429 = load i32, ptr %119, align 4, !tbaa !5
  %430 = tail call ptr @s2n_strerror_debug(i32 noundef %429, ptr noundef nonnull @.str.4) #7
  %431 = load i32, ptr %413, align 4, !tbaa !5
  %432 = tail call ptr @strerror(i32 noundef %431) #7
  %433 = load i32, ptr %413, align 4, !tbaa !5
  %434 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %425, ptr noundef nonnull %.str.5.sink207, i32 noundef %426, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %428, ptr noundef %430, ptr noundef %432, i32 noundef %433) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

435:                                              ; preds = %405
  store i32 335544322, ptr %119, align 4, !tbaa !5
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = tail call i32 @s2n_error_get_type(i32 noundef 335544322) #7
  %439 = icmp eq i32 %438, 5
  br i1 %439, label %463, label %440

440:                                              ; preds = %435
  %441 = tail call ptr @__errno_location() #8
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = tail call i32 @s2n_print_stacktrace(ptr noundef %443) #7
  %445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %446 = trunc nuw i8 %445 to i1
  br i1 %446, label %447, label %451

447:                                              ; preds = %440
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = tail call i32 @fileno(ptr noundef %448) #7
  %450 = tail call i32 @isatty(i32 noundef %449) #7
  %.not59 = icmp eq i32 %450, 0
  br i1 %.not59, label %451, label %452

451:                                              ; preds = %447, %440
  br label %452

452:                                              ; preds = %447, %451
  %.str.5.sink216 = phi ptr [ @.str.5, %451 ], [ @.str.2, %447 ]
  store i32 %442, ptr %441, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = load i32, ptr %119, align 4, !tbaa !5
  %456 = tail call ptr @s2n_strerror(i32 noundef %455, ptr noundef nonnull @.str.4) #7
  %457 = load i32, ptr %119, align 4, !tbaa !5
  %458 = tail call ptr @s2n_strerror_debug(i32 noundef %457, ptr noundef nonnull @.str.4) #7
  %459 = load i32, ptr %441, align 4, !tbaa !5
  %460 = tail call ptr @strerror(i32 noundef %459) #7
  %461 = load i32, ptr %441, align 4, !tbaa !5
  %462 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef nonnull %.str.5.sink216, i32 noundef %454, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %456, ptr noundef %458, ptr noundef %460, i32 noundef %461) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

463:                                              ; preds = %435
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr @test_count, align 4, !tbaa !5
  %466 = tail call ptr @s2n_errno_location() #7
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = tail call i32 @s2n_error_get_type(i32 noundef %467) #7
  %469 = icmp eq i32 %468, 5
  br i1 %469, label %493, label %470

470:                                              ; preds = %463
  %471 = tail call ptr @__errno_location() #8
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = tail call i32 @s2n_print_stacktrace(ptr noundef %473) #7
  %475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %476 = trunc nuw i8 %475 to i1
  br i1 %476, label %477, label %481

477:                                              ; preds = %470
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = tail call i32 @fileno(ptr noundef %478) #7
  %480 = tail call i32 @isatty(i32 noundef %479) #7
  %.not60 = icmp eq i32 %480, 0
  br i1 %.not60, label %481, label %482

481:                                              ; preds = %477, %470
  br label %482

482:                                              ; preds = %477, %481
  %.str.5.sink225 = phi ptr [ @.str.5, %481 ], [ @.str.2, %477 ]
  store i32 %472, ptr %471, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = load i32, ptr %119, align 4, !tbaa !5
  %486 = tail call ptr @s2n_strerror(i32 noundef %485, ptr noundef nonnull @.str.4) #7
  %487 = load i32, ptr %119, align 4, !tbaa !5
  %488 = tail call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef nonnull @.str.4) #7
  %489 = load i32, ptr %471, align 4, !tbaa !5
  %490 = tail call ptr @strerror(i32 noundef %489) #7
  %491 = load i32, ptr %471, align 4, !tbaa !5
  %492 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef nonnull %.str.5.sink225, i32 noundef %484, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %486, ptr noundef %488, ptr noundef %490, i32 noundef %491) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

493:                                              ; preds = %463
  store i32 402653188, ptr %119, align 4, !tbaa !5
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr @test_count, align 4, !tbaa !5
  %496 = tail call i32 @s2n_error_get_type(i32 noundef 402653188) #7
  %497 = icmp eq i32 %496, 6
  br i1 %497, label %521, label %498

498:                                              ; preds = %493
  %499 = tail call ptr @__errno_location() #8
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = tail call i32 @s2n_print_stacktrace(ptr noundef %501) #7
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc nuw i8 %503 to i1
  br i1 %504, label %505, label %509

505:                                              ; preds = %498
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = tail call i32 @fileno(ptr noundef %506) #7
  %508 = tail call i32 @isatty(i32 noundef %507) #7
  %.not61 = icmp eq i32 %508, 0
  br i1 %.not61, label %509, label %510

509:                                              ; preds = %505, %498
  br label %510

510:                                              ; preds = %505, %509
  %.str.5.sink234 = phi ptr [ @.str.5, %509 ], [ @.str.2, %505 ]
  store i32 %500, ptr %499, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = load i32, ptr %119, align 4, !tbaa !5
  %514 = tail call ptr @s2n_strerror(i32 noundef %513, ptr noundef nonnull @.str.4) #7
  %515 = load i32, ptr %119, align 4, !tbaa !5
  %516 = tail call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef nonnull @.str.4) #7
  %517 = load i32, ptr %499, align 4, !tbaa !5
  %518 = tail call ptr @strerror(i32 noundef %517) #7
  %519 = load i32, ptr %499, align 4, !tbaa !5
  %520 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef nonnull %.str.5.sink234, i32 noundef %512, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %514, ptr noundef %516, ptr noundef %518, i32 noundef %519) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

521:                                              ; preds = %493
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = tail call ptr @s2n_errno_location() #7
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = tail call i32 @s2n_error_get_type(i32 noundef %525) #7
  %527 = icmp eq i32 %526, 6
  br i1 %527, label %551, label %528

528:                                              ; preds = %521
  %529 = tail call ptr @__errno_location() #8
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = tail call i32 @s2n_print_stacktrace(ptr noundef %531) #7
  %533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %534 = trunc nuw i8 %533 to i1
  br i1 %534, label %535, label %539

535:                                              ; preds = %528
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = tail call i32 @fileno(ptr noundef %536) #7
  %538 = tail call i32 @isatty(i32 noundef %537) #7
  %.not62 = icmp eq i32 %538, 0
  br i1 %.not62, label %539, label %540

539:                                              ; preds = %535, %528
  br label %540

540:                                              ; preds = %535, %539
  %.str.5.sink243 = phi ptr [ @.str.5, %539 ], [ @.str.2, %535 ]
  store i32 %530, ptr %529, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = load i32, ptr %119, align 4, !tbaa !5
  %544 = tail call ptr @s2n_strerror(i32 noundef %543, ptr noundef nonnull @.str.4) #7
  %545 = load i32, ptr %119, align 4, !tbaa !5
  %546 = tail call ptr @s2n_strerror_debug(i32 noundef %545, ptr noundef nonnull @.str.4) #7
  %547 = load i32, ptr %529, align 4, !tbaa !5
  %548 = tail call ptr @strerror(i32 noundef %547) #7
  %549 = load i32, ptr %529, align 4, !tbaa !5
  %550 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %541, ptr noundef nonnull %.str.5.sink243, i32 noundef %542, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %544, ptr noundef %546, ptr noundef %548, i32 noundef %549) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

551:                                              ; preds = %521
  store i32 469762055, ptr %119, align 4, !tbaa !5
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = add nsw i32 %552, 1
  store i32 %553, ptr @test_count, align 4, !tbaa !5
  %554 = tail call i32 @s2n_error_get_type(i32 noundef 469762055) #7
  %555 = icmp eq i32 %554, 7
  br i1 %555, label %579, label %556

556:                                              ; preds = %551
  %557 = tail call ptr @__errno_location() #8
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = tail call i32 @s2n_print_stacktrace(ptr noundef %559) #7
  %561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %562 = trunc nuw i8 %561 to i1
  br i1 %562, label %563, label %567

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

567:                                              ; preds = %563, %556
  br label %568

568:                                              ; preds = %563, %567
  %.str.5.sink252 = phi ptr [ @.str.5, %567 ], [ @.str.2, %563 ]
  store i32 %558, ptr %557, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = load i32, ptr %119, align 4, !tbaa !5
  %572 = tail call ptr @s2n_strerror(i32 noundef %571, ptr noundef nonnull @.str.4) #7
  %573 = load i32, ptr %119, align 4, !tbaa !5
  %574 = tail call ptr @s2n_strerror_debug(i32 noundef %573, ptr noundef nonnull @.str.4) #7
  %575 = load i32, ptr %557, align 4, !tbaa !5
  %576 = tail call ptr @strerror(i32 noundef %575) #7
  %577 = load i32, ptr %557, align 4, !tbaa !5
  %578 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull %.str.5.sink252, i32 noundef %570, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %572, ptr noundef %574, ptr noundef %576, i32 noundef %577) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

579:                                              ; preds = %551
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr @test_count, align 4, !tbaa !5
  %582 = tail call ptr @s2n_errno_location() #7
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = tail call i32 @s2n_error_get_type(i32 noundef %583) #7
  %585 = icmp eq i32 %584, 7
  br i1 %585, label %609, label %586

586:                                              ; preds = %579
  %587 = tail call ptr @__errno_location() #8
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = tail call i32 @s2n_print_stacktrace(ptr noundef %589) #7
  %591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc nuw i8 %591 to i1
  br i1 %592, label %593, label %597

593:                                              ; preds = %586
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = tail call i32 @fileno(ptr noundef %594) #7
  %596 = tail call i32 @isatty(i32 noundef %595) #7
  %.not64 = icmp eq i32 %596, 0
  br i1 %.not64, label %597, label %598

597:                                              ; preds = %593, %586
  br label %598

598:                                              ; preds = %593, %597
  %.str.5.sink261 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %587, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %119, align 4, !tbaa !5
  %602 = tail call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #7
  %603 = load i32, ptr %119, align 4, !tbaa !5
  %604 = tail call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #7
  %605 = load i32, ptr %587, align 4, !tbaa !5
  %606 = tail call ptr @strerror(i32 noundef %605) #7
  %607 = load i32, ptr %587, align 4, !tbaa !5
  %608 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink261, i32 noundef %600, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

609:                                              ; preds = %579
  %610 = tail call i32 @s2n_cleanup() #7
  %611 = icmp eq i32 %610, -1
  br i1 %611, label %612, label %635

612:                                              ; preds = %609
  %613 = tail call ptr @__errno_location() #8
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = tail call i32 @s2n_print_stacktrace(ptr noundef %615) #7
  %617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %618 = trunc nuw i8 %617 to i1
  br i1 %618, label %619, label %623

619:                                              ; preds = %612
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = tail call i32 @fileno(ptr noundef %620) #7
  %622 = tail call i32 @isatty(i32 noundef %621) #7
  %.not69 = icmp eq i32 %622, 0
  br i1 %.not69, label %623, label %624

623:                                              ; preds = %619, %612
  br label %624

624:                                              ; preds = %619, %623
  %.str.5.sink270 = phi ptr [ @.str.5, %623 ], [ @.str.2, %619 ]
  store i32 %614, ptr %613, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = load i32, ptr %119, align 4, !tbaa !5
  %628 = tail call ptr @s2n_strerror(i32 noundef %627, ptr noundef nonnull @.str.4) #7
  %629 = load i32, ptr %119, align 4, !tbaa !5
  %630 = tail call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef nonnull @.str.4) #7
  %631 = load i32, ptr %613, align 4, !tbaa !5
  %632 = tail call ptr @strerror(i32 noundef %631) #7
  %633 = load i32, ptr %613, align 4, !tbaa !5
  %634 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %625, ptr noundef nonnull %.str.5.sink270, i32 noundef %626, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %628, ptr noundef %630, ptr noundef %632, i32 noundef %633) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

635:                                              ; preds = %609
  %636 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #7
  %637 = icmp eq i32 %636, -1
  br i1 %637, label %638, label %661

638:                                              ; preds = %635
  %639 = tail call ptr @__errno_location() #8
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = tail call i32 @s2n_print_stacktrace(ptr noundef %641) #7
  %643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %644 = trunc nuw i8 %643 to i1
  br i1 %644, label %645, label %649

645:                                              ; preds = %638
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = tail call i32 @fileno(ptr noundef %646) #7
  %648 = tail call i32 @isatty(i32 noundef %647) #7
  %.not68 = icmp eq i32 %648, 0
  br i1 %.not68, label %649, label %650

649:                                              ; preds = %645, %638
  br label %650

650:                                              ; preds = %645, %649
  %.str.5.sink279 = phi ptr [ @.str.5, %649 ], [ @.str.2, %645 ]
  store i32 %640, ptr %639, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = load i32, ptr @test_count, align 4, !tbaa !5
  %653 = load i32, ptr %119, align 4, !tbaa !5
  %654 = tail call ptr @s2n_strerror(i32 noundef %653, ptr noundef nonnull @.str.4) #7
  %655 = load i32, ptr %119, align 4, !tbaa !5
  %656 = tail call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef nonnull @.str.4) #7
  %657 = load i32, ptr %639, align 4, !tbaa !5
  %658 = tail call ptr @strerror(i32 noundef %657) #7
  %659 = load i32, ptr %639, align 4, !tbaa !5
  %660 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %651, ptr noundef nonnull %.str.5.sink279, i32 noundef %652, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %654, ptr noundef %656, ptr noundef %658, i32 noundef %659) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

661:                                              ; preds = %635
  %662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %663 = trunc nuw i8 %662 to i1
  br i1 %663, label %664, label %675

664:                                              ; preds = %661
  %665 = load ptr, ptr @stdout, align 8, !tbaa !9
  %666 = tail call i32 @fileno(ptr noundef %665) #7
  %667 = tail call i32 @isatty(i32 noundef %666) #7
  %.not65 = icmp eq i32 %667, 0
  br i1 %.not65, label %675, label %668

668:                                              ; preds = %664
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not67 = icmp eq i32 %669, 0
  %670 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not67, label %673, label %671

671:                                              ; preds = %668
  %672 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef nonnull @.str.28, i32 noundef %669) #7
  br label %682

673:                                              ; preds = %668
  %674 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef nonnull @.str.29) #7
  br label %682

675:                                              ; preds = %664, %661
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not66 = icmp eq i32 %676, 0
  %677 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not66, label %680, label %678

678:                                              ; preds = %675
  %679 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef nonnull @.str.30, i32 noundef %676) #7
  br label %682

680:                                              ; preds = %675
  %681 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef nonnull @.str.31) #7
  br label %682

682:                                              ; preds = %678, %680, %671, %673
  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 nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #3

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; 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) #5

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare ptr @s2n_errno_location() local_unnamed_addr #2

declare i32 @s2n_error_get_type(i32 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 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 #4 = { 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 #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { nounwind willreturn memory(none) }
attributes #9 = { cold nounwind }
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 = !{}


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