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

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

%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }

@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 [83 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
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.9 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.test_prefs = external hidden unnamed_addr constant %struct.s2n_kem_preferences, align 8
@.str.17 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [116 x i8], align 1
@s2n_secp256r1_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@.str.25 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp256r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.26 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp384r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.27 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp521r1_kyber_1024_r3 = external constant %struct.s2n_kem_group, align 8
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_x25519_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@.str.29 = external hidden unnamed_addr constant [66 x i8], align 1
@s2n_x25519_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.30 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp256r1_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.33 = external hidden unnamed_addr constant [66 x i8], align 1
@s2n_x25519_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.34 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca 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 %struct.s2n_kem_preferences, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %48

48:                                               ; preds = %2
  br label %49

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

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

57:                                               ; preds = %54
  br label %58

58:                                               ; preds = %57
  br label %59

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

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

71:                                               ; preds = %66
  %72 = load i32, ptr %6, align 4, !tbaa !5
  %73 = call ptr @__errno_location() #9
  store i32 %72, ptr %73, align 4, !tbaa !5
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = load i32, ptr @test_count, align 4, !tbaa !5
  %76 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %77 = load i32, ptr %76, align 4, !tbaa !5
  %78 = call ptr @s2n_strerror(i32 noundef %77, ptr noundef @.str.4)
  %79 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %81 = call ptr @s2n_strerror_debug(i32 noundef %80, ptr noundef @.str.4)
  %82 = call ptr @__errno_location() #9
  %83 = load i32, ptr %82, align 4, !tbaa !5
  %84 = call ptr @strerror(i32 noundef %83) #8
  %85 = call ptr @__errno_location() #9
  %86 = load i32, ptr %85, align 4, !tbaa !5
  %87 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %74, ptr noundef @.str.2, i32 noundef %75, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 25, ptr noundef %78, ptr noundef %81, ptr noundef %84, i32 noundef %86) #8
  br label %105

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

105:                                              ; preds = %88, %71
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %106

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

107:                                              ; No predecessors!
  br label %108

108:                                              ; preds = %107, %54
  br label %109

109:                                              ; preds = %108
  br label %110

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

115:                                              ; preds = %110
  br label %116

116:                                              ; preds = %115
  br label %117

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

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

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

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

163:                                              ; preds = %146, %129
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %164

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

165:                                              ; No predecessors!
  br label %166

166:                                              ; preds = %165, %110
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  br label %169

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

172:                                              ; preds = %169
  br label %173

173:                                              ; preds = %172
  br label %174

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

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

186:                                              ; preds = %181
  %187 = load i32, ptr %8, align 4, !tbaa !5
  %188 = call ptr @__errno_location() #9
  store i32 %187, ptr %188, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = call ptr @s2n_strerror(i32 noundef %192, ptr noundef @.str.4)
  %194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = call ptr @s2n_strerror_debug(i32 noundef %195, ptr noundef @.str.4)
  %197 = call ptr @__errno_location() #9
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @strerror(i32 noundef %198) #8
  %200 = call ptr @__errno_location() #9
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef @.str.2, i32 noundef %190, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 25, ptr noundef %193, ptr noundef %196, ptr noundef %199, i32 noundef %201) #8
  br label %220

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

220:                                              ; preds = %203, %186
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %221

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

222:                                              ; No predecessors!
  br label %223

223:                                              ; preds = %222, %169
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr @test_count, align 4, !tbaa !5
  %229 = call i32 (...) @s2n_disable_tls13_in_test()
  %230 = icmp eq i32 %229, -1
  br i1 %230, label %231, label %282

231:                                              ; preds = %226
  br label %232

232:                                              ; preds = %231
  br label %233

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

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

245:                                              ; preds = %240
  %246 = load i32, ptr %9, align 4, !tbaa !5
  %247 = call ptr @__errno_location() #9
  store i32 %246, ptr %247, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror(i32 noundef %251, ptr noundef @.str.4)
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror_debug(i32 noundef %254, ptr noundef @.str.4)
  %256 = call ptr @__errno_location() #9
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @strerror(i32 noundef %257) #8
  %259 = call ptr @__errno_location() #9
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef @.str.2, i32 noundef %249, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 26, ptr noundef %252, ptr noundef %255, ptr noundef %258, i32 noundef %260) #8
  br label %279

262:                                              ; preds = %240, %233
  %263 = load i32, ptr %9, align 4, !tbaa !5
  %264 = call ptr @__errno_location() #9
  store i32 %263, ptr %264, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef @.str.4)
  %270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef @.str.4)
  %273 = call ptr @__errno_location() #9
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @strerror(i32 noundef %274) #8
  %276 = call ptr @__errno_location() #9
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef @.str.5, i32 noundef %266, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 26, ptr noundef %269, ptr noundef %272, ptr noundef %275, i32 noundef %277) #8
  br label %279

279:                                              ; preds = %262, %245
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %280

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

281:                                              ; No predecessors!
  br label %282

282:                                              ; preds = %281, %226
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = add nsw i32 %285, 1
  store i32 %286, ptr @test_count, align 4, !tbaa !5
  %287 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 4587)
  br i1 %287, label %288, label %339

288:                                              ; preds = %284
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %291 = call ptr @__errno_location() #9
  %292 = load i32, ptr %291, align 4, !tbaa !5
  store i32 %292, ptr %10, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = call i32 @s2n_print_stacktrace(ptr noundef %293)
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc i8 %295 to i1
  br i1 %296, label %297, label %319

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = call i32 @fileno(ptr noundef %298) #8
  %300 = call i32 @isatty(i32 noundef %299) #8
  %301 = icmp ne i32 %300, 0
  br i1 %301, label %302, label %319

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

319:                                              ; preds = %297, %290
  %320 = load i32, ptr %10, align 4, !tbaa !5
  %321 = call ptr @__errno_location() #9
  store i32 %320, ptr %321, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef @.str.4)
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef @.str.4)
  %330 = call ptr @__errno_location() #9
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #8
  %333 = call ptr @__errno_location() #9
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef @.str.5, i32 noundef %323, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 28, ptr noundef %326, ptr noundef %329, ptr noundef %332, i32 noundef %334) #8
  br label %336

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

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

338:                                              ; No predecessors!
  br label %339

339:                                              ; preds = %338, %284
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr @test_count, align 4, !tbaa !5
  %344 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 4588)
  br i1 %344, label %345, label %396

345:                                              ; preds = %341
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %348 = call ptr @__errno_location() #9
  %349 = load i32, ptr %348, align 4, !tbaa !5
  store i32 %349, ptr %11, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @s2n_print_stacktrace(ptr noundef %350)
  %352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %353 = trunc i8 %352 to i1
  br i1 %353, label %354, label %376

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

359:                                              ; preds = %354
  %360 = load i32, ptr %11, align 4, !tbaa !5
  %361 = call ptr @__errno_location() #9
  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() #9
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #8
  %373 = call ptr @__errno_location() #9
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str.2, i32 noundef %363, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 29, ptr noundef %366, ptr noundef %369, ptr noundef %372, i32 noundef %374) #8
  br label %393

376:                                              ; preds = %354, %347
  %377 = load i32, ptr %11, align 4, !tbaa !5
  %378 = call ptr @__errno_location() #9
  store i32 %377, ptr %378, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror(i32 noundef %382, ptr noundef @.str.4)
  %384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef @.str.4)
  %387 = call ptr @__errno_location() #9
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #8
  %390 = call ptr @__errno_location() #9
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef @.str.5, i32 noundef %380, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 29, ptr noundef %383, ptr noundef %386, ptr noundef %389, i32 noundef %391) #8
  br label %393

393:                                              ; preds = %376, %359
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %394

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

395:                                              ; No predecessors!
  br label %396

396:                                              ; preds = %395, %341
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @test_count, align 4, !tbaa !5
  %401 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 12089)
  br i1 %401, label %402, label %453

402:                                              ; preds = %398
  br label %403

403:                                              ; preds = %402
  br label %404

404:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %405 = call ptr @__errno_location() #9
  %406 = load i32, ptr %405, align 4, !tbaa !5
  store i32 %406, ptr %12, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @s2n_print_stacktrace(ptr noundef %407)
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc i8 %409 to i1
  br i1 %410, label %411, label %433

411:                                              ; preds = %404
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @fileno(ptr noundef %412) #8
  %414 = call i32 @isatty(i32 noundef %413) #8
  %415 = icmp ne i32 %414, 0
  br i1 %415, label %416, label %433

416:                                              ; preds = %411
  %417 = load i32, ptr %12, align 4, !tbaa !5
  %418 = call ptr @__errno_location() #9
  store i32 %417, ptr %418, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = load i32, ptr @test_count, align 4, !tbaa !5
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror(i32 noundef %422, ptr noundef @.str.4)
  %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_debug(i32 noundef %425, ptr noundef @.str.4)
  %427 = call ptr @__errno_location() #9
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @strerror(i32 noundef %428) #8
  %430 = call ptr @__errno_location() #9
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %419, ptr noundef @.str.2, i32 noundef %420, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 30, ptr noundef %423, ptr noundef %426, ptr noundef %429, i32 noundef %431) #8
  br label %450

433:                                              ; preds = %411, %404
  %434 = load i32, ptr %12, align 4, !tbaa !5
  %435 = call ptr @__errno_location() #9
  store i32 %434, ptr %435, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror(i32 noundef %439, ptr noundef @.str.4)
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror_debug(i32 noundef %442, ptr noundef @.str.4)
  %444 = call ptr @__errno_location() #9
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #8
  %447 = call ptr @__errno_location() #9
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %436, ptr noundef @.str.5, i32 noundef %437, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 30, ptr noundef %440, ptr noundef %443, ptr noundef %446, i32 noundef %448) #8
  br label %450

450:                                              ; preds = %433, %416
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %451

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

452:                                              ; No predecessors!
  br label %453

453:                                              ; preds = %452, %398
  br label %454

454:                                              ; preds = %453
  br label %455

455:                                              ; preds = %454
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr @test_count, align 4, !tbaa !5
  %458 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 25497)
  br i1 %458, label %459, label %510

459:                                              ; preds = %455
  br label %460

460:                                              ; preds = %459
  br label %461

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

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

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

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

507:                                              ; preds = %490, %473
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %508

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

509:                                              ; No predecessors!
  br label %510

510:                                              ; preds = %509, %455
  br label %511

511:                                              ; preds = %510
  br label %512

512:                                              ; preds = %511
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  %515 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 12090)
  br i1 %515, label %516, label %567

516:                                              ; preds = %512
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %519 = call ptr @__errno_location() #9
  %520 = load i32, ptr %519, align 4, !tbaa !5
  store i32 %520, ptr %14, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @s2n_print_stacktrace(ptr noundef %521)
  %523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %547

525:                                              ; preds = %518
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @fileno(ptr noundef %526) #8
  %528 = call i32 @isatty(i32 noundef %527) #8
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %547

530:                                              ; preds = %525
  %531 = load i32, ptr %14, align 4, !tbaa !5
  %532 = call ptr @__errno_location() #9
  store i32 %531, ptr %532, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef @.str.4)
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror_debug(i32 noundef %539, ptr noundef @.str.4)
  %541 = call ptr @__errno_location() #9
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #8
  %544 = call ptr @__errno_location() #9
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef @.str.2, i32 noundef %534, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 32, ptr noundef %537, ptr noundef %540, ptr noundef %543, i32 noundef %545) #8
  br label %564

547:                                              ; preds = %525, %518
  %548 = load i32, ptr %14, align 4, !tbaa !5
  %549 = call ptr @__errno_location() #9
  store i32 %548, ptr %549, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef @.str.4)
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef @.str.4)
  %558 = call ptr @__errno_location() #9
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #8
  %561 = call ptr @__errno_location() #9
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef @.str.5, i32 noundef %551, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 32, ptr noundef %554, ptr noundef %557, ptr noundef %560, i32 noundef %562) #8
  br label %564

564:                                              ; preds = %547, %530
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %565

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

566:                                              ; No predecessors!
  br label %567

567:                                              ; preds = %566, %512
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = add nsw i32 %570, 1
  store i32 %571, ptr @test_count, align 4, !tbaa !5
  %572 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 25498)
  br i1 %572, label %573, label %624

573:                                              ; preds = %569
  br label %574

574:                                              ; preds = %573
  br label %575

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

582:                                              ; preds = %575
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @fileno(ptr noundef %583) #8
  %585 = call i32 @isatty(i32 noundef %584) #8
  %586 = icmp ne i32 %585, 0
  br i1 %586, label %587, label %604

587:                                              ; preds = %582
  %588 = load i32, ptr %15, align 4, !tbaa !5
  %589 = call ptr @__errno_location() #9
  store i32 %588, ptr %589, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %593, ptr noundef @.str.4)
  %595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = call ptr @s2n_strerror_debug(i32 noundef %596, ptr noundef @.str.4)
  %598 = call ptr @__errno_location() #9
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call ptr @strerror(i32 noundef %599) #8
  %601 = call ptr @__errno_location() #9
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %590, ptr noundef @.str.2, i32 noundef %591, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 33, ptr noundef %594, ptr noundef %597, ptr noundef %600, i32 noundef %602) #8
  br label %621

604:                                              ; preds = %582, %575
  %605 = load i32, ptr %15, align 4, !tbaa !5
  %606 = call ptr @__errno_location() #9
  store i32 %605, ptr %606, align 4, !tbaa !5
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %610, ptr noundef @.str.4)
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror_debug(i32 noundef %613, ptr noundef @.str.4)
  %615 = call ptr @__errno_location() #9
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #8
  %618 = call ptr @__errno_location() #9
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %607, ptr noundef @.str.5, i32 noundef %608, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 33, ptr noundef %611, ptr noundef %614, ptr noundef %617, i32 noundef %619) #8
  br label %621

621:                                              ; preds = %604, %587
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %622

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

623:                                              ; No predecessors!
  br label %624

624:                                              ; preds = %623, %569
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 12092)
  br i1 %629, label %630, label %681

630:                                              ; preds = %626
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %633 = call ptr @__errno_location() #9
  %634 = load i32, ptr %633, align 4, !tbaa !5
  store i32 %634, ptr %16, 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) #8
  %642 = call i32 @isatty(i32 noundef %641) #8
  %643 = icmp ne i32 %642, 0
  br i1 %643, label %644, label %661

644:                                              ; preds = %639
  %645 = load i32, ptr %16, align 4, !tbaa !5
  %646 = call ptr @__errno_location() #9
  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() #9
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = call ptr @strerror(i32 noundef %656) #8
  %658 = call ptr @__errno_location() #9
  %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 34, ptr noundef %651, ptr noundef %654, ptr noundef %657, i32 noundef %659) #8
  br label %678

661:                                              ; preds = %639, %632
  %662 = load i32, ptr %16, align 4, !tbaa !5
  %663 = call ptr @__errno_location() #9
  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() #9
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #8
  %675 = call ptr @__errno_location() #9
  %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 34, ptr noundef %668, ptr noundef %671, ptr noundef %674, i32 noundef %676) #8
  br label %678

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

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

680:                                              ; No predecessors!
  br label %681

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

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef @kem_preferences_null, i16 noundef zeroext 12093)
  br i1 %686, label %687, label %738

687:                                              ; preds = %683
  br label %688

688:                                              ; preds = %687
  br label %689

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

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

