; LLVM IR from aws/s2n-tls :: tests/unit (s2n_pkey_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_test_pkeys = type { %struct.s2n_pkey, ptr, i8 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_blob = type { ptr, i32, i32, 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 [72 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 [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [187 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [100 x i8], align 1
@__const.main.expected_sizes = external hidden unnamed_addr constant [3 x i32], align 4
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [77 x i8], align 1
@__const.main.message_bytes = external hidden unnamed_addr constant [12 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [90 x i8], align 1
@__const.main.ciphertext_hex = external hidden unnamed_addr constant [768 x i8], align 16
@.str.41 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_test_pkeys_wipe(ptr noundef) #0

; 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 %struct.s2n_test_pkeys, align 8
  %10 = alloca %struct.s2n_result, align 4
  %11 = alloca i32, align 4
  %12 = alloca %struct.s2n_test_pkeys, align 8
  %13 = alloca %struct.s2n_result, align 4
  %14 = alloca i32, align 4
  %15 = alloca %struct.s2n_test_pkeys, align 8
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca i32, align 4
  %18 = alloca [3 x %struct.s2n_test_pkeys], align 16
  %19 = alloca %struct.s2n_test_pkeys, align 8
  %20 = alloca %struct.s2n_result, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_test_pkeys, align 8
  %23 = alloca %struct.s2n_result, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_test_pkeys, align 8
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca i32, align 4
  %28 = alloca [3 x %struct.s2n_test_pkeys], align 16
  %29 = alloca i64, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %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 %struct.s2n_result, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca %struct.s2n_result, align 4
  %42 = alloca [3 x i32], align 4
  %43 = alloca i64, align 8
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_result, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_result, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_blob, align 8
  %53 = alloca %struct.s2n_blob, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca [12 x i8], align 1
  %67 = alloca %struct.s2n_blob, align 8
  %68 = alloca i32, align 4
  %69 = alloca [768 x i8], align 16
  %70 = alloca %struct.s2n_blob, align 8
  %71 = alloca %struct.s2n_result, align 4
  %72 = alloca %struct.s2n_blob, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_blob, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca %struct.s2n_blob, align 8
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i64, align 8
  %84 = alloca %struct.s2n_blob, align 8
  %85 = alloca i32, align 4
  %86 = alloca %struct.s2n_blob, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.s2n_result, align 4
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca %struct.s2n_result, 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 %95

95:                                               ; preds = %2
  br label %96

96:                                               ; preds = %95
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %97 = load ptr, ptr @stdout, align 8, !tbaa !9
  %98 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %97, ptr noundef @.str, ptr noundef @.str.1) #11
  %99 = load ptr, ptr @stdout, align 8, !tbaa !9
  %100 = call i32 @fflush(ptr noundef %99)
  br label %101

101:                                              ; preds = %96
  %102 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %103 = icmp eq i32 %102, -1
  br i1 %103, label %104, label %155

104:                                              ; preds = %101
  br label %105

105:                                              ; preds = %104
  br label %106

106:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %107 = call ptr @__errno_location() #12
  %108 = load i32, ptr %107, align 4, !tbaa !5
  store i32 %108, ptr %6, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = call i32 @s2n_print_stacktrace(ptr noundef %109)
  %111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %112 = trunc i8 %111 to i1
  br i1 %112, label %113, label %135

113:                                              ; preds = %106
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = call i32 @fileno(ptr noundef %114) #11
  %116 = call i32 @isatty(i32 noundef %115) #11
  %117 = icmp ne i32 %116, 0
  br i1 %117, label %118, label %135

118:                                              ; preds = %113
  %119 = load i32, ptr %6, align 4, !tbaa !5
  %120 = call ptr @__errno_location() #12
  store i32 %119, ptr %120, align 4, !tbaa !5
  %121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %122 = load i32, ptr @test_count, align 4, !tbaa !5
  %123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = call ptr @s2n_strerror(i32 noundef %124, ptr noundef @.str.4)
  %126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call ptr @s2n_strerror_debug(i32 noundef %127, ptr noundef @.str.4)
  %129 = call ptr @__errno_location() #12
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call ptr @strerror(i32 noundef %130) #11
  %132 = call ptr @__errno_location() #12
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %121, ptr noundef @.str.2, i32 noundef %122, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 64, ptr noundef %125, ptr noundef %128, ptr noundef %131, i32 noundef %133) #11
  br label %152

135:                                              ; preds = %113, %106
  %136 = load i32, ptr %6, align 4, !tbaa !5
  %137 = call ptr @__errno_location() #12
  store i32 %136, ptr %137, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = call ptr @s2n_strerror(i32 noundef %141, ptr noundef @.str.4)
  %143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = call ptr @s2n_strerror_debug(i32 noundef %144, ptr noundef @.str.4)
  %146 = call ptr @__errno_location() #12
  %147 = load i32, ptr %146, align 4, !tbaa !5
  %148 = call ptr @strerror(i32 noundef %147) #11
  %149 = call ptr @__errno_location() #12
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %138, ptr noundef @.str.5, i32 noundef %139, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 64, ptr noundef %142, ptr noundef %145, ptr noundef %148, i32 noundef %150) #11
  br label %152

152:                                              ; preds = %135, %118
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %153

153:                                              ; preds = %152
  call void @exit(i32 noundef 1) #13
  unreachable

154:                                              ; No predecessors!
  br label %155

155:                                              ; preds = %154, %101
  br label %156

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %159 = add nsw i32 %158, 1
  store i32 %159, ptr @test_count, align 4, !tbaa !5
  %160 = call i32 @s2n_enable_atexit()
  %161 = icmp eq i32 %160, -1
  br i1 %161, label %162, label %213

162:                                              ; preds = %157
  br label %163

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %165 = call ptr @__errno_location() #12
  %166 = load i32, ptr %165, align 4, !tbaa !5
  store i32 %166, ptr %7, align 4, !tbaa !5
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = call i32 @s2n_print_stacktrace(ptr noundef %167)
  %169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %170 = trunc i8 %169 to i1
  br i1 %170, label %171, label %193

171:                                              ; preds = %164
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = call i32 @fileno(ptr noundef %172) #11
  %174 = call i32 @isatty(i32 noundef %173) #11
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %193

176:                                              ; preds = %171
  %177 = load i32, ptr %7, align 4, !tbaa !5
  %178 = call ptr @__errno_location() #12
  store i32 %177, ptr %178, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @s2n_strerror(i32 noundef %182, ptr noundef @.str.4)
  %184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = call ptr @s2n_strerror_debug(i32 noundef %185, ptr noundef @.str.4)
  %187 = call ptr @__errno_location() #12
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = call ptr @strerror(i32 noundef %188) #11
  %190 = call ptr @__errno_location() #12
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef @.str.2, i32 noundef %180, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 64, ptr noundef %183, ptr noundef %186, ptr noundef %189, i32 noundef %191) #11
  br label %210

193:                                              ; preds = %171, %164
  %194 = load i32, ptr %7, align 4, !tbaa !5
  %195 = call ptr @__errno_location() #12
  store i32 %194, ptr %195, align 4, !tbaa !5
  %196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %197 = load i32, ptr @test_count, align 4, !tbaa !5
  %198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call ptr @s2n_strerror(i32 noundef %199, ptr noundef @.str.4)
  %201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call ptr @s2n_strerror_debug(i32 noundef %202, ptr noundef @.str.4)
  %204 = call ptr @__errno_location() #12
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call ptr @strerror(i32 noundef %205) #11
  %207 = call ptr @__errno_location() #12
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %196, ptr noundef @.str.5, i32 noundef %197, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 64, ptr noundef %200, ptr noundef %203, ptr noundef %206, i32 noundef %208) #11
  br label %210

210:                                              ; preds = %193, %176
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %211

211:                                              ; preds = %210
  call void @exit(i32 noundef 1) #13
  unreachable

212:                                              ; No predecessors!
  br label %213

213:                                              ; preds = %212, %157
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  %217 = call i32 @s2n_init()
  %218 = icmp eq i32 %217, -1
  br i1 %218, label %219, label %270

219:                                              ; preds = %216
  br label %220

220:                                              ; preds = %219
  br label %221

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %222 = call ptr @__errno_location() #12
  %223 = load i32, ptr %222, align 4, !tbaa !5
  store i32 %223, ptr %8, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @s2n_print_stacktrace(ptr noundef %224)
  %226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %227 = trunc i8 %226 to i1
  br i1 %227, label %228, label %250

228:                                              ; preds = %221
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = call i32 @fileno(ptr noundef %229) #11
  %231 = call i32 @isatty(i32 noundef %230) #11
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %233, label %250

233:                                              ; preds = %228
  %234 = load i32, ptr %8, align 4, !tbaa !5
  %235 = call ptr @__errno_location() #12
  store i32 %234, ptr %235, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror(i32 noundef %239, ptr noundef @.str.4)
  %241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @s2n_strerror_debug(i32 noundef %242, ptr noundef @.str.4)
  %244 = call ptr @__errno_location() #12
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #11
  %247 = call ptr @__errno_location() #12
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef @.str.2, i32 noundef %237, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 64, ptr noundef %240, ptr noundef %243, ptr noundef %246, i32 noundef %248) #11
  br label %267

250:                                              ; preds = %228, %221
  %251 = load i32, ptr %8, align 4, !tbaa !5
  %252 = call ptr @__errno_location() #12
  store i32 %251, ptr %252, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef @.str.4)
  %258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef @.str.4)
  %261 = call ptr @__errno_location() #12
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call ptr @strerror(i32 noundef %262) #11
  %264 = call ptr @__errno_location() #12
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef @.str.5, i32 noundef %254, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 64, ptr noundef %257, ptr noundef %260, ptr noundef %263, i32 noundef %265) #11
  br label %267

267:                                              ; preds = %250, %233
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %268

268:                                              ; preds = %267
  call void @exit(i32 noundef 1) #13
  unreachable

269:                                              ; No predecessors!
  br label %270

270:                                              ; preds = %269, %216
  br label %271

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 64, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 64, i1 false)
  br label %273

273:                                              ; preds = %272
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr @test_count, align 4, !tbaa !5
  %276 = call i32 @s2n_test_pkeys_init(ptr noundef %9, ptr noundef @.str.8, ptr noundef @.str.9)
  %277 = getelementptr inbounds %struct.s2n_result, ptr %10, i32 0, i32 0
  store i32 %276, ptr %277, align 4
  %278 = getelementptr inbounds %struct.s2n_result, ptr %10, i32 0, i32 0
  %279 = load i32, ptr %278, align 4
  %280 = call zeroext i1 @s2n_result_is_ok(i32 %279)
  br i1 %280, label %334, label %281

281:                                              ; preds = %273
  br label %282

282:                                              ; preds = %281
  br label %283

283:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %284 = call ptr @__errno_location() #12
  %285 = load i32, ptr %284, align 4, !tbaa !5
  store i32 %285, ptr %11, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @s2n_print_stacktrace(ptr noundef %286)
  %288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %289 = trunc i8 %288 to i1
  br i1 %289, label %290, label %312

290:                                              ; preds = %283
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @fileno(ptr noundef %291) #11
  %293 = call i32 @isatty(i32 noundef %292) #11
  %294 = icmp ne i32 %293, 0
  br i1 %294, label %295, label %312

295:                                              ; preds = %290
  %296 = load i32, ptr %11, align 4, !tbaa !5
  %297 = call ptr @__errno_location() #12
  store i32 %296, ptr %297, align 4, !tbaa !5
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror(i32 noundef %301, ptr noundef @.str.4)
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror_debug(i32 noundef %304, ptr noundef @.str.4)
  %306 = call ptr @__errno_location() #12
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @strerror(i32 noundef %307) #11
  %309 = call ptr @__errno_location() #12
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %298, ptr noundef @.str.2, i32 noundef %299, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 68, ptr noundef %302, ptr noundef %305, ptr noundef %308, i32 noundef %310) #11
  br label %329

312:                                              ; preds = %290, %283
  %313 = load i32, ptr %11, align 4, !tbaa !5
  %314 = call ptr @__errno_location() #12
  store i32 %313, ptr %314, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror(i32 noundef %318, ptr noundef @.str.4)
  %320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror_debug(i32 noundef %321, ptr noundef @.str.4)
  %323 = call ptr @__errno_location() #12
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call ptr @strerror(i32 noundef %324) #11
  %326 = call ptr @__errno_location() #12
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef @.str.5, i32 noundef %316, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 68, ptr noundef %319, ptr noundef %322, ptr noundef %325, i32 noundef %327) #11
  br label %329

329:                                              ; preds = %312, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %330

330:                                              ; preds = %329
  br label %331

331:                                              ; preds = %330
  call void @exit(i32 noundef 1) #13
  unreachable

332:                                              ; No predecessors!
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333, %273
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 64, ptr %12) #11
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 64, i1 false)
  br label %337

337:                                              ; preds = %336
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr @test_count, align 4, !tbaa !5
  %340 = call i32 @s2n_test_pkeys_init(ptr noundef %12, ptr noundef @.str.11, ptr noundef @.str.12)
  %341 = getelementptr inbounds %struct.s2n_result, ptr %13, i32 0, i32 0
  store i32 %340, ptr %341, align 4
  %342 = getelementptr inbounds %struct.s2n_result, ptr %13, i32 0, i32 0
  %343 = load i32, ptr %342, align 4
  %344 = call zeroext i1 @s2n_result_is_ok(i32 %343)
  br i1 %344, label %398, label %345

345:                                              ; preds = %337
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %348 = call ptr @__errno_location() #12
  %349 = load i32, ptr %348, align 4, !tbaa !5
  store i32 %349, ptr %14, 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) #11
  %357 = call i32 @isatty(i32 noundef %356) #11
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %359, label %376

359:                                              ; preds = %354
  %360 = load i32, ptr %14, align 4, !tbaa !5
  %361 = call ptr @__errno_location() #12
  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() #12
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #11
  %373 = call ptr @__errno_location() #12
  %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.13, ptr noundef @.str.1, i32 noundef 72, ptr noundef %366, ptr noundef %369, ptr noundef %372, i32 noundef %374) #11
  br label %393

376:                                              ; preds = %354, %347
  %377 = load i32, ptr %14, align 4, !tbaa !5
  %378 = call ptr @__errno_location() #12
  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() #12
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #11
  %390 = call ptr @__errno_location() #12
  %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.13, ptr noundef @.str.1, i32 noundef 72, ptr noundef %383, ptr noundef %386, ptr noundef %389, i32 noundef %391) #11
  br label %393

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

394:                                              ; preds = %393
  br label %395

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

396:                                              ; No predecessors!
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397, %337
  br label %399

399:                                              ; preds = %398
  br label %400

400:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 64, ptr %15) #11
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 64, i1 false)
  %401 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %401, label %402, label %467

402:                                              ; preds = %400
  br label %403

403:                                              ; preds = %402
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %406 = call i32 @s2n_test_pkeys_init(ptr noundef %15, ptr noundef @.str.14, ptr noundef @.str.15)
  %407 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %406, ptr %407, align 4
  %408 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %409 = load i32, ptr %408, align 4
  %410 = call zeroext i1 @s2n_result_is_ok(i32 %409)
  br i1 %410, label %464, label %411

411:                                              ; preds = %403
  br label %412

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %414 = call ptr @__errno_location() #12
  %415 = load i32, ptr %414, align 4, !tbaa !5
  store i32 %415, ptr %17, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = call i32 @s2n_print_stacktrace(ptr noundef %416)
  %418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %419 = trunc i8 %418 to i1
  br i1 %419, label %420, label %442

420:                                              ; preds = %413
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @fileno(ptr noundef %421) #11
  %423 = call i32 @isatty(i32 noundef %422) #11
  %424 = icmp ne i32 %423, 0
  br i1 %424, label %425, label %442

425:                                              ; preds = %420
  %426 = load i32, ptr %17, align 4, !tbaa !5
  %427 = call ptr @__errno_location() #12
  store i32 %426, ptr %427, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror(i32 noundef %431, ptr noundef @.str.4)
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef @.str.4)
  %436 = call ptr @__errno_location() #12
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @strerror(i32 noundef %437) #11
  %439 = call ptr @__errno_location() #12
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef @.str.2, i32 noundef %429, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 77, ptr noundef %432, ptr noundef %435, ptr noundef %438, i32 noundef %440) #11
  br label %459

442:                                              ; preds = %420, %413
  %443 = load i32, ptr %17, align 4, !tbaa !5
  %444 = call ptr @__errno_location() #12
  store i32 %443, ptr %444, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror(i32 noundef %448, ptr noundef @.str.4)
  %450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %451 = load i32, ptr %450, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror_debug(i32 noundef %451, ptr noundef @.str.4)
  %453 = call ptr @__errno_location() #12
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = call ptr @strerror(i32 noundef %454) #11
  %456 = call ptr @__errno_location() #12
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %445, ptr noundef @.str.5, i32 noundef %446, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 77, ptr noundef %449, ptr noundef %452, ptr noundef %455, i32 noundef %457) #11
  br label %459

459:                                              ; preds = %442, %425
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %460

460:                                              ; preds = %459
  br label %461

461:                                              ; preds = %460
  call void @exit(i32 noundef 1) #13
  unreachable

462:                                              ; No predecessors!
  br label %463

463:                                              ; preds = %462
  br label %464

464:                                              ; preds = %463, %403
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465
  br label %467

467:                                              ; preds = %466, %400
  call void @llvm.lifetime.start.p0(i64 192, ptr %18) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %18, ptr align 8 %9, i64 64, i1 false), !tbaa.struct !15
  %468 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %18, i64 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %468, ptr align 8 %12, i64 64, i1 false), !tbaa.struct !15
  %469 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %18, i64 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %469, ptr align 8 %15, i64 64, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %19) #11
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 64, i1 false)
  br label %470

470:                                              ; preds = %467
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr @test_count, align 4, !tbaa !5
  %473 = call i32 @s2n_test_pkeys_init(ptr noundef %19, ptr noundef @.str.17, ptr noundef @.str.18)
  %474 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  store i32 %473, ptr %474, align 4
  %475 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  %476 = load i32, ptr %475, align 4
  %477 = call zeroext i1 @s2n_result_is_ok(i32 %476)
  br i1 %477, label %531, label %478

478:                                              ; preds = %470
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %481 = call ptr @__errno_location() #12
  %482 = load i32, ptr %481, align 4, !tbaa !5
  store i32 %482, ptr %21, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = call i32 @s2n_print_stacktrace(ptr noundef %483)
  %485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %486 = trunc i8 %485 to i1
  br i1 %486, label %487, label %509

487:                                              ; preds = %480
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @fileno(ptr noundef %488) #11
  %490 = call i32 @isatty(i32 noundef %489) #11
  %491 = icmp ne i32 %490, 0
  br i1 %491, label %492, label %509

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

509:                                              ; preds = %487, %480
  %510 = load i32, ptr %21, align 4, !tbaa !5
  %511 = call ptr @__errno_location() #12
  store i32 %510, ptr %511, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror(i32 noundef %515, ptr noundef @.str.4)
  %517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror_debug(i32 noundef %518, ptr noundef @.str.4)
  %520 = call ptr @__errno_location() #12
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @strerror(i32 noundef %521) #11
  %523 = call ptr @__errno_location() #12
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef @.str.5, i32 noundef %513, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 86, ptr noundef %516, ptr noundef %519, ptr noundef %522, i32 noundef %524) #11
  br label %526

526:                                              ; preds = %509, %492
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527
  call void @exit(i32 noundef 1) #13
  unreachable

529:                                              ; No predecessors!
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530, %470
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 64, ptr %22) #11
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 64, i1 false)
  br label %534

534:                                              ; preds = %533
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr @test_count, align 4, !tbaa !5
  %537 = call i32 @s2n_test_pkeys_init(ptr noundef %22, ptr noundef @.str.20, ptr noundef @.str.21)
  %538 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %537, ptr %538, align 4
  %539 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %540 = load i32, ptr %539, align 4
  %541 = call zeroext i1 @s2n_result_is_ok(i32 %540)
  br i1 %541, label %595, label %542

542:                                              ; preds = %534
  br label %543

543:                                              ; preds = %542
  br label %544

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %545 = call ptr @__errno_location() #12
  %546 = load i32, ptr %545, align 4, !tbaa !5
  store i32 %546, ptr %24, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @s2n_print_stacktrace(ptr noundef %547)
  %549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %550 = trunc i8 %549 to i1
  br i1 %550, label %551, label %573

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #11
  %554 = call i32 @isatty(i32 noundef %553) #11
  %555 = icmp ne i32 %554, 0
  br i1 %555, label %556, label %573

556:                                              ; preds = %551
  %557 = load i32, ptr %24, align 4, !tbaa !5
  %558 = call ptr @__errno_location() #12
  store i32 %557, ptr %558, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror(i32 noundef %562, ptr noundef @.str.4)
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror_debug(i32 noundef %565, ptr noundef @.str.4)
  %567 = call ptr @__errno_location() #12
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @strerror(i32 noundef %568) #11
  %570 = call ptr @__errno_location() #12
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %559, ptr noundef @.str.2, i32 noundef %560, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 90, ptr noundef %563, ptr noundef %566, ptr noundef %569, i32 noundef %571) #11
  br label %590

573:                                              ; preds = %551, %544
  %574 = load i32, ptr %24, align 4, !tbaa !5
  %575 = call ptr @__errno_location() #12
  store i32 %574, ptr %575, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = load i32, ptr @test_count, align 4, !tbaa !5
  %578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror(i32 noundef %579, ptr noundef @.str.4)
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef @.str.4)
  %584 = call ptr @__errno_location() #12
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #11
  %587 = call ptr @__errno_location() #12
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %576, ptr noundef @.str.5, i32 noundef %577, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 90, ptr noundef %580, ptr noundef %583, ptr noundef %586, i32 noundef %588) #11
  br label %590

590:                                              ; preds = %573, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  call void @exit(i32 noundef 1) #13
  unreachable

593:                                              ; No predecessors!
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594, %534
  br label %596

596:                                              ; preds = %595
  br label %597

597:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #11
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 64, i1 false)
  %598 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %598, label %599, label %664

599:                                              ; preds = %597
  br label %600

600:                                              ; preds = %599
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = add nsw i32 %601, 1
  store i32 %602, ptr @test_count, align 4, !tbaa !5
  %603 = call i32 @s2n_test_pkeys_init(ptr noundef %25, ptr noundef @.str.23, ptr noundef @.str.24)
  %604 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %603, ptr %604, align 4
  %605 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %606 = load i32, ptr %605, align 4
  %607 = call zeroext i1 @s2n_result_is_ok(i32 %606)
  br i1 %607, label %661, label %608

608:                                              ; preds = %600
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %611 = call ptr @__errno_location() #12
  %612 = load i32, ptr %611, align 4, !tbaa !5
  store i32 %612, ptr %27, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = call i32 @s2n_print_stacktrace(ptr noundef %613)
  %615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %616 = trunc i8 %615 to i1
  br i1 %616, label %617, label %639

617:                                              ; preds = %610
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @fileno(ptr noundef %618) #11
  %620 = call i32 @isatty(i32 noundef %619) #11
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %639

622:                                              ; preds = %617
  %623 = load i32, ptr %27, align 4, !tbaa !5
  %624 = call ptr @__errno_location() #12
  store i32 %623, ptr %624, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = call ptr @s2n_strerror(i32 noundef %628, ptr noundef @.str.4)
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror_debug(i32 noundef %631, ptr noundef @.str.4)
  %633 = call ptr @__errno_location() #12
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #11
  %636 = call ptr @__errno_location() #12
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %625, ptr noundef @.str.2, i32 noundef %626, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 95, ptr noundef %629, ptr noundef %632, ptr noundef %635, i32 noundef %637) #11
  br label %656

639:                                              ; preds = %617, %610
  %640 = load i32, ptr %27, align 4, !tbaa !5
  %641 = call ptr @__errno_location() #12
  store i32 %640, ptr %641, 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 @.str.4)
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror_debug(i32 noundef %648, ptr noundef @.str.4)
  %650 = call ptr @__errno_location() #12
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @strerror(i32 noundef %651) #11
  %653 = call ptr @__errno_location() #12
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef @.str.5, i32 noundef %643, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 95, ptr noundef %646, ptr noundef %649, ptr noundef %652, i32 noundef %654) #11
  br label %656

656:                                              ; preds = %639, %622
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  call void @exit(i32 noundef 1) #13
  unreachable

659:                                              ; No predecessors!
  br label %660

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %660, %600
  br label %662

662:                                              ; preds = %661
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663, %597
  call void @llvm.lifetime.start.p0(i64 192, ptr %28) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %28, ptr align 8 %19, i64 64, i1 false), !tbaa.struct !15
  %665 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %28, i64 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %665, ptr align 8 %22, i64 64, i1 false), !tbaa.struct !15
  %666 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %28, i64 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %666, ptr align 8 %25, i64 64, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  store i64 0, ptr %29, align 8, !tbaa !16
  br label %667

667:                                              ; preds = %1171, %664
  %668 = load i64, ptr %29, align 8, !tbaa !16
  %669 = icmp ult i64 %668, 3
  br i1 %669, label %671, label %670

670:                                              ; preds = %667
  store i32 60, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  br label %1174

671:                                              ; preds = %667
  %672 = load i64, ptr %29, align 8, !tbaa !16
  %673 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %672
  %674 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %673, i32 0, i32 2
  %675 = load i8, ptr %674, align 8, !tbaa !18, !range !13, !noundef !14
  %676 = trunc i8 %675 to i1
  br i1 %676, label %678, label %677

677:                                              ; preds = %671
  br label %1171

678:                                              ; preds = %671
  br label %679

679:                                              ; preds = %678
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = load i64, ptr %29, align 8, !tbaa !16
  %683 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %682
  %684 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %683, i32 0, i32 0
  %685 = load i64, ptr %29, align 8, !tbaa !16
  %686 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %685
  %687 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %686, i32 0, i32 1
  %688 = load ptr, ptr %687, align 16, !tbaa !21
  %689 = call i32 @s2n_pkey_match(ptr noundef %684, ptr noundef %688)
  %690 = icmp eq i32 %689, -1
  br i1 %690, label %691, label %744

691:                                              ; preds = %679
  br label %692

692:                                              ; preds = %691
  br label %693

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

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

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

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

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

740:                                              ; preds = %739
  br label %741

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

742:                                              ; No predecessors!
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743, %679
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  store i64 0, ptr %32, align 8, !tbaa !16
  br label %747

747:                                              ; preds = %1167, %746
  %748 = load i64, ptr %32, align 8, !tbaa !16
  %749 = icmp ult i64 %748, 3
  br i1 %749, label %751, label %750

750:                                              ; preds = %747
  store i32 69, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %1170

751:                                              ; preds = %747
  %752 = load i64, ptr %32, align 8, !tbaa !16
  %753 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %28, i64 0, i64 %752
  %754 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %753, i32 0, i32 2
  %755 = load i8, ptr %754, align 8, !tbaa !18, !range !13, !noundef !14
  %756 = trunc i8 %755 to i1
  br i1 %756, label %758, label %757

757:                                              ; preds = %751
  br label %1167

758:                                              ; preds = %751
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr @test_count, align 4, !tbaa !5
  %764 = load i64, ptr %29, align 8, !tbaa !16
  %765 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %764
  %766 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %765, i32 0, i32 0
  %767 = load i64, ptr %32, align 8, !tbaa !16
  %768 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %28, i64 0, i64 %767
  %769 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %768, i32 0, i32 1
  %770 = load ptr, ptr %769, align 16, !tbaa !21
  %771 = call i32 @s2n_pkey_match(ptr noundef %766, ptr noundef %770)
  %772 = icmp eq i32 %771, -1
  br i1 %772, label %826, label %773

773:                                              ; preds = %761
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %776 = call ptr @__errno_location() #12
  %777 = load i32, ptr %776, align 4, !tbaa !5
  store i32 %777, ptr %33, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @s2n_print_stacktrace(ptr noundef %778)
  %780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %781 = trunc i8 %780 to i1
  br i1 %781, label %782, label %804

782:                                              ; preds = %775
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = call i32 @fileno(ptr noundef %783) #11
  %785 = call i32 @isatty(i32 noundef %784) #11
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %787, label %804

787:                                              ; preds = %782
  %788 = load i32, ptr %33, align 4, !tbaa !5
  %789 = call ptr @__errno_location() #12
  store i32 %788, ptr %789, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror(i32 noundef %793, ptr noundef @.str.4)
  %795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror_debug(i32 noundef %796, ptr noundef @.str.4)
  %798 = call ptr @__errno_location() #12
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call ptr @strerror(i32 noundef %799) #11
  %801 = call ptr @__errno_location() #12
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef @.str.2, i32 noundef %791, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 118, ptr noundef %794, ptr noundef %797, ptr noundef %800, i32 noundef %802) #11
  br label %821

804:                                              ; preds = %782, %775
  %805 = load i32, ptr %33, align 4, !tbaa !5
  %806 = call ptr @__errno_location() #12
  store i32 %805, ptr %806, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror(i32 noundef %810, ptr noundef @.str.4)
  %812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef @.str.4)
  %815 = call ptr @__errno_location() #12
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #11
  %818 = call ptr @__errno_location() #12
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef @.str.5, i32 noundef %808, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 118, ptr noundef %811, ptr noundef %814, ptr noundef %817, i32 noundef %819) #11
  br label %821

821:                                              ; preds = %804, %787
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  call void @exit(i32 noundef 1) #13
  unreachable

824:                                              ; No predecessors!
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825, %761
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = icmp eq i32 %833, 469762068
  br i1 %834, label %888, label %835

835:                                              ; preds = %829
  br label %836

836:                                              ; preds = %835
  br label %837

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

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

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

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

883:                                              ; preds = %866, %849
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %884

884:                                              ; preds = %883
  br label %885

885:                                              ; preds = %884
  call void @exit(i32 noundef 1) #13
  unreachable

886:                                              ; No predecessors!
  br label %887

887:                                              ; preds = %886
  br label %888

888:                                              ; preds = %887, %829
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = add nsw i32 %892, 1
  store i32 %893, ptr @test_count, align 4, !tbaa !5
  %894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror_debug(i32 noundef %895, ptr noundef @.str.4)
  %897 = icmp eq ptr %896, null
  br i1 %897, label %898, label %951

898:                                              ; preds = %891
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %901 = call ptr @__errno_location() #12
  %902 = load i32, ptr %901, align 4, !tbaa !5
  store i32 %902, ptr %35, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @s2n_print_stacktrace(ptr noundef %903)
  %905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %906 = trunc i8 %905 to i1
  br i1 %906, label %907, label %929

907:                                              ; preds = %900
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @fileno(ptr noundef %908) #11
  %910 = call i32 @isatty(i32 noundef %909) #11
  %911 = icmp ne i32 %910, 0
  br i1 %911, label %912, label %929

912:                                              ; preds = %907
  %913 = load i32, ptr %35, align 4, !tbaa !5
  %914 = call ptr @__errno_location() #12
  store i32 %913, ptr %914, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror(i32 noundef %918, ptr noundef @.str.4)
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror_debug(i32 noundef %921, ptr noundef @.str.4)
  %923 = call ptr @__errno_location() #12
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @strerror(i32 noundef %924) #11
  %926 = call ptr @__errno_location() #12
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef @.str.2, i32 noundef %916, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 118, ptr noundef %919, ptr noundef %922, ptr noundef %925, i32 noundef %927) #11
  br label %946

929:                                              ; preds = %907, %900
  %930 = load i32, ptr %35, align 4, !tbaa !5
  %931 = call ptr @__errno_location() #12
  store i32 %930, ptr %931, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef @.str.4)
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror_debug(i32 noundef %938, ptr noundef @.str.4)
  %940 = call ptr @__errno_location() #12
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @strerror(i32 noundef %941) #11
  %943 = call ptr @__errno_location() #12
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef @.str.5, i32 noundef %933, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 118, ptr noundef %936, ptr noundef %939, ptr noundef %942, i32 noundef %944) #11
  br label %946

946:                                              ; preds = %929, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  call void @exit(i32 noundef 1) #13
  unreachable

949:                                              ; No predecessors!
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950, %891
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %957, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %958 = call ptr @__errno_location() #12
  store i32 0, ptr %958, align 4, !tbaa !5
  br label %959

959:                                              ; preds = %956
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr @test_count, align 4, !tbaa !5
  %968 = load i64, ptr %32, align 8, !tbaa !16
  %969 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %28, i64 0, i64 %968
  %970 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %969, i32 0, i32 0
  %971 = load i64, ptr %29, align 8, !tbaa !16
  %972 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %971
  %973 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %972, i32 0, i32 1
  %974 = load ptr, ptr %973, align 16, !tbaa !21
  %975 = call i32 @s2n_pkey_match(ptr noundef %970, ptr noundef %974)
  %976 = icmp eq i32 %975, -1
  br i1 %976, label %1030, label %977

977:                                              ; preds = %965
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %980 = call ptr @__errno_location() #12
  %981 = load i32, ptr %980, align 4, !tbaa !5
  store i32 %981, ptr %36, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @s2n_print_stacktrace(ptr noundef %982)
  %984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %985 = trunc i8 %984 to i1
  br i1 %985, label %986, label %1008

986:                                              ; preds = %979
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @fileno(ptr noundef %987) #11
  %989 = call i32 @isatty(i32 noundef %988) #11
  %990 = icmp ne i32 %989, 0
  br i1 %990, label %991, label %1008

991:                                              ; preds = %986
  %992 = load i32, ptr %36, align 4, !tbaa !5
  %993 = call ptr @__errno_location() #12
  store i32 %992, ptr %993, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef @.str.4)
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef @.str.4)
  %1002 = call ptr @__errno_location() #12
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #11
  %1005 = call ptr @__errno_location() #12
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef @.str.2, i32 noundef %995, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 121, ptr noundef %998, ptr noundef %1001, ptr noundef %1004, i32 noundef %1006) #11
  br label %1025

1008:                                             ; preds = %986, %979
  %1009 = load i32, ptr %36, align 4, !tbaa !5
  %1010 = call ptr @__errno_location() #12
  store i32 %1009, ptr %1010, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror(i32 noundef %1014, ptr noundef @.str.4)
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef @.str.4)
  %1019 = call ptr @__errno_location() #12
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @strerror(i32 noundef %1020) #11
  %1022 = call ptr @__errno_location() #12
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef @.str.5, i32 noundef %1012, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1015, ptr noundef %1018, ptr noundef %1021, i32 noundef %1023) #11
  br label %1025

1025:                                             ; preds = %1008, %991
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026
  call void @exit(i32 noundef 1) #13
  unreachable

1028:                                             ; No predecessors!
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029, %965
  br label %1031

1031:                                             ; preds = %1030
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032
  %1034 = load i32, ptr @test_count, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr @test_count, align 4, !tbaa !5
  %1036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = icmp eq i32 %1037, 469762068
  br i1 %1038, label %1092, label %1039

1039:                                             ; preds = %1033
  br label %1040

1040:                                             ; preds = %1039
  br label %1041

1041:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1042 = call ptr @__errno_location() #12
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  store i32 %1043, ptr %37, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @s2n_print_stacktrace(ptr noundef %1044)
  %1046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1047 = trunc i8 %1046 to i1
  br i1 %1047, label %1048, label %1070

1048:                                             ; preds = %1041
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @fileno(ptr noundef %1049) #11
  %1051 = call i32 @isatty(i32 noundef %1050) #11
  %1052 = icmp ne i32 %1051, 0
  br i1 %1052, label %1053, label %1070

1053:                                             ; preds = %1048
  %1054 = load i32, ptr %37, align 4, !tbaa !5
  %1055 = call ptr @__errno_location() #12
  store i32 %1054, ptr %1055, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef @.str.4)
  %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_debug(i32 noundef %1062, ptr noundef @.str.4)
  %1064 = call ptr @__errno_location() #12
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #11
  %1067 = call ptr @__errno_location() #12
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef @.str.2, i32 noundef %1057, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, i32 noundef %1068) #11
  br label %1087

1070:                                             ; preds = %1048, %1041
  %1071 = load i32, ptr %37, align 4, !tbaa !5
  %1072 = call ptr @__errno_location() #12
  store i32 %1071, ptr %1072, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef @.str.4)
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef @.str.4)
  %1081 = call ptr @__errno_location() #12
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #11
  %1084 = call ptr @__errno_location() #12
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1073, ptr noundef @.str.5, i32 noundef %1074, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1077, ptr noundef %1080, ptr noundef %1083, i32 noundef %1085) #11
  br label %1087

1087:                                             ; preds = %1070, %1053
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1088

1088:                                             ; preds = %1087
  br label %1089

1089:                                             ; preds = %1088
  call void @exit(i32 noundef 1) #13
  unreachable

1090:                                             ; No predecessors!
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091, %1033
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef @.str.4)
  %1101 = icmp eq ptr %1100, null
  br i1 %1101, label %1102, label %1155

1102:                                             ; preds = %1095
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

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

1111:                                             ; preds = %1104
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @fileno(ptr noundef %1112) #11
  %1114 = call i32 @isatty(i32 noundef %1113) #11
  %1115 = icmp ne i32 %1114, 0
  br i1 %1115, label %1116, label %1133

1116:                                             ; preds = %1111
  %1117 = load i32, ptr %38, align 4, !tbaa !5
  %1118 = call ptr @__errno_location() #12
  store i32 %1117, ptr %1118, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef @.str.4)
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef @.str.4)
  %1127 = call ptr @__errno_location() #12
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #11
  %1130 = call ptr @__errno_location() #12
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef @.str.2, i32 noundef %1120, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1123, ptr noundef %1126, ptr noundef %1129, i32 noundef %1131) #11
  br label %1150

1133:                                             ; preds = %1111, %1104
  %1134 = load i32, ptr %38, align 4, !tbaa !5
  %1135 = call ptr @__errno_location() #12
  store i32 %1134, ptr %1135, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror(i32 noundef %1139, ptr noundef @.str.4)
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror_debug(i32 noundef %1142, ptr noundef @.str.4)
  %1144 = call ptr @__errno_location() #12
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call ptr @strerror(i32 noundef %1145) #11
  %1147 = call ptr @__errno_location() #12
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef @.str.5, i32 noundef %1137, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1140, ptr noundef %1143, ptr noundef %1146, i32 noundef %1148) #11
  br label %1150

1150:                                             ; preds = %1133, %1116
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  call void @exit(i32 noundef 1) #13
  unreachable

1153:                                             ; No predecessors!
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

1155:                                             ; preds = %1154, %1095
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1161, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1162 = call ptr @__errno_location() #12
  store i32 0, ptr %1162, align 4, !tbaa !5
  br label %1163

1163:                                             ; preds = %1160
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166, %757
  %1168 = load i64, ptr %32, align 8, !tbaa !16
  %1169 = add i64 %1168, 1
  store i64 %1169, ptr %32, align 8, !tbaa !16
  br label %747, !llvm.loop !22

1170:                                             ; preds = %750
  br label %1171

1171:                                             ; preds = %1170, %677
  %1172 = load i64, ptr %29, align 8, !tbaa !16
  %1173 = add i64 %1172, 1
  store i64 %1173, ptr %29, align 8, !tbaa !16
  br label %667, !llvm.loop !24

1174:                                             ; preds = %670
  call void @llvm.lifetime.end.p0(i64 192, ptr %28) #11
  %1175 = call i32 @s2n_test_pkeys_wipe(ptr noundef %25)
  %1176 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1175, ptr %1176, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #11
  %1177 = call i32 @s2n_test_pkeys_wipe(ptr noundef %22)
  %1178 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1177, ptr %1178, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %22) #11
  %1179 = call i32 @s2n_test_pkeys_wipe(ptr noundef %19)
  %1180 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  store i32 %1179, ptr %1180, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr %42) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 4 @__const.main.expected_sizes, i64 12, i1 false)
  br label %1181

1181:                                             ; preds = %1174
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = add nsw i32 %1182, 1
  store i32 %1183, ptr @test_count, align 4, !tbaa !5
  br label %1184

1184:                                             ; preds = %1181
  br label %1185

1185:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  store i64 0, ptr %43, align 8, !tbaa !16
  br label %1186

1186:                                             ; preds = %1461, %1185
  %1187 = load i64, ptr %43, align 8, !tbaa !16
  %1188 = icmp ult i64 %1187, 3
  br i1 %1188, label %1190, label %1189

1189:                                             ; preds = %1186
  store i32 122, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %1464

1190:                                             ; preds = %1186
  %1191 = load i64, ptr %43, align 8, !tbaa !16
  %1192 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %1191
  %1193 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %1192, i32 0, i32 2
  %1194 = load i8, ptr %1193, align 8, !tbaa !18, !range !13, !noundef !14
  %1195 = trunc i8 %1194 to i1
  br i1 %1195, label %1197, label %1196

1196:                                             ; preds = %1190
  br label %1461

1197:                                             ; preds = %1190
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1198

1198:                                             ; preds = %1197
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = add nsw i32 %1199, 1
  store i32 %1200, ptr @test_count, align 4, !tbaa !5
  %1201 = load i64, ptr %43, align 8, !tbaa !16
  %1202 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %1201
  %1203 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %1202, i32 0, i32 0
  %1204 = call i32 @s2n_pkey_size(ptr noundef %1203, ptr noundef %44)
  %1205 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  store i32 %1204, ptr %1205, align 4
  %1206 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  %1207 = load i32, ptr %1206, align 4
  %1208 = call zeroext i1 @s2n_result_is_ok(i32 %1207)
  br i1 %1208, label %1262, label %1209

1209:                                             ; preds = %1198
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1212 = call ptr @__errno_location() #12
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  store i32 %1213, ptr %46, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @s2n_print_stacktrace(ptr noundef %1214)
  %1216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1217 = trunc i8 %1216 to i1
  br i1 %1217, label %1218, label %1240

1218:                                             ; preds = %1211
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @fileno(ptr noundef %1219) #11
  %1221 = call i32 @isatty(i32 noundef %1220) #11
  %1222 = icmp ne i32 %1221, 0
  br i1 %1222, label %1223, label %1240

1223:                                             ; preds = %1218
  %1224 = load i32, ptr %46, align 4, !tbaa !5
  %1225 = call ptr @__errno_location() #12
  store i32 %1224, ptr %1225, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror(i32 noundef %1229, ptr noundef @.str.4)
  %1231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1232, ptr noundef @.str.4)
  %1234 = call ptr @__errno_location() #12
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @strerror(i32 noundef %1235) #11
  %1237 = call ptr @__errno_location() #12
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef @.str.2, i32 noundef %1227, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1230, ptr noundef %1233, ptr noundef %1236, i32 noundef %1238) #11
  br label %1257

1240:                                             ; preds = %1218, %1211
  %1241 = load i32, ptr %46, align 4, !tbaa !5
  %1242 = call ptr @__errno_location() #12
  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() #12
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @strerror(i32 noundef %1252) #11
  %1254 = call ptr @__errno_location() #12
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1243, ptr noundef @.str.5, i32 noundef %1244, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1247, ptr noundef %1250, ptr noundef %1253, i32 noundef %1255) #11
  br label %1257

1257:                                             ; preds = %1240, %1223
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1258

1258:                                             ; preds = %1257
  br label %1259

1259:                                             ; preds = %1258
  call void @exit(i32 noundef 1) #13
  unreachable

1260:                                             ; No predecessors!
  br label %1261

1261:                                             ; preds = %1260
  br label %1262

1262:                                             ; preds = %1261, %1198
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

1265:                                             ; preds = %1264
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr @test_count, align 4, !tbaa !5
  %1268 = load i32, ptr %44, align 4, !tbaa !5
  %1269 = load i64, ptr %43, align 8, !tbaa !16
  %1270 = getelementptr inbounds [3 x i32], ptr %42, i64 0, i64 %1269
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = icmp eq i32 %1268, %1271
  br i1 %1272, label %1326, label %1273

1273:                                             ; preds = %1265
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1276 = call ptr @__errno_location() #12
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  store i32 %1277, ptr %47, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 @s2n_print_stacktrace(ptr noundef %1278)
  %1280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1281 = trunc i8 %1280 to i1
  br i1 %1281, label %1282, label %1304

1282:                                             ; preds = %1275
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @fileno(ptr noundef %1283) #11
  %1285 = call i32 @isatty(i32 noundef %1284) #11
  %1286 = icmp ne i32 %1285, 0
  br i1 %1286, label %1287, label %1304

1287:                                             ; preds = %1282
  %1288 = load i32, ptr %47, align 4, !tbaa !5
  %1289 = call ptr @__errno_location() #12
  store i32 %1288, ptr %1289, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef @.str.4)
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef @.str.4)
  %1298 = call ptr @__errno_location() #12
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #11
  %1301 = call ptr @__errno_location() #12
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.2, i32 noundef %1291, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1294, ptr noundef %1297, ptr noundef %1300, i32 noundef %1302) #11
  br label %1321

1304:                                             ; preds = %1282, %1275
  %1305 = load i32, ptr %47, align 4, !tbaa !5
  %1306 = call ptr @__errno_location() #12
  store i32 %1305, ptr %1306, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror(i32 noundef %1310, ptr noundef @.str.4)
  %1312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror_debug(i32 noundef %1313, ptr noundef @.str.4)
  %1315 = call ptr @__errno_location() #12
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call ptr @strerror(i32 noundef %1316) #11
  %1318 = call ptr @__errno_location() #12
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1307, ptr noundef @.str.5, i32 noundef %1308, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1311, ptr noundef %1314, ptr noundef %1317, i32 noundef %1319) #11
  br label %1321

1321:                                             ; preds = %1304, %1287
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1322

1322:                                             ; preds = %1321
  br label %1323

1323:                                             ; preds = %1322
  call void @exit(i32 noundef 1) #13
  unreachable

1324:                                             ; No predecessors!
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325, %1265
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  store i32 0, ptr %48, align 4, !tbaa !5
  br label %1329

1329:                                             ; preds = %1328
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = add nsw i32 %1330, 1
  store i32 %1331, ptr @test_count, align 4, !tbaa !5
  %1332 = load i64, ptr %43, align 8, !tbaa !16
  %1333 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %18, i64 0, i64 %1332
  %1334 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %1333, i32 0, i32 1
  %1335 = load ptr, ptr %1334, align 16, !tbaa !21
  %1336 = call i32 @s2n_pkey_size(ptr noundef %1335, ptr noundef %48)
  %1337 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  store i32 %1336, ptr %1337, align 4
  %1338 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  %1339 = load i32, ptr %1338, align 4
  %1340 = call zeroext i1 @s2n_result_is_ok(i32 %1339)
  br i1 %1340, label %1394, label %1341

1341:                                             ; preds = %1329
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

1343:                                             ; preds = %1342
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %1344 = call ptr @__errno_location() #12
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  store i32 %1345, ptr %50, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @s2n_print_stacktrace(ptr noundef %1346)
  %1348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1349 = trunc i8 %1348 to i1
  br i1 %1349, label %1350, label %1372

1350:                                             ; preds = %1343
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #11
  %1353 = call i32 @isatty(i32 noundef %1352) #11
  %1354 = icmp ne i32 %1353, 0
  br i1 %1354, label %1355, label %1372

1355:                                             ; preds = %1350
  %1356 = load i32, ptr %50, align 4, !tbaa !5
  %1357 = call ptr @__errno_location() #12
  store i32 %1356, ptr %1357, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror(i32 noundef %1361, ptr noundef @.str.4)
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror_debug(i32 noundef %1364, ptr noundef @.str.4)
  %1366 = call ptr @__errno_location() #12
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @strerror(i32 noundef %1367) #11
  %1369 = call ptr @__errno_location() #12
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1358, ptr noundef @.str.2, i32 noundef %1359, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1362, ptr noundef %1365, ptr noundef %1368, i32 noundef %1370) #11
  br label %1389

1372:                                             ; preds = %1350, %1343
  %1373 = load i32, ptr %50, align 4, !tbaa !5
  %1374 = call ptr @__errno_location() #12
  store i32 %1373, ptr %1374, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror(i32 noundef %1378, ptr noundef @.str.4)
  %1380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef @.str.4)
  %1383 = call ptr @__errno_location() #12
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @strerror(i32 noundef %1384) #11
  %1386 = call ptr @__errno_location() #12
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1375, ptr noundef @.str.5, i32 noundef %1376, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1379, ptr noundef %1382, ptr noundef %1385, i32 noundef %1387) #11
  br label %1389

1389:                                             ; preds = %1372, %1355
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390
  call void @exit(i32 noundef 1) #13
  unreachable

1392:                                             ; No predecessors!
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393, %1329
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = add nsw i32 %1398, 1
  store i32 %1399, ptr @test_count, align 4, !tbaa !5
  %1400 = load i32, ptr %48, align 4, !tbaa !5
  %1401 = load i64, ptr %43, align 8, !tbaa !16
  %1402 = getelementptr inbounds [3 x i32], ptr %42, i64 0, i64 %1401
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = icmp eq i32 %1400, %1403
  br i1 %1404, label %1458, label %1405

1405:                                             ; preds = %1397
  br label %1406

1406:                                             ; preds = %1405
  br label %1407

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

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

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

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

1453:                                             ; preds = %1436, %1419
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1454

1454:                                             ; preds = %1453
  br label %1455

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

1456:                                             ; No predecessors!
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

1458:                                             ; preds = %1457, %1397
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1461

1461:                                             ; preds = %1460, %1196
  %1462 = load i64, ptr %43, align 8, !tbaa !16
  %1463 = add i64 %1462, 1
  store i64 %1463, ptr %43, align 8, !tbaa !16
  br label %1186, !llvm.loop !25

1464:                                             ; preds = %1189
  call void @llvm.lifetime.end.p0(i64 12, ptr %42) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %52) #11
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #11
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 24, i1 false)
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %9, i32 0, i32 1
  %1471 = load ptr, ptr %1470, align 8, !tbaa !21
  %1472 = call i32 @s2n_pkey_encrypt(ptr noundef %1471, ptr noundef %52, ptr noundef %53)
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1527, label %1474

1474:                                             ; preds = %1467
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %1477 = call ptr @__errno_location() #12
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  store i32 %1478, ptr %54, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @s2n_print_stacktrace(ptr noundef %1479)
  %1481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1483, label %1505

1483:                                             ; preds = %1476
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @fileno(ptr noundef %1484) #11
  %1486 = call i32 @isatty(i32 noundef %1485) #11
  %1487 = icmp ne i32 %1486, 0
  br i1 %1487, label %1488, label %1505

1488:                                             ; preds = %1483
  %1489 = load i32, ptr %54, align 4, !tbaa !5
  %1490 = call ptr @__errno_location() #12
  store i32 %1489, ptr %1490, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef @.str.4)
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef @.str.4)
  %1499 = call ptr @__errno_location() #12
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #11
  %1502 = call ptr @__errno_location() #12
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef @.str.2, i32 noundef %1492, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1495, ptr noundef %1498, ptr noundef %1501, i32 noundef %1503) #11
  br label %1522