701:                                              ; preds = %696
  %702 = load i32, ptr %17, align 4, !tbaa !5
  %703 = call ptr @__errno_location() #9
  store i32 %702, ptr %703, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror(i32 noundef %707, ptr noundef @.str.4)
  %709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef @.str.4)
  %712 = call ptr @__errno_location() #9
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #8
  %715 = call ptr @__errno_location() #9
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %704, ptr noundef @.str.2, i32 noundef %705, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 35, ptr noundef %708, ptr noundef %711, ptr noundef %714, i32 noundef %716) #8
  br label %735

718:                                              ; preds = %696, %689
  %719 = load i32, ptr %17, align 4, !tbaa !5
  %720 = call ptr @__errno_location() #9
  store i32 %719, ptr %720, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror(i32 noundef %724, ptr noundef @.str.4)
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror_debug(i32 noundef %727, ptr noundef @.str.4)
  %729 = call ptr @__errno_location() #9
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @strerror(i32 noundef %730) #8
  %732 = call ptr @__errno_location() #9
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef @.str.5, i32 noundef %722, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 35, ptr noundef %725, ptr noundef %728, ptr noundef %731, i32 noundef %733) #8
  br label %735

735:                                              ; preds = %718, %701
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %736

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

737:                                              ; No predecessors!
  br label %738

738:                                              ; preds = %737, %683
  br label %739

739:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %18, ptr align 8 @__const.main.test_prefs, i64 40, i1 false)
  br label %740

740:                                              ; preds = %739
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 4587)
  br i1 %743, label %797, label %744

744:                                              ; preds = %740
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %747 = call ptr @__errno_location() #9
  %748 = load i32, ptr %747, align 4, !tbaa !5
  store i32 %748, ptr %19, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @s2n_print_stacktrace(ptr noundef %749)
  %751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %752 = trunc i8 %751 to i1
  br i1 %752, label %753, label %775

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

758:                                              ; preds = %753
  %759 = load i32, ptr %19, align 4, !tbaa !5
  %760 = call ptr @__errno_location() #9
  store i32 %759, ptr %760, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef @.str.4)
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef @.str.4)
  %769 = call ptr @__errno_location() #9
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #8
  %772 = call ptr @__errno_location() #9
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef @.str.2, i32 noundef %762, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 45, ptr noundef %765, ptr noundef %768, ptr noundef %771, i32 noundef %773) #8
  br label %792

775:                                              ; preds = %753, %746
  %776 = load i32, ptr %19, align 4, !tbaa !5
  %777 = call ptr @__errno_location() #9
  store i32 %776, ptr %777, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror(i32 noundef %781, ptr noundef @.str.4)
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef @.str.4)
  %786 = call ptr @__errno_location() #9
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #8
  %789 = call ptr @__errno_location() #9
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %778, ptr noundef @.str.5, i32 noundef %779, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 45, ptr noundef %782, ptr noundef %785, ptr noundef %788, i32 noundef %790) #8
  br label %792

792:                                              ; preds = %775, %758
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %793

793:                                              ; preds = %792
  br label %794

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

795:                                              ; No predecessors!
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796, %740
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798
  br label %800

800:                                              ; preds = %799
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @test_count, align 4, !tbaa !5
  %803 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 4588)
  br i1 %803, label %857, label %804

804:                                              ; preds = %800
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %807 = call ptr @__errno_location() #9
  %808 = load i32, ptr %807, align 4, !tbaa !5
  store i32 %808, ptr %20, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @s2n_print_stacktrace(ptr noundef %809)
  %811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %812 = trunc i8 %811 to i1
  br i1 %812, label %813, label %835

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

818:                                              ; preds = %813
  %819 = load i32, ptr %20, align 4, !tbaa !5
  %820 = call ptr @__errno_location() #9
  store i32 %819, ptr %820, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef @.str.4)
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror_debug(i32 noundef %827, ptr noundef @.str.4)
  %829 = call ptr @__errno_location() #9
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #8
  %832 = call ptr @__errno_location() #9
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef @.str.2, i32 noundef %822, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 46, ptr noundef %825, ptr noundef %828, ptr noundef %831, i32 noundef %833) #8
  br label %852

835:                                              ; preds = %813, %806
  %836 = load i32, ptr %20, align 4, !tbaa !5
  %837 = call ptr @__errno_location() #9
  store i32 %836, ptr %837, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef @.str.4)
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror_debug(i32 noundef %844, ptr noundef @.str.4)
  %846 = call ptr @__errno_location() #9
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @strerror(i32 noundef %847) #8
  %849 = call ptr @__errno_location() #9
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef @.str.5, i32 noundef %839, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 46, ptr noundef %842, ptr noundef %845, ptr noundef %848, i32 noundef %850) #8
  br label %852

852:                                              ; preds = %835, %818
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %853

853:                                              ; preds = %852
  br label %854

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

855:                                              ; No predecessors!
  br label %856

856:                                              ; preds = %855
  br label %857

857:                                              ; preds = %856, %800
  br label %858

858:                                              ; preds = %857
  br label %859

859:                                              ; preds = %858
  br label %860

860:                                              ; preds = %859
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = add nsw i32 %861, 1
  store i32 %862, ptr @test_count, align 4, !tbaa !5
  %863 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 12089)
  br i1 %863, label %917, label %864

864:                                              ; preds = %860
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %867 = call ptr @__errno_location() #9
  %868 = load i32, ptr %867, align 4, !tbaa !5
  store i32 %868, ptr %21, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @s2n_print_stacktrace(ptr noundef %869)
  %871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %872 = trunc i8 %871 to i1
  br i1 %872, label %873, label %895

873:                                              ; preds = %866
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @fileno(ptr noundef %874) #8
  %876 = call i32 @isatty(i32 noundef %875) #8
  %877 = icmp ne i32 %876, 0
  br i1 %877, label %878, label %895

878:                                              ; preds = %873
  %879 = load i32, ptr %21, align 4, !tbaa !5
  %880 = call ptr @__errno_location() #9
  store i32 %879, ptr %880, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef @.str.4)
  %886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror_debug(i32 noundef %887, ptr noundef @.str.4)
  %889 = call ptr @__errno_location() #9
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call ptr @strerror(i32 noundef %890) #8
  %892 = call ptr @__errno_location() #9
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %881, ptr noundef @.str.2, i32 noundef %882, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 47, ptr noundef %885, ptr noundef %888, ptr noundef %891, i32 noundef %893) #8
  br label %912

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

912:                                              ; preds = %895, %878
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %913

913:                                              ; preds = %912
  br label %914

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

915:                                              ; No predecessors!
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916, %860
  br label %918

918:                                              ; preds = %917
  br label %919

919:                                              ; preds = %918
  br label %920

920:                                              ; preds = %919
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = add nsw i32 %921, 1
  store i32 %922, ptr @test_count, align 4, !tbaa !5
  %923 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 25497)
  br i1 %923, label %977, label %924

924:                                              ; preds = %920
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %927 = call ptr @__errno_location() #9
  %928 = load i32, ptr %927, align 4, !tbaa !5
  store i32 %928, ptr %22, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @s2n_print_stacktrace(ptr noundef %929)
  %931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %932 = trunc i8 %931 to i1
  br i1 %932, label %933, label %955

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

938:                                              ; preds = %933
  %939 = load i32, ptr %22, align 4, !tbaa !5
  %940 = call ptr @__errno_location() #9
  store i32 %939, ptr %940, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef @.str.4)
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef @.str.4)
  %949 = call ptr @__errno_location() #9
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #8
  %952 = call ptr @__errno_location() #9
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.2, i32 noundef %942, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 48, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #8
  br label %972

955:                                              ; preds = %933, %926
  %956 = load i32, ptr %22, align 4, !tbaa !5
  %957 = call ptr @__errno_location() #9
  store i32 %956, ptr %957, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef @.str.4)
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef @.str.4)
  %966 = call ptr @__errno_location() #9
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @strerror(i32 noundef %967) #8
  %969 = call ptr @__errno_location() #9
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef @.str.5, i32 noundef %959, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 48, ptr noundef %962, ptr noundef %965, ptr noundef %968, i32 noundef %970) #8
  br label %972

972:                                              ; preds = %955, %938
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %973

973:                                              ; preds = %972
  br label %974

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

975:                                              ; No predecessors!
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976, %920
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 12090)
  br i1 %983, label %1037, label %984

984:                                              ; preds = %980
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %987 = call ptr @__errno_location() #9
  %988 = load i32, ptr %987, align 4, !tbaa !5
  store i32 %988, ptr %23, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @s2n_print_stacktrace(ptr noundef %989)
  %991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %992 = trunc i8 %991 to i1
  br i1 %992, label %993, label %1015

993:                                              ; preds = %986
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #8
  %996 = call i32 @isatty(i32 noundef %995) #8
  %997 = icmp ne i32 %996, 0
  br i1 %997, label %998, label %1015

998:                                              ; preds = %993
  %999 = load i32, ptr %23, align 4, !tbaa !5
  %1000 = call ptr @__errno_location() #9
  store i32 %999, ptr %1000, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror(i32 noundef %1004, ptr noundef @.str.4)
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef @.str.4)
  %1009 = call ptr @__errno_location() #9
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @strerror(i32 noundef %1010) #8
  %1012 = call ptr @__errno_location() #9
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef @.str.2, i32 noundef %1002, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 49, ptr noundef %1005, ptr noundef %1008, ptr noundef %1011, i32 noundef %1013) #8
  br label %1032

1015:                                             ; preds = %993, %986
  %1016 = load i32, ptr %23, align 4, !tbaa !5
  %1017 = call ptr @__errno_location() #9
  store i32 %1016, ptr %1017, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror(i32 noundef %1021, ptr noundef @.str.4)
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror_debug(i32 noundef %1024, ptr noundef @.str.4)
  %1026 = call ptr @__errno_location() #9
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #8
  %1029 = call ptr @__errno_location() #9
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef @.str.5, i32 noundef %1019, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 49, ptr noundef %1022, ptr noundef %1025, ptr noundef %1028, i32 noundef %1030) #8
  br label %1032

1032:                                             ; preds = %1015, %998
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

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

1035:                                             ; No predecessors!
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036, %980
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr @test_count, align 4, !tbaa !5
  %1043 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 25498)
  br i1 %1043, label %1097, label %1044

1044:                                             ; preds = %1040
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %1047 = call ptr @__errno_location() #9
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  store i32 %1048, ptr %24, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @s2n_print_stacktrace(ptr noundef %1049)
  %1051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1052 = trunc i8 %1051 to i1
  br i1 %1052, label %1053, label %1075

1053:                                             ; preds = %1046
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @fileno(ptr noundef %1054) #8
  %1056 = call i32 @isatty(i32 noundef %1055) #8
  %1057 = icmp ne i32 %1056, 0
  br i1 %1057, label %1058, label %1075

1058:                                             ; preds = %1053
  %1059 = load i32, ptr %24, align 4, !tbaa !5
  %1060 = call ptr @__errno_location() #9
  store i32 %1059, ptr %1060, align 4, !tbaa !5
  %1061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror(i32 noundef %1064, ptr noundef @.str.4)
  %1066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef @.str.4)
  %1069 = call ptr @__errno_location() #9
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call ptr @strerror(i32 noundef %1070) #8
  %1072 = call ptr @__errno_location() #9
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1061, ptr noundef @.str.2, i32 noundef %1062, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 50, ptr noundef %1065, ptr noundef %1068, ptr noundef %1071, i32 noundef %1073) #8
  br label %1092

1075:                                             ; preds = %1053, %1046
  %1076 = load i32, ptr %24, align 4, !tbaa !5
  %1077 = call ptr @__errno_location() #9
  store i32 %1076, ptr %1077, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call ptr @__errno_location() #9
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @strerror(i32 noundef %1087) #8
  %1089 = call ptr @__errno_location() #9
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef @.str.5, i32 noundef %1079, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 50, ptr noundef %1082, ptr noundef %1085, ptr noundef %1088, i32 noundef %1090) #8
  br label %1092

1092:                                             ; preds = %1075, %1058
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

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

1095:                                             ; No predecessors!
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096, %1040
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099
  %1101 = load i32, ptr @test_count, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr @test_count, align 4, !tbaa !5
  %1103 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 12092)
  br i1 %1103, label %1157, label %1104

1104:                                             ; preds = %1100
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %1107 = call ptr @__errno_location() #9
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  store i32 %1108, ptr %25, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @s2n_print_stacktrace(ptr noundef %1109)
  %1111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1112 = trunc i8 %1111 to i1
  br i1 %1112, label %1113, label %1135

1113:                                             ; preds = %1106
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = call i32 @fileno(ptr noundef %1114) #8
  %1116 = call i32 @isatty(i32 noundef %1115) #8
  %1117 = icmp ne i32 %1116, 0
  br i1 %1117, label %1118, label %1135

1118:                                             ; preds = %1113
  %1119 = load i32, ptr %25, align 4, !tbaa !5
  %1120 = call ptr @__errno_location() #9
  store i32 %1119, ptr %1120, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror(i32 noundef %1124, ptr noundef @.str.4)
  %1126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef @.str.4)
  %1129 = call ptr @__errno_location() #9
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @strerror(i32 noundef %1130) #8
  %1132 = call ptr @__errno_location() #9
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1121, ptr noundef @.str.2, i32 noundef %1122, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 51, ptr noundef %1125, ptr noundef %1128, ptr noundef %1131, i32 noundef %1133) #8
  br label %1152

1135:                                             ; preds = %1113, %1106
  %1136 = load i32, ptr %25, align 4, !tbaa !5
  %1137 = call ptr @__errno_location() #9
  store i32 %1136, ptr %1137, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef @.str.4)
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call ptr @__errno_location() #9
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #8
  %1149 = call ptr @__errno_location() #9
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef @.str.5, i32 noundef %1139, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 51, ptr noundef %1142, ptr noundef %1145, ptr noundef %1148, i32 noundef %1150) #8
  br label %1152

1152:                                             ; preds = %1135, %1118
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

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

1155:                                             ; No predecessors!
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

1157:                                             ; preds = %1156, %1100
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  %1161 = load i32, ptr @test_count, align 4, !tbaa !5
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr @test_count, align 4, !tbaa !5
  %1163 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef %18, i16 noundef zeroext 12093)
  br i1 %1163, label %1217, label %1164

1164:                                             ; preds = %1160
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

1166:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %1167 = call ptr @__errno_location() #9
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  store i32 %1168, ptr %26, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169)
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc i8 %1171 to i1
  br i1 %1172, label %1173, label %1195

1173:                                             ; preds = %1166
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @fileno(ptr noundef %1174) #8
  %1176 = call i32 @isatty(i32 noundef %1175) #8
  %1177 = icmp ne i32 %1176, 0
  br i1 %1177, label %1178, label %1195

1178:                                             ; preds = %1173
  %1179 = load i32, ptr %26, align 4, !tbaa !5
  %1180 = call ptr @__errno_location() #9
  store i32 %1179, ptr %1180, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror(i32 noundef %1184, ptr noundef @.str.4)
  %1186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror_debug(i32 noundef %1187, ptr noundef @.str.4)
  %1189 = call ptr @__errno_location() #9
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #8
  %1192 = call ptr @__errno_location() #9
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1181, ptr noundef @.str.2, i32 noundef %1182, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 52, ptr noundef %1185, ptr noundef %1188, ptr noundef %1191, i32 noundef %1193) #8
  br label %1212

1195:                                             ; preds = %1173, %1166
  %1196 = load i32, ptr %26, align 4, !tbaa !5
  %1197 = call ptr @__errno_location() #9
  store i32 %1196, ptr %1197, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef @.str.4)
  %1203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror_debug(i32 noundef %1204, ptr noundef @.str.4)
  %1206 = call ptr @__errno_location() #9
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = call ptr @strerror(i32 noundef %1207) #8
  %1209 = call ptr @__errno_location() #9
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef @.str.5, i32 noundef %1199, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 52, ptr noundef %1202, ptr noundef %1205, ptr noundef %1208, i32 noundef %1210) #8
  br label %1212

1212:                                             ; preds = %1195, %1178
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

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

1215:                                             ; No predecessors!
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216, %1160
  br label %1218

1218:                                             ; preds = %1217
  br label %1219

1219:                                             ; preds = %1218
  %1220 = call zeroext i1 @s2n_libcrypto_supports_evp_kem()
  br i1 %1220, label %1221, label %1895

1221:                                             ; preds = %1219
  br label %1222

1222:                                             ; preds = %1221
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr @test_count, align 4, !tbaa !5
  %1225 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp256r1_kyber_512_r3)
  br i1 %1225, label %1279, label %1226

1226:                                             ; preds = %1222
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

1228:                                             ; preds = %1227
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1229 = call ptr @__errno_location() #9
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  store i32 %1230, ptr %27, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = call i32 @s2n_print_stacktrace(ptr noundef %1231)
  %1233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1234 = trunc i8 %1233 to i1
  br i1 %1234, label %1235, label %1257

1235:                                             ; preds = %1228
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = call i32 @fileno(ptr noundef %1236) #8
  %1238 = call i32 @isatty(i32 noundef %1237) #8
  %1239 = icmp ne i32 %1238, 0
  br i1 %1239, label %1240, label %1257

1240:                                             ; preds = %1235
  %1241 = load i32, ptr %27, align 4, !tbaa !5
  %1242 = call ptr @__errno_location() #9
  store i32 %1241, ptr %1242, align 4, !tbaa !5
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @s2n_strerror(i32 noundef %1246, ptr noundef @.str.4)
  %1248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef @.str.4)
  %1251 = call ptr @__errno_location() #9
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @strerror(i32 noundef %1252) #8
  %1254 = call ptr @__errno_location() #9
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1243, ptr noundef @.str.2, i32 noundef %1244, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 55, ptr noundef %1247, ptr noundef %1250, ptr noundef %1253, i32 noundef %1255) #8
  br label %1274

1257:                                             ; preds = %1235, %1228
  %1258 = load i32, ptr %27, align 4, !tbaa !5
  %1259 = call ptr @__errno_location() #9
  store i32 %1258, ptr %1259, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror(i32 noundef %1263, ptr noundef @.str.4)
  %1265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef @.str.4)
  %1268 = call ptr @__errno_location() #9
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @strerror(i32 noundef %1269) #8
  %1271 = call ptr @__errno_location() #9
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1260, ptr noundef @.str.5, i32 noundef %1261, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 55, ptr noundef %1264, ptr noundef %1267, ptr noundef %1270, i32 noundef %1272) #8
  br label %1274

1274:                                             ; preds = %1257, %1240
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

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

1277:                                             ; No predecessors!
  br label %1278

1278:                                             ; preds = %1277
  br label %1279

1279:                                             ; preds = %1278, %1222
  br label %1280

1280:                                             ; preds = %1279
  br label %1281

1281:                                             ; preds = %1280
  br label %1282

1282:                                             ; preds = %1281
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = add nsw i32 %1283, 1
  store i32 %1284, ptr @test_count, align 4, !tbaa !5
  %1285 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp256r1_kyber_768_r3)
  br i1 %1285, label %1339, label %1286

1286:                                             ; preds = %1282
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1289 = call ptr @__errno_location() #9
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  store i32 %1290, ptr %28, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @s2n_print_stacktrace(ptr noundef %1291)
  %1293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1294 = trunc i8 %1293 to i1
  br i1 %1294, label %1295, label %1317

1295:                                             ; preds = %1288
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @fileno(ptr noundef %1296) #8
  %1298 = call i32 @isatty(i32 noundef %1297) #8
  %1299 = icmp ne i32 %1298, 0
  br i1 %1299, label %1300, label %1317

1300:                                             ; preds = %1295
  %1301 = load i32, ptr %28, align 4, !tbaa !5
  %1302 = call ptr @__errno_location() #9
  store i32 %1301, ptr %1302, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef @.str.4)
  %1311 = call ptr @__errno_location() #9
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #8
  %1314 = call ptr @__errno_location() #9
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1303, ptr noundef @.str.2, i32 noundef %1304, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1307, ptr noundef %1310, ptr noundef %1313, i32 noundef %1315) #8
  br label %1334

1317:                                             ; preds = %1295, %1288
  %1318 = load i32, ptr %28, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #9
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.4)
  %1328 = call ptr @__errno_location() #9
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #8
  %1331 = call ptr @__errno_location() #9
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.5, i32 noundef %1321, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #8
  br label %1334

1334:                                             ; preds = %1317, %1300
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

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

1337:                                             ; No predecessors!
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338, %1282
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  br label %1342

1342:                                             ; preds = %1341
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = add nsw i32 %1343, 1
  store i32 %1344, ptr @test_count, align 4, !tbaa !5
  %1345 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp384r1_kyber_768_r3)
  br i1 %1345, label %1399, label %1346

1346:                                             ; preds = %1342
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

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

1355:                                             ; preds = %1348
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = call i32 @fileno(ptr noundef %1356) #8
  %1358 = call i32 @isatty(i32 noundef %1357) #8
  %1359 = icmp ne i32 %1358, 0
  br i1 %1359, label %1360, label %1377

1360:                                             ; preds = %1355
  %1361 = load i32, ptr %29, align 4, !tbaa !5
  %1362 = call ptr @__errno_location() #9
  store i32 %1361, ptr %1362, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror(i32 noundef %1366, ptr noundef @.str.4)
  %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_debug(i32 noundef %1369, ptr noundef @.str.4)
  %1371 = call ptr @__errno_location() #9
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #8
  %1374 = call ptr @__errno_location() #9
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1363, ptr noundef @.str.2, i32 noundef %1364, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1367, ptr noundef %1370, ptr noundef %1373, i32 noundef %1375) #8
  br label %1394

1377:                                             ; preds = %1355, %1348
  %1378 = load i32, ptr %29, align 4, !tbaa !5
  %1379 = call ptr @__errno_location() #9
  store i32 %1378, ptr %1379, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef @.str.4)
  %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_debug(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call ptr @__errno_location() #9
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #8
  %1391 = call ptr @__errno_location() #9
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef @.str.5, i32 noundef %1381, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1384, ptr noundef %1387, ptr noundef %1390, i32 noundef %1392) #8
  br label %1394

1394:                                             ; preds = %1377, %1360
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

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

1397:                                             ; No predecessors!
  br label %1398

1398:                                             ; preds = %1397
  br label %1399

1399:                                             ; preds = %1398, %1342
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr @test_count, align 4, !tbaa !5
  %1405 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp521r1_kyber_1024_r3)
  br i1 %1405, label %1459, label %1406

1406:                                             ; preds = %1402
  br label %1407

1407:                                             ; preds = %1406
  br label %1408

1408:                                             ; preds = %1407
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1409 = call ptr @__errno_location() #9
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  store i32 %1410, ptr %30, align 4, !tbaa !5
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @s2n_print_stacktrace(ptr noundef %1411)
  %1413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1414 = trunc i8 %1413 to i1
  br i1 %1414, label %1415, label %1437

1415:                                             ; preds = %1408
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @fileno(ptr noundef %1416) #8
  %1418 = call i32 @isatty(i32 noundef %1417) #8
  %1419 = icmp ne i32 %1418, 0
  br i1 %1419, label %1420, label %1437

1420:                                             ; preds = %1415
  %1421 = load i32, ptr %30, align 4, !tbaa !5
  %1422 = call ptr @__errno_location() #9
  store i32 %1421, ptr %1422, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror(i32 noundef %1426, ptr noundef @.str.4)
  %1428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror_debug(i32 noundef %1429, ptr noundef @.str.4)
  %1431 = call ptr @__errno_location() #9
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @strerror(i32 noundef %1432) #8
  %1434 = call ptr @__errno_location() #9
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1423, ptr noundef @.str.2, i32 noundef %1424, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1427, ptr noundef %1430, ptr noundef %1433, i32 noundef %1435) #8
  br label %1454

1437:                                             ; preds = %1415, %1408
  %1438 = load i32, ptr %30, align 4, !tbaa !5
  %1439 = call ptr @__errno_location() #9
  store i32 %1438, ptr %1439, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror(i32 noundef %1443, ptr noundef @.str.4)
  %1445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror_debug(i32 noundef %1446, ptr noundef @.str.4)
  %1448 = call ptr @__errno_location() #9
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call ptr @strerror(i32 noundef %1449) #8
  %1451 = call ptr @__errno_location() #9
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1440, ptr noundef @.str.5, i32 noundef %1441, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1444, ptr noundef %1447, ptr noundef %1450, i32 noundef %1452) #8
  br label %1454

1454:                                             ; preds = %1437, %1420
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

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

1457:                                             ; No predecessors!
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458, %1402
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460
  %1462 = call i32 (...) @s2n_is_evp_apis_supported()
  %1463 = icmp ne i32 %1462, 0
  br i1 %1463, label %1464, label %1585

1464:                                             ; preds = %1461
  br label %1465

1465:                                             ; preds = %1464
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = add nsw i32 %1466, 1
  store i32 %1467, ptr @test_count, align 4, !tbaa !5
  %1468 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_kyber_512_r3)
  br i1 %1468, label %1522, label %1469

1469:                                             ; preds = %1465
  br label %1470

1470:                                             ; preds = %1469
  br label %1471

1471:                                             ; preds = %1470
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1472 = call ptr @__errno_location() #9
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  store i32 %1473, ptr %31, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @s2n_print_stacktrace(ptr noundef %1474)
  %1476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1477 = trunc i8 %1476 to i1
  br i1 %1477, label %1478, label %1500

1478:                                             ; preds = %1471
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @fileno(ptr noundef %1479) #8
  %1481 = call i32 @isatty(i32 noundef %1480) #8
  %1482 = icmp ne i32 %1481, 0
  br i1 %1482, label %1483, label %1500

1483:                                             ; preds = %1478
  %1484 = load i32, ptr %31, align 4, !tbaa !5
  %1485 = call ptr @__errno_location() #9
  store i32 %1484, ptr %1485, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror(i32 noundef %1489, ptr noundef @.str.4)
  %1491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef @.str.4)
  %1494 = call ptr @__errno_location() #9
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call ptr @strerror(i32 noundef %1495) #8
  %1497 = call ptr @__errno_location() #9
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  %1499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef @.str.2, i32 noundef %1487, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1490, ptr noundef %1493, ptr noundef %1496, i32 noundef %1498) #8
  br label %1517

1500:                                             ; preds = %1478, %1471
  %1501 = load i32, ptr %31, align 4, !tbaa !5
  %1502 = call ptr @__errno_location() #9
  store i32 %1501, ptr %1502, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @s2n_strerror(i32 noundef %1506, ptr noundef @.str.4)
  %1508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror_debug(i32 noundef %1509, ptr noundef @.str.4)
  %1511 = call ptr @__errno_location() #9
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @strerror(i32 noundef %1512) #8
  %1514 = call ptr @__errno_location() #9
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef @.str.5, i32 noundef %1504, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1507, ptr noundef %1510, ptr noundef %1513, i32 noundef %1515) #8
  br label %1517

1517:                                             ; preds = %1500, %1483
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

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

1520:                                             ; No predecessors!
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521, %1465
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = add nsw i32 %1526, 1
  store i32 %1527, ptr @test_count, align 4, !tbaa !5
  %1528 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_kyber_768_r3)
  br i1 %1528, label %1582, label %1529

1529:                                             ; preds = %1525
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1532 = call ptr @__errno_location() #9
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  store i32 %1533, ptr %32, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534)
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc i8 %1536 to i1
  br i1 %1537, label %1538, label %1560

1538:                                             ; preds = %1531
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #8
  %1541 = call i32 @isatty(i32 noundef %1540) #8
  %1542 = icmp ne i32 %1541, 0
  br i1 %1542, label %1543, label %1560

1543:                                             ; preds = %1538
  %1544 = load i32, ptr %32, align 4, !tbaa !5
  %1545 = call ptr @__errno_location() #9
  store i32 %1544, ptr %1545, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror(i32 noundef %1549, ptr noundef @.str.4)
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror_debug(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call ptr @__errno_location() #9
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #8
  %1557 = call ptr @__errno_location() #9
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef @.str.2, i32 noundef %1547, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1550, ptr noundef %1553, ptr noundef %1556, i32 noundef %1558) #8
  br label %1577

1560:                                             ; preds = %1538, %1531
  %1561 = load i32, ptr %32, align 4, !tbaa !5
  %1562 = call ptr @__errno_location() #9
  store i32 %1561, ptr %1562, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror(i32 noundef %1566, ptr noundef @.str.4)
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror_debug(i32 noundef %1569, ptr noundef @.str.4)
  %1571 = call ptr @__errno_location() #9
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #8
  %1574 = call ptr @__errno_location() #9
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1563, ptr noundef @.str.5, i32 noundef %1564, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1567, ptr noundef %1570, ptr noundef %1573, i32 noundef %1575) #8
  br label %1577

1577:                                             ; preds = %1560, %1543
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

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

1580:                                             ; No predecessors!
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581, %1525
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583
  br label %1706

1585:                                             ; preds = %1461
  br label %1586

1586:                                             ; preds = %1585
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = add nsw i32 %1587, 1
  store i32 %1588, ptr @test_count, align 4, !tbaa !5
  %1589 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_kyber_512_r3)
  br i1 %1589, label %1590, label %1643

1590:                                             ; preds = %1586
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

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

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

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

1621:                                             ; preds = %1599, %1592
  %1622 = load i32, ptr %33, align 4, !tbaa !5
  %1623 = call ptr @__errno_location() #9
  store i32 %1622, ptr %1623, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef @.str.4)
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef @.str.4)
  %1632 = call ptr @__errno_location() #9
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #8
  %1635 = call ptr @__errno_location() #9
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef @.str.5, i32 noundef %1625, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1628, ptr noundef %1631, ptr noundef %1634, i32 noundef %1636) #8
  br label %1638

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

1639:                                             ; preds = %1638
  br label %1640

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

1641:                                             ; No predecessors!
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

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

1644:                                             ; preds = %1643
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = add nsw i32 %1647, 1
  store i32 %1648, ptr @test_count, align 4, !tbaa !5
  %1649 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_kyber_768_r3)
  br i1 %1649, label %1650, label %1703

1650:                                             ; preds = %1646
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

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

1659:                                             ; preds = %1652
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = call i32 @fileno(ptr noundef %1660) #8
  %1662 = call i32 @isatty(i32 noundef %1661) #8
  %1663 = icmp ne i32 %1662, 0
  br i1 %1663, label %1664, label %1681

1664:                                             ; preds = %1659
  %1665 = load i32, ptr %34, align 4, !tbaa !5
  %1666 = call ptr @__errno_location() #9
  store i32 %1665, ptr %1666, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror(i32 noundef %1670, ptr noundef @.str.4)
  %1672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @s2n_strerror_debug(i32 noundef %1673, ptr noundef @.str.4)
  %1675 = call ptr @__errno_location() #9
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call ptr @strerror(i32 noundef %1676) #8
  %1678 = call ptr @__errno_location() #9
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef @.str.2, i32 noundef %1668, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1671, ptr noundef %1674, ptr noundef %1677, i32 noundef %1679) #8
  br label %1698