1505:                                             ; preds = %1483, %1476
  %1506 = load i32, ptr %54, align 4, !tbaa !5
  %1507 = call ptr @__errno_location() #12
  store i32 %1506, ptr %1507, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef @.str.4)
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call ptr @__errno_location() #12
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #11
  %1519 = call ptr @__errno_location() #12
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef @.str.5, i32 noundef %1509, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1512, ptr noundef %1515, ptr noundef %1518, i32 noundef %1520) #11
  br label %1522

1522:                                             ; preds = %1505, %1488
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

1524:                                             ; preds = %1523
  call void @exit(i32 noundef 1) #13
  unreachable

1525:                                             ; No predecessors!
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526, %1467
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = icmp eq i32 %1534, 402653231
  br i1 %1535, label %1589, label %1536

1536:                                             ; preds = %1530
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %1539 = call ptr @__errno_location() #12
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  store i32 %1540, ptr %55, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @s2n_print_stacktrace(ptr noundef %1541)
  %1543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1544 = trunc i8 %1543 to i1
  br i1 %1544, label %1545, label %1567

1545:                                             ; preds = %1538
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = call i32 @fileno(ptr noundef %1546) #11
  %1548 = call i32 @isatty(i32 noundef %1547) #11
  %1549 = icmp ne i32 %1548, 0
  br i1 %1549, label %1550, label %1567

1550:                                             ; preds = %1545
  %1551 = load i32, ptr %55, align 4, !tbaa !5
  %1552 = call ptr @__errno_location() #12
  store i32 %1551, ptr %1552, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef @.str.4)
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror_debug(i32 noundef %1559, ptr noundef @.str.4)
  %1561 = call ptr @__errno_location() #12
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @strerror(i32 noundef %1562) #11
  %1564 = call ptr @__errno_location() #12
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef @.str.2, i32 noundef %1554, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1557, ptr noundef %1560, ptr noundef %1563, i32 noundef %1565) #11
  br label %1584

1567:                                             ; preds = %1545, %1538
  %1568 = load i32, ptr %55, align 4, !tbaa !5
  %1569 = call ptr @__errno_location() #12
  store i32 %1568, ptr %1569, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef @.str.4)
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef @.str.4)
  %1578 = call ptr @__errno_location() #12
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @strerror(i32 noundef %1579) #11
  %1581 = call ptr @__errno_location() #12
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef @.str.5, i32 noundef %1571, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1574, ptr noundef %1577, ptr noundef %1580, i32 noundef %1582) #11
  br label %1584

1584:                                             ; preds = %1567, %1550
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585
  call void @exit(i32 noundef 1) #13
  unreachable

1587:                                             ; No predecessors!
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

1589:                                             ; preds = %1588, %1530
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror_debug(i32 noundef %1596, ptr noundef @.str.4)
  %1598 = icmp eq ptr %1597, null
  br i1 %1598, label %1599, label %1652

1599:                                             ; preds = %1592
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %1602 = call ptr @__errno_location() #12
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  store i32 %1603, ptr %56, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @s2n_print_stacktrace(ptr noundef %1604)
  %1606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1607 = trunc i8 %1606 to i1
  br i1 %1607, label %1608, label %1630

1608:                                             ; preds = %1601
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #11
  %1611 = call i32 @isatty(i32 noundef %1610) #11
  %1612 = icmp ne i32 %1611, 0
  br i1 %1612, label %1613, label %1630

1613:                                             ; preds = %1608
  %1614 = load i32, ptr %56, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #12
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror_debug(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call ptr @__errno_location() #12
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #11
  %1627 = call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.2, i32 noundef %1617, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #11
  br label %1647

1630:                                             ; preds = %1608, %1601
  %1631 = load i32, ptr %56, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #12
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #12
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #11
  %1644 = call ptr @__errno_location() #12
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.5, i32 noundef %1634, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #11
  br label %1647

1647:                                             ; preds = %1630, %1613
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @exit(i32 noundef 1) #13
  unreachable

1650:                                             ; No predecessors!
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651, %1592
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  %1658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1658, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1659 = call ptr @__errno_location() #12
  store i32 0, ptr %1659, align 4, !tbaa !5
  br label %1660

1660:                                             ; preds = %1657
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %9, i32 0, i32 0
  %1670 = call i32 @s2n_pkey_decrypt(ptr noundef %1669, ptr noundef %52, ptr noundef %53)
  %1671 = icmp eq i32 %1670, -1
  br i1 %1671, label %1725, label %1672

1672:                                             ; preds = %1666
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %1675 = call ptr @__errno_location() #12
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  store i32 %1676, ptr %57, align 4, !tbaa !5
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = call i32 @s2n_print_stacktrace(ptr noundef %1677)
  %1679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1680 = trunc i8 %1679 to i1
  br i1 %1680, label %1681, label %1703

1681:                                             ; preds = %1674
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = call i32 @fileno(ptr noundef %1682) #11
  %1684 = call i32 @isatty(i32 noundef %1683) #11
  %1685 = icmp ne i32 %1684, 0
  br i1 %1685, label %1686, label %1703

1686:                                             ; preds = %1681
  %1687 = load i32, ptr %57, align 4, !tbaa !5
  %1688 = call ptr @__errno_location() #12
  store i32 %1687, ptr %1688, align 4, !tbaa !5
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror(i32 noundef %1692, ptr noundef @.str.4)
  %1694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef @.str.4)
  %1697 = call ptr @__errno_location() #12
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @strerror(i32 noundef %1698) #11
  %1700 = call ptr @__errno_location() #12
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1689, ptr noundef @.str.2, i32 noundef %1690, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 158, ptr noundef %1693, ptr noundef %1696, ptr noundef %1699, i32 noundef %1701) #11
  br label %1720

1703:                                             ; preds = %1681, %1674
  %1704 = load i32, ptr %57, align 4, !tbaa !5
  %1705 = call ptr @__errno_location() #12
  store i32 %1704, ptr %1705, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef @.str.4)
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef @.str.4)
  %1714 = call ptr @__errno_location() #12
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #11
  %1717 = call ptr @__errno_location() #12
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef @.str.5, i32 noundef %1707, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 158, ptr noundef %1710, ptr noundef %1713, ptr noundef %1716, i32 noundef %1718) #11
  br label %1720

1720:                                             ; preds = %1703, %1686
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721
  call void @exit(i32 noundef 1) #13
  unreachable

1723:                                             ; No predecessors!
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724, %1666
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = add nsw i32 %1729, 1
  store i32 %1730, ptr @test_count, align 4, !tbaa !5
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = icmp eq i32 %1732, 402653231
  br i1 %1733, label %1787, label %1734

1734:                                             ; preds = %1728
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %1737 = call ptr @__errno_location() #12
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  store i32 %1738, ptr %58, align 4, !tbaa !5
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = call i32 @s2n_print_stacktrace(ptr noundef %1739)
  %1741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1742 = trunc i8 %1741 to i1
  br i1 %1742, label %1743, label %1765

1743:                                             ; preds = %1736
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @fileno(ptr noundef %1744) #11
  %1746 = call i32 @isatty(i32 noundef %1745) #11
  %1747 = icmp ne i32 %1746, 0
  br i1 %1747, label %1748, label %1765

1748:                                             ; preds = %1743
  %1749 = load i32, ptr %58, align 4, !tbaa !5
  %1750 = call ptr @__errno_location() #12
  store i32 %1749, ptr %1750, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = load i32, ptr @test_count, align 4, !tbaa !5
  %1753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror(i32 noundef %1754, ptr noundef @.str.4)
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror_debug(i32 noundef %1757, ptr noundef @.str.4)
  %1759 = call ptr @__errno_location() #12
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @strerror(i32 noundef %1760) #11
  %1762 = call ptr @__errno_location() #12
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1751, ptr noundef @.str.2, i32 noundef %1752, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 158, ptr noundef %1755, ptr noundef %1758, ptr noundef %1761, i32 noundef %1763) #11
  br label %1782

1765:                                             ; preds = %1743, %1736
  %1766 = load i32, ptr %58, align 4, !tbaa !5
  %1767 = call ptr @__errno_location() #12
  store i32 %1766, ptr %1767, align 4, !tbaa !5
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = load i32, ptr @test_count, align 4, !tbaa !5
  %1770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror(i32 noundef %1771, ptr noundef @.str.4)
  %1773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = call ptr @s2n_strerror_debug(i32 noundef %1774, ptr noundef @.str.4)
  %1776 = call ptr @__errno_location() #12
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call ptr @strerror(i32 noundef %1777) #11
  %1779 = call ptr @__errno_location() #12
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1768, ptr noundef @.str.5, i32 noundef %1769, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 158, ptr noundef %1772, ptr noundef %1775, ptr noundef %1778, i32 noundef %1780) #11
  br label %1782

1782:                                             ; preds = %1765, %1748
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %1783

1783:                                             ; preds = %1782
  br label %1784

1784:                                             ; preds = %1783
  call void @exit(i32 noundef 1) #13
  unreachable

1785:                                             ; No predecessors!
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786, %1728
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = add nsw i32 %1791, 1
  store i32 %1792, ptr @test_count, align 4, !tbaa !5
  %1793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror_debug(i32 noundef %1794, ptr noundef @.str.4)
  %1796 = icmp eq ptr %1795, null
  br i1 %1796, label %1797, label %1850

1797:                                             ; preds = %1790
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %1800 = call ptr @__errno_location() #12
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  store i32 %1801, ptr %59, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @s2n_print_stacktrace(ptr noundef %1802)
  %1804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1805 = trunc i8 %1804 to i1
  br i1 %1805, label %1806, label %1828

1806:                                             ; preds = %1799
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @fileno(ptr noundef %1807) #11
  %1809 = call i32 @isatty(i32 noundef %1808) #11
  %1810 = icmp ne i32 %1809, 0
  br i1 %1810, label %1811, label %1828

1811:                                             ; preds = %1806
  %1812 = load i32, ptr %59, align 4, !tbaa !5
  %1813 = call ptr @__errno_location() #12
  store i32 %1812, ptr %1813, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef @.str.4)
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef @.str.4)
  %1822 = call ptr @__errno_location() #12
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #11
  %1825 = call ptr @__errno_location() #12
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef @.str.2, i32 noundef %1815, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 158, ptr noundef %1818, ptr noundef %1821, ptr noundef %1824, i32 noundef %1826) #11
  br label %1845

1828:                                             ; preds = %1806, %1799
  %1829 = load i32, ptr %59, align 4, !tbaa !5
  %1830 = call ptr @__errno_location() #12
  store i32 %1829, ptr %1830, align 4, !tbaa !5
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef @.str.4)
  %1839 = call ptr @__errno_location() #12
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @strerror(i32 noundef %1840) #11
  %1842 = call ptr @__errno_location() #12
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1831, ptr noundef @.str.5, i32 noundef %1832, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 158, ptr noundef %1835, ptr noundef %1838, ptr noundef %1841, i32 noundef %1843) #11
  br label %1845

1845:                                             ; preds = %1828, %1811
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  call void @exit(i32 noundef 1) #13
  unreachable

1848:                                             ; No predecessors!
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

1850:                                             ; preds = %1849, %1790
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

1855:                                             ; preds = %1854
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1856, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1857 = call ptr @__errno_location() #12
  store i32 0, ptr %1857, align 4, !tbaa !5
  br label %1858

1858:                                             ; preds = %1855
  br label %1859

1859:                                             ; preds = %1858
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  %1862 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %15, i32 0, i32 2
  %1863 = load i8, ptr %1862, align 8, !tbaa !18, !range !13, !noundef !14
  %1864 = trunc i8 %1863 to i1
  br i1 %1864, label %1865, label %2263

1865:                                             ; preds = %1861
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = add nsw i32 %1869, 1
  store i32 %1870, ptr @test_count, align 4, !tbaa !5
  %1871 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %15, i32 0, i32 1
  %1872 = load ptr, ptr %1871, align 8, !tbaa !21
  %1873 = call i32 @s2n_pkey_encrypt(ptr noundef %1872, ptr noundef %52, ptr noundef %53)
  %1874 = icmp eq i32 %1873, -1
  br i1 %1874, label %1928, label %1875

1875:                                             ; preds = %1868
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %1878 = call ptr @__errno_location() #12
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  store i32 %1879, ptr %60, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @s2n_print_stacktrace(ptr noundef %1880)
  %1882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1884, label %1906

1884:                                             ; preds = %1877
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @fileno(ptr noundef %1885) #11
  %1887 = call i32 @isatty(i32 noundef %1886) #11
  %1888 = icmp ne i32 %1887, 0
  br i1 %1888, label %1889, label %1906

1889:                                             ; preds = %1884
  %1890 = load i32, ptr %60, align 4, !tbaa !5
  %1891 = call ptr @__errno_location() #12
  store i32 %1890, ptr %1891, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef @.str.4)
  %1897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef %1898, ptr noundef @.str.4)
  %1900 = call ptr @__errno_location() #12
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @strerror(i32 noundef %1901) #11
  %1903 = call ptr @__errno_location() #12
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1892, ptr noundef @.str.2, i32 noundef %1893, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 165, ptr noundef %1896, ptr noundef %1899, ptr noundef %1902, i32 noundef %1904) #11
  br label %1923

1906:                                             ; preds = %1884, %1877
  %1907 = load i32, ptr %60, align 4, !tbaa !5
  %1908 = call ptr @__errno_location() #12
  store i32 %1907, ptr %1908, align 4, !tbaa !5
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror(i32 noundef %1912, ptr noundef @.str.4)
  %1914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror_debug(i32 noundef %1915, ptr noundef @.str.4)
  %1917 = call ptr @__errno_location() #12
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call ptr @strerror(i32 noundef %1918) #11
  %1920 = call ptr @__errno_location() #12
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1909, ptr noundef @.str.5, i32 noundef %1910, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 165, ptr noundef %1913, ptr noundef %1916, ptr noundef %1919, i32 noundef %1921) #11
  br label %1923

1923:                                             ; preds = %1906, %1889
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  call void @exit(i32 noundef 1) #13
  unreachable

1926:                                             ; No predecessors!
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927, %1868
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  br label %1931

1931:                                             ; preds = %1930
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = add nsw i32 %1932, 1
  store i32 %1933, ptr @test_count, align 4, !tbaa !5
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = icmp eq i32 %1935, 402653231
  br i1 %1936, label %1990, label %1937

1937:                                             ; preds = %1931
  br label %1938

1938:                                             ; preds = %1937
  br label %1939

1939:                                             ; preds = %1938
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %1940 = call ptr @__errno_location() #12
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  store i32 %1941, ptr %61, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @s2n_print_stacktrace(ptr noundef %1942)
  %1944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1945 = trunc i8 %1944 to i1
  br i1 %1945, label %1946, label %1968

1946:                                             ; preds = %1939
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @fileno(ptr noundef %1947) #11
  %1949 = call i32 @isatty(i32 noundef %1948) #11
  %1950 = icmp ne i32 %1949, 0
  br i1 %1950, label %1951, label %1968

1951:                                             ; preds = %1946
  %1952 = load i32, ptr %61, align 4, !tbaa !5
  %1953 = call ptr @__errno_location() #12
  store i32 %1952, ptr %1953, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror(i32 noundef %1957, ptr noundef @.str.4)
  %1959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror_debug(i32 noundef %1960, ptr noundef @.str.4)
  %1962 = call ptr @__errno_location() #12
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @strerror(i32 noundef %1963) #11
  %1965 = call ptr @__errno_location() #12
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef @.str.2, i32 noundef %1955, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 165, ptr noundef %1958, ptr noundef %1961, ptr noundef %1964, i32 noundef %1966) #11
  br label %1985

1968:                                             ; preds = %1946, %1939
  %1969 = load i32, ptr %61, align 4, !tbaa !5
  %1970 = call ptr @__errno_location() #12
  store i32 %1969, ptr %1970, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef @.str.4)
  %1976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror_debug(i32 noundef %1977, ptr noundef @.str.4)
  %1979 = call ptr @__errno_location() #12
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @strerror(i32 noundef %1980) #11
  %1982 = call ptr @__errno_location() #12
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef @.str.5, i32 noundef %1972, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 165, ptr noundef %1975, ptr noundef %1978, ptr noundef %1981, i32 noundef %1983) #11
  br label %1985

1985:                                             ; preds = %1968, %1951
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  call void @exit(i32 noundef 1) #13
  unreachable

1988:                                             ; No predecessors!
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989, %1931
  br label %1991

1991:                                             ; preds = %1990
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

1993:                                             ; preds = %1992
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = add nsw i32 %1994, 1
  store i32 %1995, 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_debug(i32 noundef %1997, ptr noundef @.str.4)
  %1999 = icmp eq ptr %1998, null
  br i1 %1999, label %2000, label %2053

2000:                                             ; preds = %1993
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2003 = call ptr @__errno_location() #12
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  store i32 %2004, ptr %62, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = call i32 @s2n_print_stacktrace(ptr noundef %2005)
  %2007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2008 = trunc i8 %2007 to i1
  br i1 %2008, label %2009, label %2031

2009:                                             ; preds = %2002
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = call i32 @fileno(ptr noundef %2010) #11
  %2012 = call i32 @isatty(i32 noundef %2011) #11
  %2013 = icmp ne i32 %2012, 0
  br i1 %2013, label %2014, label %2031

2014:                                             ; preds = %2009
  %2015 = load i32, ptr %62, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #12
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.4)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.4)
  %2025 = call ptr @__errno_location() #12
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #11
  %2028 = call ptr @__errno_location() #12
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str.2, i32 noundef %2018, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #11
  br label %2048

2031:                                             ; preds = %2009, %2002
  %2032 = load i32, ptr %62, align 4, !tbaa !5
  %2033 = call ptr @__errno_location() #12
  store i32 %2032, ptr %2033, align 4, !tbaa !5
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror(i32 noundef %2037, ptr noundef @.str.4)
  %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_debug(i32 noundef %2040, ptr noundef @.str.4)
  %2042 = call ptr @__errno_location() #12
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call ptr @strerror(i32 noundef %2043) #11
  %2045 = call ptr @__errno_location() #12
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2034, ptr noundef @.str.5, i32 noundef %2035, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2038, ptr noundef %2041, ptr noundef %2044, i32 noundef %2046) #11
  br label %2048

2048:                                             ; preds = %2031, %2014
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

2050:                                             ; preds = %2049
  call void @exit(i32 noundef 1) #13
  unreachable

2051:                                             ; No predecessors!
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052, %1993
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

2058:                                             ; preds = %2057
  %2059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2059, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2060 = call ptr @__errno_location() #12
  store i32 0, ptr %2060, align 4, !tbaa !5
  br label %2061

2061:                                             ; preds = %2058
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063
  br label %2065

2065:                                             ; preds = %2064
  br label %2066

2066:                                             ; preds = %2065
  br label %2067

2067:                                             ; preds = %2066
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = add nsw i32 %2068, 1
  store i32 %2069, ptr @test_count, align 4, !tbaa !5
  %2070 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %15, i32 0, i32 0
  %2071 = call i32 @s2n_pkey_decrypt(ptr noundef %2070, ptr noundef %52, ptr noundef %53)
  %2072 = icmp eq i32 %2071, -1
  br i1 %2072, label %2126, label %2073

2073:                                             ; preds = %2067
  br label %2074

2074:                                             ; preds = %2073
  br label %2075

2075:                                             ; preds = %2074
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2076 = call ptr @__errno_location() #12
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  store i32 %2077, ptr %63, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = call i32 @s2n_print_stacktrace(ptr noundef %2078)
  %2080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2081 = trunc i8 %2080 to i1
  br i1 %2081, label %2082, label %2104

2082:                                             ; preds = %2075
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = call i32 @fileno(ptr noundef %2083) #11
  %2085 = call i32 @isatty(i32 noundef %2084) #11
  %2086 = icmp ne i32 %2085, 0
  br i1 %2086, label %2087, label %2104

2087:                                             ; preds = %2082
  %2088 = load i32, ptr %63, align 4, !tbaa !5
  %2089 = call ptr @__errno_location() #12
  store i32 %2088, ptr %2089, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror(i32 noundef %2093, ptr noundef @.str.4)
  %2095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror_debug(i32 noundef %2096, ptr noundef @.str.4)
  %2098 = call ptr @__errno_location() #12
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @strerror(i32 noundef %2099) #11
  %2101 = call ptr @__errno_location() #12
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef @.str.2, i32 noundef %2091, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2094, ptr noundef %2097, ptr noundef %2100, i32 noundef %2102) #11
  br label %2121

2104:                                             ; preds = %2082, %2075
  %2105 = load i32, ptr %63, align 4, !tbaa !5
  %2106 = call ptr @__errno_location() #12
  store i32 %2105, ptr %2106, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef @.str.4)
  %2112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror_debug(i32 noundef %2113, ptr noundef @.str.4)
  %2115 = call ptr @__errno_location() #12
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @strerror(i32 noundef %2116) #11
  %2118 = call ptr @__errno_location() #12
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2107, ptr noundef @.str.5, i32 noundef %2108, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2111, ptr noundef %2114, ptr noundef %2117, i32 noundef %2119) #11
  br label %2121

2121:                                             ; preds = %2104, %2087
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

2123:                                             ; preds = %2122
  call void @exit(i32 noundef 1) #13
  unreachable

2124:                                             ; No predecessors!
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

2126:                                             ; preds = %2125, %2067
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

2129:                                             ; preds = %2128
  %2130 = load i32, ptr @test_count, align 4, !tbaa !5
  %2131 = add nsw i32 %2130, 1
  store i32 %2131, ptr @test_count, align 4, !tbaa !5
  %2132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = icmp eq i32 %2133, 402653231
  br i1 %2134, label %2188, label %2135

2135:                                             ; preds = %2129
  br label %2136

2136:                                             ; preds = %2135
  br label %2137

2137:                                             ; preds = %2136
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2138 = call ptr @__errno_location() #12
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  store i32 %2139, ptr %64, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @s2n_print_stacktrace(ptr noundef %2140)
  %2142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2143 = trunc i8 %2142 to i1
  br i1 %2143, label %2144, label %2166

2144:                                             ; preds = %2137
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @fileno(ptr noundef %2145) #11
  %2147 = call i32 @isatty(i32 noundef %2146) #11
  %2148 = icmp ne i32 %2147, 0
  br i1 %2148, label %2149, label %2166

2149:                                             ; preds = %2144
  %2150 = load i32, ptr %64, align 4, !tbaa !5
  %2151 = call ptr @__errno_location() #12
  store i32 %2150, ptr %2151, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef @.str.4)
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror_debug(i32 noundef %2158, ptr noundef @.str.4)
  %2160 = call ptr @__errno_location() #12
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #11
  %2163 = call ptr @__errno_location() #12
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef @.str.2, i32 noundef %2153, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2156, ptr noundef %2159, ptr noundef %2162, i32 noundef %2164) #11
  br label %2183

2166:                                             ; preds = %2144, %2137
  %2167 = load i32, ptr %64, align 4, !tbaa !5
  %2168 = call ptr @__errno_location() #12
  store i32 %2167, ptr %2168, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror(i32 noundef %2172, ptr noundef @.str.4)
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror_debug(i32 noundef %2175, ptr noundef @.str.4)
  %2177 = call ptr @__errno_location() #12
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @strerror(i32 noundef %2178) #11
  %2180 = call ptr @__errno_location() #12
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2169, ptr noundef @.str.5, i32 noundef %2170, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2173, ptr noundef %2176, ptr noundef %2179, i32 noundef %2181) #11
  br label %2183

2183:                                             ; preds = %2166, %2149
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @exit(i32 noundef 1) #13
  unreachable

2186:                                             ; No predecessors!
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

2188:                                             ; preds = %2187, %2129
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

2191:                                             ; preds = %2190
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = add nsw i32 %2192, 1
  store i32 %2193, ptr @test_count, align 4, !tbaa !5
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef @.str.4)
  %2197 = icmp eq ptr %2196, null
  br i1 %2197, label %2198, label %2251

2198:                                             ; preds = %2191
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

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

2207:                                             ; preds = %2200
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @fileno(ptr noundef %2208) #11
  %2210 = call i32 @isatty(i32 noundef %2209) #11
  %2211 = icmp ne i32 %2210, 0
  br i1 %2211, label %2212, label %2229

2212:                                             ; preds = %2207
  %2213 = load i32, ptr %65, align 4, !tbaa !5
  %2214 = call ptr @__errno_location() #12
  store i32 %2213, ptr %2214, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror(i32 noundef %2218, ptr noundef @.str.4)
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef @.str.4)
  %2223 = call ptr @__errno_location() #12
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #11
  %2226 = call ptr @__errno_location() #12
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef @.str.2, i32 noundef %2216, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2219, ptr noundef %2222, ptr noundef %2225, i32 noundef %2227) #11
  br label %2246

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

2246:                                             ; preds = %2229, %2212
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247
  call void @exit(i32 noundef 1) #13
  unreachable

2249:                                             ; No predecessors!
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250, %2191
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255
  %2257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2257, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2258 = call ptr @__errno_location() #12
  store i32 0, ptr %2258, align 4, !tbaa !5
  br label %2259

2259:                                             ; preds = %2256
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262, %1861
  call void @llvm.lifetime.start.p0(i64 12, ptr %66) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %66, ptr align 1 @__const.main.message_bytes, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #11
  call void @llvm.memset.p0.i64(ptr align 8 %67, i8 0, i64 24, i1 false)
  br label %2264

2264:                                             ; preds = %2263
  %2265 = load i32, ptr @test_count, align 4, !tbaa !5
  %2266 = add nsw i32 %2265, 1
  store i32 %2266, ptr @test_count, align 4, !tbaa !5
  %2267 = getelementptr inbounds [12 x i8], ptr %66, i64 0, i64 0
  %2268 = call i32 @s2n_blob_init(ptr noundef %67, ptr noundef %2267, i32 noundef 12)
  %2269 = icmp eq i32 %2268, -1
  br i1 %2269, label %2270, label %2323

2270:                                             ; preds = %2264
  br label %2271

2271:                                             ; preds = %2270
  br label %2272

2272:                                             ; preds = %2271
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2273 = call ptr @__errno_location() #12
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  store i32 %2274, ptr %68, align 4, !tbaa !5
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = call i32 @s2n_print_stacktrace(ptr noundef %2275)
  %2277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2278 = trunc i8 %2277 to i1
  br i1 %2278, label %2279, label %2301

2279:                                             ; preds = %2272
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @fileno(ptr noundef %2280) #11
  %2282 = call i32 @isatty(i32 noundef %2281) #11
  %2283 = icmp ne i32 %2282, 0
  br i1 %2283, label %2284, label %2301

2284:                                             ; preds = %2279
  %2285 = load i32, ptr %68, align 4, !tbaa !5
  %2286 = call ptr @__errno_location() #12
  store i32 %2285, ptr %2286, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = load i32, ptr @test_count, align 4, !tbaa !5
  %2289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror(i32 noundef %2290, ptr noundef @.str.4)
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef @.str.4)
  %2295 = call ptr @__errno_location() #12
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #11
  %2298 = call ptr @__errno_location() #12
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2287, ptr noundef @.str.2, i32 noundef %2288, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2291, ptr noundef %2294, ptr noundef %2297, i32 noundef %2299) #11
  br label %2318

2301:                                             ; preds = %2279, %2272
  %2302 = load i32, ptr %68, align 4, !tbaa !5
  %2303 = call ptr @__errno_location() #12
  store i32 %2302, ptr %2303, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror(i32 noundef %2307, ptr noundef @.str.4)
  %2309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = call ptr @s2n_strerror_debug(i32 noundef %2310, ptr noundef @.str.4)
  %2312 = call ptr @__errno_location() #12
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call ptr @strerror(i32 noundef %2313) #11
  %2315 = call ptr @__errno_location() #12
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2304, ptr noundef @.str.5, i32 noundef %2305, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2308, ptr noundef %2311, ptr noundef %2314, i32 noundef %2316) #11
  br label %2318

2318:                                             ; preds = %2301, %2284
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2319

2319:                                             ; preds = %2318
  br label %2320

2320:                                             ; preds = %2319
  call void @exit(i32 noundef 1) #13
  unreachable

2321:                                             ; No predecessors!
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

2323:                                             ; preds = %2322, %2264
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  call void @llvm.lifetime.start.p0(i64 768, ptr %69) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %69, ptr align 16 @__const.main.ciphertext_hex, i64 768, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %70) #11
  call void @llvm.memset.p0.i64(ptr align 8 %70, i8 0, i64 24, i1 false)
  br label %2326

2326:                                             ; preds = %2325
  %2327 = getelementptr inbounds [768 x i8], ptr %69, i64 0, i64 0
  %2328 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %70, ptr noundef %2327)
  %2329 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  store i32 %2328, ptr %2329, align 4
  %2330 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  %2331 = load i32, ptr %2330, align 4
  %2332 = call zeroext i1 @s2n_result_is_ok(i32 %2331)
  br i1 %2332, label %2334, label %2333

2333:                                             ; preds = %2326
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %3144

2334:                                             ; preds = %2326
  br label %2335

2335:                                             ; preds = %2334
  br label %2336

2336:                                             ; preds = %2335
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #11
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 24, i1 false)
  br label %2337

2337:                                             ; preds = %2336
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = add nsw i32 %2338, 1
  store i32 %2339, ptr @test_count, align 4, !tbaa !5
  %2340 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2341 = load i32, ptr %2340, align 8, !tbaa !26
  %2342 = call i32 @s2n_alloc(ptr noundef %72, i32 noundef %2341)
  %2343 = icmp eq i32 %2342, -1
  br i1 %2343, label %2344, label %2397

2344:                                             ; preds = %2337
  br label %2345

2345:                                             ; preds = %2344
  br label %2346

2346:                                             ; preds = %2345
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %2347 = call ptr @__errno_location() #12
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  store i32 %2348, ptr %73, align 4, !tbaa !5
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = call i32 @s2n_print_stacktrace(ptr noundef %2349)
  %2351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2352 = trunc i8 %2351 to i1
  br i1 %2352, label %2353, label %2375

2353:                                             ; preds = %2346
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = call i32 @fileno(ptr noundef %2354) #11
  %2356 = call i32 @isatty(i32 noundef %2355) #11
  %2357 = icmp ne i32 %2356, 0
  br i1 %2357, label %2358, label %2375

2358:                                             ; preds = %2353
  %2359 = load i32, ptr %73, align 4, !tbaa !5
  %2360 = call ptr @__errno_location() #12
  store i32 %2359, ptr %2360, align 4, !tbaa !5
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = load i32, ptr @test_count, align 4, !tbaa !5
  %2363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror(i32 noundef %2364, ptr noundef @.str.4)
  %2366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror_debug(i32 noundef %2367, ptr noundef @.str.4)
  %2369 = call ptr @__errno_location() #12
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @strerror(i32 noundef %2370) #11
  %2372 = call ptr @__errno_location() #12
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2361, ptr noundef @.str.2, i32 noundef %2362, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2365, ptr noundef %2368, ptr noundef %2371, i32 noundef %2373) #11
  br label %2392

2375:                                             ; preds = %2353, %2346
  %2376 = load i32, ptr %73, align 4, !tbaa !5
  %2377 = call ptr @__errno_location() #12
  store i32 %2376, ptr %2377, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef @.str.4)
  %2383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror_debug(i32 noundef %2384, ptr noundef @.str.4)
  %2386 = call ptr @__errno_location() #12
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @strerror(i32 noundef %2387) #11
  %2389 = call ptr @__errno_location() #12
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef @.str.5, i32 noundef %2379, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2382, ptr noundef %2385, ptr noundef %2388, i32 noundef %2390) #11
  br label %2392

2392:                                             ; preds = %2375, %2358
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %2393

2393:                                             ; preds = %2392
  br label %2394

2394:                                             ; preds = %2393
  call void @exit(i32 noundef 1) #13
  unreachable

2395:                                             ; No predecessors!
  br label %2396

2396:                                             ; preds = %2395
  br label %2397

2397:                                             ; preds = %2396, %2337
  br label %2398

2398:                                             ; preds = %2397
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399
  %2401 = load i32, ptr @test_count, align 4, !tbaa !5
  %2402 = add nsw i32 %2401, 1
  store i32 %2402, ptr @test_count, align 4, !tbaa !5
  %2403 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %12, i32 0, i32 1
  %2404 = load ptr, ptr %2403, align 8, !tbaa !21
  %2405 = call i32 @s2n_pkey_decrypt(ptr noundef %2404, ptr noundef %70, ptr noundef %72)
  %2406 = icmp eq i32 %2405, -1
  br i1 %2406, label %2407, label %2460

2407:                                             ; preds = %2400
  br label %2408

2408:                                             ; preds = %2407
  br label %2409

2409:                                             ; preds = %2408
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %2410 = call ptr @__errno_location() #12
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  store i32 %2411, ptr %74, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @s2n_print_stacktrace(ptr noundef %2412)
  %2414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2415 = trunc i8 %2414 to i1
  br i1 %2415, label %2416, label %2438

2416:                                             ; preds = %2409
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @fileno(ptr noundef %2417) #11
  %2419 = call i32 @isatty(i32 noundef %2418) #11
  %2420 = icmp ne i32 %2419, 0
  br i1 %2420, label %2421, label %2438

2421:                                             ; preds = %2416
  %2422 = load i32, ptr %74, align 4, !tbaa !5
  %2423 = call ptr @__errno_location() #12
  store i32 %2422, ptr %2423, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef @.str.4)
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call ptr @__errno_location() #12
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #11
  %2435 = call ptr @__errno_location() #12
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef @.str.2, i32 noundef %2425, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2428, ptr noundef %2431, ptr noundef %2434, i32 noundef %2436) #11
  br label %2455

2438:                                             ; preds = %2416, %2409
  %2439 = load i32, ptr %74, align 4, !tbaa !5
  %2440 = call ptr @__errno_location() #12
  store i32 %2439, ptr %2440, align 4, !tbaa !5
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = load i32, ptr @test_count, align 4, !tbaa !5
  %2443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2444 = load i32, ptr %2443, align 4, !tbaa !5
  %2445 = call ptr @s2n_strerror(i32 noundef %2444, ptr noundef @.str.4)
  %2446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2447 = load i32, ptr %2446, align 4, !tbaa !5
  %2448 = call ptr @s2n_strerror_debug(i32 noundef %2447, ptr noundef @.str.4)
  %2449 = call ptr @__errno_location() #12
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  %2451 = call ptr @strerror(i32 noundef %2450) #11
  %2452 = call ptr @__errno_location() #12
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2441, ptr noundef @.str.5, i32 noundef %2442, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2445, ptr noundef %2448, ptr noundef %2451, i32 noundef %2453) #11
  br label %2455

2455:                                             ; preds = %2438, %2421
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2456

2456:                                             ; preds = %2455
  br label %2457

2457:                                             ; preds = %2456
  call void @exit(i32 noundef 1) #13
  unreachable

2458:                                             ; No predecessors!
  br label %2459

2459:                                             ; preds = %2458
  br label %2460

2460:                                             ; preds = %2459, %2400
  br label %2461

2461:                                             ; preds = %2460
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

2463:                                             ; preds = %2462
  %2464 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2465 = load i32, ptr %2464, align 8, !tbaa !26
  %2466 = icmp ne i32 %2465, 0
  br i1 %2466, label %2467, label %2536

2467:                                             ; preds = %2463
  br label %2468

2468:                                             ; preds = %2467
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = add nsw i32 %2469, 1
  store i32 %2470, ptr @test_count, align 4, !tbaa !5
  %2471 = getelementptr inbounds %struct.s2n_blob, ptr %72, i32 0, i32 0
  %2472 = load ptr, ptr %2471, align 8, !tbaa !28
  %2473 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 0
  %2474 = load ptr, ptr %2473, align 8, !tbaa !28
  %2475 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2476 = load i32, ptr %2475, align 8, !tbaa !26
  %2477 = zext i32 %2476 to i64
  %2478 = call i32 @memcmp(ptr noundef %2472, ptr noundef %2474, i64 noundef %2477) #14
  %2479 = icmp eq i32 %2478, 0
  br i1 %2479, label %2533, label %2480

2480:                                             ; preds = %2468
  br label %2481

2481:                                             ; preds = %2480
  br label %2482

2482:                                             ; preds = %2481
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %2483 = call ptr @__errno_location() #12
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  store i32 %2484, ptr %75, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = call i32 @s2n_print_stacktrace(ptr noundef %2485)
  %2487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2488 = trunc i8 %2487 to i1
  br i1 %2488, label %2489, label %2511

2489:                                             ; preds = %2482
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = call i32 @fileno(ptr noundef %2490) #11
  %2492 = call i32 @isatty(i32 noundef %2491) #11
  %2493 = icmp ne i32 %2492, 0
  br i1 %2493, label %2494, label %2511

2494:                                             ; preds = %2489
  %2495 = load i32, ptr %75, align 4, !tbaa !5
  %2496 = call ptr @__errno_location() #12
  store i32 %2495, ptr %2496, align 4, !tbaa !5
  %2497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2498 = load i32, ptr @test_count, align 4, !tbaa !5
  %2499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror(i32 noundef %2500, ptr noundef @.str.4)
  %2502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call ptr @s2n_strerror_debug(i32 noundef %2503, ptr noundef @.str.4)
  %2505 = call ptr @__errno_location() #12
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = call ptr @strerror(i32 noundef %2506) #11
  %2508 = call ptr @__errno_location() #12
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  %2510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2497, ptr noundef @.str.2, i32 noundef %2498, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 200, ptr noundef %2501, ptr noundef %2504, ptr noundef %2507, i32 noundef %2509) #11
  br label %2528

2511:                                             ; preds = %2489, %2482
  %2512 = load i32, ptr %75, align 4, !tbaa !5
  %2513 = call ptr @__errno_location() #12
  store i32 %2512, ptr %2513, align 4, !tbaa !5
  %2514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2515 = load i32, ptr @test_count, align 4, !tbaa !5
  %2516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2517 = load i32, ptr %2516, align 4, !tbaa !5
  %2518 = call ptr @s2n_strerror(i32 noundef %2517, ptr noundef @.str.4)
  %2519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror_debug(i32 noundef %2520, ptr noundef @.str.4)
  %2522 = call ptr @__errno_location() #12
  %2523 = load i32, ptr %2522, align 4, !tbaa !5
  %2524 = call ptr @strerror(i32 noundef %2523) #11
  %2525 = call ptr @__errno_location() #12
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2514, ptr noundef @.str.5, i32 noundef %2515, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 200, ptr noundef %2518, ptr noundef %2521, ptr noundef %2524, i32 noundef %2526) #11
  br label %2528

2528:                                             ; preds = %2511, %2494
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %2529

2529:                                             ; preds = %2528
  br label %2530

2530:                                             ; preds = %2529
  call void @exit(i32 noundef 1) #13
  unreachable

2531:                                             ; No predecessors!
  br label %2532

2532:                                             ; preds = %2531
  br label %2533

2533:                                             ; preds = %2532, %2468
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534
  br label %2536

2536:                                             ; preds = %2535, %2463
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

2538:                                             ; preds = %2537
  %2539 = call i32 @s2n_free(ptr noundef %72)
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #11
  call void @llvm.memset.p0.i64(ptr align 8 %76, i8 0, i64 24, i1 false)
  br label %2540

2540:                                             ; preds = %2538
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = add nsw i32 %2541, 1
  store i32 %2542, ptr @test_count, align 4, !tbaa !5
  %2543 = getelementptr inbounds %struct.s2n_blob, ptr %70, i32 0, i32 1
  %2544 = load i32, ptr %2543, align 8, !tbaa !26
  %2545 = call i32 @s2n_alloc(ptr noundef %76, i32 noundef %2544)
  %2546 = icmp eq i32 %2545, -1
  br i1 %2546, label %2547, label %2600

2547:                                             ; preds = %2540
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

2549:                                             ; preds = %2548
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %2550 = call ptr @__errno_location() #12
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  store i32 %2551, ptr %77, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = call i32 @s2n_print_stacktrace(ptr noundef %2552)
  %2554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2555 = trunc i8 %2554 to i1
  br i1 %2555, label %2556, label %2578

2556:                                             ; preds = %2549
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @fileno(ptr noundef %2557) #11
  %2559 = call i32 @isatty(i32 noundef %2558) #11
  %2560 = icmp ne i32 %2559, 0
  br i1 %2560, label %2561, label %2578

2561:                                             ; preds = %2556
  %2562 = load i32, ptr %77, align 4, !tbaa !5
  %2563 = call ptr @__errno_location() #12
  store i32 %2562, ptr %2563, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef @.str.4)
  %2569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror_debug(i32 noundef %2570, ptr noundef @.str.4)
  %2572 = call ptr @__errno_location() #12
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #11
  %2575 = call ptr @__errno_location() #12
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2564, ptr noundef @.str.2, i32 noundef %2565, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2568, ptr noundef %2571, ptr noundef %2574, i32 noundef %2576) #11
  br label %2595

2578:                                             ; preds = %2556, %2549
  %2579 = load i32, ptr %77, align 4, !tbaa !5
  %2580 = call ptr @__errno_location() #12
  store i32 %2579, ptr %2580, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror(i32 noundef %2584, ptr noundef @.str.4)
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror_debug(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call ptr @__errno_location() #12
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #11
  %2592 = call ptr @__errno_location() #12
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2581, ptr noundef @.str.5, i32 noundef %2582, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2585, ptr noundef %2588, ptr noundef %2591, i32 noundef %2593) #11
  br label %2595

2595:                                             ; preds = %2578, %2561
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596
  call void @exit(i32 noundef 1) #13
  unreachable

2598:                                             ; No predecessors!
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599, %2540
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  br label %2603

2603:                                             ; preds = %2602
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = add nsw i32 %2604, 1
  store i32 %2605, ptr @test_count, align 4, !tbaa !5
  %2606 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %12, i32 0, i32 0
  %2607 = call i32 @s2n_pkey_encrypt(ptr noundef %2606, ptr noundef %67, ptr noundef %76)
  %2608 = icmp eq i32 %2607, -1
  br i1 %2608, label %2609, label %2662

2609:                                             ; preds = %2603
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %2612 = call ptr @__errno_location() #12
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  store i32 %2613, ptr %78, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @s2n_print_stacktrace(ptr noundef %2614)
  %2616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2617 = trunc i8 %2616 to i1
  br i1 %2617, label %2618, label %2640

2618:                                             ; preds = %2611
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @fileno(ptr noundef %2619) #11
  %2621 = call i32 @isatty(i32 noundef %2620) #11
  %2622 = icmp ne i32 %2621, 0
  br i1 %2622, label %2623, label %2640

2623:                                             ; preds = %2618
  %2624 = load i32, ptr %78, align 4, !tbaa !5
  %2625 = call ptr @__errno_location() #12
  store i32 %2624, ptr %2625, align 4, !tbaa !5
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror(i32 noundef %2629, ptr noundef @.str.4)
  %2631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror_debug(i32 noundef %2632, ptr noundef @.str.4)
  %2634 = call ptr @__errno_location() #12
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call ptr @strerror(i32 noundef %2635) #11
  %2637 = call ptr @__errno_location() #12
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2626, ptr noundef @.str.2, i32 noundef %2627, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 207, ptr noundef %2630, ptr noundef %2633, ptr noundef %2636, i32 noundef %2638) #11
  br label %2657

2640:                                             ; preds = %2618, %2611
  %2641 = load i32, ptr %78, align 4, !tbaa !5
  %2642 = call ptr @__errno_location() #12
  store i32 %2641, ptr %2642, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = load i32, ptr @test_count, align 4, !tbaa !5
  %2645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror(i32 noundef %2646, ptr noundef @.str.4)
  %2648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror_debug(i32 noundef %2649, ptr noundef @.str.4)
  %2651 = call ptr @__errno_location() #12
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = call ptr @strerror(i32 noundef %2652) #11
  %2654 = call ptr @__errno_location() #12
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2643, ptr noundef @.str.5, i32 noundef %2644, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 207, ptr noundef %2647, ptr noundef %2650, ptr noundef %2653, i32 noundef %2655) #11
  br label %2657

2657:                                             ; preds = %2640, %2623
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

2659:                                             ; preds = %2658
  call void @exit(i32 noundef 1) #13
  unreachable

2660:                                             ; No predecessors!
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661, %2603
  br label %2663

2663:                                             ; preds = %2662
  br label %2664

2664:                                             ; preds = %2663
  call void @llvm.lifetime.start.p0(i64 24, ptr %79) #11
  call void @llvm.memset.p0.i64(ptr align 8 %79, i8 0, i64 24, i1 false)
  br label %2665

2665:                                             ; preds = %2664
  %2666 = load i32, ptr @test_count, align 4, !tbaa !5
  %2667 = add nsw i32 %2666, 1
  store i32 %2667, ptr @test_count, align 4, !tbaa !5
  %2668 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2669 = load i32, ptr %2668, align 8, !tbaa !26
  %2670 = call i32 @s2n_alloc(ptr noundef %79, i32 noundef %2669)
  %2671 = icmp eq i32 %2670, -1
  br i1 %2671, label %2672, label %2725

2672:                                             ; preds = %2665
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  store i32 %2676, ptr %80, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = call i32 @s2n_print_stacktrace(ptr noundef %2677)
  %2679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2680 = trunc i8 %2679 to i1
  br i1 %2680, label %2681, label %2703

2681:                                             ; preds = %2674
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @fileno(ptr noundef %2682) #11
  %2684 = call i32 @isatty(i32 noundef %2683) #11
  %2685 = icmp ne i32 %2684, 0
  br i1 %2685, label %2686, label %2703

2686:                                             ; preds = %2681
  %2687 = load i32, ptr %80, align 4, !tbaa !5
  %2688 = call ptr @__errno_location() #12
  store i32 %2687, ptr %2688, align 4, !tbaa !5
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror(i32 noundef %2692, ptr noundef @.str.4)
  %2694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror_debug(i32 noundef %2695, ptr noundef @.str.4)
  %2697 = call ptr @__errno_location() #12
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @strerror(i32 noundef %2698) #11
  %2700 = call ptr @__errno_location() #12
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2689, ptr noundef @.str.2, i32 noundef %2690, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2693, ptr noundef %2696, ptr noundef %2699, i32 noundef %2701) #11
  br label %2720

2703:                                             ; preds = %2681, %2674
  %2704 = load i32, ptr %80, align 4, !tbaa !5
  %2705 = call ptr @__errno_location() #12
  store i32 %2704, ptr %2705, align 4, !tbaa !5
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = load i32, ptr @test_count, align 4, !tbaa !5
  %2708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror(i32 noundef %2709, ptr noundef @.str.4)
  %2711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call ptr @s2n_strerror_debug(i32 noundef %2712, ptr noundef @.str.4)
  %2714 = call ptr @__errno_location() #12
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @strerror(i32 noundef %2715) #11
  %2717 = call ptr @__errno_location() #12
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2706, ptr noundef @.str.5, i32 noundef %2707, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2710, ptr noundef %2713, ptr noundef %2716, i32 noundef %2718) #11
  br label %2720

2720:                                             ; preds = %2703, %2686
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721
  call void @exit(i32 noundef 1) #13
  unreachable

2723:                                             ; No predecessors!
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724, %2665
  br label %2726

2726:                                             ; preds = %2725
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

2728:                                             ; preds = %2727
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = add nsw i32 %2729, 1
  store i32 %2730, ptr @test_count, align 4, !tbaa !5
  %2731 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %12, i32 0, i32 1
  %2732 = load ptr, ptr %2731, align 8, !tbaa !21
  %2733 = call i32 @s2n_pkey_decrypt(ptr noundef %2732, ptr noundef %76, ptr noundef %79)
  %2734 = icmp eq i32 %2733, -1
  br i1 %2734, label %2735, label %2788

2735:                                             ; preds = %2728
  br label %2736

2736:                                             ; preds = %2735
  br label %2737

2737:                                             ; preds = %2736
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %2738 = call ptr @__errno_location() #12
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  store i32 %2739, ptr %81, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @s2n_print_stacktrace(ptr noundef %2740)
  %2742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2743 = trunc i8 %2742 to i1
  br i1 %2743, label %2744, label %2766

2744:                                             ; preds = %2737
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @fileno(ptr noundef %2745) #11
  %2747 = call i32 @isatty(i32 noundef %2746) #11
  %2748 = icmp ne i32 %2747, 0
  br i1 %2748, label %2749, label %2766

2749:                                             ; preds = %2744
  %2750 = load i32, ptr %81, align 4, !tbaa !5
  %2751 = call ptr @__errno_location() #12
  store i32 %2750, ptr %2751, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = load i32, ptr @test_count, align 4, !tbaa !5
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror(i32 noundef %2755, ptr noundef @.str.4)
  %2757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror_debug(i32 noundef %2758, ptr noundef @.str.4)
  %2760 = call ptr @__errno_location() #12
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @strerror(i32 noundef %2761) #11
  %2763 = call ptr @__errno_location() #12
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2752, ptr noundef @.str.2, i32 noundef %2753, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2756, ptr noundef %2759, ptr noundef %2762, i32 noundef %2764) #11
  br label %2783

2766:                                             ; preds = %2744, %2737
  %2767 = load i32, ptr %81, align 4, !tbaa !5
  %2768 = call ptr @__errno_location() #12
  store i32 %2767, ptr %2768, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror_debug(i32 noundef %2775, ptr noundef @.str.4)
  %2777 = call ptr @__errno_location() #12
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #11
  %2780 = call ptr @__errno_location() #12
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2769, ptr noundef @.str.5, i32 noundef %2770, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2773, ptr noundef %2776, ptr noundef %2779, i32 noundef %2781) #11
  br label %2783

2783:                                             ; preds = %2766, %2749
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784
  call void @exit(i32 noundef 1) #13
  unreachable

2786:                                             ; No predecessors!
  br label %2787

2787:                                             ; preds = %2786
  br label %2788

2788:                                             ; preds = %2787, %2728
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

2790:                                             ; preds = %2789
  br label %2791

2791:                                             ; preds = %2790
  %2792 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2793 = load i32, ptr %2792, align 8, !tbaa !26
  %2794 = icmp ne i32 %2793, 0
  br i1 %2794, label %2795, label %2864

2795:                                             ; preds = %2791
  br label %2796

2796:                                             ; preds = %2795
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = add nsw i32 %2797, 1
  store i32 %2798, ptr @test_count, align 4, !tbaa !5
  %2799 = getelementptr inbounds %struct.s2n_blob, ptr %79, i32 0, i32 0
  %2800 = load ptr, ptr %2799, align 8, !tbaa !28
  %2801 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 0
  %2802 = load ptr, ptr %2801, align 8, !tbaa !28
  %2803 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2804 = load i32, ptr %2803, align 8, !tbaa !26
  %2805 = zext i32 %2804 to i64
  %2806 = call i32 @memcmp(ptr noundef %2800, ptr noundef %2802, i64 noundef %2805) #14
  %2807 = icmp eq i32 %2806, 0
  br i1 %2807, label %2861, label %2808

2808:                                             ; preds = %2796
  br label %2809

2809:                                             ; preds = %2808
  br label %2810