1681:                                             ; preds = %1659, %1652
  %1682 = load i32, ptr %34, align 4, !tbaa !5
  %1683 = call ptr @__errno_location() #9
  store i32 %1682, ptr %1683, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef @.str.4)
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @s2n_strerror_debug(i32 noundef %1690, ptr noundef @.str.4)
  %1692 = call ptr @__errno_location() #9
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @strerror(i32 noundef %1693) #8
  %1695 = call ptr @__errno_location() #9
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef @.str.5, i32 noundef %1685, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1688, ptr noundef %1691, ptr noundef %1694, i32 noundef %1696) #8
  br label %1698

1698:                                             ; preds = %1681, %1664
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

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

1701:                                             ; No predecessors!
  br label %1702

1702:                                             ; preds = %1701
  br label %1703

1703:                                             ; preds = %1702, %1646
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

1706:                                             ; preds = %1705, %1584
  %1707 = call zeroext i1 @s2n_libcrypto_supports_mlkem()
  br i1 %1707, label %1708, label %1894

1708:                                             ; preds = %1706
  br label %1709

1709:                                             ; preds = %1708
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = add nsw i32 %1710, 1
  store i32 %1711, ptr @test_count, align 4, !tbaa !5
  %1712 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp256r1_mlkem_768)
  br i1 %1712, label %1766, label %1713

1713:                                             ; preds = %1709
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

1715:                                             ; preds = %1714
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1716 = call ptr @__errno_location() #9
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  store i32 %1717, ptr %35, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = call i32 @s2n_print_stacktrace(ptr noundef %1718)
  %1720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1721 = trunc i8 %1720 to i1
  br i1 %1721, label %1722, label %1744

1722:                                             ; preds = %1715
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = call i32 @fileno(ptr noundef %1723) #8
  %1725 = call i32 @isatty(i32 noundef %1724) #8
  %1726 = icmp ne i32 %1725, 0
  br i1 %1726, label %1727, label %1744

1727:                                             ; preds = %1722
  %1728 = load i32, ptr %35, align 4, !tbaa !5
  %1729 = call ptr @__errno_location() #9
  store i32 %1728, ptr %1729, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror(i32 noundef %1733, ptr noundef @.str.4)
  %1735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef %1736, ptr noundef @.str.4)
  %1738 = call ptr @__errno_location() #9
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @strerror(i32 noundef %1739) #8
  %1741 = call ptr @__errno_location() #9
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1730, ptr noundef @.str.2, i32 noundef %1731, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1734, ptr noundef %1737, ptr noundef %1740, i32 noundef %1742) #8
  br label %1761

1744:                                             ; preds = %1722, %1715
  %1745 = load i32, ptr %35, align 4, !tbaa !5
  %1746 = call ptr @__errno_location() #9
  store i32 %1745, ptr %1746, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @s2n_strerror_debug(i32 noundef %1753, ptr noundef @.str.4)
  %1755 = call ptr @__errno_location() #9
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #8
  %1758 = call ptr @__errno_location() #9
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef @.str.5, i32 noundef %1748, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1751, ptr noundef %1754, ptr noundef %1757, i32 noundef %1759) #8
  br label %1761

1761:                                             ; preds = %1744, %1727
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1762

1762:                                             ; preds = %1761
  br label %1763

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

1764:                                             ; No predecessors!
  br label %1765

1765:                                             ; preds = %1764
  br label %1766

1766:                                             ; preds = %1765, %1709
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

1768:                                             ; preds = %1767
  %1769 = call i32 (...) @s2n_is_evp_apis_supported()
  %1770 = icmp ne i32 %1769, 0
  br i1 %1770, label %1771, label %1832

1771:                                             ; preds = %1768
  br label %1772

1772:                                             ; preds = %1771
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = add nsw i32 %1773, 1
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_mlkem_768)
  br i1 %1775, label %1829, label %1776

1776:                                             ; preds = %1772
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1779 = call ptr @__errno_location() #9
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  store i32 %1780, ptr %36, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = call i32 @s2n_print_stacktrace(ptr noundef %1781)
  %1783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1784 = trunc i8 %1783 to i1
  br i1 %1784, label %1785, label %1807

1785:                                             ; preds = %1778
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = call i32 @fileno(ptr noundef %1786) #8
  %1788 = call i32 @isatty(i32 noundef %1787) #8
  %1789 = icmp ne i32 %1788, 0
  br i1 %1789, label %1790, label %1807

1790:                                             ; preds = %1785
  %1791 = load i32, ptr %36, align 4, !tbaa !5
  %1792 = call ptr @__errno_location() #9
  store i32 %1791, ptr %1792, align 4, !tbaa !5
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @s2n_strerror(i32 noundef %1796, ptr noundef @.str.4)
  %1798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror_debug(i32 noundef %1799, ptr noundef @.str.4)
  %1801 = call ptr @__errno_location() #9
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call ptr @strerror(i32 noundef %1802) #8
  %1804 = call ptr @__errno_location() #9
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1793, ptr noundef @.str.2, i32 noundef %1794, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1797, ptr noundef %1800, ptr noundef %1803, i32 noundef %1805) #8
  br label %1824

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

1824:                                             ; preds = %1807, %1790
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1825

1825:                                             ; preds = %1824
  br label %1826

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

1827:                                             ; No predecessors!
  br label %1828

1828:                                             ; preds = %1827
  br label %1829

1829:                                             ; preds = %1828, %1772
  br label %1830

1830:                                             ; preds = %1829
  br label %1831

1831:                                             ; preds = %1830
  br label %1893

1832:                                             ; preds = %1768
  br label %1833

1833:                                             ; preds = %1832
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = add nsw i32 %1834, 1
  store i32 %1835, ptr @test_count, align 4, !tbaa !5
  %1836 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_mlkem_768)
  br i1 %1836, label %1837, label %1890

1837:                                             ; preds = %1833
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1840 = call ptr @__errno_location() #9
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  store i32 %1841, ptr %37, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = call i32 @s2n_print_stacktrace(ptr noundef %1842)
  %1844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1845 = trunc i8 %1844 to i1
  br i1 %1845, label %1846, label %1868

1846:                                             ; preds = %1839
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = call i32 @fileno(ptr noundef %1847) #8
  %1849 = call i32 @isatty(i32 noundef %1848) #8
  %1850 = icmp ne i32 %1849, 0
  br i1 %1850, label %1851, label %1868

1851:                                             ; preds = %1846
  %1852 = load i32, ptr %37, align 4, !tbaa !5
  %1853 = call ptr @__errno_location() #9
  store i32 %1852, ptr %1853, align 4, !tbaa !5
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = load i32, ptr @test_count, align 4, !tbaa !5
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror_debug(i32 noundef %1860, ptr noundef @.str.4)
  %1862 = call ptr @__errno_location() #9
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @strerror(i32 noundef %1863) #8
  %1865 = call ptr @__errno_location() #9
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1854, ptr noundef @.str.2, i32 noundef %1855, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1858, ptr noundef %1861, ptr noundef %1864, i32 noundef %1866) #8
  br label %1885

1868:                                             ; preds = %1846, %1839
  %1869 = load i32, ptr %37, align 4, !tbaa !5
  %1870 = call ptr @__errno_location() #9
  store i32 %1869, ptr %1870, align 4, !tbaa !5
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror_debug(i32 noundef %1877, ptr noundef @.str.4)
  %1879 = call ptr @__errno_location() #9
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #8
  %1882 = call ptr @__errno_location() #9
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1871, ptr noundef @.str.5, i32 noundef %1872, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1875, ptr noundef %1878, ptr noundef %1881, i32 noundef %1883) #8
  br label %1885

1885:                                             ; preds = %1868, %1851
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

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

1888:                                             ; No predecessors!
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889, %1833
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  br label %1893

1893:                                             ; preds = %1892, %1831
  br label %1894

1894:                                             ; preds = %1893, %1706
  br label %2376

1895:                                             ; preds = %1219
  br label %1896

1896:                                             ; preds = %1895
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr @test_count, align 4, !tbaa !5
  %1899 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp256r1_kyber_512_r3)
  br i1 %1899, label %1900, label %1953

1900:                                             ; preds = %1896
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1903 = call ptr @__errno_location() #9
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  store i32 %1904, ptr %38, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = call i32 @s2n_print_stacktrace(ptr noundef %1905)
  %1907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1909, label %1931

1909:                                             ; preds = %1902
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = call i32 @fileno(ptr noundef %1910) #8
  %1912 = call i32 @isatty(i32 noundef %1911) #8
  %1913 = icmp ne i32 %1912, 0
  br i1 %1913, label %1914, label %1931

1914:                                             ; preds = %1909
  %1915 = load i32, ptr %38, align 4, !tbaa !5
  %1916 = call ptr @__errno_location() #9
  store i32 %1915, ptr %1916, align 4, !tbaa !5
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = load i32, ptr @test_count, align 4, !tbaa !5
  %1919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror(i32 noundef %1920, ptr noundef @.str.4)
  %1922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror_debug(i32 noundef %1923, ptr noundef @.str.4)
  %1925 = call ptr @__errno_location() #9
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call ptr @strerror(i32 noundef %1926) #8
  %1928 = call ptr @__errno_location() #9
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1917, ptr noundef @.str.2, i32 noundef %1918, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1921, ptr noundef %1924, ptr noundef %1927, i32 noundef %1929) #8
  br label %1948

1931:                                             ; preds = %1909, %1902
  %1932 = load i32, ptr %38, align 4, !tbaa !5
  %1933 = call ptr @__errno_location() #9
  store i32 %1932, ptr %1933, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror(i32 noundef %1937, ptr noundef @.str.4)
  %1939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror_debug(i32 noundef %1940, ptr noundef @.str.4)
  %1942 = call ptr @__errno_location() #9
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @strerror(i32 noundef %1943) #8
  %1945 = call ptr @__errno_location() #9
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1934, ptr noundef @.str.5, i32 noundef %1935, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1938, ptr noundef %1941, ptr noundef %1944, i32 noundef %1946) #8
  br label %1948

1948:                                             ; preds = %1931, %1914
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

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

1951:                                             ; No predecessors!
  br label %1952

1952:                                             ; preds = %1951
  br label %1953

1953:                                             ; preds = %1952, %1896
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = add nsw i32 %1957, 1
  store i32 %1958, ptr @test_count, align 4, !tbaa !5
  %1959 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_kyber_512_r3)
  br i1 %1959, label %1960, label %2013

1960:                                             ; preds = %1956
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1963 = call ptr @__errno_location() #9
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  store i32 %1964, ptr %39, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @s2n_print_stacktrace(ptr noundef %1965)
  %1967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1968 = trunc i8 %1967 to i1
  br i1 %1968, label %1969, label %1991

1969:                                             ; preds = %1962
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @fileno(ptr noundef %1970) #8
  %1972 = call i32 @isatty(i32 noundef %1971) #8
  %1973 = icmp ne i32 %1972, 0
  br i1 %1973, label %1974, label %1991

1974:                                             ; preds = %1969
  %1975 = load i32, ptr %39, align 4, !tbaa !5
  %1976 = call ptr @__errno_location() #9
  store i32 %1975, ptr %1976, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror(i32 noundef %1980, ptr noundef @.str.4)
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror_debug(i32 noundef %1983, ptr noundef @.str.4)
  %1985 = call ptr @__errno_location() #9
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @strerror(i32 noundef %1986) #8
  %1988 = call ptr @__errno_location() #9
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1977, ptr noundef @.str.2, i32 noundef %1978, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1981, ptr noundef %1984, ptr noundef %1987, i32 noundef %1989) #8
  br label %2008

1991:                                             ; preds = %1969, %1962
  %1992 = load i32, ptr %39, align 4, !tbaa !5
  %1993 = call ptr @__errno_location() #9
  store i32 %1992, ptr %1993, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = load i32, ptr @test_count, align 4, !tbaa !5
  %1996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call ptr @s2n_strerror(i32 noundef %1997, ptr noundef @.str.4)
  %1999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef @.str.4)
  %2002 = call ptr @__errno_location() #9
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @strerror(i32 noundef %2003) #8
  %2005 = call ptr @__errno_location() #9
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1994, ptr noundef @.str.5, i32 noundef %1995, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1998, ptr noundef %2001, ptr noundef %2004, i32 noundef %2006) #8
  br label %2008

2008:                                             ; preds = %1991, %1974
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

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

2011:                                             ; No predecessors!
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

2013:                                             ; preds = %2012, %1956
  br label %2014

2014:                                             ; preds = %2013
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

2016:                                             ; preds = %2015
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = add nsw i32 %2017, 1
  store i32 %2018, ptr @test_count, align 4, !tbaa !5
  %2019 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_kyber_768_r3)
  br i1 %2019, label %2020, label %2073

2020:                                             ; preds = %2016
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

2022:                                             ; preds = %2021
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %2023 = call ptr @__errno_location() #9
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  store i32 %2024, ptr %40, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @s2n_print_stacktrace(ptr noundef %2025)
  %2027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2028 = trunc i8 %2027 to i1
  br i1 %2028, label %2029, label %2051

2029:                                             ; preds = %2022
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = call i32 @fileno(ptr noundef %2030) #8
  %2032 = call i32 @isatty(i32 noundef %2031) #8
  %2033 = icmp ne i32 %2032, 0
  br i1 %2033, label %2034, label %2051

2034:                                             ; preds = %2029
  %2035 = load i32, ptr %40, align 4, !tbaa !5
  %2036 = call ptr @__errno_location() #9
  store i32 %2035, ptr %2036, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = load i32, ptr @test_count, align 4, !tbaa !5
  %2039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call ptr @s2n_strerror(i32 noundef %2040, ptr noundef @.str.4)
  %2042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call ptr @s2n_strerror_debug(i32 noundef %2043, ptr noundef @.str.4)
  %2045 = call ptr @__errno_location() #9
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call ptr @strerror(i32 noundef %2046) #8
  %2048 = call ptr @__errno_location() #9
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2037, ptr noundef @.str.2, i32 noundef %2038, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 79, ptr noundef %2041, ptr noundef %2044, ptr noundef %2047, i32 noundef %2049) #8
  br label %2068

2051:                                             ; preds = %2029, %2022
  %2052 = load i32, ptr %40, align 4, !tbaa !5
  %2053 = call ptr @__errno_location() #9
  store i32 %2052, ptr %2053, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  %2058 = call ptr @s2n_strerror(i32 noundef %2057, ptr noundef @.str.4)
  %2059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror_debug(i32 noundef %2060, ptr noundef @.str.4)
  %2062 = call ptr @__errno_location() #9
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @strerror(i32 noundef %2063) #8
  %2065 = call ptr @__errno_location() #9
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  %2067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2054, ptr noundef @.str.5, i32 noundef %2055, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 79, ptr noundef %2058, ptr noundef %2061, ptr noundef %2064, i32 noundef %2066) #8
  br label %2068

2068:                                             ; preds = %2051, %2034
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %2069

2069:                                             ; preds = %2068
  br label %2070

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

2071:                                             ; No predecessors!
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

2073:                                             ; preds = %2072, %2016
  br label %2074

2074:                                             ; preds = %2073
  br label %2075

2075:                                             ; preds = %2074
  br label %2076

2076:                                             ; preds = %2075
  %2077 = load i32, ptr @test_count, align 4, !tbaa !5
  %2078 = add nsw i32 %2077, 1
  store i32 %2078, ptr @test_count, align 4, !tbaa !5
  %2079 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp256r1_kyber_768_r3)
  br i1 %2079, label %2080, label %2133