2810:                                             ; preds = %2809
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %2811 = call ptr @__errno_location() #12
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  store i32 %2812, ptr %82, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = call i32 @s2n_print_stacktrace(ptr noundef %2813)
  %2815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2816 = trunc i8 %2815 to i1
  br i1 %2816, label %2817, label %2839

2817:                                             ; preds = %2810
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = call i32 @fileno(ptr noundef %2818) #11
  %2820 = call i32 @isatty(i32 noundef %2819) #11
  %2821 = icmp ne i32 %2820, 0
  br i1 %2821, label %2822, label %2839

2822:                                             ; preds = %2817
  %2823 = load i32, ptr %82, align 4, !tbaa !5
  %2824 = call ptr @__errno_location() #12
  store i32 %2823, ptr %2824, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = load i32, ptr @test_count, align 4, !tbaa !5
  %2827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror(i32 noundef %2828, ptr noundef @.str.4)
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror_debug(i32 noundef %2831, ptr noundef @.str.4)
  %2833 = call ptr @__errno_location() #12
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @strerror(i32 noundef %2834) #11
  %2836 = call ptr @__errno_location() #12
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2825, ptr noundef @.str.2, i32 noundef %2826, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2829, ptr noundef %2832, ptr noundef %2835, i32 noundef %2837) #11
  br label %2856

2839:                                             ; preds = %2817, %2810
  %2840 = load i32, ptr %82, align 4, !tbaa !5
  %2841 = call ptr @__errno_location() #12
  store i32 %2840, ptr %2841, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @s2n_strerror(i32 noundef %2845, ptr noundef @.str.4)
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef @.str.4)
  %2850 = call ptr @__errno_location() #12
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @strerror(i32 noundef %2851) #11
  %2853 = call ptr @__errno_location() #12
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2842, ptr noundef @.str.5, i32 noundef %2843, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2846, ptr noundef %2849, ptr noundef %2852, i32 noundef %2854) #11
  br label %2856

2856:                                             ; preds = %2839, %2822
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  call void @exit(i32 noundef 1) #13
  unreachable

2859:                                             ; No predecessors!
  br label %2860

2860:                                             ; preds = %2859
  br label %2861

2861:                                             ; preds = %2860, %2796
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863, %2791
  br label %2865

2865:                                             ; preds = %2864
  br label %2866

2866:                                             ; preds = %2865
  %2867 = call i32 @s2n_free(ptr noundef %79)
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #11
  %2868 = call i32 @s2n_free(ptr noundef %76)
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  store i64 0, ptr %83, align 8, !tbaa !16
  br label %2869

2869:                                             ; preds = %3140, %2866
  %2870 = load i64, ptr %83, align 8, !tbaa !16
  %2871 = getelementptr inbounds %struct.s2n_blob, ptr %70, i32 0, i32 1
  %2872 = load i32, ptr %2871, align 8, !tbaa !26
  %2873 = zext i32 %2872 to i64
  %2874 = icmp ult i64 %2870, %2873
  br i1 %2874, label %2876, label %2875

2875:                                             ; preds = %2869
  store i32 305, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %3143

2876:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 24, ptr %84) #11
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 24, i1 false)
  br label %2877

2877:                                             ; preds = %2876
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %2879 = add nsw i32 %2878, 1
  store i32 %2879, ptr @test_count, align 4, !tbaa !5
  %2880 = call i32 @s2n_dup(ptr noundef %70, ptr noundef %84)
  %2881 = icmp eq i32 %2880, -1
  br i1 %2881, label %2882, label %2935

2882:                                             ; preds = %2877
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %2885 = call ptr @__errno_location() #12
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  store i32 %2886, ptr %85, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = call i32 @s2n_print_stacktrace(ptr noundef %2887)
  %2889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2890 = trunc i8 %2889 to i1
  br i1 %2890, label %2891, label %2913

2891:                                             ; preds = %2884
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = call i32 @fileno(ptr noundef %2892) #11
  %2894 = call i32 @isatty(i32 noundef %2893) #11
  %2895 = icmp ne i32 %2894, 0
  br i1 %2895, label %2896, label %2913

2896:                                             ; preds = %2891
  %2897 = load i32, ptr %85, align 4, !tbaa !5
  %2898 = call ptr @__errno_location() #12
  store i32 %2897, ptr %2898, align 4, !tbaa !5
  %2899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror(i32 noundef %2902, ptr noundef @.str.4)
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror_debug(i32 noundef %2905, ptr noundef @.str.4)
  %2907 = call ptr @__errno_location() #12
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @strerror(i32 noundef %2908) #11
  %2910 = call ptr @__errno_location() #12
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2899, ptr noundef @.str.2, i32 noundef %2900, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2903, ptr noundef %2906, ptr noundef %2909, i32 noundef %2911) #11
  br label %2930

2913:                                             ; preds = %2891, %2884
  %2914 = load i32, ptr %85, align 4, !tbaa !5
  %2915 = call ptr @__errno_location() #12
  store i32 %2914, ptr %2915, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror(i32 noundef %2919, ptr noundef @.str.4)
  %2921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror_debug(i32 noundef %2922, ptr noundef @.str.4)
  %2924 = call ptr @__errno_location() #12
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @strerror(i32 noundef %2925) #11
  %2927 = call ptr @__errno_location() #12
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef @.str.5, i32 noundef %2917, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2920, ptr noundef %2923, ptr noundef %2926, i32 noundef %2928) #11
  br label %2930

2930:                                             ; preds = %2913, %2896
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

2932:                                             ; preds = %2931
  call void @exit(i32 noundef 1) #13
  unreachable

2933:                                             ; No predecessors!
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934, %2877
  br label %2936

2936:                                             ; preds = %2935
  br label %2937

2937:                                             ; preds = %2936
  %2938 = getelementptr inbounds %struct.s2n_blob, ptr %84, i32 0, i32 0
  %2939 = load ptr, ptr %2938, align 8, !tbaa !28
  %2940 = load i64, ptr %83, align 8, !tbaa !16
  %2941 = getelementptr inbounds i8, ptr %2939, i64 %2940
  %2942 = load i8, ptr %2941, align 1, !tbaa !29
  %2943 = add i8 %2942, 1
  store i8 %2943, ptr %2941, align 1, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr %86) #11
  call void @llvm.memset.p0.i64(ptr align 8 %86, i8 0, i64 24, i1 false)
  br label %2944

2944:                                             ; preds = %2937
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = add nsw i32 %2945, 1
  store i32 %2946, ptr @test_count, align 4, !tbaa !5
  %2947 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %2948 = load i32, ptr %2947, align 8, !tbaa !26
  %2949 = call i32 @s2n_alloc(ptr noundef %86, i32 noundef %2948)
  %2950 = icmp eq i32 %2949, -1
  br i1 %2950, label %2951, label %3004

2951:                                             ; preds = %2944
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

2953:                                             ; preds = %2952
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %2954 = call ptr @__errno_location() #12
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  store i32 %2955, ptr %87, align 4, !tbaa !5
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = call i32 @s2n_print_stacktrace(ptr noundef %2956)
  %2958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2959 = trunc i8 %2958 to i1
  br i1 %2959, label %2960, label %2982

2960:                                             ; preds = %2953
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @fileno(ptr noundef %2961) #11
  %2963 = call i32 @isatty(i32 noundef %2962) #11
  %2964 = icmp ne i32 %2963, 0
  br i1 %2964, label %2965, label %2982

2965:                                             ; preds = %2960
  %2966 = load i32, ptr %87, align 4, !tbaa !5
  %2967 = call ptr @__errno_location() #12
  store i32 %2966, ptr %2967, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef @.str.4)
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef @.str.4)
  %2976 = call ptr @__errno_location() #12
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #11
  %2979 = call ptr @__errno_location() #12
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef @.str.2, i32 noundef %2969, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 227, ptr noundef %2972, ptr noundef %2975, ptr noundef %2978, i32 noundef %2980) #11
  br label %2999

2982:                                             ; preds = %2960, %2953
  %2983 = load i32, ptr %87, align 4, !tbaa !5
  %2984 = call ptr @__errno_location() #12
  store i32 %2983, ptr %2984, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @s2n_strerror(i32 noundef %2988, ptr noundef @.str.4)
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call ptr @__errno_location() #12
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @strerror(i32 noundef %2994) #11
  %2996 = call ptr @__errno_location() #12
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef @.str.5, i32 noundef %2986, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 227, ptr noundef %2989, ptr noundef %2992, ptr noundef %2995, i32 noundef %2997) #11
  br label %2999

2999:                                             ; preds = %2982, %2965
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  call void @exit(i32 noundef 1) #13
  unreachable

3002:                                             ; No predecessors!
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003, %2944
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  %3008 = load i32, ptr @test_count, align 4, !tbaa !5
  %3009 = add nsw i32 %3008, 1
  store i32 %3009, ptr @test_count, align 4, !tbaa !5
  %3010 = getelementptr inbounds %struct.s2n_test_pkeys, ptr %12, i32 0, i32 1
  %3011 = load ptr, ptr %3010, align 8, !tbaa !21
  %3012 = call i32 @s2n_pkey_decrypt(ptr noundef %3011, ptr noundef %84, ptr noundef %86)
  %3013 = icmp eq i32 %3012, -1
  br i1 %3013, label %3014, label %3067

3014:                                             ; preds = %3007
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

3016:                                             ; preds = %3015
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3017 = call ptr @__errno_location() #12
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  store i32 %3018, ptr %88, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @s2n_print_stacktrace(ptr noundef %3019)
  %3021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3022 = trunc i8 %3021 to i1
  br i1 %3022, label %3023, label %3045

3023:                                             ; preds = %3016
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @fileno(ptr noundef %3024) #11
  %3026 = call i32 @isatty(i32 noundef %3025) #11
  %3027 = icmp ne i32 %3026, 0
  br i1 %3027, label %3028, label %3045

3028:                                             ; preds = %3023
  %3029 = load i32, ptr %88, align 4, !tbaa !5
  %3030 = call ptr @__errno_location() #12
  store i32 %3029, ptr %3030, align 4, !tbaa !5
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = load i32, ptr @test_count, align 4, !tbaa !5
  %3033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror(i32 noundef %3034, ptr noundef @.str.4)
  %3036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call ptr @s2n_strerror_debug(i32 noundef %3037, ptr noundef @.str.4)
  %3039 = call ptr @__errno_location() #12
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call ptr @strerror(i32 noundef %3040) #11
  %3042 = call ptr @__errno_location() #12
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3031, ptr noundef @.str.2, i32 noundef %3032, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3035, ptr noundef %3038, ptr noundef %3041, i32 noundef %3043) #11
  br label %3062

3045:                                             ; preds = %3023, %3016
  %3046 = load i32, ptr %88, align 4, !tbaa !5
  %3047 = call ptr @__errno_location() #12
  store i32 %3046, ptr %3047, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror(i32 noundef %3051, ptr noundef @.str.4)
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror_debug(i32 noundef %3054, ptr noundef @.str.4)
  %3056 = call ptr @__errno_location() #12
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #11
  %3059 = call ptr @__errno_location() #12
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3048, ptr noundef @.str.5, i32 noundef %3049, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3052, ptr noundef %3055, ptr noundef %3058, i32 noundef %3060) #11
  br label %3062

3062:                                             ; preds = %3045, %3028
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063
  call void @exit(i32 noundef 1) #13
  unreachable

3065:                                             ; No predecessors!
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

3067:                                             ; preds = %3066, %3007
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069
  %3071 = load i32, ptr @test_count, align 4, !tbaa !5
  %3072 = add nsw i32 %3071, 1
  store i32 %3072, ptr @test_count, align 4, !tbaa !5
  %3073 = getelementptr inbounds %struct.s2n_blob, ptr %86, i32 0, i32 0
  %3074 = load ptr, ptr %3073, align 8, !tbaa !28
  %3075 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 0
  %3076 = load ptr, ptr %3075, align 8, !tbaa !28
  %3077 = getelementptr inbounds %struct.s2n_blob, ptr %67, i32 0, i32 1
  %3078 = load i32, ptr %3077, align 8, !tbaa !26
  %3079 = zext i32 %3078 to i64
  %3080 = call i32 @memcmp(ptr noundef %3074, ptr noundef %3076, i64 noundef %3079) #14
  %3081 = icmp eq i32 %3080, 0
  br i1 %3081, label %3082, label %3135

3082:                                             ; preds = %3070
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3085 = call ptr @__errno_location() #12
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  store i32 %3086, ptr %89, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = call i32 @s2n_print_stacktrace(ptr noundef %3087)
  %3089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3090 = trunc i8 %3089 to i1
  br i1 %3090, label %3091, label %3113

3091:                                             ; preds = %3084
  %3092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3093 = call i32 @fileno(ptr noundef %3092) #11
  %3094 = call i32 @isatty(i32 noundef %3093) #11
  %3095 = icmp ne i32 %3094, 0
  br i1 %3095, label %3096, label %3113

3096:                                             ; preds = %3091
  %3097 = load i32, ptr %89, align 4, !tbaa !5
  %3098 = call ptr @__errno_location() #12
  store i32 %3097, ptr %3098, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call ptr @s2n_strerror(i32 noundef %3102, ptr noundef @.str.4)
  %3104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror_debug(i32 noundef %3105, ptr noundef @.str.4)
  %3107 = call ptr @__errno_location() #12
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @strerror(i32 noundef %3108) #11
  %3110 = call ptr @__errno_location() #12
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3099, ptr noundef @.str.2, i32 noundef %3100, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3103, ptr noundef %3106, ptr noundef %3109, i32 noundef %3111) #11
  br label %3130

3113:                                             ; preds = %3091, %3084
  %3114 = load i32, ptr %89, align 4, !tbaa !5
  %3115 = call ptr @__errno_location() #12
  store i32 %3114, ptr %3115, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @s2n_strerror(i32 noundef %3119, ptr noundef @.str.4)
  %3121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror_debug(i32 noundef %3122, ptr noundef @.str.4)
  %3124 = call ptr @__errno_location() #12
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call ptr @strerror(i32 noundef %3125) #11
  %3127 = call ptr @__errno_location() #12
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3116, ptr noundef @.str.5, i32 noundef %3117, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3120, ptr noundef %3123, ptr noundef %3126, i32 noundef %3128) #11
  br label %3130

3130:                                             ; preds = %3113, %3096
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3131

3131:                                             ; preds = %3130
  br label %3132

3132:                                             ; preds = %3131
  call void @exit(i32 noundef 1) #13
  unreachable

3133:                                             ; No predecessors!
  br label %3134

3134:                                             ; preds = %3133
  br label %3135

3135:                                             ; preds = %3134, %3070
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136
  %3138 = call i32 @s2n_free(ptr noundef %86)
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #11
  %3139 = call i32 @s2n_free(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #11
  br label %3140

3140:                                             ; preds = %3137
  %3141 = load i64, ptr %83, align 8, !tbaa !16
  %3142 = add i64 %3141, 1
  store i64 %3142, ptr %83, align 8, !tbaa !16
  br label %2869, !llvm.loop !30

3143:                                             ; preds = %2875
  store i32 0, ptr %30, align 4
  br label %3144

3144:                                             ; preds = %3143, %2333
  %3145 = call i32 @s2n_free(ptr noundef %70)
  call void @llvm.lifetime.end.p0(i64 24, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 768, ptr %69) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr %66) #11
  %3146 = load i32, ptr %30, align 4
  switch i32 %3146, label %3148 [
    i32 0, label %3147
  ]

3147:                                             ; preds = %3144
  store i32 0, ptr %30, align 4
  br label %3148

3148:                                             ; preds = %3147, %3144
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %52) #11
  %3149 = load i32, ptr %30, align 4
  switch i32 %3149, label %3305 [
    i32 0, label %3150
  ]

3150:                                             ; preds = %3148
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

3152:                                             ; preds = %3151
  %3153 = call i32 @s2n_cleanup()
  %3154 = icmp eq i32 %3153, -1
  br i1 %3154, label %3155, label %3208

3155:                                             ; preds = %3152
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3158 = call ptr @__errno_location() #12
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  store i32 %3159, ptr %90, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = call i32 @s2n_print_stacktrace(ptr noundef %3160)
  %3162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3163 = trunc i8 %3162 to i1
  br i1 %3163, label %3164, label %3186

3164:                                             ; preds = %3157
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @fileno(ptr noundef %3165) #11
  %3167 = call i32 @isatty(i32 noundef %3166) #11
  %3168 = icmp ne i32 %3167, 0
  br i1 %3168, label %3169, label %3186

3169:                                             ; preds = %3164
  %3170 = load i32, ptr %90, align 4, !tbaa !5
  %3171 = call ptr @__errno_location() #12
  store i32 %3170, ptr %3171, align 4, !tbaa !5
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = load i32, ptr @test_count, align 4, !tbaa !5
  %3174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror(i32 noundef %3175, ptr noundef @.str.4)
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @s2n_strerror_debug(i32 noundef %3178, ptr noundef @.str.4)
  %3180 = call ptr @__errno_location() #12
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #11
  %3183 = call ptr @__errno_location() #12
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3172, ptr noundef @.str.2, i32 noundef %3173, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3176, ptr noundef %3179, ptr noundef %3182, i32 noundef %3184) #11
  br label %3203

3186:                                             ; preds = %3164, %3157
  %3187 = load i32, ptr %90, align 4, !tbaa !5
  %3188 = call ptr @__errno_location() #12
  store i32 %3187, ptr %3188, align 4, !tbaa !5
  %3189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3190 = load i32, ptr @test_count, align 4, !tbaa !5
  %3191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call ptr @s2n_strerror(i32 noundef %3192, ptr noundef @.str.4)
  %3194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @s2n_strerror_debug(i32 noundef %3195, ptr noundef @.str.4)
  %3197 = call ptr @__errno_location() #12
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @strerror(i32 noundef %3198) #11
  %3200 = call ptr @__errno_location() #12
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3189, ptr noundef @.str.5, i32 noundef %3190, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3193, ptr noundef %3196, ptr noundef %3199, i32 noundef %3201) #11
  br label %3203

3203:                                             ; preds = %3186, %3169
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

3205:                                             ; preds = %3204
  call void @exit(i32 noundef 1) #13
  unreachable

3206:                                             ; No predecessors!
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

3208:                                             ; preds = %3207, %3152
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211
  %3213 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3214 = icmp eq i32 %3213, -1
  br i1 %3214, label %3215, label %3268

3215:                                             ; preds = %3212
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3218 = call ptr @__errno_location() #12
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  store i32 %3219, ptr %91, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = call i32 @s2n_print_stacktrace(ptr noundef %3220)
  %3222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3223 = trunc i8 %3222 to i1
  br i1 %3223, label %3224, label %3246

3224:                                             ; preds = %3217
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @fileno(ptr noundef %3225) #11
  %3227 = call i32 @isatty(i32 noundef %3226) #11
  %3228 = icmp ne i32 %3227, 0
  br i1 %3228, label %3229, label %3246

3229:                                             ; preds = %3224
  %3230 = load i32, ptr %91, align 4, !tbaa !5
  %3231 = call ptr @__errno_location() #12
  store i32 %3230, ptr %3231, align 4, !tbaa !5
  %3232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3233 = load i32, ptr @test_count, align 4, !tbaa !5
  %3234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror(i32 noundef %3235, ptr noundef @.str.4)
  %3237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror_debug(i32 noundef %3238, ptr noundef @.str.4)
  %3240 = call ptr @__errno_location() #12
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call ptr @strerror(i32 noundef %3241) #11
  %3243 = call ptr @__errno_location() #12
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3232, ptr noundef @.str.2, i32 noundef %3233, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3236, ptr noundef %3239, ptr noundef %3242, i32 noundef %3244) #11
  br label %3263

3246:                                             ; preds = %3224, %3217
  %3247 = load i32, ptr %91, align 4, !tbaa !5
  %3248 = call ptr @__errno_location() #12
  store i32 %3247, ptr %3248, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror(i32 noundef %3252, ptr noundef @.str.4)
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror_debug(i32 noundef %3255, ptr noundef @.str.4)
  %3257 = call ptr @__errno_location() #12
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #11
  %3260 = call ptr @__errno_location() #12
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3249, ptr noundef @.str.5, i32 noundef %3250, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3253, ptr noundef %3256, ptr noundef %3259, i32 noundef %3261) #11
  br label %3263

3263:                                             ; preds = %3246, %3229
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

3265:                                             ; preds = %3264
  call void @exit(i32 noundef 1) #13
  unreachable

3266:                                             ; No predecessors!
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267, %3212
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

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

3273:                                             ; preds = %3270
  %3274 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3275 = call i32 @fileno(ptr noundef %3274) #11
  %3276 = call i32 @isatty(i32 noundef %3275) #11
  %3277 = icmp ne i32 %3276, 0
  br i1 %3277, label %3278, label %3289

3278:                                             ; preds = %3273
  %3279 = load i32, ptr @test_count, align 4, !tbaa !5
  %3280 = icmp ne i32 %3279, 0
  br i1 %3280, label %3281, label %3285

3281:                                             ; preds = %3278
  %3282 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3282, ptr noundef @.str.54, i32 noundef %3283) #11
  br label %3288

3285:                                             ; preds = %3278
  %3286 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3286, ptr noundef @.str.55) #11
  br label %3288

3288:                                             ; preds = %3285, %3281
  br label %3300

3289:                                             ; preds = %3273, %3270
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = icmp ne i32 %3290, 0
  br i1 %3291, label %3292, label %3296

3292:                                             ; preds = %3289
  %3293 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef @.str.56, i32 noundef %3294) #11
  br label %3299

3296:                                             ; preds = %3289
  %3297 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3297, ptr noundef @.str.57) #11
  br label %3299

3299:                                             ; preds = %3296, %3292
  br label %3300

3300:                                             ; preds = %3299, %3288
  store i32 0, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %3305

3301:                                             ; No predecessors!
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303
  store i32 0, ptr %30, align 4
  br label %3305

3305:                                             ; preds = %3304, %3300, %3148
  call void @llvm.lifetime.end.p0(i64 192, ptr %18) #11
  %3306 = call i32 @s2n_test_pkeys_wipe(ptr noundef %15)
  %3307 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %3306, ptr %3307, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #11
  %3308 = call i32 @s2n_test_pkeys_wipe(ptr noundef %12)
  %3309 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %3308, ptr %3309, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %12) #11
  %3310 = call i32 @s2n_test_pkeys_wipe(ptr noundef %9)
  %3311 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  store i32 %3310, ptr %3311, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %9) #11
  %3312 = load i32, ptr %30, align 4
  switch i32 %3312, label %3315 [
    i32 0, label %3313
    i32 1, label %3313
  ]

3313:                                             ; preds = %3305, %3305
  %3314 = load i32, ptr %3, align 4
  ret i32 %3314

3315:                                             ; preds = %3305
  unreachable
}

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

declare i32 @fflush(ptr noundef) #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #4

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

declare i32 @s2n_print_stacktrace(ptr noundef) #4

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

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

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

; Function Attrs: 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) #4

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

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

declare i32 @s2n_enable_atexit() #4

declare i32 @s2n_init() #4

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

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) #4

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

declare i32 @s2n_pkey_match(ptr noundef, ptr noundef) #4

declare void @s2n_debug_info_reset() #4

declare i32 @s2n_pkey_size(ptr noundef, ptr noundef) #4

declare i32 @s2n_pkey_encrypt(ptr noundef, ptr noundef, ptr noundef) #4

declare i32 @s2n_pkey_decrypt(ptr noundef, ptr noundef, ptr noundef) #4

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #4

declare i32 @s2n_free(ptr noundef) #4

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #4

declare i32 @s2n_alloc(ptr noundef, i32 noundef) #4

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_dup(ptr noundef, ptr noundef) #4

declare i32 @s2n_cleanup() #4

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

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

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


; 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_test_pkeys = type { %struct.s2n_pkey, ptr, i8 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [72 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 [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [187 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [100 x i8], align 1
@__const.main.expected_sizes = external hidden unnamed_addr constant [3 x i32], align 4
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [77 x i8], align 1
@__const.main.message_bytes = external hidden unnamed_addr constant [12 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [90 x i8], align 1
@__const.main.ciphertext_hex = external hidden unnamed_addr constant [768 x i8], align 16
@.str.41 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_test_pkeys_wipe(ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_test_pkeys, align 8
  %4 = alloca %struct.s2n_test_pkeys, align 8
  %5 = alloca %struct.s2n_test_pkeys, align 8
  %6 = alloca [3 x %struct.s2n_test_pkeys], align 16
  %7 = alloca %struct.s2n_test_pkeys, align 8
  %8 = alloca %struct.s2n_test_pkeys, align 8
  %9 = alloca %struct.s2n_test_pkeys, align 8
  %10 = alloca [3 x %struct.s2n_test_pkeys], align 16
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca [12 x i8], align 1
  %16 = alloca %struct.s2n_blob, align 8
  %17 = alloca [768 x i8], align 16
  %18 = alloca %struct.s2n_blob, align 8
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca %struct.s2n_blob, align 8
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca %struct.s2n_blob, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %24 = load ptr, ptr @stdout, align 8, !tbaa !9
  %25 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %26 = load ptr, ptr @stdout, align 8, !tbaa !9
  %27 = tail call i32 @fflush(ptr noundef %26)
  %28 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %29 = icmp eq i32 %28, -1
  br i1 %29, label %30, label %54

30:                                               ; preds = %2
  %31 = tail call ptr @__errno_location() #13
  %32 = load i32, ptr %31, align 4, !tbaa !5
  %33 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34 = tail call i32 @s2n_print_stacktrace(ptr noundef %33) #12
  %35 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36 = trunc nuw i8 %35 to i1
  br i1 %36, label %37, label %41

37:                                               ; preds = %30
  %38 = load ptr, ptr @stderr, align 8, !tbaa !9
  %39 = tail call i32 @fileno(ptr noundef %38) #12
  %40 = tail call i32 @isatty(i32 noundef %39) #12
  %.not193 = icmp eq i32 %40, 0
  br i1 %.not193, label %41, label %42

41:                                               ; preds = %37, %30
  br label %42

42:                                               ; preds = %37, %41
  %.str.5.sink = phi ptr [ @.str.5, %41 ], [ @.str.2, %37 ]
  store i32 %32, ptr %31, align 4, !tbaa !5
  %43 = load ptr, ptr @stderr, align 8, !tbaa !9
  %44 = load i32, ptr @test_count, align 4, !tbaa !5
  %45 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %46 = load i32, ptr %45, align 4, !tbaa !5
  %47 = tail call ptr @s2n_strerror(i32 noundef %46, ptr noundef nonnull @.str.4) #12
  %48 = load i32, ptr %45, align 4, !tbaa !5
  %49 = tail call ptr @s2n_strerror_debug(i32 noundef %48, ptr noundef nonnull @.str.4) #12
  %50 = load i32, ptr %31, align 4, !tbaa !5
  %51 = tail call ptr @strerror(i32 noundef %50) #12
  %52 = load i32, ptr %31, align 4, !tbaa !5
  %53 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %43, ptr noundef nonnull %.str.5.sink, i32 noundef %44, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %47, ptr noundef %49, ptr noundef %51, i32 noundef %52) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

54:                                               ; preds = %2
  %55 = load i32, ptr @test_count, align 4, !tbaa !5
  %56 = add nsw i32 %55, 1
  store i32 %56, ptr @test_count, align 4, !tbaa !5
  %57 = tail call i32 @s2n_enable_atexit() #12
  %58 = icmp eq i32 %57, -1
  br i1 %58, label %59, label %83

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

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

70:                                               ; preds = %66, %59
  br label %71

71:                                               ; preds = %66, %70
  %.str.5.sink221 = phi ptr [ @.str.5, %70 ], [ @.str.2, %66 ]
  store i32 %61, ptr %60, align 4, !tbaa !5
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = load i32, ptr @test_count, align 4, !tbaa !5
  %74 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = tail call ptr @s2n_strerror(i32 noundef %75, ptr noundef nonnull @.str.4) #12
  %77 = load i32, ptr %74, align 4, !tbaa !5
  %78 = tail call ptr @s2n_strerror_debug(i32 noundef %77, ptr noundef nonnull @.str.4) #12
  %79 = load i32, ptr %60, align 4, !tbaa !5
  %80 = tail call ptr @strerror(i32 noundef %79) #12
  %81 = load i32, ptr %60, align 4, !tbaa !5
  %82 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %72, ptr noundef nonnull %.str.5.sink221, i32 noundef %73, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %76, ptr noundef %78, ptr noundef %80, i32 noundef %81) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

83:                                               ; preds = %54
  %84 = tail call i32 @s2n_init() #12
  %85 = icmp eq i32 %84, -1
  br i1 %85, label %86, label %110

86:                                               ; preds = %83
  %87 = tail call ptr @__errno_location() #13
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = tail call i32 @s2n_print_stacktrace(ptr noundef %89) #12
  %91 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %92 = trunc nuw i8 %91 to i1
  br i1 %92, label %93, label %97

93:                                               ; preds = %86
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = tail call i32 @fileno(ptr noundef %94) #12
  %96 = tail call i32 @isatty(i32 noundef %95) #12
  %.not191 = icmp eq i32 %96, 0
  br i1 %.not191, label %97, label %98

97:                                               ; preds = %93, %86
  br label %98

98:                                               ; preds = %93, %97
  %.str.5.sink232 = phi ptr [ @.str.5, %97 ], [ @.str.2, %93 ]
  store i32 %88, ptr %87, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = tail call ptr @s2n_strerror(i32 noundef %102, ptr noundef nonnull @.str.4) #12
  %104 = load i32, ptr %101, align 4, !tbaa !5
  %105 = tail call ptr @s2n_strerror_debug(i32 noundef %104, ptr noundef nonnull @.str.4) #12
  %106 = load i32, ptr %87, align 4, !tbaa !5
  %107 = tail call ptr @strerror(i32 noundef %106) #12
  %108 = load i32, ptr %87, align 4, !tbaa !5
  %109 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %99, ptr noundef nonnull %.str.5.sink232, i32 noundef %100, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %103, ptr noundef %105, ptr noundef %107, i32 noundef %108) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

110:                                              ; preds = %83
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %3, i8 0, i64 64, i1 false)
  %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_test_pkeys_init(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9)
  %114 = call zeroext i1 @s2n_result_is_ok(i32 %113)
  br i1 %114, label %139, label %115

115:                                              ; preds = %110
  %116 = tail call ptr @__errno_location() #13
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = call i32 @s2n_print_stacktrace(ptr noundef %118) #12
  %120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %121 = trunc nuw i8 %120 to i1
  br i1 %121, label %122, label %126

122:                                              ; preds = %115
  %123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %124 = call i32 @fileno(ptr noundef %123) #12
  %125 = call i32 @isatty(i32 noundef %124) #12
  %.not = icmp eq i32 %125, 0
  br i1 %.not, label %126, label %127

126:                                              ; preds = %122, %115
  br label %127

127:                                              ; preds = %122, %126
  %.str.5.sink243 = phi ptr [ @.str.5, %126 ], [ @.str.2, %122 ]
  store i32 %117, ptr %116, align 4, !tbaa !5
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = load i32, ptr @test_count, align 4, !tbaa !5
  %130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = call ptr @s2n_strerror(i32 noundef %131, ptr noundef nonnull @.str.4) #12
  %133 = load i32, ptr %130, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror_debug(i32 noundef %133, ptr noundef nonnull @.str.4) #12
  %135 = load i32, ptr %116, align 4, !tbaa !5
  %136 = call ptr @strerror(i32 noundef %135) #12
  %137 = load i32, ptr %116, align 4, !tbaa !5
  %138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %128, ptr noundef nonnull %.str.5.sink243, i32 noundef %129, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %132, ptr noundef %134, ptr noundef %136, i32 noundef %137) #14
  call void @exit(i32 noundef 1) #15
  unreachable

139:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %4, i8 0, i64 64, i1 false)
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr @test_count, align 4, !tbaa !5
  %142 = call i32 @s2n_test_pkeys_init(ptr noundef nonnull %4, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12)
  %143 = call zeroext i1 @s2n_result_is_ok(i32 %142)
  br i1 %143, label %168, label %144

144:                                              ; preds = %139
  %145 = tail call ptr @__errno_location() #13
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @s2n_print_stacktrace(ptr noundef %147) #12
  %149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %155

151:                                              ; preds = %144
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = call i32 @fileno(ptr noundef %152) #12
  %154 = call i32 @isatty(i32 noundef %153) #12
  %.not141 = icmp eq i32 %154, 0
  br i1 %.not141, label %155, label %156

155:                                              ; preds = %151, %144
  br label %156

156:                                              ; preds = %151, %155
  %.str.5.sink254 = phi ptr [ @.str.5, %155 ], [ @.str.2, %151 ]
  store i32 %146, ptr %145, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror(i32 noundef %160, ptr noundef nonnull @.str.4) #12
  %162 = load i32, ptr %159, align 4, !tbaa !5
  %163 = call ptr @s2n_strerror_debug(i32 noundef %162, ptr noundef nonnull @.str.4) #12
  %164 = load i32, ptr %145, align 4, !tbaa !5
  %165 = call ptr @strerror(i32 noundef %164) #12
  %166 = load i32, ptr %145, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull %.str.5.sink254, i32 noundef %158, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %161, ptr noundef %163, ptr noundef %165, i32 noundef %166) #14
  call void @exit(i32 noundef 1) #15
  unreachable

168:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, i8 0, i64 64, i1 false)
  %169 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #12
  br i1 %169, label %170, label %199

170:                                              ; preds = %168
  %171 = load i32, ptr @test_count, align 4, !tbaa !5
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr @test_count, align 4, !tbaa !5
  %173 = call i32 @s2n_test_pkeys_init(ptr noundef nonnull %5, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.15)
  %174 = call zeroext i1 @s2n_result_is_ok(i32 %173)
  br i1 %174, label %199, label %175

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

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

186:                                              ; preds = %182, %175
  br label %187

187:                                              ; preds = %182, %186
  %.str.5.sink265 = phi ptr [ @.str.5, %186 ], [ @.str.2, %182 ]
  store i32 %177, ptr %176, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror(i32 noundef %191, ptr noundef nonnull @.str.4) #12
  %193 = load i32, ptr %190, align 4, !tbaa !5
  %194 = call ptr @s2n_strerror_debug(i32 noundef %193, ptr noundef nonnull @.str.4) #12
  %195 = load i32, ptr %176, align 4, !tbaa !5
  %196 = call ptr @strerror(i32 noundef %195) #12
  %197 = load i32, ptr %176, align 4, !tbaa !5
  %198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef nonnull %.str.5.sink265, i32 noundef %189, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %192, ptr noundef %194, ptr noundef %196, i32 noundef %197) #14
  call void @exit(i32 noundef 1) #15
  unreachable

199:                                              ; preds = %170, %168
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %6) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %6, ptr noundef nonnull align 8 dereferenceable(64) %3, i64 64, i1 false), !tbaa.struct !15
  %200 = getelementptr inbounds i8, ptr %6, i64 64
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %200, ptr noundef nonnull align 8 dereferenceable(64) %4, i64 64, i1 false), !tbaa.struct !15
  %201 = getelementptr inbounds i8, ptr %6, i64 128
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %201, ptr noundef nonnull align 8 dereferenceable(64) %5, i64 64, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %7, i8 0, i64 64, i1 false)
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = add nsw i32 %202, 1
  store i32 %203, ptr @test_count, align 4, !tbaa !5
  %204 = call i32 @s2n_test_pkeys_init(ptr noundef nonnull %7, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18)
  %205 = call zeroext i1 @s2n_result_is_ok(i32 %204)
  br i1 %205, label %230, label %206

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

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

217:                                              ; preds = %213, %206
  br label %218

218:                                              ; preds = %213, %217
  %.str.5.sink276 = phi ptr [ @.str.5, %217 ], [ @.str.2, %213 ]
  store i32 %208, ptr %207, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call ptr @s2n_strerror(i32 noundef %222, ptr noundef nonnull @.str.4) #12
  %224 = load i32, ptr %221, align 4, !tbaa !5
  %225 = call ptr @s2n_strerror_debug(i32 noundef %224, ptr noundef nonnull @.str.4) #12
  %226 = load i32, ptr %207, align 4, !tbaa !5
  %227 = call ptr @strerror(i32 noundef %226) #12
  %228 = load i32, ptr %207, align 4, !tbaa !5
  %229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %219, ptr noundef nonnull %.str.5.sink276, i32 noundef %220, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %223, ptr noundef %225, ptr noundef %227, i32 noundef %228) #14
  call void @exit(i32 noundef 1) #15
  unreachable

230:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %8, i8 0, i64 64, i1 false)
  %231 = load i32, ptr @test_count, align 4, !tbaa !5
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr @test_count, align 4, !tbaa !5
  %233 = call i32 @s2n_test_pkeys_init(ptr noundef nonnull %8, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21)
  %234 = call zeroext i1 @s2n_result_is_ok(i32 %233)
  br i1 %234, label %259, label %235

235:                                              ; preds = %230
  %236 = tail call ptr @__errno_location() #13
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @s2n_print_stacktrace(ptr noundef %238) #12
  %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 = call i32 @fileno(ptr noundef %243) #12
  %245 = call i32 @isatty(i32 noundef %244) #12
  %.not144 = icmp eq i32 %245, 0
  br i1 %.not144, label %246, label %247

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

247:                                              ; preds = %242, %246
  %.str.5.sink287 = 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 = 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 nonnull @.str.4) #12
  %253 = load i32, ptr %250, align 4, !tbaa !5
  %254 = call ptr @s2n_strerror_debug(i32 noundef %253, ptr noundef nonnull @.str.4) #12
  %255 = load i32, ptr %236, align 4, !tbaa !5
  %256 = call ptr @strerror(i32 noundef %255) #12
  %257 = load i32, ptr %236, align 4, !tbaa !5
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef nonnull %.str.5.sink287, i32 noundef %249, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %252, ptr noundef %254, ptr noundef %256, i32 noundef %257) #14
  call void @exit(i32 noundef 1) #15
  unreachable

259:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  %260 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #12
  br i1 %260, label %261, label %290

261:                                              ; preds = %259
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = call i32 @s2n_test_pkeys_init(ptr noundef nonnull %9, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.24)
  %265 = call zeroext i1 @s2n_result_is_ok(i32 %264)
  br i1 %265, label %290, label %266

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

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

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

278:                                              ; preds = %273, %277
  %.str.5.sink298 = phi ptr [ @.str.5, %277 ], [ @.str.2, %273 ]
  store i32 %268, ptr %267, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror(i32 noundef %282, ptr noundef nonnull @.str.4) #12
  %284 = load i32, ptr %281, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef nonnull @.str.4) #12
  %286 = load i32, ptr %267, align 4, !tbaa !5
  %287 = call ptr @strerror(i32 noundef %286) #12
  %288 = load i32, ptr %267, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %279, ptr noundef nonnull %.str.5.sink298, i32 noundef %280, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %283, ptr noundef %285, ptr noundef %287, i32 noundef %288) #14
  call void @exit(i32 noundef 1) #15
  unreachable

290:                                              ; preds = %261, %259
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %10) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %10, ptr noundef nonnull align 8 dereferenceable(64) %7, i64 64, i1 false), !tbaa.struct !15
  %291 = getelementptr inbounds i8, ptr %10, i64 64
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %291, ptr noundef nonnull align 8 dereferenceable(64) %8, i64 64, i1 false), !tbaa.struct !15
  %292 = getelementptr inbounds i8, ptr %10, i64 128
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %292, ptr noundef nonnull align 8 dereferenceable(64) %9, i64 64, i1 false), !tbaa.struct !15
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = getelementptr inbounds i8, ptr %10, i64 56
  %295 = getelementptr inbounds i8, ptr %10, i64 48
  %296 = getelementptr inbounds i8, ptr %10, i64 120
  %297 = getelementptr inbounds i8, ptr %10, i64 112
  %298 = getelementptr inbounds i8, ptr %10, i64 184
  %299 = getelementptr inbounds i8, ptr %10, i64 176
  br label %309

300:                                              ; preds = %.loopexit
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %10) #12
  %301 = call i32 @s2n_test_pkeys_wipe(ptr noundef nonnull %9)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #12
  %302 = call i32 @s2n_test_pkeys_wipe(ptr noundef nonnull %8)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #12
  %303 = call i32 @s2n_test_pkeys_wipe(ptr noundef nonnull %7)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #12
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = add nsw i32 %304, 1
  %306 = getelementptr inbounds i8, ptr %6, i64 56
  %307 = load i8, ptr %306, align 8, !tbaa !16, !range !13, !noundef !14
  %308 = trunc nuw i8 %307 to i1
  br i1 %308, label %582, label %696

309:                                              ; preds = %290, %.loopexit
  %.0134203 = phi i64 [ 0, %290 ], [ %581, %.loopexit ]
  %310 = getelementptr inbounds [3 x %struct.s2n_test_pkeys], ptr %6, i64 0, i64 %.0134203
  %311 = getelementptr inbounds i8, ptr %310, i64 56
  %312 = load i8, ptr %311, align 8, !tbaa !16, !range !13, !noundef !14
  %313 = trunc nuw i8 %312 to i1
  br i1 %313, label %314, label %.loopexit

314:                                              ; preds = %309
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %310, i64 48
  %318 = load ptr, ptr %317, align 16, !tbaa !19
  %319 = call i32 @s2n_pkey_match(ptr noundef nonnull %310, ptr noundef %318) #12
  %320 = icmp eq i32 %319, -1
  br i1 %320, label %323, label %.preheader.preheader

.preheader.preheader:                             ; preds = %314
  %321 = load i8, ptr %294, align 8, !tbaa !16, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %346, label %.preheader.1

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

330:                                              ; preds = %323
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @fileno(ptr noundef %331) #12
  %333 = call i32 @isatty(i32 noundef %332) #12
  %.not190 = icmp eq i32 %333, 0
  br i1 %.not190, label %334, label %335

334:                                              ; preds = %330, %323
  br label %335

335:                                              ; preds = %330, %334
  %.str.5.sink309 = phi ptr [ @.str.5, %334 ], [ @.str.2, %330 ]
  store i32 %325, ptr %324, align 4, !tbaa !5
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = load i32, ptr %293, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror(i32 noundef %338, ptr noundef nonnull @.str.4) #12
  %340 = load i32, ptr %293, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror_debug(i32 noundef %340, ptr noundef nonnull @.str.4) #12
  %342 = load i32, ptr %324, align 4, !tbaa !5
  %343 = call ptr @strerror(i32 noundef %342) #12
  %344 = load i32, ptr %324, align 4, !tbaa !5
  %345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %336, ptr noundef nonnull %.str.5.sink309, i32 noundef %337, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %339, ptr noundef %341, ptr noundef %343, i32 noundef %344) #14
  call void @exit(i32 noundef 1) #15
  unreachable

346:                                              ; preds = %.preheader.preheader
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr @test_count, align 4, !tbaa !5
  %349 = load ptr, ptr %295, align 16, !tbaa !19
  %350 = call i32 @s2n_pkey_match(ptr noundef nonnull %310, ptr noundef %349) #12
  %351 = icmp eq i32 %350, -1
  br i1 %351, label %375, label %352

352:                                              ; preds = %549, %515, %346
  %353 = tail call ptr @__errno_location() #13
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @s2n_print_stacktrace(ptr noundef %355) #12
  %357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %358 = trunc nuw i8 %357 to i1
  br i1 %358, label %359, label %363

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

363:                                              ; preds = %359, %352
  br label %364

364:                                              ; preds = %359, %363
  %.str.5.sink318 = phi ptr [ @.str.5, %363 ], [ @.str.2, %359 ]
  store i32 %354, ptr %353, align 4, !tbaa !5
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = load i32, ptr %293, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror(i32 noundef %367, ptr noundef nonnull @.str.4) #12
  %369 = load i32, ptr %293, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror_debug(i32 noundef %369, ptr noundef nonnull @.str.4) #12
  %371 = load i32, ptr %353, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #12
  %373 = load i32, ptr %353, align 4, !tbaa !5
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %365, ptr noundef nonnull %.str.5.sink318, i32 noundef %366, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %368, ptr noundef %370, ptr noundef %372, i32 noundef %373) #14
  call void @exit(i32 noundef 1) #15
  unreachable

375:                                              ; preds = %346
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr @test_count, align 4, !tbaa !5
  %378 = load i32, ptr %293, align 4, !tbaa !5
  %379 = icmp eq i32 %378, 469762068
  br i1 %379, label %403, label %380

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

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

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

392:                                              ; preds = %387, %391
  %.str.5.sink327 = phi ptr [ @.str.5, %391 ], [ @.str.2, %387 ]
  store i32 %382, ptr %381, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = load i32, ptr %293, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror(i32 noundef %395, ptr noundef nonnull @.str.4) #12
  %397 = load i32, ptr %293, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef nonnull @.str.4) #12
  %399 = load i32, ptr %381, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #12
  %401 = load i32, ptr %381, align 4, !tbaa !5
  %402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %393, ptr noundef nonnull %.str.5.sink327, i32 noundef %394, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %396, ptr noundef %398, ptr noundef %400, i32 noundef %401) #14
  call void @exit(i32 noundef 1) #15
  unreachable

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

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

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

418:                                              ; preds = %414, %407
  br label %419

419:                                              ; preds = %414, %418
  %.str.5.sink336 = phi ptr [ @.str.5, %418 ], [ @.str.2, %414 ]
  store i32 %409, ptr %408, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = load i32, ptr %293, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror(i32 noundef %422, ptr noundef nonnull @.str.4) #12
  %424 = load i32, ptr %293, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror_debug(i32 noundef %424, ptr noundef nonnull @.str.4) #12
  %426 = load i32, ptr %408, align 4, !tbaa !5
  %427 = call ptr @strerror(i32 noundef %426) #12
  %428 = load i32, ptr %408, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %420, ptr noundef nonnull %.str.5.sink336, i32 noundef %421, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %423, ptr noundef %425, ptr noundef %427, i32 noundef %428) #14
  call void @exit(i32 noundef 1) #15
  unreachable

430:                                              ; preds = %403
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %431 = tail call ptr @__errno_location() #13
  store i32 0, ptr %431, align 4, !tbaa !5
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr @test_count, align 4, !tbaa !5
  %434 = load ptr, ptr %317, align 16, !tbaa !19
  %435 = call i32 @s2n_pkey_match(ptr noundef nonnull %10, ptr noundef %434) #12
  %436 = icmp eq i32 %435, -1
  br i1 %436, label %459, label %437

437:                                              ; preds = %564, %530, %430
  %.lcssa = phi ptr [ %431, %430 ], [ %531, %530 ], [ %565, %564 ]
  %438 = load i32, ptr %.lcssa, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @s2n_print_stacktrace(ptr noundef %439) #12
  %441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %442 = trunc nuw i8 %441 to i1
  br i1 %442, label %443, label %447

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

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

448:                                              ; preds = %443, %447
  %.str.5.sink345 = phi ptr [ @.str.5, %447 ], [ @.str.2, %443 ]
  store i32 %438, ptr %.lcssa, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = load i32, ptr %293, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef nonnull @.str.4) #12
  %453 = load i32, ptr %293, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef nonnull @.str.4) #12
  %455 = load i32, ptr %.lcssa, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #12
  %457 = load i32, ptr %.lcssa, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef nonnull %.str.5.sink345, i32 noundef %450, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %452, ptr noundef %454, ptr noundef %456, i32 noundef %457) #14
  call void @exit(i32 noundef 1) #15
  unreachable

459:                                              ; preds = %430
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %462 = load i32, ptr %293, align 4, !tbaa !5
  %463 = icmp eq i32 %462, 469762068
  br i1 %463, label %486, label %464

464:                                              ; preds = %571, %537, %459
  %.lcssa207 = phi ptr [ %431, %459 ], [ %531, %537 ], [ %565, %571 ]
  %465 = load i32, ptr %.lcssa207, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @s2n_print_stacktrace(ptr noundef %466) #12
  %468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %469 = trunc nuw i8 %468 to i1
  br i1 %469, label %470, label %474

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

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

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

486:                                              ; preds = %459
  %487 = add nsw i32 %460, 2
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror_debug(i32 noundef 469762068, ptr noundef nonnull @.str.4) #12
  %489 = icmp eq ptr %488, null
  br i1 %489, label %490, label %512

490:                                              ; preds = %576, %542, %486
  %.lcssa208 = phi ptr [ %431, %486 ], [ %531, %542 ], [ %565, %576 ]
  %491 = load i32, ptr %.lcssa208, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @s2n_print_stacktrace(ptr noundef %492) #12
  %494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %495 = trunc nuw i8 %494 to i1
  br i1 %495, label %496, label %500

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

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

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

512:                                              ; preds = %486
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %431, align 4, !tbaa !5
  br label %.preheader.1

.preheader.1:                                     ; preds = %.preheader.preheader, %512
  %513 = load i8, ptr %296, align 8, !tbaa !16, !range !13, !noundef !14
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %.preheader.2

515:                                              ; preds = %.preheader.1
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = add nsw i32 %516, 1
  store i32 %517, ptr @test_count, align 4, !tbaa !5
  %518 = load ptr, ptr %297, align 16, !tbaa !19
  %519 = call i32 @s2n_pkey_match(ptr noundef nonnull %310, ptr noundef %518) #12
  %520 = icmp eq i32 %519, -1
  br i1 %520, label %521, label %352

521:                                              ; preds = %515
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = load i32, ptr %293, align 4, !tbaa !5
  %525 = icmp eq i32 %524, 469762068
  br i1 %525, label %526, label %380

526:                                              ; preds = %521
  %527 = add nsw i32 %522, 2
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror_debug(i32 noundef 469762068, ptr noundef nonnull @.str.4) #12
  %529 = icmp eq ptr %528, null
  br i1 %529, label %407, label %530

530:                                              ; preds = %526
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %531 = tail call ptr @__errno_location() #13
  store i32 0, ptr %531, align 4, !tbaa !5
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = load ptr, ptr %317, align 16, !tbaa !19
  %535 = call i32 @s2n_pkey_match(ptr noundef nonnull %291, ptr noundef %534) #12
  %536 = icmp eq i32 %535, -1
  br i1 %536, label %537, label %437

537:                                              ; preds = %530
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = load i32, ptr %293, align 4, !tbaa !5
  %541 = icmp eq i32 %540, 469762068
  br i1 %541, label %542, label %464

542:                                              ; preds = %537
  %543 = add nsw i32 %538, 2
  store i32 %543, ptr @test_count, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef 469762068, ptr noundef nonnull @.str.4) #12
  %545 = icmp eq ptr %544, null
  br i1 %545, label %490, label %546

546:                                              ; preds = %542
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %531, align 4, !tbaa !5
  br label %.preheader.2

.preheader.2:                                     ; preds = %546, %.preheader.1
  %547 = load i8, ptr %298, align 8, !tbaa !16, !range !13, !noundef !14
  %548 = trunc nuw i8 %547 to i1
  br i1 %548, label %549, label %.loopexit

549:                                              ; preds = %.preheader.2
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr @test_count, align 4, !tbaa !5
  %552 = load ptr, ptr %299, align 16, !tbaa !19
  %553 = call i32 @s2n_pkey_match(ptr noundef nonnull %310, ptr noundef %552) #12
  %554 = icmp eq i32 %553, -1
  br i1 %554, label %555, label %352