2080:                                             ; preds = %2076
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %2083 = call ptr @__errno_location() #9
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  store i32 %2084, ptr %41, align 4, !tbaa !5
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @s2n_print_stacktrace(ptr noundef %2085)
  %2087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2088 = trunc i8 %2087 to i1
  br i1 %2088, label %2089, label %2111

2089:                                             ; preds = %2082
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = call i32 @fileno(ptr noundef %2090) #8
  %2092 = call i32 @isatty(i32 noundef %2091) #8
  %2093 = icmp ne i32 %2092, 0
  br i1 %2093, label %2094, label %2111

2094:                                             ; preds = %2089
  %2095 = load i32, ptr %41, align 4, !tbaa !5
  %2096 = call ptr @__errno_location() #9
  store i32 %2095, ptr %2096, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror(i32 noundef %2100, ptr noundef @.str.4)
  %2102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror_debug(i32 noundef %2103, ptr noundef @.str.4)
  %2105 = call ptr @__errno_location() #9
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @strerror(i32 noundef %2106) #8
  %2108 = call ptr @__errno_location() #9
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2097, ptr noundef @.str.2, i32 noundef %2098, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 80, ptr noundef %2101, ptr noundef %2104, ptr noundef %2107, i32 noundef %2109) #8
  br label %2128

2111:                                             ; preds = %2089, %2082
  %2112 = load i32, ptr %41, align 4, !tbaa !5
  %2113 = call ptr @__errno_location() #9
  store i32 %2112, ptr %2113, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror(i32 noundef %2117, ptr noundef @.str.4)
  %2119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror_debug(i32 noundef %2120, ptr noundef @.str.4)
  %2122 = call ptr @__errno_location() #9
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @strerror(i32 noundef %2123) #8
  %2125 = call ptr @__errno_location() #9
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2114, ptr noundef @.str.5, i32 noundef %2115, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 80, ptr noundef %2118, ptr noundef %2121, ptr noundef %2124, i32 noundef %2126) #8
  br label %2128

2128:                                             ; preds = %2111, %2094
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

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

2131:                                             ; No predecessors!
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

2133:                                             ; preds = %2132, %2076
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr @test_count, align 4, !tbaa !5
  %2139 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp384r1_kyber_768_r3)
  br i1 %2139, label %2140, label %2193

2140:                                             ; preds = %2136
  br label %2141

2141:                                             ; preds = %2140
  br label %2142

2142:                                             ; preds = %2141
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %2143 = call ptr @__errno_location() #9
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  store i32 %2144, ptr %42, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @s2n_print_stacktrace(ptr noundef %2145)
  %2147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2148 = trunc i8 %2147 to i1
  br i1 %2148, label %2149, label %2171

2149:                                             ; preds = %2142
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = call i32 @fileno(ptr noundef %2150) #8
  %2152 = call i32 @isatty(i32 noundef %2151) #8
  %2153 = icmp ne i32 %2152, 0
  br i1 %2153, label %2154, label %2171

2154:                                             ; preds = %2149
  %2155 = load i32, ptr %42, align 4, !tbaa !5
  %2156 = call ptr @__errno_location() #9
  store i32 %2155, ptr %2156, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror(i32 noundef %2160, ptr noundef @.str.4)
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror_debug(i32 noundef %2163, ptr noundef @.str.4)
  %2165 = call ptr @__errno_location() #9
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @strerror(i32 noundef %2166) #8
  %2168 = call ptr @__errno_location() #9
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2157, ptr noundef @.str.2, i32 noundef %2158, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 81, ptr noundef %2161, ptr noundef %2164, ptr noundef %2167, i32 noundef %2169) #8
  br label %2188

2171:                                             ; preds = %2149, %2142
  %2172 = load i32, ptr %42, align 4, !tbaa !5
  %2173 = call ptr @__errno_location() #9
  store i32 %2172, ptr %2173, align 4, !tbaa !5
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call ptr @s2n_strerror(i32 noundef %2177, ptr noundef @.str.4)
  %2179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call ptr @s2n_strerror_debug(i32 noundef %2180, ptr noundef @.str.4)
  %2182 = call ptr @__errno_location() #9
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call ptr @strerror(i32 noundef %2183) #8
  %2185 = call ptr @__errno_location() #9
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2174, ptr noundef @.str.5, i32 noundef %2175, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 81, ptr noundef %2178, ptr noundef %2181, ptr noundef %2184, i32 noundef %2186) #8
  br label %2188

2188:                                             ; preds = %2171, %2154
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

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

2191:                                             ; No predecessors!
  br label %2192

2192:                                             ; preds = %2191
  br label %2193

2193:                                             ; preds = %2192, %2136
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr @test_count, align 4, !tbaa !5
  %2199 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp521r1_kyber_1024_r3)
  br i1 %2199, label %2200, label %2253

2200:                                             ; preds = %2196
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

2202:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %2203 = call ptr @__errno_location() #9
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  store i32 %2204, ptr %43, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @s2n_print_stacktrace(ptr noundef %2205)
  %2207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2208 = trunc i8 %2207 to i1
  br i1 %2208, label %2209, label %2231

2209:                                             ; preds = %2202
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @fileno(ptr noundef %2210) #8
  %2212 = call i32 @isatty(i32 noundef %2211) #8
  %2213 = icmp ne i32 %2212, 0
  br i1 %2213, label %2214, label %2231

2214:                                             ; preds = %2209
  %2215 = load i32, ptr %43, align 4, !tbaa !5
  %2216 = call ptr @__errno_location() #9
  store i32 %2215, ptr %2216, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef @.str.4)
  %2222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror_debug(i32 noundef %2223, ptr noundef @.str.4)
  %2225 = call ptr @__errno_location() #9
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @strerror(i32 noundef %2226) #8
  %2228 = call ptr @__errno_location() #9
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef @.str.2, i32 noundef %2218, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 82, ptr noundef %2221, ptr noundef %2224, ptr noundef %2227, i32 noundef %2229) #8
  br label %2248

2231:                                             ; preds = %2209, %2202
  %2232 = load i32, ptr %43, align 4, !tbaa !5
  %2233 = call ptr @__errno_location() #9
  store i32 %2232, ptr %2233, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror(i32 noundef %2237, ptr noundef @.str.4)
  %2239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror_debug(i32 noundef %2240, ptr noundef @.str.4)
  %2242 = call ptr @__errno_location() #9
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #8
  %2245 = call ptr @__errno_location() #9
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef @.str.5, i32 noundef %2235, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 82, ptr noundef %2238, ptr noundef %2241, ptr noundef %2244, i32 noundef %2246) #8
  br label %2248

2248:                                             ; preds = %2231, %2214
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

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

2251:                                             ; No predecessors!
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252, %2196
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = add nsw i32 %2257, 1
  store i32 %2258, ptr @test_count, align 4, !tbaa !5
  %2259 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_secp256r1_mlkem_768)
  br i1 %2259, label %2260, label %2313

2260:                                             ; preds = %2256
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %2263 = call ptr @__errno_location() #9
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  store i32 %2264, ptr %44, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @s2n_print_stacktrace(ptr noundef %2265)
  %2267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2268 = trunc i8 %2267 to i1
  br i1 %2268, label %2269, label %2291

2269:                                             ; preds = %2262
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @fileno(ptr noundef %2270) #8
  %2272 = call i32 @isatty(i32 noundef %2271) #8
  %2273 = icmp ne i32 %2272, 0
  br i1 %2273, label %2274, label %2291

2274:                                             ; preds = %2269
  %2275 = load i32, ptr %44, align 4, !tbaa !5
  %2276 = call ptr @__errno_location() #9
  store i32 %2275, ptr %2276, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef @.str.4)
  %2285 = call ptr @__errno_location() #9
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @strerror(i32 noundef %2286) #8
  %2288 = call ptr @__errno_location() #9
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef @.str.2, i32 noundef %2278, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2281, ptr noundef %2284, ptr noundef %2287, i32 noundef %2289) #8
  br label %2308

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

2308:                                             ; preds = %2291, %2274
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

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

2311:                                             ; No predecessors!
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312, %2256
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = add nsw i32 %2317, 1
  store i32 %2318, ptr @test_count, align 4, !tbaa !5
  %2319 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef @s2n_x25519_mlkem_768)
  br i1 %2319, label %2320, label %2373

2320:                                             ; preds = %2316
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %2323 = call ptr @__errno_location() #9
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  store i32 %2324, ptr %45, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = call i32 @s2n_print_stacktrace(ptr noundef %2325)
  %2327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2328 = trunc i8 %2327 to i1
  br i1 %2328, label %2329, label %2351

2329:                                             ; preds = %2322
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = call i32 @fileno(ptr noundef %2330) #8
  %2332 = call i32 @isatty(i32 noundef %2331) #8
  %2333 = icmp ne i32 %2332, 0
  br i1 %2333, label %2334, label %2351

2334:                                             ; preds = %2329
  %2335 = load i32, ptr %45, align 4, !tbaa !5
  %2336 = call ptr @__errno_location() #9
  store i32 %2335, ptr %2336, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror_debug(i32 noundef %2343, ptr noundef @.str.4)
  %2345 = call ptr @__errno_location() #9
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @strerror(i32 noundef %2346) #8
  %2348 = call ptr @__errno_location() #9
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2337, ptr noundef @.str.2, i32 noundef %2338, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 84, ptr noundef %2341, ptr noundef %2344, ptr noundef %2347, i32 noundef %2349) #8
  br label %2368

2351:                                             ; preds = %2329, %2322
  %2352 = load i32, ptr %45, align 4, !tbaa !5
  %2353 = call ptr @__errno_location() #9
  store i32 %2352, ptr %2353, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror_debug(i32 noundef %2360, ptr noundef @.str.4)
  %2362 = call ptr @__errno_location() #9
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @strerror(i32 noundef %2363) #8
  %2365 = call ptr @__errno_location() #9
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2354, ptr noundef @.str.5, i32 noundef %2355, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 84, ptr noundef %2358, ptr noundef %2361, ptr noundef %2364, i32 noundef %2366) #8
  br label %2368

2368:                                             ; preds = %2351, %2334
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

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

2371:                                             ; No predecessors!
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372, %2316
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375, %1894
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #8
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  %2379 = call i32 @s2n_cleanup()
  %2380 = icmp eq i32 %2379, -1
  br i1 %2380, label %2381, label %2432

2381:                                             ; preds = %2378
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %2384 = call ptr @__errno_location() #9
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  store i32 %2385, ptr %46, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @s2n_print_stacktrace(ptr noundef %2386)
  %2388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2389 = trunc i8 %2388 to i1
  br i1 %2389, label %2390, label %2412

2390:                                             ; preds = %2383
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @fileno(ptr noundef %2391) #8
  %2393 = call i32 @isatty(i32 noundef %2392) #8
  %2394 = icmp ne i32 %2393, 0
  br i1 %2394, label %2395, label %2412

2395:                                             ; preds = %2390
  %2396 = load i32, ptr %46, align 4, !tbaa !5
  %2397 = call ptr @__errno_location() #9
  store i32 %2396, ptr %2397, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror(i32 noundef %2401, ptr noundef @.str.4)
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror_debug(i32 noundef %2404, ptr noundef @.str.4)
  %2406 = call ptr @__errno_location() #9
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @strerror(i32 noundef %2407) #8
  %2409 = call ptr @__errno_location() #9
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef @.str.2, i32 noundef %2399, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 88, ptr noundef %2402, ptr noundef %2405, ptr noundef %2408, i32 noundef %2410) #8
  br label %2429

2412:                                             ; preds = %2390, %2383
  %2413 = load i32, ptr %46, align 4, !tbaa !5
  %2414 = call ptr @__errno_location() #9
  store i32 %2413, ptr %2414, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror(i32 noundef %2418, ptr noundef @.str.4)
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror_debug(i32 noundef %2421, ptr noundef @.str.4)
  %2423 = call ptr @__errno_location() #9
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @strerror(i32 noundef %2424) #8
  %2426 = call ptr @__errno_location() #9
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2415, ptr noundef @.str.5, i32 noundef %2416, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 88, ptr noundef %2419, ptr noundef %2422, ptr noundef %2425, i32 noundef %2427) #8
  br label %2429

2429:                                             ; preds = %2412, %2395
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2430

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

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431, %2378
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  %2436 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2437 = icmp eq i32 %2436, -1
  br i1 %2437, label %2438, label %2489

2438:                                             ; preds = %2435
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2441 = call ptr @__errno_location() #9
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  store i32 %2442, ptr %47, align 4, !tbaa !5
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @s2n_print_stacktrace(ptr noundef %2443)
  %2445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2446 = trunc i8 %2445 to i1
  br i1 %2446, label %2447, label %2469

2447:                                             ; preds = %2440
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = call i32 @fileno(ptr noundef %2448) #8
  %2450 = call i32 @isatty(i32 noundef %2449) #8
  %2451 = icmp ne i32 %2450, 0
  br i1 %2451, label %2452, label %2469

2452:                                             ; preds = %2447
  %2453 = load i32, ptr %47, align 4, !tbaa !5
  %2454 = call ptr @__errno_location() #9
  store i32 %2453, ptr %2454, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call ptr @s2n_strerror(i32 noundef %2458, ptr noundef @.str.4)
  %2460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @s2n_strerror_debug(i32 noundef %2461, ptr noundef @.str.4)
  %2463 = call ptr @__errno_location() #9
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @strerror(i32 noundef %2464) #8
  %2466 = call ptr @__errno_location() #9
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2455, ptr noundef @.str.2, i32 noundef %2456, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 88, ptr noundef %2459, ptr noundef %2462, ptr noundef %2465, i32 noundef %2467) #8
  br label %2486

2469:                                             ; preds = %2447, %2440
  %2470 = load i32, ptr %47, align 4, !tbaa !5
  %2471 = call ptr @__errno_location() #9
  store i32 %2470, ptr %2471, align 4, !tbaa !5
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = load i32, ptr @test_count, align 4, !tbaa !5
  %2474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror(i32 noundef %2475, ptr noundef @.str.4)
  %2477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call ptr @s2n_strerror_debug(i32 noundef %2478, ptr noundef @.str.4)
  %2480 = call ptr @__errno_location() #9
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @strerror(i32 noundef %2481) #8
  %2483 = call ptr @__errno_location() #9
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2472, ptr noundef @.str.5, i32 noundef %2473, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 88, ptr noundef %2476, ptr noundef %2479, ptr noundef %2482, i32 noundef %2484) #8
  br label %2486

2486:                                             ; preds = %2469, %2452
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2487

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

2488:                                             ; No predecessors!
  br label %2489

2489:                                             ; preds = %2488, %2435
  br label %2490

2490:                                             ; preds = %2489
  %2491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2492 = trunc i8 %2491 to i1
  br i1 %2492, label %2493, label %2509

2493:                                             ; preds = %2490
  %2494 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2495 = call i32 @fileno(ptr noundef %2494) #8
  %2496 = call i32 @isatty(i32 noundef %2495) #8
  %2497 = icmp ne i32 %2496, 0
  br i1 %2497, label %2498, label %2509

2498:                                             ; preds = %2493
  %2499 = load i32, ptr @test_count, align 4, !tbaa !5
  %2500 = icmp ne i32 %2499, 0
  br i1 %2500, label %2501, label %2505

2501:                                             ; preds = %2498
  %2502 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2502, ptr noundef @.str.43, i32 noundef %2503) #8
  br label %2508