555:                                              ; preds = %549
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr @test_count, align 4, !tbaa !5
  %558 = load i32, ptr %293, align 4, !tbaa !5
  %559 = icmp eq i32 %558, 469762068
  br i1 %559, label %560, label %380

560:                                              ; preds = %555
  %561 = add nsw i32 %556, 2
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror_debug(i32 noundef 469762068, ptr noundef nonnull @.str.4) #12
  %563 = icmp eq ptr %562, null
  br i1 %563, label %407, label %564

564:                                              ; preds = %560
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %565 = tail call ptr @__errno_location() #13
  store i32 0, ptr %565, align 4, !tbaa !5
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = load ptr, ptr %317, align 16, !tbaa !19
  %569 = call i32 @s2n_pkey_match(ptr noundef nonnull %292, ptr noundef %568) #12
  %570 = icmp eq i32 %569, -1
  br i1 %570, label %571, label %437

571:                                              ; preds = %564
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = add nsw i32 %572, 1
  store i32 %573, ptr @test_count, align 4, !tbaa !5
  %574 = load i32, ptr %293, align 4, !tbaa !5
  %575 = icmp eq i32 %574, 469762068
  br i1 %575, label %576, label %464

576:                                              ; preds = %571
  %577 = add nsw i32 %572, 2
  store i32 %577, ptr @test_count, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef 469762068, ptr noundef nonnull @.str.4) #12
  %579 = icmp eq ptr %578, null
  br i1 %579, label %490, label %580

580:                                              ; preds = %576
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %565, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader.2, %580, %309
  %581 = add nuw nsw i64 %.0134203, 1
  %exitcond.not = icmp eq i64 %581, 3
  br i1 %exitcond.not, label %300, label %309, !llvm.loop !20

582:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #12
  store i32 0, ptr %11, align 4, !tbaa !5
  %583 = add nsw i32 %304, 2
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = call i32 @s2n_pkey_size(ptr noundef nonnull %6, ptr noundef nonnull %11) #12
  %585 = call zeroext i1 @s2n_result_is_ok(i32 %584)
  br i1 %585, label %609, label %586

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

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

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

598:                                              ; preds = %593, %597
  %.str.5.sink372 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %587, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %293, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #12
  %603 = load i32, ptr %293, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #12
  %605 = load i32, ptr %587, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #12
  %607 = load i32, ptr %587, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink372, i32 noundef %600, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

609:                                              ; preds = %582
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %11, align 4, !tbaa !5
  %613 = load i32, ptr @__const.main.expected_sizes, align 4, !tbaa !5
  %614 = icmp eq i32 %612, %613
  br i1 %614, label %638, label %615

615:                                              ; preds = %732, %705, %609
  %616 = tail call ptr @__errno_location() #13
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @s2n_print_stacktrace(ptr noundef %618) #12
  %620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %621 = trunc nuw i8 %620 to i1
  br i1 %621, label %622, label %626

622:                                              ; preds = %615
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @fileno(ptr noundef %623) #12
  %625 = call i32 @isatty(i32 noundef %624) #12
  %.not181 = icmp eq i32 %625, 0
  br i1 %.not181, label %626, label %627

626:                                              ; preds = %622, %615
  br label %627

627:                                              ; preds = %622, %626
  %.str.5.sink381 = phi ptr [ @.str.5, %626 ], [ @.str.2, %622 ]
  store i32 %617, ptr %616, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = load i32, ptr %293, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef nonnull @.str.4) #12
  %632 = load i32, ptr %293, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef nonnull @.str.4) #12
  %634 = load i32, ptr %616, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #12
  %636 = load i32, ptr %616, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.5.sink381, i32 noundef %629, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %631, ptr noundef %633, ptr noundef %635, i32 noundef %636) #14
  call void @exit(i32 noundef 1) #15
  unreachable

638:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #12
  store i32 0, ptr %12, align 4, !tbaa !5
  %639 = add nsw i32 %610, 2
  store i32 %639, ptr @test_count, align 4, !tbaa !5
  %640 = getelementptr inbounds i8, ptr %6, i64 48
  %641 = load ptr, ptr %640, align 16, !tbaa !19
  %642 = call i32 @s2n_pkey_size(ptr noundef %641, ptr noundef nonnull %12) #12
  %643 = call zeroext i1 @s2n_result_is_ok(i32 %642)
  br i1 %643, label %667, label %644

644:                                              ; preds = %738, %711, %638
  %645 = tail call ptr @__errno_location() #13
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #12
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %644
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #12
  %654 = call i32 @isatty(i32 noundef %653) #12
  %.not182 = icmp eq i32 %654, 0
  br i1 %.not182, label %655, label %656

655:                                              ; preds = %651, %644
  br label %656

656:                                              ; preds = %651, %655
  %.str.5.sink390 = phi ptr [ @.str.5, %655 ], [ @.str.2, %651 ]
  store i32 %646, ptr %645, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %293, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.4) #12
  %661 = load i32, ptr %293, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.4) #12
  %663 = load i32, ptr %645, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #12
  %665 = load i32, ptr %645, align 4, !tbaa !5
  %666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.5.sink390, i32 noundef %658, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #14
  call void @exit(i32 noundef 1) #15
  unreachable

667:                                              ; preds = %638
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = load i32, ptr %12, align 4, !tbaa !5
  %671 = icmp eq i32 %670, %612
  br i1 %671, label %695, label %672

672:                                              ; preds = %744, %717, %667
  %673 = tail call ptr @__errno_location() #13
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675) #12
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %683

679:                                              ; preds = %672
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = call i32 @fileno(ptr noundef %680) #12
  %682 = call i32 @isatty(i32 noundef %681) #12
  %.not183 = icmp eq i32 %682, 0
  br i1 %.not183, label %683, label %684

683:                                              ; preds = %679, %672
  br label %684

684:                                              ; preds = %679, %683
  %.str.5.sink399 = phi ptr [ @.str.5, %683 ], [ @.str.2, %679 ]
  store i32 %674, ptr %673, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = load i32, ptr %293, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror(i32 noundef %687, ptr noundef nonnull @.str.4) #12
  %689 = load i32, ptr %293, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef nonnull @.str.4) #12
  %691 = load i32, ptr %673, align 4, !tbaa !5
  %692 = call ptr @strerror(i32 noundef %691) #12
  %693 = load i32, ptr %673, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef nonnull %.str.5.sink399, i32 noundef %686, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %688, ptr noundef %690, ptr noundef %692, i32 noundef %693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

695:                                              ; preds = %667
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #12
  br label %696

696:                                              ; preds = %300, %695
  %697 = phi i32 [ %305, %300 ], [ %669, %695 ]
  %698 = getelementptr inbounds i8, ptr %6, i64 120
  %699 = load i8, ptr %698, align 8, !tbaa !16, !range !13, !noundef !14
  %700 = trunc nuw i8 %699 to i1
  br i1 %700, label %701, label %723

701:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #12
  store i32 0, ptr %11, align 4, !tbaa !5
  %702 = add nsw i32 %697, 1
  store i32 %702, ptr @test_count, align 4, !tbaa !5
  %703 = call i32 @s2n_pkey_size(ptr noundef nonnull %200, ptr noundef nonnull %11) #12
  %704 = call zeroext i1 @s2n_result_is_ok(i32 %703)
  br i1 %704, label %705, label %586

705:                                              ; preds = %701
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %11, align 4, !tbaa !5
  %709 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_sizes, i64 4), align 4, !tbaa !5
  %710 = icmp eq i32 %708, %709
  br i1 %710, label %711, label %615

711:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #12
  store i32 0, ptr %12, align 4, !tbaa !5
  %712 = add nsw i32 %706, 2
  store i32 %712, ptr @test_count, align 4, !tbaa !5
  %713 = getelementptr inbounds i8, ptr %6, i64 112
  %714 = load ptr, ptr %713, align 16, !tbaa !19
  %715 = call i32 @s2n_pkey_size(ptr noundef %714, ptr noundef nonnull %12) #12
  %716 = call zeroext i1 @s2n_result_is_ok(i32 %715)
  br i1 %716, label %717, label %644

717:                                              ; preds = %711
  %718 = load i32, ptr @test_count, align 4, !tbaa !5
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr @test_count, align 4, !tbaa !5
  %720 = load i32, ptr %12, align 4, !tbaa !5
  %721 = icmp eq i32 %720, %708
  br i1 %721, label %722, label %672

722:                                              ; preds = %717
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #12
  br label %723

723:                                              ; preds = %722, %696
  %724 = phi i32 [ %719, %722 ], [ %697, %696 ]
  %725 = getelementptr inbounds i8, ptr %6, i64 184
  %726 = load i8, ptr %725, align 8, !tbaa !16, !range !13, !noundef !14
  %727 = trunc nuw i8 %726 to i1
  br i1 %727, label %728, label %750

728:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #12
  store i32 0, ptr %11, align 4, !tbaa !5
  %729 = add nsw i32 %724, 1
  store i32 %729, ptr @test_count, align 4, !tbaa !5
  %730 = call i32 @s2n_pkey_size(ptr noundef nonnull %201, ptr noundef nonnull %11) #12
  %731 = call zeroext i1 @s2n_result_is_ok(i32 %730)
  br i1 %731, label %732, label %586

732:                                              ; preds = %728
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr @test_count, align 4, !tbaa !5
  %735 = load i32, ptr %11, align 4, !tbaa !5
  %736 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_sizes, i64 8), align 4, !tbaa !5
  %737 = icmp eq i32 %735, %736
  br i1 %737, label %738, label %615

738:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #12
  store i32 0, ptr %12, align 4, !tbaa !5
  %739 = add nsw i32 %733, 2
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = getelementptr inbounds i8, ptr %6, i64 176
  %741 = load ptr, ptr %740, align 16, !tbaa !19
  %742 = call i32 @s2n_pkey_size(ptr noundef %741, ptr noundef nonnull %12) #12
  %743 = call zeroext i1 @s2n_result_is_ok(i32 %742)
  br i1 %743, label %744, label %644

744:                                              ; preds = %738
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load i32, ptr %12, align 4, !tbaa !5
  %748 = icmp eq i32 %747, %735
  br i1 %748, label %749, label %672

749:                                              ; preds = %744
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #12
  br label %750

750:                                              ; preds = %749, %723
  %751 = phi i32 [ %746, %749 ], [ %724, %723 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %753 = getelementptr inbounds i8, ptr %3, i64 48
  %754 = load ptr, ptr %753, align 8, !tbaa !19
  %755 = call i32 @s2n_pkey_encrypt(ptr noundef %754, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %756 = icmp eq i32 %755, -1
  br i1 %756, label %780, label %757

757:                                              ; preds = %750
  %758 = tail call ptr @__errno_location() #13
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = call i32 @s2n_print_stacktrace(ptr noundef %760) #12
  %762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %763 = trunc nuw i8 %762 to i1
  br i1 %763, label %764, label %768

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

768:                                              ; preds = %764, %757
  br label %769

769:                                              ; preds = %764, %768
  %.str.5.sink408 = phi ptr [ @.str.5, %768 ], [ @.str.2, %764 ]
  store i32 %759, ptr %758, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = load i32, ptr %293, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror(i32 noundef %772, ptr noundef nonnull @.str.4) #12
  %774 = load i32, ptr %293, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef nonnull @.str.4) #12
  %776 = load i32, ptr %758, align 4, !tbaa !5
  %777 = call ptr @strerror(i32 noundef %776) #12
  %778 = load i32, ptr %758, align 4, !tbaa !5
  %779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %770, ptr noundef nonnull %.str.5.sink408, i32 noundef %771, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %773, ptr noundef %775, ptr noundef %777, i32 noundef %778) #14
  call void @exit(i32 noundef 1) #15
  unreachable

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

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

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

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

797:                                              ; preds = %792, %796
  %.str.5.sink417 = phi ptr [ @.str.5, %796 ], [ @.str.2, %792 ]
  store i32 %787, ptr %786, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = load i32, ptr %293, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef nonnull @.str.4) #12
  %802 = load i32, ptr %293, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef nonnull @.str.4) #12
  %804 = load i32, ptr %786, align 4, !tbaa !5
  %805 = call ptr @strerror(i32 noundef %804) #12
  %806 = load i32, ptr %786, align 4, !tbaa !5
  %807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef nonnull %.str.5.sink417, i32 noundef %799, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %801, ptr noundef %803, ptr noundef %805, i32 noundef %806) #14
  call void @exit(i32 noundef 1) #15
  unreachable

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

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

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

823:                                              ; preds = %819, %812
  br label %824

824:                                              ; preds = %819, %823
  %.str.5.sink426 = phi ptr [ @.str.5, %823 ], [ @.str.2, %819 ]
  store i32 %814, ptr %813, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = load i32, ptr %293, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef nonnull @.str.4) #12
  %829 = load i32, ptr %293, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef nonnull @.str.4) #12
  %831 = load i32, ptr %813, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #12
  %833 = load i32, ptr %813, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %825, ptr noundef nonnull %.str.5.sink426, i32 noundef %826, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %828, ptr noundef %830, ptr noundef %832, i32 noundef %833) #14
  call void @exit(i32 noundef 1) #15
  unreachable

835:                                              ; preds = %808
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %836 = tail call ptr @__errno_location() #13
  store i32 0, ptr %836, align 4, !tbaa !5
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = call i32 @s2n_pkey_decrypt(ptr noundef nonnull %3, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %840 = icmp eq i32 %839, -1
  br i1 %840, label %863, label %841

841:                                              ; preds = %835
  %842 = load i32, ptr %836, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @s2n_print_stacktrace(ptr noundef %843) #12
  %845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %846 = trunc nuw i8 %845 to i1
  br i1 %846, label %847, label %851

847:                                              ; preds = %841
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @fileno(ptr noundef %848) #12
  %850 = call i32 @isatty(i32 noundef %849) #12
  %.not148 = icmp eq i32 %850, 0
  br i1 %.not148, label %851, label %852

851:                                              ; preds = %847, %841
  br label %852

852:                                              ; preds = %847, %851
  %.str.5.sink435 = phi ptr [ @.str.5, %851 ], [ @.str.2, %847 ]
  store i32 %842, ptr %836, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = load i32, ptr %293, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror(i32 noundef %855, ptr noundef nonnull @.str.4) #12
  %857 = load i32, ptr %293, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef nonnull @.str.4) #12
  %859 = load i32, ptr %836, align 4, !tbaa !5
  %860 = call ptr @strerror(i32 noundef %859) #12
  %861 = load i32, ptr %836, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull %.str.5.sink435, i32 noundef %854, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %856, ptr noundef %858, ptr noundef %860, i32 noundef %861) #14
  call void @exit(i32 noundef 1) #15
  unreachable

863:                                              ; preds = %835
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = load i32, ptr %293, align 4, !tbaa !5
  %867 = icmp eq i32 %866, 402653231
  br i1 %867, label %890, label %868

868:                                              ; preds = %863
  %869 = load i32, ptr %836, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = call i32 @s2n_print_stacktrace(ptr noundef %870) #12
  %872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %873 = trunc nuw i8 %872 to i1
  br i1 %873, label %874, label %878

874:                                              ; preds = %868
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = call i32 @fileno(ptr noundef %875) #12
  %877 = call i32 @isatty(i32 noundef %876) #12
  %.not149 = icmp eq i32 %877, 0
  br i1 %.not149, label %878, label %879

878:                                              ; preds = %874, %868
  br label %879

879:                                              ; preds = %874, %878
  %.str.5.sink444 = phi ptr [ @.str.5, %878 ], [ @.str.2, %874 ]
  store i32 %869, ptr %836, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = load i32, ptr %293, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef nonnull @.str.4) #12
  %884 = load i32, ptr %293, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef nonnull @.str.4) #12
  %886 = load i32, ptr %836, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #12
  %888 = load i32, ptr %836, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %880, ptr noundef nonnull %.str.5.sink444, i32 noundef %881, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %883, ptr noundef %885, ptr noundef %887, i32 noundef %888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

890:                                              ; preds = %863
  %891 = add nsw i32 %864, 2
  store i32 %891, ptr @test_count, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %893 = icmp eq ptr %892, null
  br i1 %893, label %894, label %916

894:                                              ; preds = %890
  %895 = load i32, ptr %836, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @s2n_print_stacktrace(ptr noundef %896) #12
  %898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %899 = trunc nuw i8 %898 to i1
  br i1 %899, label %900, label %904

900:                                              ; preds = %894
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @fileno(ptr noundef %901) #12
  %903 = call i32 @isatty(i32 noundef %902) #12
  %.not178 = icmp eq i32 %903, 0
  br i1 %.not178, label %904, label %905

904:                                              ; preds = %900, %894
  br label %905

905:                                              ; preds = %900, %904
  %.str.5.sink453 = phi ptr [ @.str.5, %904 ], [ @.str.2, %900 ]
  store i32 %895, ptr %836, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = load i32, ptr %293, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef nonnull @.str.4) #12
  %910 = load i32, ptr %293, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror_debug(i32 noundef %910, ptr noundef nonnull @.str.4) #12
  %912 = load i32, ptr %836, align 4, !tbaa !5
  %913 = call ptr @strerror(i32 noundef %912) #12
  %914 = load i32, ptr %836, align 4, !tbaa !5
  %915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef nonnull %.str.5.sink453, i32 noundef %907, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %909, ptr noundef %911, ptr noundef %913, i32 noundef %914) #14
  call void @exit(i32 noundef 1) #15
  unreachable

916:                                              ; preds = %890
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %836, align 4, !tbaa !5
  %917 = getelementptr inbounds i8, ptr %5, i64 56
  %918 = load i8, ptr %917, align 8, !tbaa !16, !range !13, !noundef !14
  %919 = trunc nuw i8 %918 to i1
  br i1 %919, label %920, label %1083

920:                                              ; preds = %916
  %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 = getelementptr inbounds i8, ptr %5, i64 48
  %924 = load ptr, ptr %923, align 8, !tbaa !19
  %925 = call i32 @s2n_pkey_encrypt(ptr noundef %924, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %926 = icmp eq i32 %925, -1
  br i1 %926, label %949, label %927

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

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

937:                                              ; preds = %933, %927
  br label %938

938:                                              ; preds = %933, %937
  %.str.5.sink462 = phi ptr [ @.str.5, %937 ], [ @.str.2, %933 ]
  store i32 %928, ptr %836, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = load i32, ptr %293, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef nonnull @.str.4) #12
  %943 = load i32, ptr %293, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror_debug(i32 noundef %943, ptr noundef nonnull @.str.4) #12
  %945 = load i32, ptr %836, align 4, !tbaa !5
  %946 = call ptr @strerror(i32 noundef %945) #12
  %947 = load i32, ptr %836, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef nonnull %.str.5.sink462, i32 noundef %940, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %942, ptr noundef %944, ptr noundef %946, i32 noundef %947) #14
  call void @exit(i32 noundef 1) #15
  unreachable

949:                                              ; preds = %920
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = load i32, ptr %293, align 4, !tbaa !5
  %953 = icmp eq i32 %952, 402653231
  br i1 %953, label %976, label %954

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

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

964:                                              ; preds = %960, %954
  br label %965

965:                                              ; preds = %960, %964
  %.str.5.sink471 = phi ptr [ @.str.5, %964 ], [ @.str.2, %960 ]
  store i32 %955, ptr %836, align 4, !tbaa !5
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = load i32, ptr %293, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror(i32 noundef %968, ptr noundef nonnull @.str.4) #12
  %970 = load i32, ptr %293, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror_debug(i32 noundef %970, ptr noundef nonnull @.str.4) #12
  %972 = load i32, ptr %836, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #12
  %974 = load i32, ptr %836, align 4, !tbaa !5
  %975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %966, ptr noundef nonnull %.str.5.sink471, i32 noundef %967, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %969, ptr noundef %971, ptr noundef %973, i32 noundef %974) #14
  call void @exit(i32 noundef 1) #15
  unreachable

976:                                              ; preds = %949
  %977 = add nsw i32 %950, 2
  store i32 %977, ptr @test_count, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %979 = icmp eq ptr %978, null
  br i1 %979, label %980, label %1002

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

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

990:                                              ; preds = %986, %980
  br label %991

991:                                              ; preds = %986, %990
  %.str.5.sink480 = phi ptr [ @.str.5, %990 ], [ @.str.2, %986 ]
  store i32 %981, ptr %836, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = load i32, ptr %293, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror(i32 noundef %994, ptr noundef nonnull @.str.4) #12
  %996 = load i32, ptr %293, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef nonnull @.str.4) #12
  %998 = load i32, ptr %836, align 4, !tbaa !5
  %999 = call ptr @strerror(i32 noundef %998) #12
  %1000 = load i32, ptr %836, align 4, !tbaa !5
  %1001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef nonnull %.str.5.sink480, i32 noundef %993, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %995, ptr noundef %997, ptr noundef %999, i32 noundef %1000) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1002:                                             ; preds = %976
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %836, align 4, !tbaa !5
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %1004 = add nsw i32 %1003, 1
  store i32 %1004, ptr @test_count, align 4, !tbaa !5
  %1005 = call i32 @s2n_pkey_decrypt(ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1006 = icmp eq i32 %1005, -1
  br i1 %1006, label %1029, label %1007

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

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

1017:                                             ; preds = %1013, %1007
  br label %1018

1018:                                             ; preds = %1013, %1017
  %.str.5.sink489 = phi ptr [ @.str.5, %1017 ], [ @.str.2, %1013 ]
  store i32 %1008, ptr %836, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = load i32, ptr %293, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror(i32 noundef %1021, ptr noundef nonnull @.str.4) #12
  %1023 = load i32, ptr %293, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef nonnull @.str.4) #12
  %1025 = load i32, ptr %836, align 4, !tbaa !5
  %1026 = call ptr @strerror(i32 noundef %1025) #12
  %1027 = load i32, ptr %836, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1019, ptr noundef nonnull %.str.5.sink489, i32 noundef %1020, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1022, ptr noundef %1024, ptr noundef %1026, i32 noundef %1027) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1029:                                             ; preds = %1002
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = load i32, ptr %293, align 4, !tbaa !5
  %1033 = icmp eq i32 %1032, 402653231
  br i1 %1033, label %1056, label %1034

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

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

1044:                                             ; preds = %1040, %1034
  br label %1045

1045:                                             ; preds = %1040, %1044
  %.str.5.sink498 = phi ptr [ @.str.5, %1044 ], [ @.str.2, %1040 ]
  store i32 %1035, ptr %836, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = load i32, ptr %293, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef nonnull @.str.4) #12
  %1050 = load i32, ptr %293, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror_debug(i32 noundef %1050, ptr noundef nonnull @.str.4) #12
  %1052 = load i32, ptr %836, align 4, !tbaa !5
  %1053 = call ptr @strerror(i32 noundef %1052) #12
  %1054 = load i32, ptr %836, align 4, !tbaa !5
  %1055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef nonnull %.str.5.sink498, i32 noundef %1047, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1049, ptr noundef %1051, ptr noundef %1053, i32 noundef %1054) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1056:                                             ; preds = %1029
  %1057 = add nsw i32 %1030, 2
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %1059 = icmp eq ptr %1058, null
  br i1 %1059, label %1060, label %1082

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

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

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

1071:                                             ; preds = %1066, %1070
  %.str.5.sink507 = phi ptr [ @.str.5, %1070 ], [ @.str.2, %1066 ]
  store i32 %1061, ptr %836, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = load i32, ptr %293, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef nonnull @.str.4) #12
  %1076 = load i32, ptr %293, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror_debug(i32 noundef %1076, ptr noundef nonnull @.str.4) #12
  %1078 = load i32, ptr %836, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #12
  %1080 = load i32, ptr %836, align 4, !tbaa !5
  %1081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef nonnull %.str.5.sink507, i32 noundef %1073, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1075, ptr noundef %1077, ptr noundef %1079, i32 noundef %1080) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1082:                                             ; preds = %1056
  store i32 0, ptr %293, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %836, align 4, !tbaa !5
  br label %1083

1083:                                             ; preds = %1082, %916
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %15) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %15, ptr noundef nonnull align 1 dereferenceable(12) @__const.main.message_bytes, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, i8 0, i64 24, i1 false)
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr @test_count, align 4, !tbaa !5
  %1086 = call i32 @s2n_blob_init(ptr noundef nonnull %16, ptr noundef nonnull %15, i32 noundef 12) #12
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1110

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

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

1098:                                             ; preds = %1094, %1088
  br label %1099

1099:                                             ; preds = %1094, %1098
  %.str.5.sink516 = phi ptr [ @.str.5, %1098 ], [ @.str.2, %1094 ]
  store i32 %1089, ptr %836, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = load i32, ptr @test_count, align 4, !tbaa !5
  %1102 = load i32, ptr %293, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef nonnull @.str.4) #12
  %1104 = load i32, ptr %293, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror_debug(i32 noundef %1104, ptr noundef nonnull @.str.4) #12
  %1106 = load i32, ptr %836, align 4, !tbaa !5
  %1107 = call ptr @strerror(i32 noundef %1106) #12
  %1108 = load i32, ptr %836, align 4, !tbaa !5
  %1109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1100, ptr noundef nonnull %.str.5.sink516, i32 noundef %1101, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1103, ptr noundef %1105, ptr noundef %1107, i32 noundef %1108) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1110:                                             ; preds = %1083
  call void @llvm.lifetime.start.p0(i64 768, ptr nonnull %17) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(768) %17, ptr noundef nonnull align 16 dereferenceable(768) @__const.main.ciphertext_hex, i64 768, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, i8 0, i64 24, i1 false)
  %1111 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %18, ptr noundef nonnull %17) #12
  %1112 = call zeroext i1 @s2n_result_is_ok(i32 %1111)
  br i1 %1112, label %1114, label %.thread