2505:                                             ; preds = %2498
  %2506 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef @.str.44) #8
  br label %2508

2508:                                             ; preds = %2505, %2501
  br label %2520

2509:                                             ; preds = %2493, %2490
  %2510 = load i32, ptr @test_count, align 4, !tbaa !5
  %2511 = icmp ne i32 %2510, 0
  br i1 %2511, label %2512, label %2516

2512:                                             ; preds = %2509
  %2513 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef @.str.45, i32 noundef %2514) #8
  br label %2519

2516:                                             ; preds = %2509
  %2517 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef @.str.46) #8
  br label %2519

2519:                                             ; preds = %2516, %2512
  br label %2520

2520:                                             ; preds = %2519, %2508
  store i32 0, ptr %3, align 4
  br label %2522

2521:                                             ; No predecessors!
  br label %2522

2522:                                             ; preds = %2521, %2520
  %2523 = load i32, ptr %3, align 4
  ret i32 %2523
}

; 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 zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef, i16 noundef zeroext) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare zeroext i1 @s2n_libcrypto_supports_evp_kem() #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) #2

declare i32 @s2n_is_evp_apis_supported(...) #2

declare zeroext i1 @s2n_libcrypto_supports_mlkem() #2

declare i32 @s2n_cleanup() #2

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

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

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


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

%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.9 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.test_prefs = external hidden unnamed_addr constant %struct.s2n_kem_preferences, align 8
@.str.17 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [116 x i8], align 1
@s2n_secp256r1_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@.str.25 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp256r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.26 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp384r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.27 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp521r1_kyber_1024_r3 = external constant %struct.s2n_kem_group, align 8
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_x25519_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@.str.29 = external hidden unnamed_addr constant [66 x i8], align 1
@s2n_x25519_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.30 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_secp256r1_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.33 = external hidden unnamed_addr constant [66 x i8], align 1
@s2n_x25519_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.34 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

119:                                              ; preds = %90
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 4587) #9
  br i1 %122, label %123, label %147

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

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

134:                                              ; preds = %130, %123
  br label %135

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

147:                                              ; preds = %119
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = tail call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 4588) #9
  br i1 %150, label %151, label %175

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

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

162:                                              ; preds = %158, %151
  br label %163

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

175:                                              ; preds = %147
  %176 = load i32, ptr @test_count, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  store i32 %177, ptr @test_count, align 4, !tbaa !5
  %178 = tail call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 12089) #9
  br i1 %178, label %179, label %203

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

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

190:                                              ; preds = %186, %179
  br label %191

191:                                              ; preds = %186, %190
  %.str.5.sink194 = phi ptr [ @.str.5, %190 ], [ @.str.2, %186 ]
  store i32 %181, ptr %180, align 4, !tbaa !5
  %192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = tail call ptr @s2n_strerror(i32 noundef %195, ptr noundef nonnull @.str.4) #9
  %197 = load i32, ptr %194, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef nonnull @.str.4) #9
  %199 = load i32, ptr %180, align 4, !tbaa !5
  %200 = tail call ptr @strerror(i32 noundef %199) #9
  %201 = load i32, ptr %180, align 4, !tbaa !5
  %202 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %192, ptr noundef nonnull %.str.5.sink194, i32 noundef %193, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %196, ptr noundef %198, ptr noundef %200, i32 noundef %201) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

203:                                              ; preds = %175
  %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 zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 25497) #9
  br i1 %206, label %207, label %231

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

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

218:                                              ; preds = %214, %207
  br label %219

219:                                              ; preds = %214, %218
  %.str.5.sink205 = phi ptr [ @.str.5, %218 ], [ @.str.2, %214 ]
  store i32 %209, ptr %208, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = tail call ptr @s2n_strerror(i32 noundef %223, ptr noundef nonnull @.str.4) #9
  %225 = load i32, ptr %222, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef nonnull @.str.4) #9
  %227 = load i32, ptr %208, align 4, !tbaa !5
  %228 = tail call ptr @strerror(i32 noundef %227) #9
  %229 = load i32, ptr %208, align 4, !tbaa !5
  %230 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef nonnull %.str.5.sink205, i32 noundef %221, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %224, ptr noundef %226, ptr noundef %228, i32 noundef %229) #11
  tail call void @exit(i32 noundef 1) #12
  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 zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 12090) #9
  br i1 %234, label %235, label %259

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

242:                                              ; preds = %235
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = tail call i32 @fileno(ptr noundef %243) #9
  %245 = tail call i32 @isatty(i32 noundef %244) #9
  %.not120 = icmp eq i32 %245, 0
  br i1 %.not120, label %246, label %247

246:                                              ; preds = %242, %235
  br label %247

247:                                              ; preds = %242, %246
  %.str.5.sink216 = phi ptr [ @.str.5, %246 ], [ @.str.2, %242 ]
  store i32 %237, ptr %236, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = tail call ptr @s2n_strerror(i32 noundef %251, ptr noundef nonnull @.str.4) #9
  %253 = load i32, ptr %250, align 4, !tbaa !5
  %254 = tail call ptr @s2n_strerror_debug(i32 noundef %253, ptr noundef nonnull @.str.4) #9
  %255 = load i32, ptr %236, align 4, !tbaa !5
  %256 = tail call ptr @strerror(i32 noundef %255) #9
  %257 = load i32, ptr %236, align 4, !tbaa !5
  %258 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef nonnull %.str.5.sink216, i32 noundef %249, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %252, ptr noundef %254, ptr noundef %256, i32 noundef %257) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

259:                                              ; preds = %231
  %260 = load i32, ptr @test_count, align 4, !tbaa !5
  %261 = add nsw i32 %260, 1
  store i32 %261, ptr @test_count, align 4, !tbaa !5
  %262 = tail call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 25498) #9
  br i1 %262, label %263, label %287

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

270:                                              ; preds = %263
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = tail call i32 @fileno(ptr noundef %271) #9
  %273 = tail call i32 @isatty(i32 noundef %272) #9
  %.not119 = icmp eq i32 %273, 0
  br i1 %.not119, label %274, label %275

274:                                              ; preds = %270, %263
  br label %275

275:                                              ; preds = %270, %274
  %.str.5.sink227 = phi ptr [ @.str.5, %274 ], [ @.str.2, %270 ]
  store i32 %265, ptr %264, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror(i32 noundef %279, ptr noundef nonnull @.str.4) #9
  %281 = load i32, ptr %278, align 4, !tbaa !5
  %282 = tail call ptr @s2n_strerror_debug(i32 noundef %281, ptr noundef nonnull @.str.4) #9
  %283 = load i32, ptr %264, align 4, !tbaa !5
  %284 = tail call ptr @strerror(i32 noundef %283) #9
  %285 = load i32, ptr %264, align 4, !tbaa !5
  %286 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef nonnull %.str.5.sink227, i32 noundef %277, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %280, ptr noundef %282, ptr noundef %284, i32 noundef %285) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

287:                                              ; preds = %259
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @test_count, align 4, !tbaa !5
  %290 = tail call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 12092) #9
  br i1 %290, label %291, label %315

291:                                              ; preds = %287
  %292 = tail call ptr @__errno_location() #10
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = tail call i32 @s2n_print_stacktrace(ptr noundef %294) #9
  %296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %297 = trunc nuw i8 %296 to i1
  br i1 %297, label %298, label %302

298:                                              ; preds = %291
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = tail call i32 @fileno(ptr noundef %299) #9
  %301 = tail call i32 @isatty(i32 noundef %300) #9
  %.not118 = icmp eq i32 %301, 0
  br i1 %.not118, label %302, label %303

302:                                              ; preds = %298, %291
  br label %303

303:                                              ; preds = %298, %302
  %.str.5.sink238 = phi ptr [ @.str.5, %302 ], [ @.str.2, %298 ]
  store i32 %293, ptr %292, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = tail call ptr @s2n_strerror(i32 noundef %307, ptr noundef nonnull @.str.4) #9
  %309 = load i32, ptr %306, align 4, !tbaa !5
  %310 = tail call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef nonnull @.str.4) #9
  %311 = load i32, ptr %292, align 4, !tbaa !5
  %312 = tail call ptr @strerror(i32 noundef %311) #9
  %313 = load i32, ptr %292, align 4, !tbaa !5
  %314 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef nonnull %.str.5.sink238, i32 noundef %305, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %308, ptr noundef %310, ptr noundef %312, i32 noundef %313) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

315:                                              ; preds = %287
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  %318 = tail call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull @kem_preferences_null, i16 noundef zeroext 12093) #9
  br i1 %318, label %319, label %343

319:                                              ; preds = %315
  %320 = tail call ptr @__errno_location() #10
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = tail call i32 @s2n_print_stacktrace(ptr noundef %322) #9
  %324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %325 = trunc nuw i8 %324 to i1
  br i1 %325, label %326, label %330

326:                                              ; preds = %319
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = tail call i32 @fileno(ptr noundef %327) #9
  %329 = tail call i32 @isatty(i32 noundef %328) #9
  %.not117 = icmp eq i32 %329, 0
  br i1 %.not117, label %330, label %331

330:                                              ; preds = %326, %319
  br label %331

331:                                              ; preds = %326, %330
  %.str.5.sink249 = phi ptr [ @.str.5, %330 ], [ @.str.2, %326 ]
  store i32 %321, ptr %320, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = tail call ptr @s2n_strerror(i32 noundef %335, ptr noundef nonnull @.str.4) #9
  %337 = load i32, ptr %334, align 4, !tbaa !5
  %338 = tail call ptr @s2n_strerror_debug(i32 noundef %337, ptr noundef nonnull @.str.4) #9
  %339 = load i32, ptr %320, align 4, !tbaa !5
  %340 = tail call ptr @strerror(i32 noundef %339) #9
  %341 = load i32, ptr %320, align 4, !tbaa !5
  %342 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef nonnull %.str.5.sink249, i32 noundef %333, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %336, ptr noundef %338, ptr noundef %340, i32 noundef %341) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

343:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.test_prefs, i64 40, i1 false)
  %344 = load i32, ptr @test_count, align 4, !tbaa !5
  %345 = add nsw i32 %344, 1
  store i32 %345, ptr @test_count, align 4, !tbaa !5
  %346 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 4587) #9
  br i1 %346, label %371, label %347

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

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

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

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

371:                                              ; preds = %343
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr @test_count, align 4, !tbaa !5
  %374 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 4588) #9
  br i1 %374, label %399, label %375

375:                                              ; preds = %371
  %376 = tail call ptr @__errno_location() #10
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @s2n_print_stacktrace(ptr noundef %378) #9
  %380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %381 = trunc nuw i8 %380 to i1
  br i1 %381, label %382, label %386

382:                                              ; preds = %375
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = call i32 @fileno(ptr noundef %383) #9
  %385 = call i32 @isatty(i32 noundef %384) #9
  %.not84 = icmp eq i32 %385, 0
  br i1 %.not84, label %386, label %387

386:                                              ; preds = %382, %375
  br label %387

387:                                              ; preds = %382, %386
  %.str.5.sink271 = phi ptr [ @.str.5, %386 ], [ @.str.2, %382 ]
  store i32 %377, ptr %376, align 4, !tbaa !5
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = load i32, ptr @test_count, align 4, !tbaa !5
  %390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror(i32 noundef %391, ptr noundef nonnull @.str.4) #9
  %393 = load i32, ptr %390, align 4, !tbaa !5
  %394 = call ptr @s2n_strerror_debug(i32 noundef %393, ptr noundef nonnull @.str.4) #9
  %395 = load i32, ptr %376, align 4, !tbaa !5
  %396 = call ptr @strerror(i32 noundef %395) #9
  %397 = load i32, ptr %376, align 4, !tbaa !5
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef nonnull %.str.5.sink271, i32 noundef %389, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %392, ptr noundef %394, ptr noundef %396, i32 noundef %397) #11
  call void @exit(i32 noundef 1) #12
  unreachable

399:                                              ; preds = %371
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr @test_count, align 4, !tbaa !5
  %402 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 12089) #9
  br i1 %402, label %427, label %403

403:                                              ; preds = %399
  %404 = tail call ptr @__errno_location() #10
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @s2n_print_stacktrace(ptr noundef %406) #9
  %408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %409 = trunc nuw i8 %408 to i1
  br i1 %409, label %410, label %414

410:                                              ; preds = %403
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @fileno(ptr noundef %411) #9
  %413 = call i32 @isatty(i32 noundef %412) #9
  %.not85 = icmp eq i32 %413, 0
  br i1 %.not85, label %414, label %415

414:                                              ; preds = %410, %403
  br label %415

415:                                              ; preds = %410, %414
  %.str.5.sink282 = phi ptr [ @.str.5, %414 ], [ @.str.2, %410 ]
  store i32 %405, ptr %404, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef nonnull @.str.4) #9
  %421 = load i32, ptr %418, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef nonnull @.str.4) #9
  %423 = load i32, ptr %404, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #9
  %425 = load i32, ptr %404, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef nonnull %.str.5.sink282, i32 noundef %417, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %420, ptr noundef %422, ptr noundef %424, i32 noundef %425) #11
  call void @exit(i32 noundef 1) #12
  unreachable

427:                                              ; preds = %399
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 25497) #9
  br i1 %430, label %455, label %431

431:                                              ; preds = %427
  %432 = tail call ptr @__errno_location() #10
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @s2n_print_stacktrace(ptr noundef %434) #9
  %436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %437 = trunc nuw i8 %436 to i1
  br i1 %437, label %438, label %442

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

442:                                              ; preds = %438, %431
  br label %443

443:                                              ; preds = %438, %442
  %.str.5.sink293 = phi ptr [ @.str.5, %442 ], [ @.str.2, %438 ]
  store i32 %433, ptr %432, align 4, !tbaa !5
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror(i32 noundef %447, ptr noundef nonnull @.str.4) #9
  %449 = load i32, ptr %446, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror_debug(i32 noundef %449, ptr noundef nonnull @.str.4) #9
  %451 = load i32, ptr %432, align 4, !tbaa !5
  %452 = call ptr @strerror(i32 noundef %451) #9
  %453 = load i32, ptr %432, align 4, !tbaa !5
  %454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %444, ptr noundef nonnull %.str.5.sink293, i32 noundef %445, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %448, ptr noundef %450, ptr noundef %452, i32 noundef %453) #11
  call void @exit(i32 noundef 1) #12
  unreachable

455:                                              ; preds = %427
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr @test_count, align 4, !tbaa !5
  %458 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 12090) #9
  br i1 %458, label %483, label %459

459:                                              ; preds = %455
  %460 = tail call ptr @__errno_location() #10
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = call i32 @s2n_print_stacktrace(ptr noundef %462) #9
  %464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %465 = trunc nuw i8 %464 to i1
  br i1 %465, label %466, label %470

466:                                              ; preds = %459
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = call i32 @fileno(ptr noundef %467) #9
  %469 = call i32 @isatty(i32 noundef %468) #9
  %.not87 = icmp eq i32 %469, 0
  br i1 %.not87, label %470, label %471

470:                                              ; preds = %466, %459
  br label %471

471:                                              ; preds = %466, %470
  %.str.5.sink304 = phi ptr [ @.str.5, %470 ], [ @.str.2, %466 ]
  store i32 %461, ptr %460, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror(i32 noundef %475, ptr noundef nonnull @.str.4) #9
  %477 = load i32, ptr %474, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef nonnull @.str.4) #9
  %479 = load i32, ptr %460, align 4, !tbaa !5
  %480 = call ptr @strerror(i32 noundef %479) #9
  %481 = load i32, ptr %460, align 4, !tbaa !5
  %482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %472, ptr noundef nonnull %.str.5.sink304, i32 noundef %473, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %476, ptr noundef %478, ptr noundef %480, i32 noundef %481) #11
  call void @exit(i32 noundef 1) #12
  unreachable

483:                                              ; preds = %455
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr @test_count, align 4, !tbaa !5
  %486 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 25498) #9
  br i1 %486, label %511, label %487

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

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

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

499:                                              ; preds = %494, %498
  %.str.5.sink315 = phi ptr [ @.str.5, %498 ], [ @.str.2, %494 ]
  store i32 %489, ptr %488, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef nonnull @.str.4) #9
  %505 = load i32, ptr %502, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef nonnull @.str.4) #9
  %507 = load i32, ptr %488, align 4, !tbaa !5
  %508 = call ptr @strerror(i32 noundef %507) #9
  %509 = load i32, ptr %488, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull %.str.5.sink315, i32 noundef %501, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %504, ptr noundef %506, ptr noundef %508, i32 noundef %509) #11
  call void @exit(i32 noundef 1) #12
  unreachable

511:                                              ; preds = %483
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 12092) #9
  br i1 %514, label %539, label %515

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

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

526:                                              ; preds = %522, %515
  br label %527

527:                                              ; preds = %522, %526
  %.str.5.sink326 = phi ptr [ @.str.5, %526 ], [ @.str.2, %522 ]
  store i32 %517, ptr %516, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror(i32 noundef %531, ptr noundef nonnull @.str.4) #9
  %533 = load i32, ptr %530, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror_debug(i32 noundef %533, ptr noundef nonnull @.str.4) #9
  %535 = load i32, ptr %516, align 4, !tbaa !5
  %536 = call ptr @strerror(i32 noundef %535) #9
  %537 = load i32, ptr %516, align 4, !tbaa !5
  %538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef nonnull %.str.5.sink326, i32 noundef %529, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %532, ptr noundef %534, ptr noundef %536, i32 noundef %537) #11
  call void @exit(i32 noundef 1) #12
  unreachable

539:                                              ; preds = %511
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr @test_count, align 4, !tbaa !5
  %542 = call zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef nonnull %3, i16 noundef zeroext 12093) #9
  br i1 %542, label %567, label %543

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

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

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

555:                                              ; preds = %550, %554
  %.str.5.sink337 = phi ptr [ @.str.5, %554 ], [ @.str.2, %550 ]
  store i32 %545, ptr %544, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror(i32 noundef %559, ptr noundef nonnull @.str.4) #9
  %561 = load i32, ptr %558, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror_debug(i32 noundef %561, ptr noundef nonnull @.str.4) #9
  %563 = load i32, ptr %544, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #9
  %565 = load i32, ptr %544, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef nonnull %.str.5.sink337, i32 noundef %557, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %560, ptr noundef %562, ptr noundef %564, i32 noundef %565) #11
  call void @exit(i32 noundef 1) #12
  unreachable

567:                                              ; preds = %539
  %568 = call zeroext i1 @s2n_libcrypto_supports_evp_kem() #9
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp256r1_kyber_512_r3) #9
  br i1 %568, label %572, label %877

572:                                              ; preds = %567
  br i1 %571, label %597, label %573

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

580:                                              ; preds = %573
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @fileno(ptr noundef %581) #9
  %583 = call i32 @isatty(i32 noundef %582) #9
  %.not99 = icmp eq i32 %583, 0
  br i1 %.not99, label %584, label %585

584:                                              ; preds = %580, %573
  br label %585

585:                                              ; preds = %580, %584
  %.str.5.sink348 = phi ptr [ @.str.5, %584 ], [ @.str.2, %580 ]
  store i32 %575, ptr %574, align 4, !tbaa !5
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror(i32 noundef %589, ptr noundef nonnull @.str.4) #9
  %591 = load i32, ptr %588, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef nonnull @.str.4) #9
  %593 = load i32, ptr %574, align 4, !tbaa !5
  %594 = call ptr @strerror(i32 noundef %593) #9
  %595 = load i32, ptr %574, align 4, !tbaa !5
  %596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %586, ptr noundef nonnull %.str.5.sink348, i32 noundef %587, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %590, ptr noundef %592, ptr noundef %594, i32 noundef %595) #11
  call void @exit(i32 noundef 1) #12
  unreachable

597:                                              ; preds = %572
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr @test_count, align 4, !tbaa !5
  %600 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp256r1_kyber_768_r3) #9
  br i1 %600, label %625, label %601

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

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

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

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

625:                                              ; preds = %597
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr @test_count, align 4, !tbaa !5
  %628 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp384r1_kyber_768_r3) #9
  br i1 %628, label %653, label %629

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

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

640:                                              ; preds = %636, %629
  br label %641

641:                                              ; preds = %636, %640
  %.str.5.sink370 = phi ptr [ @.str.5, %640 ], [ @.str.2, %636 ]
  store i32 %631, ptr %630, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef nonnull @.str.4) #9
  %647 = load i32, ptr %644, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef nonnull @.str.4) #9
  %649 = load i32, ptr %630, align 4, !tbaa !5
  %650 = call ptr @strerror(i32 noundef %649) #9
  %651 = load i32, ptr %630, align 4, !tbaa !5
  %652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef nonnull %.str.5.sink370, i32 noundef %643, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %646, ptr noundef %648, ptr noundef %650, i32 noundef %651) #11
  call void @exit(i32 noundef 1) #12
  unreachable

653:                                              ; preds = %625
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp521r1_kyber_1024_r3) #9
  br i1 %656, label %681, label %657

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

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

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

669:                                              ; preds = %664, %668
  %.str.5.sink381 = phi ptr [ @.str.5, %668 ], [ @.str.2, %664 ]
  store i32 %659, ptr %658, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = load i32, ptr @test_count, align 4, !tbaa !5
  %672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror(i32 noundef %673, ptr noundef nonnull @.str.4) #9
  %675 = load i32, ptr %672, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror_debug(i32 noundef %675, ptr noundef nonnull @.str.4) #9
  %677 = load i32, ptr %658, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #9
  %679 = load i32, ptr %658, align 4, !tbaa !5
  %680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef nonnull %.str.5.sink381, i32 noundef %671, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %674, ptr noundef %676, ptr noundef %678, i32 noundef %679) #11
  call void @exit(i32 noundef 1) #12
  unreachable

681:                                              ; preds = %653
  %682 = call i32 (...) @s2n_is_evp_apis_supported() #9
  %.not103 = icmp eq i32 %682, 0
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr @test_count, align 4, !tbaa !5
  %685 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_kyber_512_r3) #9
  br i1 %.not103, label %739, label %686

686:                                              ; preds = %681
  br i1 %685, label %711, label %687

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

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

698:                                              ; preds = %694, %687
  br label %699

699:                                              ; preds = %694, %698
  %.str.5.sink392 = phi ptr [ @.str.5, %698 ], [ @.str.2, %694 ]
  store i32 %689, ptr %688, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef nonnull @.str.4) #9
  %705 = load i32, ptr %702, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef nonnull @.str.4) #9
  %707 = load i32, ptr %688, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #9
  %709 = load i32, ptr %688, align 4, !tbaa !5
  %710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef nonnull %.str.5.sink392, i32 noundef %701, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %704, ptr noundef %706, ptr noundef %708, i32 noundef %709) #11
  call void @exit(i32 noundef 1) #12
  unreachable

711:                                              ; preds = %686
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_kyber_768_r3) #9
  br i1 %714, label %792, label %715

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

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

726:                                              ; preds = %722, %715
  br label %727

727:                                              ; preds = %722, %726
  %.str.5.sink403 = phi ptr [ @.str.5, %726 ], [ @.str.2, %722 ]
  store i32 %717, ptr %716, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror(i32 noundef %731, ptr noundef nonnull @.str.4) #9
  %733 = load i32, ptr %730, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror_debug(i32 noundef %733, ptr noundef nonnull @.str.4) #9
  %735 = load i32, ptr %716, align 4, !tbaa !5
  %736 = call ptr @strerror(i32 noundef %735) #9
  %737 = load i32, ptr %716, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %728, ptr noundef nonnull %.str.5.sink403, i32 noundef %729, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %732, ptr noundef %734, ptr noundef %736, i32 noundef %737) #11
  call void @exit(i32 noundef 1) #12
  unreachable

739:                                              ; preds = %681
  br i1 %685, label %740, label %764

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

747:                                              ; preds = %740
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @fileno(ptr noundef %748) #9
  %750 = call i32 @isatty(i32 noundef %749) #9
  %.not105 = icmp eq i32 %750, 0
  br i1 %.not105, label %751, label %752

751:                                              ; preds = %747, %740
  br label %752

752:                                              ; preds = %747, %751
  %.str.5.sink414 = phi ptr [ @.str.5, %751 ], [ @.str.2, %747 ]
  store i32 %742, ptr %741, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror(i32 noundef %756, ptr noundef nonnull @.str.4) #9
  %758 = load i32, ptr %755, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror_debug(i32 noundef %758, ptr noundef nonnull @.str.4) #9
  %760 = load i32, ptr %741, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #9
  %762 = load i32, ptr %741, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.5.sink414, i32 noundef %754, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %757, ptr noundef %759, ptr noundef %761, i32 noundef %762) #11
  call void @exit(i32 noundef 1) #12
  unreachable

764:                                              ; preds = %739
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_kyber_768_r3) #9
  br i1 %767, label %768, label %792

768:                                              ; preds = %764
  %769 = tail call ptr @__errno_location() #10
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = call i32 @s2n_print_stacktrace(ptr noundef %771) #9
  %773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %774 = trunc nuw i8 %773 to i1
  br i1 %774, label %775, label %779

775:                                              ; preds = %768
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = call i32 @fileno(ptr noundef %776) #9
  %778 = call i32 @isatty(i32 noundef %777) #9
  %.not104 = icmp eq i32 %778, 0
  br i1 %.not104, label %779, label %780

779:                                              ; preds = %775, %768
  br label %780

780:                                              ; preds = %775, %779
  %.str.5.sink425 = phi ptr [ @.str.5, %779 ], [ @.str.2, %775 ]
  store i32 %770, ptr %769, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror(i32 noundef %784, ptr noundef nonnull @.str.4) #9
  %786 = load i32, ptr %783, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror_debug(i32 noundef %786, ptr noundef nonnull @.str.4) #9
  %788 = load i32, ptr %769, align 4, !tbaa !5
  %789 = call ptr @strerror(i32 noundef %788) #9
  %790 = load i32, ptr %769, align 4, !tbaa !5
  %791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef nonnull %.str.5.sink425, i32 noundef %782, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %785, ptr noundef %787, ptr noundef %789, i32 noundef %790) #11
  call void @exit(i32 noundef 1) #12
  unreachable

792:                                              ; preds = %764, %711
  %793 = call zeroext i1 @s2n_libcrypto_supports_mlkem() #9
  br i1 %793, label %794, label %1098

794:                                              ; preds = %792
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp256r1_mlkem_768) #9
  br i1 %797, label %822, label %798

798:                                              ; preds = %794
  %799 = tail call ptr @__errno_location() #10
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = call i32 @s2n_print_stacktrace(ptr noundef %801) #9
  %803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %804 = trunc nuw i8 %803 to i1
  br i1 %804, label %805, label %809

805:                                              ; preds = %798
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = call i32 @fileno(ptr noundef %806) #9
  %808 = call i32 @isatty(i32 noundef %807) #9
  %.not108 = icmp eq i32 %808, 0
  br i1 %.not108, label %809, label %810

809:                                              ; preds = %805, %798
  br label %810

810:                                              ; preds = %805, %809
  %.str.5.sink436 = phi ptr [ @.str.5, %809 ], [ @.str.2, %805 ]
  store i32 %800, ptr %799, align 4, !tbaa !5
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror(i32 noundef %814, ptr noundef nonnull @.str.4) #9
  %816 = load i32, ptr %813, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror_debug(i32 noundef %816, ptr noundef nonnull @.str.4) #9
  %818 = load i32, ptr %799, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #9
  %820 = load i32, ptr %799, align 4, !tbaa !5
  %821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %811, ptr noundef nonnull %.str.5.sink436, i32 noundef %812, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %815, ptr noundef %817, ptr noundef %819, i32 noundef %820) #11
  call void @exit(i32 noundef 1) #12
  unreachable

822:                                              ; preds = %794
  %823 = call i32 (...) @s2n_is_evp_apis_supported() #9
  %.not109 = icmp eq i32 %823, 0
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %825 = add nsw i32 %824, 1
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_mlkem_768) #9
  br i1 %.not109, label %852, label %827

827:                                              ; preds = %822
  br i1 %826, label %1098, label %828

828:                                              ; preds = %827
  %829 = tail call ptr @__errno_location() #10
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = call i32 @s2n_print_stacktrace(ptr noundef %831) #9
  %833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %834 = trunc nuw i8 %833 to i1
  br i1 %834, label %835, label %839

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

839:                                              ; preds = %835, %828
  br label %840

840:                                              ; preds = %835, %839
  %.str.5.sink447 = phi ptr [ @.str.5, %839 ], [ @.str.2, %835 ]
  store i32 %830, ptr %829, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef nonnull @.str.4) #9
  %846 = load i32, ptr %843, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef nonnull @.str.4) #9
  %848 = load i32, ptr %829, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #9
  %850 = load i32, ptr %829, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef nonnull %.str.5.sink447, i32 noundef %842, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %845, ptr noundef %847, ptr noundef %849, i32 noundef %850) #11
  call void @exit(i32 noundef 1) #12
  unreachable

852:                                              ; preds = %822
  br i1 %826, label %853, label %1098

853:                                              ; preds = %852
  %854 = tail call ptr @__errno_location() #10
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @s2n_print_stacktrace(ptr noundef %856) #9
  %858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %859 = trunc nuw i8 %858 to i1
  br i1 %859, label %860, label %864

860:                                              ; preds = %853
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = call i32 @fileno(ptr noundef %861) #9
  %863 = call i32 @isatty(i32 noundef %862) #9
  %.not110 = icmp eq i32 %863, 0
  br i1 %.not110, label %864, label %865

864:                                              ; preds = %860, %853
  br label %865

865:                                              ; preds = %860, %864
  %.str.5.sink458 = phi ptr [ @.str.5, %864 ], [ @.str.2, %860 ]
  store i32 %855, ptr %854, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror(i32 noundef %869, ptr noundef nonnull @.str.4) #9
  %871 = load i32, ptr %868, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror_debug(i32 noundef %871, ptr noundef nonnull @.str.4) #9
  %873 = load i32, ptr %854, align 4, !tbaa !5
  %874 = call ptr @strerror(i32 noundef %873) #9
  %875 = load i32, ptr %854, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %866, ptr noundef nonnull %.str.5.sink458, i32 noundef %867, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %870, ptr noundef %872, ptr noundef %874, i32 noundef %875) #11
  call void @exit(i32 noundef 1) #12
  unreachable

877:                                              ; preds = %567
  br i1 %571, label %878, label %902

878:                                              ; preds = %877
  %879 = tail call ptr @__errno_location() #10
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = call i32 @s2n_print_stacktrace(ptr noundef %881) #9
  %883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %884 = trunc nuw i8 %883 to i1
  br i1 %884, label %885, label %889

885:                                              ; preds = %878
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = call i32 @fileno(ptr noundef %886) #9
  %888 = call i32 @isatty(i32 noundef %887) #9
  %.not98 = icmp eq i32 %888, 0
  br i1 %.not98, label %889, label %890

889:                                              ; preds = %885, %878
  br label %890

890:                                              ; preds = %885, %889
  %.str.5.sink469 = phi ptr [ @.str.5, %889 ], [ @.str.2, %885 ]
  store i32 %880, ptr %879, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror(i32 noundef %894, ptr noundef nonnull @.str.4) #9
  %896 = load i32, ptr %893, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror_debug(i32 noundef %896, ptr noundef nonnull @.str.4) #9
  %898 = load i32, ptr %879, align 4, !tbaa !5
  %899 = call ptr @strerror(i32 noundef %898) #9
  %900 = load i32, ptr %879, align 4, !tbaa !5
  %901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %891, ptr noundef nonnull %.str.5.sink469, i32 noundef %892, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %895, ptr noundef %897, ptr noundef %899, i32 noundef %900) #11
  call void @exit(i32 noundef 1) #12
  unreachable

902:                                              ; preds = %877
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = add nsw i32 %903, 1
  store i32 %904, ptr @test_count, align 4, !tbaa !5
  %905 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_kyber_512_r3) #9
  br i1 %905, label %906, label %930

906:                                              ; preds = %902
  %907 = tail call ptr @__errno_location() #10
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @s2n_print_stacktrace(ptr noundef %909) #9
  %911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %912 = trunc nuw i8 %911 to i1
  br i1 %912, label %913, label %917

913:                                              ; preds = %906
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @fileno(ptr noundef %914) #9
  %916 = call i32 @isatty(i32 noundef %915) #9
  %.not97 = icmp eq i32 %916, 0
  br i1 %.not97, label %917, label %918

917:                                              ; preds = %913, %906
  br label %918

918:                                              ; preds = %913, %917
  %.str.5.sink480 = phi ptr [ @.str.5, %917 ], [ @.str.2, %913 ]
  store i32 %908, ptr %907, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror(i32 noundef %922, ptr noundef nonnull @.str.4) #9
  %924 = load i32, ptr %921, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror_debug(i32 noundef %924, ptr noundef nonnull @.str.4) #9
  %926 = load i32, ptr %907, align 4, !tbaa !5
  %927 = call ptr @strerror(i32 noundef %926) #9
  %928 = load i32, ptr %907, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %919, ptr noundef nonnull %.str.5.sink480, i32 noundef %920, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %923, ptr noundef %925, ptr noundef %927, i32 noundef %928) #11
  call void @exit(i32 noundef 1) #12
  unreachable

930:                                              ; preds = %902
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = add nsw i32 %931, 1
  store i32 %932, ptr @test_count, align 4, !tbaa !5
  %933 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_kyber_768_r3) #9
  br i1 %933, label %934, label %958

934:                                              ; preds = %930
  %935 = tail call ptr @__errno_location() #10
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @s2n_print_stacktrace(ptr noundef %937) #9
  %939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %940 = trunc nuw i8 %939 to i1
  br i1 %940, label %941, label %945

941:                                              ; preds = %934
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @fileno(ptr noundef %942) #9
  %944 = call i32 @isatty(i32 noundef %943) #9
  %.not96 = icmp eq i32 %944, 0
  br i1 %.not96, label %945, label %946

945:                                              ; preds = %941, %934
  br label %946

946:                                              ; preds = %941, %945
  %.str.5.sink491 = phi ptr [ @.str.5, %945 ], [ @.str.2, %941 ]
  store i32 %936, ptr %935, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror(i32 noundef %950, ptr noundef nonnull @.str.4) #9
  %952 = load i32, ptr %949, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror_debug(i32 noundef %952, ptr noundef nonnull @.str.4) #9
  %954 = load i32, ptr %935, align 4, !tbaa !5
  %955 = call ptr @strerror(i32 noundef %954) #9
  %956 = load i32, ptr %935, align 4, !tbaa !5
  %957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull %.str.5.sink491, i32 noundef %948, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %951, ptr noundef %953, ptr noundef %955, i32 noundef %956) #11
  call void @exit(i32 noundef 1) #12
  unreachable

958:                                              ; preds = %930
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = add nsw i32 %959, 1
  store i32 %960, ptr @test_count, align 4, !tbaa !5
  %961 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp256r1_kyber_768_r3) #9
  br i1 %961, label %962, label %986

962:                                              ; preds = %958
  %963 = tail call ptr @__errno_location() #10
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @s2n_print_stacktrace(ptr noundef %965) #9
  %967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %968 = trunc nuw i8 %967 to i1
  br i1 %968, label %969, label %973

969:                                              ; preds = %962
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @fileno(ptr noundef %970) #9
  %972 = call i32 @isatty(i32 noundef %971) #9
  %.not95 = icmp eq i32 %972, 0
  br i1 %.not95, label %973, label %974

973:                                              ; preds = %969, %962
  br label %974

974:                                              ; preds = %969, %973
  %.str.5.sink502 = phi ptr [ @.str.5, %973 ], [ @.str.2, %969 ]
  store i32 %964, ptr %963, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror(i32 noundef %978, ptr noundef nonnull @.str.4) #9
  %980 = load i32, ptr %977, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef nonnull @.str.4) #9
  %982 = load i32, ptr %963, align 4, !tbaa !5
  %983 = call ptr @strerror(i32 noundef %982) #9
  %984 = load i32, ptr %963, align 4, !tbaa !5
  %985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %975, ptr noundef nonnull %.str.5.sink502, i32 noundef %976, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %979, ptr noundef %981, ptr noundef %983, i32 noundef %984) #11
  call void @exit(i32 noundef 1) #12
  unreachable

986:                                              ; preds = %958
  %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 zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp384r1_kyber_768_r3) #9
  br i1 %989, label %990, label %1014

990:                                              ; preds = %986
  %991 = tail call ptr @__errno_location() #10
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @s2n_print_stacktrace(ptr noundef %993) #9
  %995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %996 = trunc nuw i8 %995 to i1
  br i1 %996, label %997, label %1001

997:                                              ; preds = %990
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @fileno(ptr noundef %998) #9
  %1000 = call i32 @isatty(i32 noundef %999) #9
  %.not94 = icmp eq i32 %1000, 0
  br i1 %.not94, label %1001, label %1002

1001:                                             ; preds = %997, %990
  br label %1002

1002:                                             ; preds = %997, %1001
  %.str.5.sink513 = phi ptr [ @.str.5, %1001 ], [ @.str.2, %997 ]
  store i32 %992, ptr %991, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror(i32 noundef %1006, ptr noundef nonnull @.str.4) #9
  %1008 = load i32, ptr %1005, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror_debug(i32 noundef %1008, ptr noundef nonnull @.str.4) #9
  %1010 = load i32, ptr %991, align 4, !tbaa !5
  %1011 = call ptr @strerror(i32 noundef %1010) #9
  %1012 = load i32, ptr %991, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef nonnull %.str.5.sink513, i32 noundef %1004, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %1007, ptr noundef %1009, ptr noundef %1011, i32 noundef %1012) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1014:                                             ; preds = %986
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = add nsw i32 %1015, 1
  store i32 %1016, ptr @test_count, align 4, !tbaa !5
  %1017 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp521r1_kyber_1024_r3) #9
  br i1 %1017, label %1018, label %1042

1018:                                             ; preds = %1014
  %1019 = tail call ptr @__errno_location() #10
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = call i32 @s2n_print_stacktrace(ptr noundef %1021) #9
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1029

1025:                                             ; preds = %1018
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @fileno(ptr noundef %1026) #9
  %1028 = call i32 @isatty(i32 noundef %1027) #9
  %.not93 = icmp eq i32 %1028, 0
  br i1 %.not93, label %1029, label %1030

1029:                                             ; preds = %1025, %1018
  br label %1030

1030:                                             ; preds = %1025, %1029
  %.str.5.sink524 = phi ptr [ @.str.5, %1029 ], [ @.str.2, %1025 ]
  store i32 %1020, ptr %1019, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef nonnull @.str.4) #9
  %1036 = load i32, ptr %1033, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef nonnull @.str.4) #9
  %1038 = load i32, ptr %1019, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #9
  %1040 = load i32, ptr %1019, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull %.str.5.sink524, i32 noundef %1032, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, i32 noundef %1040) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1042:                                             ; preds = %1014
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_secp256r1_mlkem_768) #9
  br i1 %1045, label %1046, label %1070

1046:                                             ; preds = %1042
  %1047 = tail call ptr @__errno_location() #10
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @s2n_print_stacktrace(ptr noundef %1049) #9
  %1051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1052 = trunc nuw i8 %1051 to i1
  br i1 %1052, label %1053, label %1057

1053:                                             ; preds = %1046
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @fileno(ptr noundef %1054) #9
  %1056 = call i32 @isatty(i32 noundef %1055) #9
  %.not92 = icmp eq i32 %1056, 0
  br i1 %.not92, label %1057, label %1058

1057:                                             ; preds = %1053, %1046
  br label %1058

1058:                                             ; preds = %1053, %1057
  %.str.5.sink535 = phi ptr [ @.str.5, %1057 ], [ @.str.2, %1053 ]
  store i32 %1048, ptr %1047, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror(i32 noundef %1062, ptr noundef nonnull @.str.4) #9
  %1064 = load i32, ptr %1061, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror_debug(i32 noundef %1064, ptr noundef nonnull @.str.4) #9
  %1066 = load i32, ptr %1047, align 4, !tbaa !5
  %1067 = call ptr @strerror(i32 noundef %1066) #9
  %1068 = load i32, ptr %1047, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1059, ptr noundef nonnull %.str.5.sink535, i32 noundef %1060, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %1063, ptr noundef %1065, ptr noundef %1067, i32 noundef %1068) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1070:                                             ; preds = %1042
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull @s2n_x25519_mlkem_768) #9
  br i1 %1073, label %1074, label %1098

1074:                                             ; preds = %1070
  %1075 = tail call ptr @__errno_location() #10
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = call i32 @s2n_print_stacktrace(ptr noundef %1077) #9
  %1079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1080 = trunc nuw i8 %1079 to i1
  br i1 %1080, label %1081, label %1085

1081:                                             ; preds = %1074
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @fileno(ptr noundef %1082) #9
  %1084 = call i32 @isatty(i32 noundef %1083) #9
  %.not91 = icmp eq i32 %1084, 0
  br i1 %.not91, label %1085, label %1086

1085:                                             ; preds = %1081, %1074
  br label %1086

1086:                                             ; preds = %1081, %1085
  %.str.5.sink546 = phi ptr [ @.str.5, %1085 ], [ @.str.2, %1081 ]
  store i32 %1076, ptr %1075, align 4, !tbaa !5
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror(i32 noundef %1090, ptr noundef nonnull @.str.4) #9
  %1092 = load i32, ptr %1089, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef nonnull @.str.4) #9
  %1094 = load i32, ptr %1075, align 4, !tbaa !5
  %1095 = call ptr @strerror(i32 noundef %1094) #9
  %1096 = load i32, ptr %1075, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1087, ptr noundef nonnull %.str.5.sink546, i32 noundef %1088, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %1091, ptr noundef %1093, ptr noundef %1095, i32 noundef %1096) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1098:                                             ; preds = %1070, %792, %852, %827
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  %1099 = call i32 @s2n_cleanup() #9
  %1100 = icmp eq i32 %1099, -1
  br i1 %1100, label %1101, label %1125

1101:                                             ; preds = %1098
  %1102 = tail call ptr @__errno_location() #10
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @s2n_print_stacktrace(ptr noundef %1104) #9
  %1106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1107 = trunc nuw i8 %1106 to i1
  br i1 %1107, label %1108, label %1112

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @fileno(ptr noundef %1109) #9
  %1111 = call i32 @isatty(i32 noundef %1110) #9
  %.not116 = icmp eq i32 %1111, 0
  br i1 %.not116, label %1112, label %1113

1112:                                             ; preds = %1108, %1101
  br label %1113

1113:                                             ; preds = %1108, %1112
  %.str.5.sink557 = phi ptr [ @.str.5, %1112 ], [ @.str.2, %1108 ]
  store i32 %1103, ptr %1102, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef nonnull @.str.4) #9
  %1119 = load i32, ptr %1116, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef nonnull @.str.4) #9
  %1121 = load i32, ptr %1102, align 4, !tbaa !5
  %1122 = call ptr @strerror(i32 noundef %1121) #9
  %1123 = load i32, ptr %1102, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1114, ptr noundef nonnull %.str.5.sink557, i32 noundef %1115, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %1118, ptr noundef %1120, ptr noundef %1122, i32 noundef %1123) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1125:                                             ; preds = %1098
  %1126 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %1127 = icmp eq i32 %1126, -1
  br i1 %1127, label %1128, label %1152

1128:                                             ; preds = %1125
  %1129 = tail call ptr @__errno_location() #10
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = call i32 @s2n_print_stacktrace(ptr noundef %1131) #9
  %1133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1134 = trunc nuw i8 %1133 to i1
  br i1 %1134, label %1135, label %1139

1135:                                             ; preds = %1128
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = call i32 @fileno(ptr noundef %1136) #9
  %1138 = call i32 @isatty(i32 noundef %1137) #9
  %.not115 = icmp eq i32 %1138, 0
  br i1 %.not115, label %1139, label %1140

1139:                                             ; preds = %1135, %1128
  br label %1140

1140:                                             ; preds = %1135, %1139
  %.str.5.sink568 = phi ptr [ @.str.5, %1139 ], [ @.str.2, %1135 ]
  store i32 %1130, ptr %1129, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef nonnull @.str.4) #9
  %1146 = load i32, ptr %1143, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef nonnull @.str.4) #9
  %1148 = load i32, ptr %1129, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #9
  %1150 = load i32, ptr %1129, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef nonnull %.str.5.sink568, i32 noundef %1142, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %1145, ptr noundef %1147, ptr noundef %1149, i32 noundef %1150) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1152:                                             ; preds = %1125
  %1153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1154 = trunc nuw i8 %1153 to i1
  br i1 %1154, label %1155, label %1166

1155:                                             ; preds = %1152
  %1156 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1157 = call i32 @fileno(ptr noundef %1156) #9
  %1158 = call i32 @isatty(i32 noundef %1157) #9
  %.not112 = icmp eq i32 %1158, 0
  br i1 %.not112, label %1166, label %1159

1159:                                             ; preds = %1155
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not114 = icmp eq i32 %1160, 0
  %1161 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not114, label %1164, label %1162

1162:                                             ; preds = %1159
  %1163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1161, ptr noundef nonnull @.str.43, i32 noundef %1160) #9
  br label %1173

1164:                                             ; preds = %1159
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1161, ptr noundef nonnull @.str.44) #9
  br label %1173

1166:                                             ; preds = %1155, %1152
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not113 = icmp eq i32 %1167, 0
  %1168 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not113, label %1171, label %1169

1169:                                             ; preds = %1166
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef nonnull @.str.45, i32 noundef %1167) #9
  br label %1173

1171:                                             ; preds = %1166
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef nonnull @.str.46) #9
  br label %1173

1173:                                             ; preds = %1169, %1171, %1162, %1164
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare zeroext i1 @s2n_kem_preferences_includes_tls13_kem_group(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

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

declare zeroext i1 @s2n_libcrypto_supports_evp_kem() local_unnamed_addr #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) local_unnamed_addr #2

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

declare zeroext i1 @s2n_libcrypto_supports_mlkem() local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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