.thread:                                          ; preds = %1110
  %1113 = call i32 @s2n_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 768, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  br label %1545

1114:                                             ; preds = %1110
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, i8 0, i64 24, i1 false)
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, 1
  store i32 %1116, ptr @test_count, align 4, !tbaa !5
  %1117 = getelementptr inbounds i8, ptr %16, i64 8
  %1118 = load i32, ptr %1117, align 8, !tbaa !22
  %1119 = call i32 @s2n_alloc(ptr noundef nonnull %19, i32 noundef %1118) #12
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1121, label %1143

1121:                                             ; preds = %1114
  %1122 = load i32, ptr %836, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = call i32 @s2n_print_stacktrace(ptr noundef %1123) #12
  %1125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1126 = trunc nuw i8 %1125 to i1
  br i1 %1126, label %1127, label %1131

1127:                                             ; preds = %1121
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @fileno(ptr noundef %1128) #12
  %1130 = call i32 @isatty(i32 noundef %1129) #12
  %.not174 = icmp eq i32 %1130, 0
  br i1 %.not174, label %1131, label %1132

1131:                                             ; preds = %1127, %1121
  br label %1132

1132:                                             ; preds = %1127, %1131
  %.str.5.sink525 = phi ptr [ @.str.5, %1131 ], [ @.str.2, %1127 ]
  store i32 %1122, ptr %836, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = load i32, ptr %293, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror(i32 noundef %1135, ptr noundef nonnull @.str.4) #12
  %1137 = load i32, ptr %293, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef nonnull @.str.4) #12
  %1139 = load i32, ptr %836, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #12
  %1141 = load i32, ptr %836, align 4, !tbaa !5
  %1142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef nonnull %.str.5.sink525, i32 noundef %1134, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1136, ptr noundef %1138, ptr noundef %1140, i32 noundef %1141) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1143:                                             ; preds = %1114
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr @test_count, align 4, !tbaa !5
  %1146 = getelementptr inbounds i8, ptr %4, i64 48
  %1147 = load ptr, ptr %1146, align 8, !tbaa !19
  %1148 = call i32 @s2n_pkey_decrypt(ptr noundef %1147, ptr noundef nonnull %18, ptr noundef nonnull %19) #12
  %1149 = icmp eq i32 %1148, -1
  br i1 %1149, label %1150, label %1172

1150:                                             ; preds = %1143
  %1151 = load i32, ptr %836, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #12
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1150
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #12
  %1159 = call i32 @isatty(i32 noundef %1158) #12
  %.not173 = icmp eq i32 %1159, 0
  br i1 %.not173, label %1160, label %1161

1160:                                             ; preds = %1156, %1150
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.5.sink534 = phi ptr [ @.str.5, %1160 ], [ @.str.2, %1156 ]
  store i32 %1151, ptr %836, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = load i32, ptr %293, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror(i32 noundef %1164, ptr noundef nonnull @.str.4) #12
  %1166 = load i32, ptr %293, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror_debug(i32 noundef %1166, ptr noundef nonnull @.str.4) #12
  %1168 = load i32, ptr %836, align 4, !tbaa !5
  %1169 = call ptr @strerror(i32 noundef %1168) #12
  %1170 = load i32, ptr %836, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.5.sink534, i32 noundef %1163, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1165, ptr noundef %1167, ptr noundef %1169, i32 noundef %1170) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1172:                                             ; preds = %1143
  %1173 = load i32, ptr %1117, align 8, !tbaa !22
  %.not154 = icmp eq i32 %1173, 0
  br i1 %.not154, label %1203, label %1174

1174:                                             ; preds = %1172
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = load ptr, ptr %19, align 8, !tbaa !24
  %1178 = load ptr, ptr %16, align 8, !tbaa !24
  %1179 = zext i32 %1173 to i64
  %bcmp = call i32 @bcmp(ptr %1177, ptr %1178, i64 %1179)
  %1180 = icmp eq i32 %bcmp, 0
  br i1 %1180, label %1203, label %1181

1181:                                             ; preds = %1174
  %1182 = load i32, ptr %836, align 4, !tbaa !5
  %1183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1184 = call i32 @s2n_print_stacktrace(ptr noundef %1183) #12
  %1185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1186 = trunc nuw i8 %1185 to i1
  br i1 %1186, label %1187, label %1191

1187:                                             ; preds = %1181
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @fileno(ptr noundef %1188) #12
  %1190 = call i32 @isatty(i32 noundef %1189) #12
  %.not155 = icmp eq i32 %1190, 0
  br i1 %.not155, label %1191, label %1192

1191:                                             ; preds = %1187, %1181
  br label %1192

1192:                                             ; preds = %1187, %1191
  %.str.5.sink543 = phi ptr [ @.str.5, %1191 ], [ @.str.2, %1187 ]
  store i32 %1182, ptr %836, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = load i32, ptr %293, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef nonnull @.str.4) #12
  %1197 = load i32, ptr %293, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef nonnull @.str.4) #12
  %1199 = load i32, ptr %836, align 4, !tbaa !5
  %1200 = call ptr @strerror(i32 noundef %1199) #12
  %1201 = load i32, ptr %836, align 4, !tbaa !5
  %1202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef nonnull %.str.5.sink543, i32 noundef %1194, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1196, ptr noundef %1198, ptr noundef %1200, i32 noundef %1201) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1203:                                             ; preds = %1174, %1172
  %1204 = call i32 @s2n_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, i8 0, i64 24, i1 false)
  %1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %1206 = add nsw i32 %1205, 1
  store i32 %1206, ptr @test_count, align 4, !tbaa !5
  %1207 = getelementptr inbounds i8, ptr %18, i64 8
  %1208 = load i32, ptr %1207, align 8, !tbaa !22
  %1209 = call i32 @s2n_alloc(ptr noundef nonnull %20, i32 noundef %1208) #12
  %1210 = icmp eq i32 %1209, -1
  br i1 %1210, label %1211, label %1233

1211:                                             ; preds = %1203
  %1212 = load i32, ptr %836, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @s2n_print_stacktrace(ptr noundef %1213) #12
  %1215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1216 = trunc nuw i8 %1215 to i1
  br i1 %1216, label %1217, label %1221

1217:                                             ; preds = %1211
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 @fileno(ptr noundef %1218) #12
  %1220 = call i32 @isatty(i32 noundef %1219) #12
  %.not172 = icmp eq i32 %1220, 0
  br i1 %.not172, label %1221, label %1222

1221:                                             ; preds = %1217, %1211
  br label %1222

1222:                                             ; preds = %1217, %1221
  %.str.5.sink552 = phi ptr [ @.str.5, %1221 ], [ @.str.2, %1217 ]
  store i32 %1212, ptr %836, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = load i32, ptr @test_count, align 4, !tbaa !5
  %1225 = load i32, ptr %293, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror(i32 noundef %1225, ptr noundef nonnull @.str.4) #12
  %1227 = load i32, ptr %293, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror_debug(i32 noundef %1227, ptr noundef nonnull @.str.4) #12
  %1229 = load i32, ptr %836, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #12
  %1231 = load i32, ptr %836, align 4, !tbaa !5
  %1232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1223, ptr noundef nonnull %.str.5.sink552, i32 noundef %1224, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1226, ptr noundef %1228, ptr noundef %1230, i32 noundef %1231) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1233:                                             ; preds = %1203
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = add nsw i32 %1234, 1
  store i32 %1235, ptr @test_count, align 4, !tbaa !5
  %1236 = call i32 @s2n_pkey_encrypt(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %20) #12
  %1237 = icmp eq i32 %1236, -1
  br i1 %1237, label %1238, label %1260

1238:                                             ; preds = %1233
  %1239 = load i32, ptr %836, align 4, !tbaa !5
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @s2n_print_stacktrace(ptr noundef %1240) #12
  %1242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1243 = trunc nuw i8 %1242 to i1
  br i1 %1243, label %1244, label %1248

1244:                                             ; preds = %1238
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @fileno(ptr noundef %1245) #12
  %1247 = call i32 @isatty(i32 noundef %1246) #12
  %.not171 = icmp eq i32 %1247, 0
  br i1 %.not171, label %1248, label %1249

1248:                                             ; preds = %1244, %1238
  br label %1249

1249:                                             ; preds = %1244, %1248
  %.str.5.sink561 = phi ptr [ @.str.5, %1248 ], [ @.str.2, %1244 ]
  store i32 %1239, ptr %836, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = load i32, ptr %293, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef nonnull @.str.4) #12
  %1254 = load i32, ptr %293, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef nonnull @.str.4) #12
  %1256 = load i32, ptr %836, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #12
  %1258 = load i32, ptr %836, align 4, !tbaa !5
  %1259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef nonnull %.str.5.sink561, i32 noundef %1251, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1253, ptr noundef %1255, ptr noundef %1257, i32 noundef %1258) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1260:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = load i32, ptr %1117, align 8, !tbaa !22
  %1264 = call i32 @s2n_alloc(ptr noundef nonnull %21, i32 noundef %1263) #12
  %1265 = icmp eq i32 %1264, -1
  br i1 %1265, label %1266, label %1288

1266:                                             ; preds = %1260
  %1267 = load i32, ptr %836, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 @s2n_print_stacktrace(ptr noundef %1268) #12
  %1270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1271 = trunc nuw i8 %1270 to i1
  br i1 %1271, label %1272, label %1276

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

1276:                                             ; preds = %1272, %1266
  br label %1277

1277:                                             ; preds = %1272, %1276
  %.str.5.sink570 = phi ptr [ @.str.5, %1276 ], [ @.str.2, %1272 ]
  store i32 %1267, ptr %836, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = load i32, ptr %293, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef nonnull @.str.4) #12
  %1282 = load i32, ptr %293, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef nonnull @.str.4) #12
  %1284 = load i32, ptr %836, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #12
  %1286 = load i32, ptr %836, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef nonnull %.str.5.sink570, i32 noundef %1279, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1281, ptr noundef %1283, ptr noundef %1285, i32 noundef %1286) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1288:                                             ; preds = %1260
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = load ptr, ptr %1146, align 8, !tbaa !19
  %1292 = call i32 @s2n_pkey_decrypt(ptr noundef %1291, ptr noundef nonnull %20, ptr noundef nonnull %21) #12
  %1293 = icmp eq i32 %1292, -1
  br i1 %1293, label %1294, label %1316

1294:                                             ; preds = %1288
  %1295 = load i32, ptr %836, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @s2n_print_stacktrace(ptr noundef %1296) #12
  %1298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1299 = trunc nuw i8 %1298 to i1
  br i1 %1299, label %1300, label %1304

1300:                                             ; preds = %1294
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @fileno(ptr noundef %1301) #12
  %1303 = call i32 @isatty(i32 noundef %1302) #12
  %.not169 = icmp eq i32 %1303, 0
  br i1 %.not169, label %1304, label %1305

1304:                                             ; preds = %1300, %1294
  br label %1305

1305:                                             ; preds = %1300, %1304
  %.str.5.sink579 = phi ptr [ @.str.5, %1304 ], [ @.str.2, %1300 ]
  store i32 %1295, ptr %836, align 4, !tbaa !5
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = load i32, ptr %293, align 4, !tbaa !5
  %1309 = call ptr @s2n_strerror(i32 noundef %1308, ptr noundef nonnull @.str.4) #12
  %1310 = load i32, ptr %293, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror_debug(i32 noundef %1310, ptr noundef nonnull @.str.4) #12
  %1312 = load i32, ptr %836, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #12
  %1314 = load i32, ptr %836, align 4, !tbaa !5
  %1315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef nonnull %.str.5.sink579, i32 noundef %1307, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1309, ptr noundef %1311, ptr noundef %1313, i32 noundef %1314) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1316:                                             ; preds = %1288
  %1317 = load i32, ptr %1117, align 8, !tbaa !22
  %.not156 = icmp eq i32 %1317, 0
  br i1 %.not156, label %1347, label %1318

1318:                                             ; preds = %1316
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = load ptr, ptr %21, align 8, !tbaa !24
  %1322 = load ptr, ptr %16, align 8, !tbaa !24
  %1323 = zext i32 %1317 to i64
  %bcmp157 = call i32 @bcmp(ptr %1321, ptr %1322, i64 %1323)
  %1324 = icmp eq i32 %bcmp157, 0
  br i1 %1324, label %1347, label %1325

1325:                                             ; preds = %1318
  %1326 = load i32, ptr %836, align 4, !tbaa !5
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @s2n_print_stacktrace(ptr noundef %1327) #12
  %1329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1330 = trunc nuw i8 %1329 to i1
  br i1 %1330, label %1331, label %1335

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

1335:                                             ; preds = %1331, %1325
  br label %1336

1336:                                             ; preds = %1331, %1335
  %.str.5.sink588 = phi ptr [ @.str.5, %1335 ], [ @.str.2, %1331 ]
  store i32 %1326, ptr %836, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = load i32, ptr %293, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef nonnull @.str.4) #12
  %1341 = load i32, ptr %293, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef nonnull @.str.4) #12
  %1343 = load i32, ptr %836, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #12
  %1345 = load i32, ptr %836, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef nonnull %.str.5.sink588, i32 noundef %1338, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1340, ptr noundef %1342, ptr noundef %1344, i32 noundef %1345) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1347:                                             ; preds = %1318, %1316
  %1348 = call i32 @s2n_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #12
  %1349 = call i32 @s2n_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #12
  %1350 = load i32, ptr %1207, align 8, !tbaa !22
  %.not206 = icmp eq i32 %1350, 0
  br i1 %.not206, label %.loopexit210, label %.lr.ph

.lr.ph:                                           ; preds = %1347, %1467
  %.0138205 = phi i64 [ %1470, %1467 ], [ 0, %1347 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false)
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr @test_count, align 4, !tbaa !5
  %1353 = call i32 @s2n_dup(ptr noundef nonnull %18, ptr noundef nonnull %22) #12
  %1354 = icmp eq i32 %1353, -1
  br i1 %1354, label %1355, label %1377

1355:                                             ; preds = %.lr.ph
  %1356 = load i32, ptr %836, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @s2n_print_stacktrace(ptr noundef %1357) #12
  %1359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1360 = trunc nuw i8 %1359 to i1
  br i1 %1360, label %1361, label %1365

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

1365:                                             ; preds = %1361, %1355
  br label %1366

1366:                                             ; preds = %1361, %1365
  %.str.5.sink597 = phi ptr [ @.str.5, %1365 ], [ @.str.2, %1361 ]
  store i32 %1356, ptr %836, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = load i32, ptr %293, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror(i32 noundef %1369, ptr noundef nonnull @.str.4) #12
  %1371 = load i32, ptr %293, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror_debug(i32 noundef %1371, ptr noundef nonnull @.str.4) #12
  %1373 = load i32, ptr %836, align 4, !tbaa !5
  %1374 = call ptr @strerror(i32 noundef %1373) #12
  %1375 = load i32, ptr %836, align 4, !tbaa !5
  %1376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef nonnull %.str.5.sink597, i32 noundef %1368, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1370, ptr noundef %1372, ptr noundef %1374, i32 noundef %1375) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1377:                                             ; preds = %.lr.ph
  %1378 = load ptr, ptr %22, align 8, !tbaa !24
  %1379 = getelementptr inbounds i8, ptr %1378, i64 %.0138205
  %1380 = load i8, ptr %1379, align 1, !tbaa !25
  %1381 = add i8 %1380, 1
  store i8 %1381, ptr %1379, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, i8 0, i64 24, i1 false)
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 1
  store i32 %1383, ptr @test_count, align 4, !tbaa !5
  %1384 = load i32, ptr %1117, align 8, !tbaa !22
  %1385 = call i32 @s2n_alloc(ptr noundef nonnull %23, i32 noundef %1384) #12
  %1386 = icmp eq i32 %1385, -1
  br i1 %1386, label %1387, label %1409

1387:                                             ; preds = %1377
  %1388 = load i32, ptr %836, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @s2n_print_stacktrace(ptr noundef %1389) #12
  %1391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1392 = trunc nuw i8 %1391 to i1
  br i1 %1392, label %1393, label %1397

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

1397:                                             ; preds = %1393, %1387
  br label %1398

1398:                                             ; preds = %1393, %1397
  %.str.5.sink606 = phi ptr [ @.str.5, %1397 ], [ @.str.2, %1393 ]
  store i32 %1388, ptr %836, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = load i32, ptr %293, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef nonnull @.str.4) #12
  %1403 = load i32, ptr %293, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef %1403, ptr noundef nonnull @.str.4) #12
  %1405 = load i32, ptr %836, align 4, !tbaa !5
  %1406 = call ptr @strerror(i32 noundef %1405) #12
  %1407 = load i32, ptr %836, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef nonnull %.str.5.sink606, i32 noundef %1400, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1402, ptr noundef %1404, ptr noundef %1406, i32 noundef %1407) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1409:                                             ; preds = %1377
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = add nsw i32 %1410, 1
  store i32 %1411, ptr @test_count, align 4, !tbaa !5
  %1412 = load ptr, ptr %1146, align 8, !tbaa !19
  %1413 = call i32 @s2n_pkey_decrypt(ptr noundef %1412, ptr noundef nonnull %22, ptr noundef nonnull %23) #12
  %1414 = icmp eq i32 %1413, -1
  br i1 %1414, label %1415, label %1437

1415:                                             ; preds = %1409
  %1416 = load i32, ptr %836, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #12
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1415
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #12
  %1424 = call i32 @isatty(i32 noundef %1423) #12
  %.not166 = icmp eq i32 %1424, 0
  br i1 %.not166, label %1425, label %1426

1425:                                             ; preds = %1421, %1415
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink615 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %836, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = load i32, ptr %293, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.4) #12
  %1431 = load i32, ptr %293, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.4) #12
  %1433 = load i32, ptr %836, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #12
  %1435 = load i32, ptr %836, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink615, i32 noundef %1428, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1437:                                             ; preds = %1409
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = load ptr, ptr %23, align 8, !tbaa !24
  %1441 = load ptr, ptr %16, align 8, !tbaa !24
  %1442 = load i32, ptr %1117, align 8, !tbaa !22
  %1443 = zext i32 %1442 to i64
  %bcmp164 = call i32 @bcmp(ptr %1440, ptr %1441, i64 %1443)
  %1444 = icmp eq i32 %bcmp164, 0
  br i1 %1444, label %1445, label %1467

1445:                                             ; preds = %1437
  %1446 = load i32, ptr %836, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @s2n_print_stacktrace(ptr noundef %1447) #12
  %1449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1450 = trunc nuw i8 %1449 to i1
  br i1 %1450, label %1451, label %1455

1451:                                             ; preds = %1445
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @fileno(ptr noundef %1452) #12
  %1454 = call i32 @isatty(i32 noundef %1453) #12
  %.not165 = icmp eq i32 %1454, 0
  br i1 %.not165, label %1455, label %1456

1455:                                             ; preds = %1451, %1445
  br label %1456

1456:                                             ; preds = %1451, %1455
  %.str.5.sink624 = phi ptr [ @.str.5, %1455 ], [ @.str.2, %1451 ]
  store i32 %1446, ptr %836, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = load i32, ptr %293, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror(i32 noundef %1459, ptr noundef nonnull @.str.4) #12
  %1461 = load i32, ptr %293, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror_debug(i32 noundef %1461, ptr noundef nonnull @.str.4) #12
  %1463 = load i32, ptr %836, align 4, !tbaa !5
  %1464 = call ptr @strerror(i32 noundef %1463) #12
  %1465 = load i32, ptr %836, align 4, !tbaa !5
  %1466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1457, ptr noundef nonnull %.str.5.sink624, i32 noundef %1458, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1460, ptr noundef %1462, ptr noundef %1464, i32 noundef %1465) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1467:                                             ; preds = %1437
  %1468 = call i32 @s2n_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #12
  %1469 = call i32 @s2n_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #12
  %1470 = add nuw nsw i64 %.0138205, 1
  %1471 = load i32, ptr %1207, align 8, !tbaa !22
  %1472 = zext i32 %1471 to i64
  %1473 = icmp ult i64 %1470, %1472
  br i1 %1473, label %.lr.ph, label %.loopexit210, !llvm.loop !26

.loopexit210:                                     ; preds = %1467, %1347
  %1474 = call i32 @s2n_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 768, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  %1475 = call i32 @s2n_cleanup() #12
  %1476 = icmp eq i32 %1475, -1
  br i1 %1476, label %1477, label %1499

1477:                                             ; preds = %.loopexit210
  %1478 = load i32, ptr %836, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @s2n_print_stacktrace(ptr noundef %1479) #12
  %1481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1482 = trunc nuw i8 %1481 to i1
  br i1 %1482, label %1483, label %1487

1483:                                             ; preds = %1477
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @fileno(ptr noundef %1484) #12
  %1486 = call i32 @isatty(i32 noundef %1485) #12
  %.not163 = icmp eq i32 %1486, 0
  br i1 %.not163, label %1487, label %1488

1487:                                             ; preds = %1483, %1477
  br label %1488

1488:                                             ; preds = %1483, %1487
  %.str.5.sink633 = phi ptr [ @.str.5, %1487 ], [ @.str.2, %1483 ]
  store i32 %1478, ptr %836, align 4, !tbaa !5
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = load i32, ptr %293, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror(i32 noundef %1491, ptr noundef nonnull @.str.4) #12
  %1493 = load i32, ptr %293, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror_debug(i32 noundef %1493, ptr noundef nonnull @.str.4) #12
  %1495 = load i32, ptr %836, align 4, !tbaa !5
  %1496 = call ptr @strerror(i32 noundef %1495) #12
  %1497 = load i32, ptr %836, align 4, !tbaa !5
  %1498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1489, ptr noundef nonnull %.str.5.sink633, i32 noundef %1490, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1492, ptr noundef %1494, ptr noundef %1496, i32 noundef %1497) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1499:                                             ; preds = %.loopexit210
  %1500 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1501 = icmp eq i32 %1500, -1
  br i1 %1501, label %1502, label %1524

1502:                                             ; preds = %1499
  %1503 = load i32, ptr %836, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @s2n_print_stacktrace(ptr noundef %1504) #12
  %1506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1507 = trunc nuw i8 %1506 to i1
  br i1 %1507, label %1508, label %1512

1508:                                             ; preds = %1502
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @fileno(ptr noundef %1509) #12
  %1511 = call i32 @isatty(i32 noundef %1510) #12
  %.not162 = icmp eq i32 %1511, 0
  br i1 %.not162, label %1512, label %1513

1512:                                             ; preds = %1508, %1502
  br label %1513

1513:                                             ; preds = %1508, %1512
  %.str.5.sink642 = phi ptr [ @.str.5, %1512 ], [ @.str.2, %1508 ]
  store i32 %1503, ptr %836, align 4, !tbaa !5
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = load i32, ptr @test_count, align 4, !tbaa !5
  %1516 = load i32, ptr %293, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef nonnull @.str.4) #12
  %1518 = load i32, ptr %293, align 4, !tbaa !5
  %1519 = call ptr @s2n_strerror_debug(i32 noundef %1518, ptr noundef nonnull @.str.4) #12
  %1520 = load i32, ptr %836, align 4, !tbaa !5
  %1521 = call ptr @strerror(i32 noundef %1520) #12
  %1522 = load i32, ptr %836, align 4, !tbaa !5
  %1523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1514, ptr noundef nonnull %.str.5.sink642, i32 noundef %1515, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1517, ptr noundef %1519, ptr noundef %1521, i32 noundef %1522) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1524:                                             ; preds = %1499
  %1525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1526 = trunc nuw i8 %1525 to i1
  br i1 %1526, label %1527, label %1538

1527:                                             ; preds = %1524
  %1528 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1529 = call i32 @fileno(ptr noundef %1528) #12
  %1530 = call i32 @isatty(i32 noundef %1529) #12
  %.not159 = icmp eq i32 %1530, 0
  br i1 %.not159, label %1538, label %1531

1531:                                             ; preds = %1527
  %1532 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not161 = icmp eq i32 %1532, 0
  %1533 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not161, label %1536, label %1534

1534:                                             ; preds = %1531
  %1535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef nonnull @.str.54, i32 noundef %1532) #12
  br label %1545

1536:                                             ; preds = %1531
  %1537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef nonnull @.str.55) #12
  br label %1545

1538:                                             ; preds = %1527, %1524
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not160 = icmp eq i32 %1539, 0
  %1540 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not160, label %1543, label %1541

1541:                                             ; preds = %1538
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull @.str.56, i32 noundef %1539) #12
  br label %1545

1543:                                             ; preds = %1538
  %1544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull @.str.57) #12
  br label %1545

1545:                                             ; preds = %.thread, %1536, %1534, %1543, %1541
  %.1 = phi i32 [ 0, %1541 ], [ 0, %1543 ], [ 0, %1534 ], [ 0, %1536 ], [ -1, %.thread ]
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %6) #12
  %1546 = call i32 @s2n_test_pkeys_wipe(ptr noundef nonnull %5)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #12
  %1547 = call i32 @s2n_test_pkeys_wipe(ptr noundef nonnull %4)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %4) #12
  %1548 = call i32 @s2n_test_pkeys_wipe(ptr noundef nonnull %3)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %3) #12
  ret i32 %.1
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

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

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) local_unnamed_addr #4

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

declare i32 @s2n_pkey_match(ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @s2n_debug_info_reset() local_unnamed_addr #4

declare i32 @s2n_pkey_size(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_pkey_encrypt(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_pkey_decrypt(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #4

declare i32 @s2n_dup(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_cleanup() local_unnamed_addr #4

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

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

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass