; LLVM IR from aws/s2n-tls :: tests/unit (s2n_rsa_pss_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_debug_info = type { ptr, ptr }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%union.anon = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_cert_chain_and_key = type { ptr, ptr, %struct.s2n_blob, %struct.s2n_blob, ptr, ptr, ptr }
%struct.s2n_cert_chain = type { i32, ptr }
%struct.s2n_cert = type { i32, %struct.s2n_pkey, %struct.s2n_cert_info, %struct.s2n_blob, ptr }
%struct.s2n_cert_info = type { i32, i32, 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 [75 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [100 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [100 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_flip_random_bit(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
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_pkey, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.s2n_result, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca %struct.s2n_pkey, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca %struct.s2n_pkey, align 8
  %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 i32, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i64, align 8
  %76 = alloca [32 x i8], align 16
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_blob, align 8
  %79 = alloca %struct.s2n_result, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_hash_state, align 8
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_hash_state, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i64, align 8
  %90 = alloca [256 x i8], align 16
  %91 = alloca %struct.s2n_blob, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca ptr, align 8
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca ptr, align 8
  %107 = alloca %struct.s2n_pkey, align 8
  %108 = alloca %struct.s2n_pkey, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca %struct.s2n_result, align 4
  %127 = alloca i32, align 4
  %128 = alloca %struct.s2n_result, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca ptr, align 8
  %135 = alloca ptr, align 8
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i64, align 8
  %143 = alloca [32 x i8], align 16
  %144 = alloca %struct.s2n_blob, align 8
  %145 = alloca %struct.s2n_result, align 4
  %146 = alloca i32, align 4
  %147 = alloca %struct.s2n_hash_state, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca %struct.s2n_hash_state, align 8
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i64, align 8
  %156 = alloca [256 x i8], align 16
  %157 = alloca %struct.s2n_blob, align 8
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca ptr, align 8
  %168 = alloca ptr, align 8
  %169 = alloca ptr, align 8
  %170 = alloca ptr, align 8
  %171 = alloca %struct.s2n_pkey, align 8
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca %struct.s2n_result, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca ptr, align 8
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i64, align 8
  %190 = alloca [32 x i8], align 16
  %191 = alloca %struct.s2n_blob, align 8
  %192 = alloca %struct.s2n_result, align 4
  %193 = alloca i32, align 4
  %194 = alloca %struct.s2n_hash_state, align 8
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca %struct.s2n_hash_state, align 8
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i64, align 8
  %204 = alloca [256 x i8], align 16
  %205 = alloca %struct.s2n_blob, align 8
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %215

215:                                              ; preds = %2
  br label %216

216:                                              ; preds = %215
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %217 = load ptr, ptr @stdout, align 8, !tbaa !9
  %218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %217, ptr noundef @.str, ptr noundef @.str.1) #11
  %219 = load ptr, ptr @stdout, align 8, !tbaa !9
  %220 = call i32 @fflush(ptr noundef %219)
  br label %221

221:                                              ; preds = %216
  %222 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %223 = icmp eq i32 %222, -1
  br i1 %223, label %224, label %275

224:                                              ; preds = %221
  br label %225

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %227 = call ptr @__errno_location() #12
  %228 = load i32, ptr %227, align 4, !tbaa !5
  store i32 %228, ptr %6, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = call i32 @s2n_print_stacktrace(ptr noundef %229)
  %231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %232 = trunc i8 %231 to i1
  br i1 %232, label %233, label %255

233:                                              ; preds = %226
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = call i32 @fileno(ptr noundef %234) #11
  %236 = call i32 @isatty(i32 noundef %235) #11
  %237 = icmp ne i32 %236, 0
  br i1 %237, label %238, label %255

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

255:                                              ; preds = %233, %226
  %256 = load i32, ptr %6, align 4, !tbaa !5
  %257 = call ptr @__errno_location() #12
  store i32 %256, ptr %257, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = load i32, ptr @test_count, align 4, !tbaa !5
  %260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror(i32 noundef %261, ptr noundef @.str.4)
  %263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call ptr @s2n_strerror_debug(i32 noundef %264, ptr noundef @.str.4)
  %266 = call ptr @__errno_location() #12
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call ptr @strerror(i32 noundef %267) #11
  %269 = call ptr @__errno_location() #12
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %258, ptr noundef @.str.5, i32 noundef %259, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 43, ptr noundef %262, ptr noundef %265, ptr noundef %268, i32 noundef %270) #11
  br label %272

272:                                              ; preds = %255, %238
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %273

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

274:                                              ; No predecessors!
  br label %275

275:                                              ; preds = %274, %221
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = call i32 @s2n_enable_atexit()
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %282, label %333

282:                                              ; preds = %277
  br label %283

283:                                              ; preds = %282
  br label %284

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

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

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

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

330:                                              ; preds = %313, %296
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %331

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

332:                                              ; No predecessors!
  br label %333

333:                                              ; preds = %332, %277
  br label %334

334:                                              ; preds = %333
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  %337 = call i32 @s2n_init()
  %338 = icmp eq i32 %337, -1
  br i1 %338, label %339, label %390

339:                                              ; preds = %336
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %342 = call ptr @__errno_location() #12
  %343 = load i32, ptr %342, align 4, !tbaa !5
  store i32 %343, ptr %8, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @s2n_print_stacktrace(ptr noundef %344)
  %346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %347 = trunc i8 %346 to i1
  br i1 %347, label %348, label %370

348:                                              ; preds = %341
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @fileno(ptr noundef %349) #11
  %351 = call i32 @isatty(i32 noundef %350) #11
  %352 = icmp ne i32 %351, 0
  br i1 %352, label %353, label %370

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

370:                                              ; preds = %348, %341
  %371 = load i32, ptr %8, align 4, !tbaa !5
  %372 = call ptr @__errno_location() #12
  store i32 %371, ptr %372, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef @.str.4)
  %378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror_debug(i32 noundef %379, ptr noundef @.str.4)
  %381 = call ptr @__errno_location() #12
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @strerror(i32 noundef %382) #11
  %384 = call ptr @__errno_location() #12
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef @.str.5, i32 noundef %374, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 43, ptr noundef %377, ptr noundef %380, ptr noundef %383, i32 noundef %385) #11
  br label %387

387:                                              ; preds = %370, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %388

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

389:                                              ; No predecessors!
  br label %390

390:                                              ; preds = %389, %336
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = add nsw i32 %394, 1
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %396 = call i32 (...) @s2n_disable_tls13_in_test()
  %397 = icmp eq i32 %396, -1
  br i1 %397, label %398, label %449

398:                                              ; preds = %393
  br label %399

399:                                              ; preds = %398
  br label %400

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

407:                                              ; preds = %400
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @fileno(ptr noundef %408) #11
  %410 = call i32 @isatty(i32 noundef %409) #11
  %411 = icmp ne i32 %410, 0
  br i1 %411, label %412, label %429

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

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

446:                                              ; preds = %429, %412
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %447

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

448:                                              ; No predecessors!
  br label %449

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

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr @test_count, align 4, !tbaa !5
  %454 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %454, label %455, label %506

455:                                              ; preds = %451
  br label %456

456:                                              ; preds = %455
  br label %457

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

464:                                              ; preds = %457
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #11
  %467 = call i32 @isatty(i32 noundef %466) #11
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %486

469:                                              ; preds = %464
  %470 = load i32, ptr %10, align 4, !tbaa !5
  %471 = call ptr @__errno_location() #12
  store i32 %470, ptr %471, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror(i32 noundef %475, ptr noundef @.str.4)
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror_debug(i32 noundef %478, ptr noundef @.str.4)
  %480 = call ptr @__errno_location() #12
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @strerror(i32 noundef %481) #11
  %483 = call ptr @__errno_location() #12
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %472, ptr noundef @.str.2, i32 noundef %473, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 48, ptr noundef %476, ptr noundef %479, ptr noundef %482, i32 noundef %484) #11
  br label %503

486:                                              ; preds = %464, %457
  %487 = load i32, ptr %10, align 4, !tbaa !5
  %488 = call ptr @__errno_location() #12
  store i32 %487, ptr %488, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef @.str.4)
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef @.str.4)
  %497 = call ptr @__errno_location() #12
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @strerror(i32 noundef %498) #11
  %500 = call ptr @__errno_location() #12
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef @.str.5, i32 noundef %490, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 48, ptr noundef %493, ptr noundef %496, ptr noundef %499, i32 noundef %501) #11
  br label %503

503:                                              ; preds = %486, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %504

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

505:                                              ; No predecessors!
  br label %506

506:                                              ; preds = %505, %451
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  %510 = call i32 @s2n_cleanup()
  %511 = icmp eq i32 %510, -1
  br i1 %511, label %512, label %563

512:                                              ; preds = %509
  br label %513

513:                                              ; preds = %512
  br label %514

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

521:                                              ; preds = %514
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 @fileno(ptr noundef %522) #11
  %524 = call i32 @isatty(i32 noundef %523) #11
  %525 = icmp ne i32 %524, 0
  br i1 %525, label %526, label %543

526:                                              ; preds = %521
  %527 = load i32, ptr %11, align 4, !tbaa !5
  %528 = call ptr @__errno_location() #12
  store i32 %527, ptr %528, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror(i32 noundef %532, ptr noundef @.str.4)
  %534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror_debug(i32 noundef %535, ptr noundef @.str.4)
  %537 = call ptr @__errno_location() #12
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @strerror(i32 noundef %538) #11
  %540 = call ptr @__errno_location() #12
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef @.str.2, i32 noundef %530, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 49, ptr noundef %533, ptr noundef %536, ptr noundef %539, i32 noundef %541) #11
  br label %560

543:                                              ; preds = %521, %514
  %544 = load i32, ptr %11, align 4, !tbaa !5
  %545 = call ptr @__errno_location() #12
  store i32 %544, ptr %545, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef @.str.4)
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef @.str.4)
  %554 = call ptr @__errno_location() #12
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #11
  %557 = call ptr @__errno_location() #12
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef @.str.5, i32 noundef %547, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 49, ptr noundef %550, ptr noundef %553, ptr noundef %556, i32 noundef %558) #11
  br label %560

560:                                              ; preds = %543, %526
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %561

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

562:                                              ; No predecessors!
  br label %563

563:                                              ; preds = %562, %509
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  %567 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %568 = icmp eq i32 %567, -1
  br i1 %568, label %569, label %620

569:                                              ; preds = %566
  br label %570

570:                                              ; preds = %569
  br label %571

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

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

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

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

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

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

619:                                              ; No predecessors!
  br label %620

620:                                              ; preds = %619, %566
  br label %621

621:                                              ; preds = %620
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %623 = trunc i8 %622 to i1
  br i1 %623, label %624, label %640

624:                                              ; preds = %621
  %625 = load ptr, ptr @stdout, align 8, !tbaa !9
  %626 = call i32 @fileno(ptr noundef %625) #11
  %627 = call i32 @isatty(i32 noundef %626) #11
  %628 = icmp ne i32 %627, 0
  br i1 %628, label %629, label %640

629:                                              ; preds = %624
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %636

632:                                              ; preds = %629
  %633 = load ptr, ptr @stdout, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef @.str.12, i32 noundef %634) #11
  br label %639

636:                                              ; preds = %629
  %637 = load ptr, ptr @stdout, align 8, !tbaa !9
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef @.str.13) #11
  br label %639

639:                                              ; preds = %636, %632
  br label %651

640:                                              ; preds = %624, %621
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = icmp ne i32 %641, 0
  br i1 %642, label %643, label %647

643:                                              ; preds = %640
  %644 = load ptr, ptr @stdout, align 8, !tbaa !9
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef @.str.14, i32 noundef %645) #11
  br label %650

647:                                              ; preds = %640
  %648 = load ptr, ptr @stdout, align 8, !tbaa !9
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %648, ptr noundef @.str.15) #11
  br label %650

650:                                              ; preds = %647, %643
  br label %651

651:                                              ; preds = %650, %639
  store i32 0, ptr %3, align 4
  br label %9220

652:                                              ; No predecessors!
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %657, label %709, label %658

658:                                              ; preds = %654
  br label %659

659:                                              ; preds = %658
  br label %660

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

667:                                              ; preds = %660
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = call i32 @fileno(ptr noundef %668) #11
  %670 = call i32 @isatty(i32 noundef %669) #11
  %671 = icmp ne i32 %670, 0
  br i1 %671, label %672, label %689

672:                                              ; preds = %667
  %673 = load i32, ptr %13, align 4, !tbaa !5
  %674 = call ptr @__errno_location() #12
  store i32 %673, ptr %674, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef @.str.4)
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror_debug(i32 noundef %681, ptr noundef @.str.4)
  %683 = call ptr @__errno_location() #12
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #11
  %686 = call ptr @__errno_location() #12
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef @.str.2, i32 noundef %676, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 51, ptr noundef %679, ptr noundef %682, ptr noundef %685, i32 noundef %687) #11
  br label %706

689:                                              ; preds = %667, %660
  %690 = load i32, ptr %13, align 4, !tbaa !5
  %691 = call ptr @__errno_location() #12
  store i32 %690, ptr %691, align 4, !tbaa !5
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = load i32, ptr @test_count, align 4, !tbaa !5
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror(i32 noundef %695, ptr noundef @.str.4)
  %697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror_debug(i32 noundef %698, ptr noundef @.str.4)
  %700 = call ptr @__errno_location() #12
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call ptr @strerror(i32 noundef %701) #11
  %703 = call ptr @__errno_location() #12
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %692, ptr noundef @.str.5, i32 noundef %693, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 51, ptr noundef %696, ptr noundef %699, ptr noundef %702, i32 noundef %704) #11
  br label %706

706:                                              ; preds = %689, %672
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %707

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

708:                                              ; No predecessors!
  br label %709

709:                                              ; preds = %708, %654
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %714, label %766, label %715

715:                                              ; preds = %711
  br label %716

716:                                              ; preds = %715
  br label %717

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

724:                                              ; preds = %717
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = call i32 @fileno(ptr noundef %725) #11
  %727 = call i32 @isatty(i32 noundef %726) #11
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %746

729:                                              ; preds = %724
  %730 = load i32, ptr %14, align 4, !tbaa !5
  %731 = call ptr @__errno_location() #12
  store i32 %730, ptr %731, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror(i32 noundef %735, ptr noundef @.str.4)
  %737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef @.str.4)
  %740 = call ptr @__errno_location() #12
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = call ptr @strerror(i32 noundef %741) #11
  %743 = call ptr @__errno_location() #12
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef @.str.2, i32 noundef %733, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %736, ptr noundef %739, ptr noundef %742, i32 noundef %744) #11
  br label %763

746:                                              ; preds = %724, %717
  %747 = load i32, ptr %14, align 4, !tbaa !5
  %748 = call ptr @__errno_location() #12
  store i32 %747, ptr %748, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call ptr @s2n_strerror(i32 noundef %752, ptr noundef @.str.4)
  %754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror_debug(i32 noundef %755, ptr noundef @.str.4)
  %757 = call ptr @__errno_location() #12
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @strerror(i32 noundef %758) #11
  %760 = call ptr @__errno_location() #12
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %749, ptr noundef @.str.5, i32 noundef %750, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %753, ptr noundef %756, ptr noundef %759, i32 noundef %761) #11
  br label %763

763:                                              ; preds = %746, %729
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %764

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

765:                                              ; No predecessors!
  br label %766

766:                                              ; preds = %765, %711
  br label %767

767:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  store ptr null, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  store ptr null, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  store ptr null, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  store ptr null, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %19) #11
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  store i32 -1, ptr %20, align 4, !tbaa !5
  br label %768

768:                                              ; preds = %767
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %771, ptr %16, align 8, !tbaa !9
  %772 = icmp eq ptr %771, null
  br i1 %772, label %773, label %826

773:                                              ; preds = %768
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %776 = call ptr @__errno_location() #12
  %777 = load i32, ptr %776, align 4, !tbaa !5
  store i32 %777, ptr %21, 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 %21, 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.18, ptr noundef @.str.1, i32 noundef 67, ptr noundef %794, ptr noundef %797, ptr noundef %800, i32 noundef %802) #11
  br label %821

804:                                              ; preds = %782, %775
  %805 = load i32, ptr %21, 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.18, ptr noundef @.str.1, i32 noundef 67, 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 %21) #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, %768
  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 noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %832, ptr %17, align 8, !tbaa !9
  %833 = icmp eq ptr %832, null
  br i1 %833, label %834, label %887

834:                                              ; preds = %829
  br label %835

835:                                              ; preds = %834
  br label %836

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

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

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

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

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

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

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

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = call ptr @s2n_config_new()
  store ptr %893, ptr %15, align 8, !tbaa !9
  %894 = icmp eq ptr %893, null
  br i1 %894, label %895, label %948

895:                                              ; preds = %890
  br label %896

896:                                              ; preds = %895
  br label %897

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

904:                                              ; preds = %897
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @fileno(ptr noundef %905) #11
  %907 = call i32 @isatty(i32 noundef %906) #11
  %908 = icmp ne i32 %907, 0
  br i1 %908, label %909, label %926

909:                                              ; preds = %904
  %910 = load i32, ptr %23, align 4, !tbaa !5
  %911 = call ptr @__errno_location() #12
  store i32 %910, ptr %911, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror(i32 noundef %915, ptr noundef @.str.4)
  %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_debug(i32 noundef %918, ptr noundef @.str.4)
  %920 = call ptr @__errno_location() #12
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #11
  %923 = call ptr @__errno_location() #12
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef @.str.2, i32 noundef %913, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 69, ptr noundef %916, ptr noundef %919, ptr noundef %922, i32 noundef %924) #11
  br label %943

926:                                              ; preds = %904, %897
  %927 = load i32, ptr %23, align 4, !tbaa !5
  %928 = call ptr @__errno_location() #12
  store i32 %927, ptr %928, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror(i32 noundef %932, ptr noundef @.str.4)
  %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_debug(i32 noundef %935, ptr noundef @.str.4)
  %937 = call ptr @__errno_location() #12
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @strerror(i32 noundef %938) #11
  %940 = call ptr @__errno_location() #12
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %929, ptr noundef @.str.5, i32 noundef %930, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 69, ptr noundef %933, ptr noundef %936, ptr noundef %939, i32 noundef %941) #11
  br label %943

943:                                              ; preds = %926, %909
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %944

944:                                              ; preds = %943
  br label %945

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

946:                                              ; No predecessors!
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947, %890
  br label %949

949:                                              ; preds = %948
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  %952 = load i32, ptr @test_count, align 4, !tbaa !5
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr @test_count, align 4, !tbaa !5
  %954 = load ptr, ptr %16, align 8, !tbaa !9
  %955 = call i32 @s2n_read_test_pem(ptr noundef @.str.21, ptr noundef %954, i64 noundef 12000)
  %956 = icmp eq i32 %955, -1
  br i1 %956, label %957, label %1010

957:                                              ; preds = %951
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %960 = call ptr @__errno_location() #12
  %961 = load i32, ptr %960, align 4, !tbaa !5
  store i32 %961, ptr %24, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @s2n_print_stacktrace(ptr noundef %962)
  %964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %965 = trunc i8 %964 to i1
  br i1 %965, label %966, label %988

966:                                              ; preds = %959
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = call i32 @fileno(ptr noundef %967) #11
  %969 = call i32 @isatty(i32 noundef %968) #11
  %970 = icmp ne i32 %969, 0
  br i1 %970, label %971, label %988

971:                                              ; preds = %966
  %972 = load i32, ptr %24, align 4, !tbaa !5
  %973 = call ptr @__errno_location() #12
  store i32 %972, ptr %973, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror(i32 noundef %977, ptr noundef @.str.4)
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef @.str.4)
  %982 = call ptr @__errno_location() #12
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #11
  %985 = call ptr @__errno_location() #12
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef @.str.2, i32 noundef %975, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 71, ptr noundef %978, ptr noundef %981, ptr noundef %984, i32 noundef %986) #11
  br label %1005

988:                                              ; preds = %966, %959
  %989 = load i32, ptr %24, align 4, !tbaa !5
  %990 = call ptr @__errno_location() #12
  store i32 %989, ptr %990, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror(i32 noundef %994, ptr noundef @.str.4)
  %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_debug(i32 noundef %997, ptr noundef @.str.4)
  %999 = call ptr @__errno_location() #12
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @strerror(i32 noundef %1000) #11
  %1002 = call ptr @__errno_location() #12
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %991, ptr noundef @.str.5, i32 noundef %992, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 71, ptr noundef %995, ptr noundef %998, ptr noundef %1001, i32 noundef %1003) #11
  br label %1005

1005:                                             ; preds = %988, %971
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

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

1008:                                             ; No predecessors!
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009, %951
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr @test_count, align 4, !tbaa !5
  %1016 = load ptr, ptr %17, align 8, !tbaa !9
  %1017 = call i32 @s2n_read_test_pem(ptr noundef @.str.23, ptr noundef %1016, i64 noundef 12000)
  %1018 = icmp eq i32 %1017, -1
  br i1 %1018, label %1019, label %1072

1019:                                             ; preds = %1013
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %1022 = call ptr @__errno_location() #12
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  store i32 %1023, ptr %25, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @s2n_print_stacktrace(ptr noundef %1024)
  %1026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1027 = trunc i8 %1026 to i1
  br i1 %1027, label %1028, label %1050

1028:                                             ; preds = %1021
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @fileno(ptr noundef %1029) #11
  %1031 = call i32 @isatty(i32 noundef %1030) #11
  %1032 = icmp ne i32 %1031, 0
  br i1 %1032, label %1033, label %1050

1033:                                             ; preds = %1028
  %1034 = load i32, ptr %25, align 4, !tbaa !5
  %1035 = call ptr @__errno_location() #12
  store i32 %1034, ptr %1035, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef @.str.4)
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror_debug(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call ptr @__errno_location() #12
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #11
  %1047 = call ptr @__errno_location() #12
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1036, ptr noundef @.str.2, i32 noundef %1037, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1040, ptr noundef %1043, ptr noundef %1046, i32 noundef %1048) #11
  br label %1067

1050:                                             ; preds = %1028, %1021
  %1051 = load i32, ptr %25, align 4, !tbaa !5
  %1052 = call ptr @__errno_location() #12
  store i32 %1051, ptr %1052, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef @.str.4)
  %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_debug(i32 noundef %1059, ptr noundef @.str.4)
  %1061 = call ptr @__errno_location() #12
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @strerror(i32 noundef %1062) #11
  %1064 = call ptr @__errno_location() #12
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1053, ptr noundef @.str.5, i32 noundef %1054, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1057, ptr noundef %1060, ptr noundef %1063, i32 noundef %1065) #11
  br label %1067

1067:                                             ; preds = %1050, %1033
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

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

1070:                                             ; No predecessors!
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

1072:                                             ; preds = %1071, %1013
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %1078, ptr %18, align 8, !tbaa !9
  %1079 = icmp eq ptr %1078, null
  br i1 %1079, label %1080, label %1133

1080:                                             ; preds = %1075
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1083 = call ptr @__errno_location() #12
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  store i32 %1084, ptr %26, align 4, !tbaa !5
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @s2n_print_stacktrace(ptr noundef %1085)
  %1087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1088 = trunc i8 %1087 to i1
  br i1 %1088, label %1089, label %1111

1089:                                             ; preds = %1082
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @fileno(ptr noundef %1090) #11
  %1092 = call i32 @isatty(i32 noundef %1091) #11
  %1093 = icmp ne i32 %1092, 0
  br i1 %1093, label %1094, label %1111

1094:                                             ; preds = %1089
  %1095 = load i32, ptr %26, align 4, !tbaa !5
  %1096 = call ptr @__errno_location() #12
  store i32 %1095, ptr %1096, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call ptr @s2n_strerror(i32 noundef %1100, ptr noundef @.str.4)
  %1102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call ptr @s2n_strerror_debug(i32 noundef %1103, ptr noundef @.str.4)
  %1105 = call ptr @__errno_location() #12
  %1106 = load i32, ptr %1105, align 4, !tbaa !5
  %1107 = call ptr @strerror(i32 noundef %1106) #11
  %1108 = call ptr @__errno_location() #12
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1097, ptr noundef @.str.2, i32 noundef %1098, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1101, ptr noundef %1104, ptr noundef %1107, i32 noundef %1109) #11
  br label %1128

1111:                                             ; preds = %1089, %1082
  %1112 = load i32, ptr %26, align 4, !tbaa !5
  %1113 = call ptr @__errno_location() #12
  store i32 %1112, ptr %1113, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef @.str.4)
  %1119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call ptr @s2n_strerror_debug(i32 noundef %1120, ptr noundef @.str.4)
  %1122 = call ptr @__errno_location() #12
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #11
  %1125 = call ptr @__errno_location() #12
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  %1127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1114, ptr noundef @.str.5, i32 noundef %1115, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1118, ptr noundef %1121, ptr noundef %1124, i32 noundef %1126) #11
  br label %1128

1128:                                             ; preds = %1111, %1094
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

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

1131:                                             ; No predecessors!
  br label %1132

1132:                                             ; preds = %1131
  br label %1133

1133:                                             ; preds = %1132, %1075
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134
  br label %1136

1136:                                             ; preds = %1135
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = add nsw i32 %1137, 1
  store i32 %1138, ptr @test_count, align 4, !tbaa !5
  %1139 = load ptr, ptr %18, align 8, !tbaa !9
  %1140 = load ptr, ptr %16, align 8, !tbaa !9
  %1141 = load ptr, ptr %17, align 8, !tbaa !9
  %1142 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1139, ptr noundef %1140, ptr noundef %1141)
  %1143 = icmp eq i32 %1142, -1
  br i1 %1143, label %1144, label %1197

1144:                                             ; preds = %1136
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %1147 = call ptr @__errno_location() #12
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  store i32 %1148, ptr %27, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @s2n_print_stacktrace(ptr noundef %1149)
  %1151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1152 = trunc i8 %1151 to i1
  br i1 %1152, label %1153, label %1175

1153:                                             ; preds = %1146
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @fileno(ptr noundef %1154) #11
  %1156 = call i32 @isatty(i32 noundef %1155) #11
  %1157 = icmp ne i32 %1156, 0
  br i1 %1157, label %1158, label %1175

1158:                                             ; preds = %1153
  %1159 = load i32, ptr %27, align 4, !tbaa !5
  %1160 = call ptr @__errno_location() #12
  store i32 %1159, ptr %1160, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror(i32 noundef %1164, ptr noundef @.str.4)
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef @.str.4)
  %1169 = call ptr @__errno_location() #12
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @strerror(i32 noundef %1170) #11
  %1172 = call ptr @__errno_location() #12
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1161, ptr noundef @.str.2, i32 noundef %1162, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1165, ptr noundef %1168, ptr noundef %1171, i32 noundef %1173) #11
  br label %1192

1175:                                             ; preds = %1153, %1146
  %1176 = load i32, ptr %27, align 4, !tbaa !5
  %1177 = call ptr @__errno_location() #12
  store i32 %1176, ptr %1177, align 4, !tbaa !5
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror(i32 noundef %1181, ptr noundef @.str.4)
  %1183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef @.str.4)
  %1186 = call ptr @__errno_location() #12
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call ptr @strerror(i32 noundef %1187) #11
  %1189 = call ptr @__errno_location() #12
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1178, ptr noundef @.str.5, i32 noundef %1179, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1182, ptr noundef %1185, ptr noundef %1188, i32 noundef %1190) #11
  br label %1192

1192:                                             ; preds = %1175, %1158
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1193

1193:                                             ; preds = %1192
  br label %1194

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

1195:                                             ; No predecessors!
  br label %1196

1196:                                             ; preds = %1195
  br label %1197

1197:                                             ; preds = %1196, %1136
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = load ptr, ptr %18, align 8, !tbaa !9
  %1204 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %1203, i32 0, i32 0
  %1205 = load ptr, ptr %1204, align 8, !tbaa !15
  %1206 = getelementptr inbounds %struct.s2n_cert_chain, ptr %1205, i32 0, i32 1
  %1207 = load ptr, ptr %1206, align 8, !tbaa !18
  %1208 = getelementptr inbounds %struct.s2n_cert, ptr %1207, i32 0, i32 3
  %1209 = call i32 @s2n_asn1der_to_public_key_and_type(ptr noundef %19, ptr noundef %20, ptr noundef %1208)
  %1210 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  store i32 %1209, ptr %1210, align 4
  %1211 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  %1212 = load i32, ptr %1211, align 4
  %1213 = call zeroext i1 @s2n_result_is_ok(i32 %1212)
  br i1 %1213, label %1267, label %1214

1214:                                             ; preds = %1200
  br label %1215

1215:                                             ; preds = %1214
  br label %1216

1216:                                             ; preds = %1215
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1217 = call ptr @__errno_location() #12
  %1218 = load i32, ptr %1217, align 4, !tbaa !5
  store i32 %1218, ptr %29, align 4, !tbaa !5
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @s2n_print_stacktrace(ptr noundef %1219)
  %1221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1222 = trunc i8 %1221 to i1
  br i1 %1222, label %1223, label %1245

1223:                                             ; preds = %1216
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = call i32 @fileno(ptr noundef %1224) #11
  %1226 = call i32 @isatty(i32 noundef %1225) #11
  %1227 = icmp ne i32 %1226, 0
  br i1 %1227, label %1228, label %1245

1228:                                             ; preds = %1223
  %1229 = load i32, ptr %29, align 4, !tbaa !5
  %1230 = call ptr @__errno_location() #12
  store i32 %1229, ptr %1230, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef @.str.4)
  %1239 = call ptr @__errno_location() #12
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @strerror(i32 noundef %1240) #11
  %1242 = call ptr @__errno_location() #12
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1231, ptr noundef @.str.2, i32 noundef %1232, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1235, ptr noundef %1238, ptr noundef %1241, i32 noundef %1243) #11
  br label %1262

1245:                                             ; preds = %1223, %1216
  %1246 = load i32, ptr %29, align 4, !tbaa !5
  %1247 = call ptr @__errno_location() #12
  store i32 %1246, ptr %1247, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef @.str.4)
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef @.str.4)
  %1256 = call ptr @__errno_location() #12
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #11
  %1259 = call ptr @__errno_location() #12
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef @.str.5, i32 noundef %1249, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1252, ptr noundef %1255, ptr noundef %1258, i32 noundef %1260) #11
  br label %1262

1262:                                             ; preds = %1245, %1228
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

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

1265:                                             ; No predecessors!
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

1267:                                             ; preds = %1266, %1200
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr @test_count, align 4, !tbaa !5
  %1273 = load i32, ptr %20, align 4, !tbaa !5
  %1274 = icmp eq i32 %1273, 2
  br i1 %1274, label %1328, label %1275

1275:                                             ; preds = %1270
  br label %1276

1276:                                             ; preds = %1275
  br label %1277

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

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

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

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

1323:                                             ; preds = %1306, %1289
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

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

1326:                                             ; No predecessors!
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327, %1270
  br label %1329

1329:                                             ; preds = %1328
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = add nsw i32 %1332, 1
  store i32 %1333, ptr @test_count, align 4, !tbaa !5
  %1334 = load ptr, ptr %18, align 8, !tbaa !9
  %1335 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %1334, i32 0, i32 1
  %1336 = load ptr, ptr %1335, align 8, !tbaa !20
  %1337 = call i32 @s2n_pkey_match(ptr noundef %19, ptr noundef %1336)
  %1338 = icmp eq i32 %1337, -1
  br i1 %1338, label %1339, label %1392

1339:                                             ; preds = %1331
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

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

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

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

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

1387:                                             ; preds = %1370, %1353
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

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

1390:                                             ; No predecessors!
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391, %1331
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = add nsw i32 %1396, 1
  store i32 %1397, ptr @test_count, align 4, !tbaa !5
  %1398 = load ptr, ptr %18, align 8, !tbaa !9
  %1399 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1398)
  %1400 = icmp eq i32 %1399, -1
  br i1 %1400, label %1401, label %1454

1401:                                             ; preds = %1395
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

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

1410:                                             ; preds = %1403
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @fileno(ptr noundef %1411) #11
  %1413 = call i32 @isatty(i32 noundef %1412) #11
  %1414 = icmp ne i32 %1413, 0
  br i1 %1414, label %1415, label %1432

1415:                                             ; preds = %1410
  %1416 = load i32, ptr %32, align 4, !tbaa !5
  %1417 = call ptr @__errno_location() #12
  store i32 %1416, ptr %1417, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call ptr @__errno_location() #12
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #11
  %1429 = call ptr @__errno_location() #12
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.2, i32 noundef %1419, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #11
  br label %1449

1432:                                             ; preds = %1410, %1403
  %1433 = load i32, ptr %32, align 4, !tbaa !5
  %1434 = call ptr @__errno_location() #12
  store i32 %1433, ptr %1434, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = load i32, ptr @test_count, align 4, !tbaa !5
  %1437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef @.str.4)
  %1440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror_debug(i32 noundef %1441, ptr noundef @.str.4)
  %1443 = call ptr @__errno_location() #12
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @strerror(i32 noundef %1444) #11
  %1446 = call ptr @__errno_location() #12
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1435, ptr noundef @.str.5, i32 noundef %1436, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1439, ptr noundef %1442, ptr noundef %1445, i32 noundef %1447) #11
  br label %1449

1449:                                             ; preds = %1432, %1415
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

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

1452:                                             ; No predecessors!
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

1454:                                             ; preds = %1453, %1395
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = add nsw i32 %1458, 1
  store i32 %1459, ptr @test_count, align 4, !tbaa !5
  %1460 = load ptr, ptr %15, align 8, !tbaa !9
  %1461 = call i32 @s2n_config_free(ptr noundef %1460)
  %1462 = icmp eq i32 %1461, -1
  br i1 %1462, label %1463, label %1516

1463:                                             ; preds = %1457
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1466 = call ptr @__errno_location() #12
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  store i32 %1467, ptr %33, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = call i32 @s2n_print_stacktrace(ptr noundef %1468)
  %1470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1471 = trunc i8 %1470 to i1
  br i1 %1471, label %1472, label %1494

1472:                                             ; preds = %1465
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @fileno(ptr noundef %1473) #11
  %1475 = call i32 @isatty(i32 noundef %1474) #11
  %1476 = icmp ne i32 %1475, 0
  br i1 %1476, label %1477, label %1494

1477:                                             ; preds = %1472
  %1478 = load i32, ptr %33, align 4, !tbaa !5
  %1479 = call ptr @__errno_location() #12
  store i32 %1478, ptr %1479, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef @.str.4)
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror_debug(i32 noundef %1486, ptr noundef @.str.4)
  %1488 = call ptr @__errno_location() #12
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #11
  %1491 = call ptr @__errno_location() #12
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef @.str.2, i32 noundef %1481, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1484, ptr noundef %1487, ptr noundef %1490, i32 noundef %1492) #11
  br label %1511

1494:                                             ; preds = %1472, %1465
  %1495 = load i32, ptr %33, align 4, !tbaa !5
  %1496 = call ptr @__errno_location() #12
  store i32 %1495, ptr %1496, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror(i32 noundef %1500, ptr noundef @.str.4)
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror_debug(i32 noundef %1503, ptr noundef @.str.4)
  %1505 = call ptr @__errno_location() #12
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @strerror(i32 noundef %1506) #11
  %1508 = call ptr @__errno_location() #12
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef @.str.5, i32 noundef %1498, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1501, ptr noundef %1504, ptr noundef %1507, i32 noundef %1509) #11
  br label %1511

1511:                                             ; preds = %1494, %1477
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

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

1514:                                             ; No predecessors!
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515, %1457
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr @test_count, align 4, !tbaa !5
  %1522 = call i32 @s2n_pkey_free(ptr noundef %19)
  %1523 = icmp eq i32 %1522, -1
  br i1 %1523, label %1524, label %1577

1524:                                             ; preds = %1519
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1527 = call ptr @__errno_location() #12
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  store i32 %1528, ptr %34, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = call i32 @s2n_print_stacktrace(ptr noundef %1529)
  %1531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1532 = trunc i8 %1531 to i1
  br i1 %1532, label %1533, label %1555

1533:                                             ; preds = %1526
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @fileno(ptr noundef %1534) #11
  %1536 = call i32 @isatty(i32 noundef %1535) #11
  %1537 = icmp ne i32 %1536, 0
  br i1 %1537, label %1538, label %1555

1538:                                             ; preds = %1533
  %1539 = load i32, ptr %34, align 4, !tbaa !5
  %1540 = call ptr @__errno_location() #12
  store i32 %1539, ptr %1540, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror(i32 noundef %1544, ptr noundef @.str.4)
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef @.str.4)
  %1549 = call ptr @__errno_location() #12
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #11
  %1552 = call ptr @__errno_location() #12
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1541, ptr noundef @.str.2, i32 noundef %1542, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1545, ptr noundef %1548, ptr noundef %1551, i32 noundef %1553) #11
  br label %1572

1555:                                             ; preds = %1533, %1526
  %1556 = load i32, ptr %34, align 4, !tbaa !5
  %1557 = call ptr @__errno_location() #12
  store i32 %1556, ptr %1557, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror(i32 noundef %1561, ptr noundef @.str.4)
  %1563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror_debug(i32 noundef %1564, ptr noundef @.str.4)
  %1566 = call ptr @__errno_location() #12
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @strerror(i32 noundef %1567) #11
  %1569 = call ptr @__errno_location() #12
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1558, ptr noundef @.str.5, i32 noundef %1559, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1562, ptr noundef %1565, ptr noundef %1568, i32 noundef %1570) #11
  br label %1572

1572:                                             ; preds = %1555, %1538
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

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

1575:                                             ; No predecessors!
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576, %1519
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

1579:                                             ; preds = %1578
  %1580 = load ptr, ptr %16, align 8, !tbaa !9
  call void @free(ptr noundef %1580) #11
  %1581 = load ptr, ptr %17, align 8, !tbaa !9
  call void @free(ptr noundef %1581) #11
  br label %1582

1582:                                             ; preds = %1579
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr @test_count, align 4, !tbaa !5
  %1585 = call i32 @s2n_pkey_free(ptr noundef %19)
  %1586 = icmp eq i32 %1585, -1
  br i1 %1586, label %1587, label %1640

1587:                                             ; preds = %1582
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

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

1596:                                             ; preds = %1589
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = call i32 @fileno(ptr noundef %1597) #11
  %1599 = call i32 @isatty(i32 noundef %1598) #11
  %1600 = icmp ne i32 %1599, 0
  br i1 %1600, label %1601, label %1618

1601:                                             ; preds = %1596
  %1602 = load i32, ptr %35, align 4, !tbaa !5
  %1603 = call ptr @__errno_location() #12
  store i32 %1602, ptr %1603, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror(i32 noundef %1607, ptr noundef @.str.4)
  %1609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror_debug(i32 noundef %1610, ptr noundef @.str.4)
  %1612 = call ptr @__errno_location() #12
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @strerror(i32 noundef %1613) #11
  %1615 = call ptr @__errno_location() #12
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1604, ptr noundef @.str.2, i32 noundef %1605, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1608, ptr noundef %1611, ptr noundef %1614, i32 noundef %1616) #11
  br label %1635

1618:                                             ; preds = %1596, %1589
  %1619 = load i32, ptr %35, align 4, !tbaa !5
  %1620 = call ptr @__errno_location() #12
  store i32 %1619, ptr %1620, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1624 = load i32, ptr %1623, align 4, !tbaa !5
  %1625 = call ptr @s2n_strerror(i32 noundef %1624, ptr noundef @.str.4)
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror_debug(i32 noundef %1627, ptr noundef @.str.4)
  %1629 = call ptr @__errno_location() #12
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @strerror(i32 noundef %1630) #11
  %1632 = call ptr @__errno_location() #12
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1621, ptr noundef @.str.5, i32 noundef %1622, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1625, ptr noundef %1628, ptr noundef %1631, i32 noundef %1633) #11
  br label %1635

1635:                                             ; preds = %1618, %1601
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

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

1638:                                             ; No predecessors!
  br label %1639

1639:                                             ; preds = %1638
  br label %1640

1640:                                             ; preds = %1639, %1582
  br label %1641

1641:                                             ; preds = %1640
  br label %1642

1642:                                             ; preds = %1641
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  store ptr null, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  store ptr null, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  store ptr null, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  store ptr null, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %40) #11
  call void @llvm.memset.p0.i64(ptr align 8 %40, i8 0, i64 48, i1 false)
  br label %1643

1643:                                             ; preds = %1642
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = add nsw i32 %1644, 1
  store i32 %1645, ptr @test_count, align 4, !tbaa !5
  %1646 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %1646, ptr %37, align 8, !tbaa !9
  %1647 = icmp eq ptr %1646, null
  br i1 %1647, label %1648, label %1701

1648:                                             ; preds = %1643
  br label %1649

1649:                                             ; preds = %1648
  br label %1650

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

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

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

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

1696:                                             ; preds = %1679, %1662
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

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

1699:                                             ; No predecessors!
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

1701:                                             ; preds = %1700, %1643
  br label %1702

1702:                                             ; preds = %1701
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

1704:                                             ; preds = %1703
  %1705 = load i32, ptr @test_count, align 4, !tbaa !5
  %1706 = add nsw i32 %1705, 1
  store i32 %1706, ptr @test_count, align 4, !tbaa !5
  %1707 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %1707, ptr %38, align 8, !tbaa !9
  %1708 = icmp eq ptr %1707, null
  br i1 %1708, label %1709, label %1762

1709:                                             ; preds = %1704
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

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

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

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

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

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

1758:                                             ; preds = %1757
  br label %1759

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

1760:                                             ; No predecessors!
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

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

1763:                                             ; preds = %1762
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr @test_count, align 4, !tbaa !5
  %1768 = call ptr @s2n_config_new()
  store ptr %1768, ptr %36, align 8, !tbaa !9
  %1769 = icmp eq ptr %1768, null
  br i1 %1769, label %1770, label %1823

1770:                                             ; preds = %1765
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

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

1779:                                             ; preds = %1772
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @fileno(ptr noundef %1780) #11
  %1782 = call i32 @isatty(i32 noundef %1781) #11
  %1783 = icmp ne i32 %1782, 0
  br i1 %1783, label %1784, label %1801

1784:                                             ; preds = %1779
  %1785 = load i32, ptr %43, align 4, !tbaa !5
  %1786 = call ptr @__errno_location() #12
  store i32 %1785, ptr %1786, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef @.str.4)
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef @.str.4)
  %1795 = call ptr @__errno_location() #12
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #11
  %1798 = call ptr @__errno_location() #12
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef @.str.2, i32 noundef %1788, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1791, ptr noundef %1794, ptr noundef %1797, i32 noundef %1799) #11
  br label %1818

1801:                                             ; preds = %1779, %1772
  %1802 = load i32, ptr %43, align 4, !tbaa !5
  %1803 = call ptr @__errno_location() #12
  store i32 %1802, ptr %1803, align 4, !tbaa !5
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = load i32, ptr @test_count, align 4, !tbaa !5
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror(i32 noundef %1807, ptr noundef @.str.4)
  %1809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror_debug(i32 noundef %1810, ptr noundef @.str.4)
  %1812 = call ptr @__errno_location() #12
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @strerror(i32 noundef %1813) #11
  %1815 = call ptr @__errno_location() #12
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1804, ptr noundef @.str.5, i32 noundef %1805, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1808, ptr noundef %1811, ptr noundef %1814, i32 noundef %1816) #11
  br label %1818

1818:                                             ; preds = %1801, %1784
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

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

1821:                                             ; No predecessors!
  br label %1822

1822:                                             ; preds = %1821
  br label %1823

1823:                                             ; preds = %1822, %1765
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824
  br label %1826

1826:                                             ; preds = %1825
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr @test_count, align 4, !tbaa !5
  %1829 = load ptr, ptr %37, align 8, !tbaa !9
  %1830 = call i32 @s2n_read_test_pem(ptr noundef @.str.21, ptr noundef %1829, i64 noundef 12000)
  %1831 = icmp eq i32 %1830, -1
  br i1 %1831, label %1832, label %1885

1832:                                             ; preds = %1826
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1835 = call ptr @__errno_location() #12
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  store i32 %1836, ptr %44, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @s2n_print_stacktrace(ptr noundef %1837)
  %1839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1840 = trunc i8 %1839 to i1
  br i1 %1840, label %1841, label %1863

1841:                                             ; preds = %1834
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = call i32 @fileno(ptr noundef %1842) #11
  %1844 = call i32 @isatty(i32 noundef %1843) #11
  %1845 = icmp ne i32 %1844, 0
  br i1 %1845, label %1846, label %1863

1846:                                             ; preds = %1841
  %1847 = load i32, ptr %44, align 4, !tbaa !5
  %1848 = call ptr @__errno_location() #12
  store i32 %1847, ptr %1848, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror(i32 noundef %1852, ptr noundef @.str.4)
  %1854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror_debug(i32 noundef %1855, ptr noundef @.str.4)
  %1857 = call ptr @__errno_location() #12
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #11
  %1860 = call ptr @__errno_location() #12
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1849, ptr noundef @.str.2, i32 noundef %1850, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1853, ptr noundef %1856, ptr noundef %1859, i32 noundef %1861) #11
  br label %1880

1863:                                             ; preds = %1841, %1834
  %1864 = load i32, ptr %44, align 4, !tbaa !5
  %1865 = call ptr @__errno_location() #12
  store i32 %1864, ptr %1865, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror_debug(i32 noundef %1872, ptr noundef @.str.4)
  %1874 = call ptr @__errno_location() #12
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #11
  %1877 = call ptr @__errno_location() #12
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef @.str.5, i32 noundef %1867, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1870, ptr noundef %1873, ptr noundef %1876, i32 noundef %1878) #11
  br label %1880

1880:                                             ; preds = %1863, %1846
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

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

1883:                                             ; No predecessors!
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1884, %1826
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr @test_count, align 4, !tbaa !5
  %1891 = load ptr, ptr %38, align 8, !tbaa !9
  %1892 = call i32 @s2n_read_test_pem(ptr noundef @.str.36, ptr noundef %1891, i64 noundef 12000)
  %1893 = icmp eq i32 %1892, -1
  br i1 %1893, label %1894, label %1947

1894:                                             ; preds = %1888
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1897 = call ptr @__errno_location() #12
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  store i32 %1898, ptr %45, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @s2n_print_stacktrace(ptr noundef %1899)
  %1901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1902 = trunc i8 %1901 to i1
  br i1 %1902, label %1903, label %1925

1903:                                             ; preds = %1896
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = call i32 @fileno(ptr noundef %1904) #11
  %1906 = call i32 @isatty(i32 noundef %1905) #11
  %1907 = icmp ne i32 %1906, 0
  br i1 %1907, label %1908, label %1925

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

1925:                                             ; preds = %1903, %1896
  %1926 = load i32, ptr %45, align 4, !tbaa !5
  %1927 = call ptr @__errno_location() #12
  store i32 %1926, ptr %1927, align 4, !tbaa !5
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = load i32, ptr @test_count, align 4, !tbaa !5
  %1930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @s2n_strerror(i32 noundef %1931, ptr noundef @.str.4)
  %1933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror_debug(i32 noundef %1934, ptr noundef @.str.4)
  %1936 = call ptr @__errno_location() #12
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @strerror(i32 noundef %1937) #11
  %1939 = call ptr @__errno_location() #12
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1928, ptr noundef @.str.5, i32 noundef %1929, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1932, ptr noundef %1935, ptr noundef %1938, i32 noundef %1940) #11
  br label %1942

1942:                                             ; preds = %1925, %1908
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

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

1945:                                             ; No predecessors!
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

1947:                                             ; preds = %1946, %1888
  br label %1948

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = add nsw i32 %1951, 1
  store i32 %1952, ptr @test_count, align 4, !tbaa !5
  %1953 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %1953, ptr %39, align 8, !tbaa !9
  %1954 = icmp eq ptr %1953, null
  br i1 %1954, label %1955, label %2008

1955:                                             ; preds = %1950
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1958 = call ptr @__errno_location() #12
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  store i32 %1959, ptr %46, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @s2n_print_stacktrace(ptr noundef %1960)
  %1962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1963 = trunc i8 %1962 to i1
  br i1 %1963, label %1964, label %1986

1964:                                             ; preds = %1957
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @fileno(ptr noundef %1965) #11
  %1967 = call i32 @isatty(i32 noundef %1966) #11
  %1968 = icmp ne i32 %1967, 0
  br i1 %1968, label %1969, label %1986

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

1986:                                             ; preds = %1964, %1957
  %1987 = load i32, ptr %46, align 4, !tbaa !5
  %1988 = call ptr @__errno_location() #12
  store i32 %1987, ptr %1988, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = load i32, ptr @test_count, align 4, !tbaa !5
  %1991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror(i32 noundef %1992, ptr noundef @.str.4)
  %1994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror_debug(i32 noundef %1995, ptr noundef @.str.4)
  %1997 = call ptr @__errno_location() #12
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @strerror(i32 noundef %1998) #11
  %2000 = call ptr @__errno_location() #12
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1989, ptr noundef @.str.5, i32 noundef %1990, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1993, ptr noundef %1996, ptr noundef %1999, i32 noundef %2001) #11
  br label %2003

2003:                                             ; preds = %1986, %1969
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

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

2006:                                             ; No predecessors!
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007, %1950
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

2010:                                             ; preds = %2009
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

2012:                                             ; preds = %2011
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = add nsw i32 %2013, 1
  store i32 %2014, ptr @test_count, align 4, !tbaa !5
  %2015 = load ptr, ptr %39, align 8, !tbaa !9
  %2016 = load ptr, ptr %37, align 8, !tbaa !9
  %2017 = load ptr, ptr %38, align 8, !tbaa !9
  %2018 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %2015, ptr noundef %2016, ptr noundef %2017)
  %2019 = icmp eq i32 %2018, -1
  br i1 %2019, label %2073, label %2020

2020:                                             ; preds = %2012
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

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

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

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

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

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

2069:                                             ; preds = %2068
  br label %2070

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

2071:                                             ; No predecessors!
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

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

2074:                                             ; preds = %2073
  br label %2075

2075:                                             ; preds = %2074
  br label %2076

2076:                                             ; preds = %2075
  %2077 = load i32, ptr @test_count, align 4, !tbaa !5
  %2078 = add nsw i32 %2077, 1
  store i32 %2078, ptr @test_count, align 4, !tbaa !5
  %2079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = icmp eq i32 %2080, 0
  br i1 %2081, label %2082, label %2135

2082:                                             ; preds = %2076
  br label %2083

2083:                                             ; preds = %2082
  br label %2084

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

2091:                                             ; preds = %2084
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @fileno(ptr noundef %2092) #11
  %2094 = call i32 @isatty(i32 noundef %2093) #11
  %2095 = icmp ne i32 %2094, 0
  br i1 %2095, label %2096, label %2113

2096:                                             ; preds = %2091
  %2097 = load i32, ptr %48, align 4, !tbaa !5
  %2098 = call ptr @__errno_location() #12
  store i32 %2097, ptr %2098, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror(i32 noundef %2102, ptr noundef @.str.4)
  %2104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror_debug(i32 noundef %2105, ptr noundef @.str.4)
  %2107 = call ptr @__errno_location() #12
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call ptr @strerror(i32 noundef %2108) #11
  %2110 = call ptr @__errno_location() #12
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2099, ptr noundef @.str.2, i32 noundef %2100, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2103, ptr noundef %2106, ptr noundef %2109, i32 noundef %2111) #11
  br label %2130

2113:                                             ; preds = %2091, %2084
  %2114 = load i32, ptr %48, align 4, !tbaa !5
  %2115 = call ptr @__errno_location() #12
  store i32 %2114, ptr %2115, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror_debug(i32 noundef %2122, ptr noundef @.str.4)
  %2124 = call ptr @__errno_location() #12
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @strerror(i32 noundef %2125) #11
  %2127 = call ptr @__errno_location() #12
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef @.str.5, i32 noundef %2117, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2120, ptr noundef %2123, ptr noundef %2126, i32 noundef %2128) #11
  br label %2130

2130:                                             ; preds = %2113, %2096
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

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

2133:                                             ; No predecessors!
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134, %2076
  br label %2136

2136:                                             ; preds = %2135
  br label %2137

2137:                                             ; preds = %2136
  br label %2138

2138:                                             ; preds = %2137
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = add nsw i32 %2139, 1
  store i32 %2140, ptr @test_count, align 4, !tbaa !5
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = icmp eq ptr %2143, null
  br i1 %2144, label %2145, label %2198

2145:                                             ; preds = %2138
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %2148 = call ptr @__errno_location() #12
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  store i32 %2149, ptr %49, align 4, !tbaa !5
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = call i32 @s2n_print_stacktrace(ptr noundef %2150)
  %2152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2153 = trunc i8 %2152 to i1
  br i1 %2153, label %2154, label %2176

2154:                                             ; preds = %2147
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = call i32 @fileno(ptr noundef %2155) #11
  %2157 = call i32 @isatty(i32 noundef %2156) #11
  %2158 = icmp ne i32 %2157, 0
  br i1 %2158, label %2159, label %2176

2159:                                             ; preds = %2154
  %2160 = load i32, ptr %49, align 4, !tbaa !5
  %2161 = call ptr @__errno_location() #12
  store i32 %2160, ptr %2161, align 4, !tbaa !5
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror(i32 noundef %2165, ptr noundef @.str.4)
  %2167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror_debug(i32 noundef %2168, ptr noundef @.str.4)
  %2170 = call ptr @__errno_location() #12
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @strerror(i32 noundef %2171) #11
  %2173 = call ptr @__errno_location() #12
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef @.str.2, i32 noundef %2163, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2166, ptr noundef %2169, ptr noundef %2172, i32 noundef %2174) #11
  br label %2193

2176:                                             ; preds = %2154, %2147
  %2177 = load i32, ptr %49, align 4, !tbaa !5
  %2178 = call ptr @__errno_location() #12
  store i32 %2177, ptr %2178, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror_debug(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call ptr @__errno_location() #12
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #11
  %2190 = call ptr @__errno_location() #12
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2179, ptr noundef @.str.5, i32 noundef %2180, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2183, ptr noundef %2186, ptr noundef %2189, i32 noundef %2191) #11
  br label %2193

2193:                                             ; preds = %2176, %2159
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

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

2196:                                             ; No predecessors!
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197, %2138
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

2200:                                             ; preds = %2199
  br label %2201

2201:                                             ; preds = %2200
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2202, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2203 = call ptr @__errno_location() #12
  store i32 0, ptr %2203, align 4, !tbaa !5
  br label %2204

2204:                                             ; preds = %2201
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

2206:                                             ; preds = %2205
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, ptr @test_count, align 4, !tbaa !5
  %2211 = load ptr, ptr %39, align 8, !tbaa !9
  %2212 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2211)
  %2213 = icmp eq i32 %2212, -1
  br i1 %2213, label %2214, label %2267

2214:                                             ; preds = %2208
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

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

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

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

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

2262:                                             ; preds = %2245, %2228
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

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

2265:                                             ; No predecessors!
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

2267:                                             ; preds = %2266, %2208
  br label %2268

2268:                                             ; preds = %2267
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

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

2276:                                             ; preds = %2270
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

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

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

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

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

2324:                                             ; preds = %2307, %2290
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

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

2327:                                             ; No predecessors!
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

2329:                                             ; preds = %2328, %2270
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = add nsw i32 %2333, 1
  store i32 %2334, ptr @test_count, align 4, !tbaa !5
  %2335 = call i32 @s2n_pkey_free(ptr noundef %40)
  %2336 = icmp eq i32 %2335, -1
  br i1 %2336, label %2337, label %2390

2337:                                             ; preds = %2332
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

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

2346:                                             ; preds = %2339
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = call i32 @fileno(ptr noundef %2347) #11
  %2349 = call i32 @isatty(i32 noundef %2348) #11
  %2350 = icmp ne i32 %2349, 0
  br i1 %2350, label %2351, label %2368

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

2368:                                             ; preds = %2346, %2339
  %2369 = load i32, ptr %52, align 4, !tbaa !5
  %2370 = call ptr @__errno_location() #12
  store i32 %2369, ptr %2370, align 4, !tbaa !5
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror(i32 noundef %2374, ptr noundef @.str.4)
  %2376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror_debug(i32 noundef %2377, ptr noundef @.str.4)
  %2379 = call ptr @__errno_location() #12
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @strerror(i32 noundef %2380) #11
  %2382 = call ptr @__errno_location() #12
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2371, ptr noundef @.str.5, i32 noundef %2372, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2375, ptr noundef %2378, ptr noundef %2381, i32 noundef %2383) #11
  br label %2385

2385:                                             ; preds = %2368, %2351
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

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

2388:                                             ; No predecessors!
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389, %2332
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391
  %2393 = load ptr, ptr %37, align 8, !tbaa !9
  call void @free(ptr noundef %2393) #11
  %2394 = load ptr, ptr %38, align 8, !tbaa !9
  call void @free(ptr noundef %2394) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  store ptr null, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  store ptr null, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  store ptr null, ptr %55, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  store ptr null, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %57) #11
  call void @llvm.memset.p0.i64(ptr align 8 %57, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  store i32 -1, ptr %58, align 4, !tbaa !5
  br label %2395

2395:                                             ; preds = %2392
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr @test_count, align 4, !tbaa !5
  %2398 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %2398, ptr %54, align 8, !tbaa !9
  %2399 = icmp eq ptr %2398, null
  br i1 %2399, label %2400, label %2453

2400:                                             ; preds = %2395
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

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

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

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

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

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

2449:                                             ; preds = %2448
  br label %2450

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

2451:                                             ; No predecessors!
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

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

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

2456:                                             ; preds = %2455
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = add nsw i32 %2457, 1
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %2459, ptr %55, align 8, !tbaa !9
  %2460 = icmp eq ptr %2459, null
  br i1 %2460, label %2461, label %2514

2461:                                             ; preds = %2456
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

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

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

2475:                                             ; preds = %2470
  %2476 = load i32, ptr %60, align 4, !tbaa !5
  %2477 = call ptr @__errno_location() #12
  store i32 %2476, ptr %2477, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef @.str.4)
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call ptr @__errno_location() #12
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #11
  %2489 = call ptr @__errno_location() #12
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef @.str.2, i32 noundef %2479, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2482, ptr noundef %2485, ptr noundef %2488, i32 noundef %2490) #11
  br label %2509

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

2509:                                             ; preds = %2492, %2475
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

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

2512:                                             ; No predecessors!
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

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

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = add nsw i32 %2518, 1
  store i32 %2519, ptr @test_count, align 4, !tbaa !5
  %2520 = call ptr @s2n_config_new()
  store ptr %2520, ptr %53, align 8, !tbaa !9
  %2521 = icmp eq ptr %2520, null
  br i1 %2521, label %2522, label %2575

2522:                                             ; preds = %2517
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

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

2531:                                             ; preds = %2524
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @fileno(ptr noundef %2532) #11
  %2534 = call i32 @isatty(i32 noundef %2533) #11
  %2535 = icmp ne i32 %2534, 0
  br i1 %2535, label %2536, label %2553

2536:                                             ; preds = %2531
  %2537 = load i32, ptr %61, align 4, !tbaa !5
  %2538 = call ptr @__errno_location() #12
  store i32 %2537, ptr %2538, align 4, !tbaa !5
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = load i32, ptr @test_count, align 4, !tbaa !5
  %2541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror(i32 noundef %2542, ptr noundef @.str.4)
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef @.str.4)
  %2547 = call ptr @__errno_location() #12
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @strerror(i32 noundef %2548) #11
  %2550 = call ptr @__errno_location() #12
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2539, ptr noundef @.str.2, i32 noundef %2540, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2543, ptr noundef %2546, ptr noundef %2549, i32 noundef %2551) #11
  br label %2570

2553:                                             ; preds = %2531, %2524
  %2554 = load i32, ptr %61, align 4, !tbaa !5
  %2555 = call ptr @__errno_location() #12
  store i32 %2554, ptr %2555, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = load i32, ptr @test_count, align 4, !tbaa !5
  %2558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror(i32 noundef %2559, ptr noundef @.str.4)
  %2561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror_debug(i32 noundef %2562, ptr noundef @.str.4)
  %2564 = call ptr @__errno_location() #12
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  %2566 = call ptr @strerror(i32 noundef %2565) #11
  %2567 = call ptr @__errno_location() #12
  %2568 = load i32, ptr %2567, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2556, ptr noundef @.str.5, i32 noundef %2557, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2560, ptr noundef %2563, ptr noundef %2566, i32 noundef %2568) #11
  br label %2570

2570:                                             ; preds = %2553, %2536
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

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

2573:                                             ; No predecessors!
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

2575:                                             ; preds = %2574, %2517
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576
  br label %2578

2578:                                             ; preds = %2577
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = add nsw i32 %2579, 1
  store i32 %2580, ptr @test_count, align 4, !tbaa !5
  %2581 = load ptr, ptr %54, align 8, !tbaa !9
  %2582 = call i32 @s2n_read_test_pem(ptr noundef @.str.21, ptr noundef %2581, i64 noundef 12000)
  %2583 = icmp eq i32 %2582, -1
  br i1 %2583, label %2584, label %2637

2584:                                             ; preds = %2578
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2587 = call ptr @__errno_location() #12
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  store i32 %2588, ptr %62, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589)
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc i8 %2591 to i1
  br i1 %2592, label %2593, label %2615

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #11
  %2596 = call i32 @isatty(i32 noundef %2595) #11
  %2597 = icmp ne i32 %2596, 0
  br i1 %2597, label %2598, label %2615

2598:                                             ; preds = %2593
  %2599 = load i32, ptr %62, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #12
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call ptr @__errno_location() #12
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #11
  %2612 = call ptr @__errno_location() #12
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.2, i32 noundef %2602, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #11
  br label %2632

2615:                                             ; preds = %2593, %2586
  %2616 = load i32, ptr %62, align 4, !tbaa !5
  %2617 = call ptr @__errno_location() #12
  store i32 %2616, ptr %2617, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = load i32, ptr @test_count, align 4, !tbaa !5
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef @.str.4)
  %2623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef @.str.4)
  %2626 = call ptr @__errno_location() #12
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call ptr @strerror(i32 noundef %2627) #11
  %2629 = call ptr @__errno_location() #12
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef @.str.5, i32 noundef %2619, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2622, ptr noundef %2625, ptr noundef %2628, i32 noundef %2630) #11
  br label %2632

2632:                                             ; preds = %2615, %2598
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

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

2635:                                             ; No predecessors!
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636, %2578
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = load ptr, ptr %55, align 8, !tbaa !9
  %2644 = call i32 @s2n_read_test_pem(ptr noundef @.str.36, ptr noundef %2643, i64 noundef 12000)
  %2645 = icmp eq i32 %2644, -1
  br i1 %2645, label %2646, label %2699

2646:                                             ; preds = %2640
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2649 = call ptr @__errno_location() #12
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  store i32 %2650, ptr %63, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = call i32 @s2n_print_stacktrace(ptr noundef %2651)
  %2653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2654 = trunc i8 %2653 to i1
  br i1 %2654, label %2655, label %2677

2655:                                             ; preds = %2648
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @fileno(ptr noundef %2656) #11
  %2658 = call i32 @isatty(i32 noundef %2657) #11
  %2659 = icmp ne i32 %2658, 0
  br i1 %2659, label %2660, label %2677

2660:                                             ; preds = %2655
  %2661 = load i32, ptr %63, align 4, !tbaa !5
  %2662 = call ptr @__errno_location() #12
  store i32 %2661, ptr %2662, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror(i32 noundef %2666, ptr noundef @.str.4)
  %2668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror_debug(i32 noundef %2669, ptr noundef @.str.4)
  %2671 = call ptr @__errno_location() #12
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call ptr @strerror(i32 noundef %2672) #11
  %2674 = call ptr @__errno_location() #12
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2663, ptr noundef @.str.2, i32 noundef %2664, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2667, ptr noundef %2670, ptr noundef %2673, i32 noundef %2675) #11
  br label %2694

2677:                                             ; preds = %2655, %2648
  %2678 = load i32, ptr %63, align 4, !tbaa !5
  %2679 = call ptr @__errno_location() #12
  store i32 %2678, ptr %2679, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror_debug(i32 noundef %2686, ptr noundef @.str.4)
  %2688 = call ptr @__errno_location() #12
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @strerror(i32 noundef %2689) #11
  %2691 = call ptr @__errno_location() #12
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef @.str.5, i32 noundef %2681, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2684, ptr noundef %2687, ptr noundef %2690, i32 noundef %2692) #11
  br label %2694

2694:                                             ; preds = %2677, %2660
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

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

2697:                                             ; No predecessors!
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698, %2640
  br label %2700

2700:                                             ; preds = %2699
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = add nsw i32 %2703, 1
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %2705, ptr %56, align 8, !tbaa !9
  %2706 = icmp eq ptr %2705, null
  br i1 %2706, label %2707, label %2760

2707:                                             ; preds = %2702
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2710 = call ptr @__errno_location() #12
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  store i32 %2711, ptr %64, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @s2n_print_stacktrace(ptr noundef %2712)
  %2714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2715 = trunc i8 %2714 to i1
  br i1 %2715, label %2716, label %2738

2716:                                             ; preds = %2709
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @fileno(ptr noundef %2717) #11
  %2719 = call i32 @isatty(i32 noundef %2718) #11
  %2720 = icmp ne i32 %2719, 0
  br i1 %2720, label %2721, label %2738

2721:                                             ; preds = %2716
  %2722 = load i32, ptr %64, align 4, !tbaa !5
  %2723 = call ptr @__errno_location() #12
  store i32 %2722, ptr %2723, align 4, !tbaa !5
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror(i32 noundef %2727, ptr noundef @.str.4)
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror_debug(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call ptr @__errno_location() #12
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #11
  %2735 = call ptr @__errno_location() #12
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2724, ptr noundef @.str.2, i32 noundef %2725, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2728, ptr noundef %2731, ptr noundef %2734, i32 noundef %2736) #11
  br label %2755

2738:                                             ; preds = %2716, %2709
  %2739 = load i32, ptr %64, align 4, !tbaa !5
  %2740 = call ptr @__errno_location() #12
  store i32 %2739, ptr %2740, align 4, !tbaa !5
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = load i32, ptr @test_count, align 4, !tbaa !5
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror(i32 noundef %2744, ptr noundef @.str.4)
  %2746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror_debug(i32 noundef %2747, ptr noundef @.str.4)
  %2749 = call ptr @__errno_location() #12
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #11
  %2752 = call ptr @__errno_location() #12
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2741, ptr noundef @.str.5, i32 noundef %2742, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2745, ptr noundef %2748, ptr noundef %2751, i32 noundef %2753) #11
  br label %2755

2755:                                             ; preds = %2738, %2721
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

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

2758:                                             ; No predecessors!
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759, %2702
  br label %2761

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  br label %2763

2763:                                             ; preds = %2762
  %2764 = load i32, ptr @test_count, align 4, !tbaa !5
  %2765 = add nsw i32 %2764, 1
  store i32 %2765, ptr @test_count, align 4, !tbaa !5
  %2766 = load ptr, ptr %56, align 8, !tbaa !9
  %2767 = load ptr, ptr %54, align 8, !tbaa !9
  %2768 = call i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef %2766, ptr noundef %2767)
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2823

2770:                                             ; preds = %2763
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %2773 = call ptr @__errno_location() #12
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  store i32 %2774, ptr %65, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @s2n_print_stacktrace(ptr noundef %2775)
  %2777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2778 = trunc i8 %2777 to i1
  br i1 %2778, label %2779, label %2801

2779:                                             ; preds = %2772
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #11
  %2782 = call i32 @isatty(i32 noundef %2781) #11
  %2783 = icmp ne i32 %2782, 0
  br i1 %2783, label %2784, label %2801

2784:                                             ; preds = %2779
  %2785 = load i32, ptr %65, align 4, !tbaa !5
  %2786 = call ptr @__errno_location() #12
  store i32 %2785, ptr %2786, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef @.str.4)
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call ptr @__errno_location() #12
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #11
  %2798 = call ptr @__errno_location() #12
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef @.str.2, i32 noundef %2788, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2791, ptr noundef %2794, ptr noundef %2797, i32 noundef %2799) #11
  br label %2818

2801:                                             ; preds = %2779, %2772
  %2802 = load i32, ptr %65, align 4, !tbaa !5
  %2803 = call ptr @__errno_location() #12
  store i32 %2802, ptr %2803, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror(i32 noundef %2807, ptr noundef @.str.4)
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror_debug(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call ptr @__errno_location() #12
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @strerror(i32 noundef %2813) #11
  %2815 = call ptr @__errno_location() #12
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2804, ptr noundef @.str.5, i32 noundef %2805, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2808, ptr noundef %2811, ptr noundef %2814, i32 noundef %2816) #11
  br label %2818

2818:                                             ; preds = %2801, %2784
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

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

2821:                                             ; No predecessors!
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822, %2763
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

2826:                                             ; preds = %2825
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = add nsw i32 %2827, 1
  store i32 %2828, ptr @test_count, align 4, !tbaa !5
  %2829 = load ptr, ptr %56, align 8, !tbaa !9
  %2830 = load ptr, ptr %55, align 8, !tbaa !9
  %2831 = call i32 @s2n_cert_chain_and_key_set_private_key(ptr noundef %2829, ptr noundef %2830)
  %2832 = icmp eq i32 %2831, -1
  br i1 %2832, label %2833, label %2886

2833:                                             ; preds = %2826
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

2835:                                             ; preds = %2834
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2836 = call ptr @__errno_location() #12
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  store i32 %2837, ptr %66, align 4, !tbaa !5
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = call i32 @s2n_print_stacktrace(ptr noundef %2838)
  %2840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2841 = trunc i8 %2840 to i1
  br i1 %2841, label %2842, label %2864

2842:                                             ; preds = %2835
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @fileno(ptr noundef %2843) #11
  %2845 = call i32 @isatty(i32 noundef %2844) #11
  %2846 = icmp ne i32 %2845, 0
  br i1 %2846, label %2847, label %2864

2847:                                             ; preds = %2842
  %2848 = load i32, ptr %66, align 4, !tbaa !5
  %2849 = call ptr @__errno_location() #12
  store i32 %2848, ptr %2849, align 4, !tbaa !5
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror_debug(i32 noundef %2856, ptr noundef @.str.4)
  %2858 = call ptr @__errno_location() #12
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #11
  %2861 = call ptr @__errno_location() #12
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2850, ptr noundef @.str.2, i32 noundef %2851, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2854, ptr noundef %2857, ptr noundef %2860, i32 noundef %2862) #11
  br label %2881

2864:                                             ; preds = %2842, %2835
  %2865 = load i32, ptr %66, align 4, !tbaa !5
  %2866 = call ptr @__errno_location() #12
  store i32 %2865, ptr %2866, align 4, !tbaa !5
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @s2n_strerror(i32 noundef %2870, ptr noundef @.str.4)
  %2872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call ptr @s2n_strerror_debug(i32 noundef %2873, ptr noundef @.str.4)
  %2875 = call ptr @__errno_location() #12
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call ptr @strerror(i32 noundef %2876) #11
  %2878 = call ptr @__errno_location() #12
  %2879 = load i32, ptr %2878, align 4, !tbaa !5
  %2880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2867, ptr noundef @.str.5, i32 noundef %2868, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2871, ptr noundef %2874, ptr noundef %2877, i32 noundef %2879) #11
  br label %2881

2881:                                             ; preds = %2864, %2847
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

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

2884:                                             ; No predecessors!
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885, %2826
  br label %2887

2887:                                             ; preds = %2886
  br label %2888

2888:                                             ; preds = %2887
  br label %2889

2889:                                             ; preds = %2888
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = add nsw i32 %2890, 1
  store i32 %2891, ptr @test_count, align 4, !tbaa !5
  %2892 = load ptr, ptr %56, align 8, !tbaa !9
  %2893 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %2892, i32 0, i32 0
  %2894 = load ptr, ptr %2893, align 8, !tbaa !15
  %2895 = getelementptr inbounds %struct.s2n_cert_chain, ptr %2894, i32 0, i32 1
  %2896 = load ptr, ptr %2895, align 8, !tbaa !18
  %2897 = getelementptr inbounds %struct.s2n_cert, ptr %2896, i32 0, i32 3
  %2898 = call i32 @s2n_asn1der_to_public_key_and_type(ptr noundef %57, ptr noundef %58, ptr noundef %2897)
  %2899 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %2898, ptr %2899, align 4
  %2900 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  %2901 = load i32, ptr %2900, align 4
  %2902 = call zeroext i1 @s2n_result_is_ok(i32 %2901)
  br i1 %2902, label %2956, label %2903

2903:                                             ; preds = %2889
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

2905:                                             ; preds = %2904
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2906 = call ptr @__errno_location() #12
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  store i32 %2907, ptr %68, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = call i32 @s2n_print_stacktrace(ptr noundef %2908)
  %2910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2911 = trunc i8 %2910 to i1
  br i1 %2911, label %2912, label %2934

2912:                                             ; preds = %2905
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = call i32 @fileno(ptr noundef %2913) #11
  %2915 = call i32 @isatty(i32 noundef %2914) #11
  %2916 = icmp ne i32 %2915, 0
  br i1 %2916, label %2917, label %2934

2917:                                             ; preds = %2912
  %2918 = load i32, ptr %68, align 4, !tbaa !5
  %2919 = call ptr @__errno_location() #12
  store i32 %2918, ptr %2919, align 4, !tbaa !5
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = load i32, ptr @test_count, align 4, !tbaa !5
  %2922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror(i32 noundef %2923, ptr noundef @.str.4)
  %2925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @s2n_strerror_debug(i32 noundef %2926, ptr noundef @.str.4)
  %2928 = call ptr @__errno_location() #12
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @strerror(i32 noundef %2929) #11
  %2931 = call ptr @__errno_location() #12
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2920, ptr noundef @.str.2, i32 noundef %2921, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2924, ptr noundef %2927, ptr noundef %2930, i32 noundef %2932) #11
  br label %2951

2934:                                             ; preds = %2912, %2905
  %2935 = load i32, ptr %68, align 4, !tbaa !5
  %2936 = call ptr @__errno_location() #12
  store i32 %2935, ptr %2936, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = load i32, ptr @test_count, align 4, !tbaa !5
  %2939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror(i32 noundef %2940, ptr noundef @.str.4)
  %2942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror_debug(i32 noundef %2943, ptr noundef @.str.4)
  %2945 = call ptr @__errno_location() #12
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @strerror(i32 noundef %2946) #11
  %2948 = call ptr @__errno_location() #12
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2937, ptr noundef @.str.5, i32 noundef %2938, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2941, ptr noundef %2944, ptr noundef %2947, i32 noundef %2949) #11
  br label %2951

2951:                                             ; preds = %2934, %2917
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

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

2954:                                             ; No predecessors!
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

2956:                                             ; preds = %2955, %2889
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = add nsw i32 %2960, 1
  store i32 %2961, ptr @test_count, align 4, !tbaa !5
  %2962 = load i32, ptr %58, align 4, !tbaa !5
  %2963 = icmp eq i32 %2962, -1
  br i1 %2963, label %2964, label %3017

2964:                                             ; preds = %2959
  br label %2965

2965:                                             ; preds = %2964
  br label %2966

2966:                                             ; preds = %2965
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2967 = call ptr @__errno_location() #12
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  store i32 %2968, ptr %69, align 4, !tbaa !5
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2970 = call i32 @s2n_print_stacktrace(ptr noundef %2969)
  %2971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2972 = trunc i8 %2971 to i1
  br i1 %2972, label %2973, label %2995

2973:                                             ; preds = %2966
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = call i32 @fileno(ptr noundef %2974) #11
  %2976 = call i32 @isatty(i32 noundef %2975) #11
  %2977 = icmp ne i32 %2976, 0
  br i1 %2977, label %2978, label %2995

2978:                                             ; preds = %2973
  %2979 = load i32, ptr %69, align 4, !tbaa !5
  %2980 = call ptr @__errno_location() #12
  store i32 %2979, ptr %2980, align 4, !tbaa !5
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = load i32, ptr @test_count, align 4, !tbaa !5
  %2983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror(i32 noundef %2984, ptr noundef @.str.4)
  %2986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror_debug(i32 noundef %2987, ptr noundef @.str.4)
  %2989 = call ptr @__errno_location() #12
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @strerror(i32 noundef %2990) #11
  %2992 = call ptr @__errno_location() #12
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2981, ptr noundef @.str.2, i32 noundef %2982, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2985, ptr noundef %2988, ptr noundef %2991, i32 noundef %2993) #11
  br label %3012

2995:                                             ; preds = %2973, %2966
  %2996 = load i32, ptr %69, align 4, !tbaa !5
  %2997 = call ptr @__errno_location() #12
  store i32 %2996, ptr %2997, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror(i32 noundef %3001, ptr noundef @.str.4)
  %3003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror_debug(i32 noundef %3004, ptr noundef @.str.4)
  %3006 = call ptr @__errno_location() #12
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @strerror(i32 noundef %3007) #11
  %3009 = call ptr @__errno_location() #12
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2998, ptr noundef @.str.5, i32 noundef %2999, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3002, ptr noundef %3005, ptr noundef %3008, i32 noundef %3010) #11
  br label %3012

3012:                                             ; preds = %2995, %2978
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

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

3015:                                             ; No predecessors!
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016, %2959
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019
  %3021 = load i32, ptr @test_count, align 4, !tbaa !5
  %3022 = add nsw i32 %3021, 1
  store i32 %3022, ptr @test_count, align 4, !tbaa !5
  %3023 = load ptr, ptr %56, align 8, !tbaa !9
  %3024 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %3023, i32 0, i32 0
  %3025 = load ptr, ptr %3024, align 8, !tbaa !15
  %3026 = getelementptr inbounds %struct.s2n_cert_chain, ptr %3025, i32 0, i32 1
  %3027 = load ptr, ptr %3026, align 8, !tbaa !18
  %3028 = load i32, ptr %58, align 4, !tbaa !5
  %3029 = call i32 @s2n_cert_set_cert_type(ptr noundef %3027, i32 noundef %3028)
  %3030 = icmp eq i32 %3029, -1
  br i1 %3030, label %3031, label %3084

3031:                                             ; preds = %3020
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

3033:                                             ; preds = %3032
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3034 = call ptr @__errno_location() #12
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  store i32 %3035, ptr %70, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @s2n_print_stacktrace(ptr noundef %3036)
  %3038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3039 = trunc i8 %3038 to i1
  br i1 %3039, label %3040, label %3062

3040:                                             ; preds = %3033
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #11
  %3043 = call i32 @isatty(i32 noundef %3042) #11
  %3044 = icmp ne i32 %3043, 0
  br i1 %3044, label %3045, label %3062

3045:                                             ; preds = %3040
  %3046 = load i32, ptr %70, 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.2, i32 noundef %3049, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3052, ptr noundef %3055, ptr noundef %3058, i32 noundef %3060) #11
  br label %3079

3062:                                             ; preds = %3040, %3033
  %3063 = load i32, ptr %70, align 4, !tbaa !5
  %3064 = call ptr @__errno_location() #12
  store i32 %3063, ptr %3064, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror(i32 noundef %3068, ptr noundef @.str.4)
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror_debug(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call ptr @__errno_location() #12
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @strerror(i32 noundef %3074) #11
  %3076 = call ptr @__errno_location() #12
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef @.str.5, i32 noundef %3066, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3069, ptr noundef %3072, ptr noundef %3075, i32 noundef %3077) #11
  br label %3079

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

3080:                                             ; preds = %3079
  br label %3081

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

3082:                                             ; No predecessors!
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083, %3020
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  %3087 = load ptr, ptr %56, align 8, !tbaa !9
  %3088 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %3087, i32 0, i32 1
  %3089 = load ptr, ptr %3088, align 8, !tbaa !20
  store ptr %3089, ptr %71, align 8, !tbaa !9
  br label %3090

3090:                                             ; preds = %3086
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = add nsw i32 %3091, 1
  store i32 %3092, ptr @test_count, align 4, !tbaa !5
  %3093 = getelementptr inbounds %struct.s2n_pkey, ptr %57, i32 0, i32 0
  %3094 = load ptr, ptr %3093, align 8, !tbaa !21
  %3095 = icmp eq ptr %3094, null
  br i1 %3095, label %3096, label %3149

3096:                                             ; preds = %3090
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %3099 = call ptr @__errno_location() #12
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  store i32 %3100, ptr %72, align 4, !tbaa !5
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = call i32 @s2n_print_stacktrace(ptr noundef %3101)
  %3103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3104 = trunc i8 %3103 to i1
  br i1 %3104, label %3105, label %3127

3105:                                             ; preds = %3098
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @fileno(ptr noundef %3106) #11
  %3108 = call i32 @isatty(i32 noundef %3107) #11
  %3109 = icmp ne i32 %3108, 0
  br i1 %3109, label %3110, label %3127

3110:                                             ; preds = %3105
  %3111 = load i32, ptr %72, align 4, !tbaa !5
  %3112 = call ptr @__errno_location() #12
  store i32 %3111, ptr %3112, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = load i32, ptr @test_count, align 4, !tbaa !5
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror(i32 noundef %3116, ptr noundef @.str.4)
  %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_debug(i32 noundef %3119, ptr noundef @.str.4)
  %3121 = call ptr @__errno_location() #12
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @strerror(i32 noundef %3122) #11
  %3124 = call ptr @__errno_location() #12
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3113, ptr noundef @.str.2, i32 noundef %3114, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3117, ptr noundef %3120, ptr noundef %3123, i32 noundef %3125) #11
  br label %3144

3127:                                             ; preds = %3105, %3098
  %3128 = load i32, ptr %72, align 4, !tbaa !5
  %3129 = call ptr @__errno_location() #12
  store i32 %3128, ptr %3129, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror(i32 noundef %3133, ptr noundef @.str.4)
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror_debug(i32 noundef %3136, ptr noundef @.str.4)
  %3138 = call ptr @__errno_location() #12
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call ptr @strerror(i32 noundef %3139) #11
  %3141 = call ptr @__errno_location() #12
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3130, ptr noundef @.str.5, i32 noundef %3131, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3134, ptr noundef %3137, ptr noundef %3140, i32 noundef %3142) #11
  br label %3144

3144:                                             ; preds = %3127, %3110
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

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

3147:                                             ; No predecessors!
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148, %3090
  br label %3150

3150:                                             ; preds = %3149
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

3152:                                             ; preds = %3151
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = add nsw i32 %3153, 1
  store i32 %3154, ptr @test_count, align 4, !tbaa !5
  %3155 = load ptr, ptr %71, align 8, !tbaa !9
  %3156 = icmp eq ptr %3155, null
  br i1 %3156, label %3157, label %3210

3157:                                             ; preds = %3152
  br label %3158

3158:                                             ; preds = %3157
  br label %3159

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

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

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

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

3205:                                             ; preds = %3188, %3171
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3206

3206:                                             ; preds = %3205
  br label %3207

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

3208:                                             ; No predecessors!
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209, %3152
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211
  br label %3213

3213:                                             ; preds = %3212
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = add nsw i32 %3214, 1
  store i32 %3215, ptr @test_count, align 4, !tbaa !5
  %3216 = load ptr, ptr %71, align 8, !tbaa !9
  %3217 = getelementptr inbounds %struct.s2n_pkey, ptr %3216, i32 0, i32 0
  %3218 = load ptr, ptr %3217, align 8, !tbaa !21
  %3219 = icmp eq ptr %3218, null
  br i1 %3219, label %3220, label %3273

3220:                                             ; preds = %3213
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

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

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

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

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

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

3269:                                             ; preds = %3268
  br label %3270

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

3271:                                             ; No predecessors!
  br label %3272

3272:                                             ; preds = %3271
  br label %3273

3273:                                             ; preds = %3272, %3213
  br label %3274

3274:                                             ; preds = %3273
  br label %3275

3275:                                             ; preds = %3274
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  store i64 32, ptr %75, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #11
  call void @llvm.memset.p0.i64(ptr align 16 %76, i8 0, i64 32, i1 false)
  br label %3276

3276:                                             ; preds = %3275
  %3277 = load i64, ptr %75, align 8, !tbaa !23
  %3278 = icmp ule i64 %3277, 32
  br i1 %3278, label %3312, label %3279

3279:                                             ; preds = %3276
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

3281:                                             ; preds = %3280
  %3282 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3283 = getelementptr inbounds %struct.s2n_debug_info, ptr %3282, i32 0, i32 0
  store ptr @.str.51, ptr %3283, align 8, !tbaa !25
  %3284 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3285 = getelementptr inbounds %struct.s2n_debug_info, ptr %3284, i32 0, i32 0
  %3286 = load ptr, ptr %3285, align 8, !tbaa !25
  %3287 = getelementptr inbounds i8, ptr %3286, i64 21
  %3288 = call ptr @strrchr(ptr noundef %3287, i32 noundef 47) #15
  %3289 = icmp ne ptr %3288, null
  br i1 %3289, label %3290, label %3297

3290:                                             ; preds = %3281
  %3291 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3292 = getelementptr inbounds %struct.s2n_debug_info, ptr %3291, i32 0, i32 0
  %3293 = load ptr, ptr %3292, align 8, !tbaa !25
  %3294 = getelementptr inbounds i8, ptr %3293, i64 21
  %3295 = call ptr @strrchr(ptr noundef %3294, i32 noundef 47) #15
  %3296 = getelementptr inbounds i8, ptr %3295, i64 1
  br label %3302

3297:                                             ; preds = %3281
  %3298 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3299 = getelementptr inbounds %struct.s2n_debug_info, ptr %3298, i32 0, i32 0
  %3300 = load ptr, ptr %3299, align 8, !tbaa !25
  %3301 = getelementptr inbounds i8, ptr %3300, i64 21
  br label %3302

3302:                                             ; preds = %3297, %3290
  %3303 = phi ptr [ %3296, %3290 ], [ %3301, %3297 ]
  %3304 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3305 = getelementptr inbounds %struct.s2n_debug_info, ptr %3304, i32 0, i32 1
  store ptr %3303, ptr %3305, align 8, !tbaa !27
  %3306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %3306, align 4, !tbaa !5
  %3307 = call i32 @s2n_calculate_stacktrace()
  br label %3308

3308:                                             ; preds = %3302
  br label %3309

3309:                                             ; preds = %3308
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %4134

3310:                                             ; No predecessors!
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311, %3276
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

3314:                                             ; preds = %3313
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #11
  call void @llvm.memset.p0.i64(ptr align 8 %78, i8 0, i64 24, i1 false)
  br label %3315

3315:                                             ; preds = %3314
  %3316 = getelementptr inbounds [32 x i8], ptr %76, i64 0, i64 0
  %3317 = load i64, ptr %75, align 8, !tbaa !23
  %3318 = trunc i64 %3317 to i32
  %3319 = call i32 @s2n_blob_init(ptr noundef %78, ptr noundef %3316, i32 noundef %3318)
  %3320 = icmp sgt i32 %3319, -1
  br i1 %3320, label %3322, label %3321

3321:                                             ; preds = %3315
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %4133

3322:                                             ; preds = %3315
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

3325:                                             ; preds = %3324
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = add nsw i32 %3326, 1
  store i32 %3327, ptr @test_count, align 4, !tbaa !5
  %3328 = call i32 @s2n_get_private_random_data(ptr noundef %78)
  %3329 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %3328, ptr %3329, align 4
  %3330 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  %3331 = load i32, ptr %3330, align 4
  %3332 = call zeroext i1 @s2n_result_is_ok(i32 %3331)
  br i1 %3332, label %3386, label %3333

3333:                                             ; preds = %3325
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

3335:                                             ; preds = %3334
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3336 = call ptr @__errno_location() #12
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  store i32 %3337, ptr %80, align 4, !tbaa !5
  %3338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3339 = call i32 @s2n_print_stacktrace(ptr noundef %3338)
  %3340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3341 = trunc i8 %3340 to i1
  br i1 %3341, label %3342, label %3364

3342:                                             ; preds = %3335
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @fileno(ptr noundef %3343) #11
  %3345 = call i32 @isatty(i32 noundef %3344) #11
  %3346 = icmp ne i32 %3345, 0
  br i1 %3346, label %3347, label %3364

3347:                                             ; preds = %3342
  %3348 = load i32, ptr %80, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #12
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.4)
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef @.str.4)
  %3358 = call ptr @__errno_location() #12
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #11
  %3361 = call ptr @__errno_location() #12
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.2, i32 noundef %3351, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #11
  br label %3381

3364:                                             ; preds = %3342, %3335
  %3365 = load i32, ptr %80, align 4, !tbaa !5
  %3366 = call ptr @__errno_location() #12
  store i32 %3365, ptr %3366, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = load i32, ptr @test_count, align 4, !tbaa !5
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror(i32 noundef %3370, ptr noundef @.str.4)
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror_debug(i32 noundef %3373, ptr noundef @.str.4)
  %3375 = call ptr @__errno_location() #12
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @strerror(i32 noundef %3376) #11
  %3378 = call ptr @__errno_location() #12
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3367, ptr noundef @.str.5, i32 noundef %3368, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3371, ptr noundef %3374, ptr noundef %3377, i32 noundef %3379) #11
  br label %3381

3381:                                             ; preds = %3364, %3347
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

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

3384:                                             ; No predecessors!
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

3386:                                             ; preds = %3385, %3325
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

3388:                                             ; preds = %3387
  call void @llvm.lifetime.start.p0(i64 56, ptr %81) #11
  call void @llvm.memset.p0.i64(ptr align 8 %81, i8 0, i64 56, i1 false)
  br label %3389

3389:                                             ; preds = %3388
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = add nsw i32 %3390, 1
  store i32 %3391, ptr @test_count, align 4, !tbaa !5
  %3392 = call i32 @s2n_hash_new(ptr noundef %81)
  %3393 = icmp eq i32 %3392, -1
  br i1 %3393, label %3394, label %3447

3394:                                             ; preds = %3389
  br label %3395

3395:                                             ; preds = %3394
  br label %3396

3396:                                             ; preds = %3395
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %3397 = call ptr @__errno_location() #12
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  store i32 %3398, ptr %82, align 4, !tbaa !5
  %3399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3400 = call i32 @s2n_print_stacktrace(ptr noundef %3399)
  %3401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3402 = trunc i8 %3401 to i1
  br i1 %3402, label %3403, label %3425

3403:                                             ; preds = %3396
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @fileno(ptr noundef %3404) #11
  %3406 = call i32 @isatty(i32 noundef %3405) #11
  %3407 = icmp ne i32 %3406, 0
  br i1 %3407, label %3408, label %3425

3408:                                             ; preds = %3403
  %3409 = load i32, ptr %82, align 4, !tbaa !5
  %3410 = call ptr @__errno_location() #12
  store i32 %3409, ptr %3410, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef @.str.4)
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror_debug(i32 noundef %3417, ptr noundef @.str.4)
  %3419 = call ptr @__errno_location() #12
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #11
  %3422 = call ptr @__errno_location() #12
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef @.str.2, i32 noundef %3412, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3415, ptr noundef %3418, ptr noundef %3421, i32 noundef %3423) #11
  br label %3442

3425:                                             ; preds = %3403, %3396
  %3426 = load i32, ptr %82, align 4, !tbaa !5
  %3427 = call ptr @__errno_location() #12
  store i32 %3426, ptr %3427, align 4, !tbaa !5
  %3428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3429 = load i32, ptr @test_count, align 4, !tbaa !5
  %3430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  %3432 = call ptr @s2n_strerror(i32 noundef %3431, ptr noundef @.str.4)
  %3433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror_debug(i32 noundef %3434, ptr noundef @.str.4)
  %3436 = call ptr @__errno_location() #12
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @strerror(i32 noundef %3437) #11
  %3439 = call ptr @__errno_location() #12
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3428, ptr noundef @.str.5, i32 noundef %3429, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3432, ptr noundef %3435, ptr noundef %3438, i32 noundef %3440) #11
  br label %3442

3442:                                             ; preds = %3425, %3408
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

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

3445:                                             ; No predecessors!
  br label %3446

3446:                                             ; preds = %3445
  br label %3447

3447:                                             ; preds = %3446, %3389
  br label %3448

3448:                                             ; preds = %3447
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

3450:                                             ; preds = %3449
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = add nsw i32 %3451, 1
  store i32 %3452, ptr @test_count, align 4, !tbaa !5
  %3453 = call i32 @s2n_hash_init(ptr noundef %81, i32 noundef 4)
  %3454 = icmp eq i32 %3453, -1
  br i1 %3454, label %3455, label %3508

3455:                                             ; preds = %3450
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

3457:                                             ; preds = %3456
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3458 = call ptr @__errno_location() #12
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  store i32 %3459, ptr %83, align 4, !tbaa !5
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = call i32 @s2n_print_stacktrace(ptr noundef %3460)
  %3462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3463 = trunc i8 %3462 to i1
  br i1 %3463, label %3464, label %3486

3464:                                             ; preds = %3457
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = call i32 @fileno(ptr noundef %3465) #11
  %3467 = call i32 @isatty(i32 noundef %3466) #11
  %3468 = icmp ne i32 %3467, 0
  br i1 %3468, label %3469, label %3486

3469:                                             ; preds = %3464
  %3470 = load i32, ptr %83, align 4, !tbaa !5
  %3471 = call ptr @__errno_location() #12
  store i32 %3470, ptr %3471, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror(i32 noundef %3475, ptr noundef @.str.4)
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror_debug(i32 noundef %3478, ptr noundef @.str.4)
  %3480 = call ptr @__errno_location() #12
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #11
  %3483 = call ptr @__errno_location() #12
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3472, ptr noundef @.str.2, i32 noundef %3473, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3476, ptr noundef %3479, ptr noundef %3482, i32 noundef %3484) #11
  br label %3503

3486:                                             ; preds = %3464, %3457
  %3487 = load i32, ptr %83, align 4, !tbaa !5
  %3488 = call ptr @__errno_location() #12
  store i32 %3487, ptr %3488, align 4, !tbaa !5
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = load i32, ptr @test_count, align 4, !tbaa !5
  %3491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror(i32 noundef %3492, ptr noundef @.str.4)
  %3494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror_debug(i32 noundef %3495, ptr noundef @.str.4)
  %3497 = call ptr @__errno_location() #12
  %3498 = load i32, ptr %3497, align 4, !tbaa !5
  %3499 = call ptr @strerror(i32 noundef %3498) #11
  %3500 = call ptr @__errno_location() #12
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3489, ptr noundef @.str.5, i32 noundef %3490, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3493, ptr noundef %3496, ptr noundef %3499, i32 noundef %3501) #11
  br label %3503

3503:                                             ; preds = %3486, %3469
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3504

3504:                                             ; preds = %3503
  br label %3505

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

3506:                                             ; No predecessors!
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

3508:                                             ; preds = %3507, %3450
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

3510:                                             ; preds = %3509
  br label %3511

3511:                                             ; preds = %3510
  %3512 = load i32, ptr @test_count, align 4, !tbaa !5
  %3513 = add nsw i32 %3512, 1
  store i32 %3513, ptr @test_count, align 4, !tbaa !5
  %3514 = getelementptr inbounds %struct.s2n_blob, ptr %78, i32 0, i32 0
  %3515 = load ptr, ptr %3514, align 8, !tbaa !28
  %3516 = getelementptr inbounds %struct.s2n_blob, ptr %78, i32 0, i32 1
  %3517 = load i32, ptr %3516, align 8, !tbaa !29
  %3518 = call i32 @s2n_hash_update(ptr noundef %81, ptr noundef %3515, i32 noundef %3517)
  %3519 = icmp eq i32 %3518, -1
  br i1 %3519, label %3520, label %3573

3520:                                             ; preds = %3511
  br label %3521

3521:                                             ; preds = %3520
  br label %3522

3522:                                             ; preds = %3521
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %3523 = call ptr @__errno_location() #12
  %3524 = load i32, ptr %3523, align 4, !tbaa !5
  store i32 %3524, ptr %84, align 4, !tbaa !5
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = call i32 @s2n_print_stacktrace(ptr noundef %3525)
  %3527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3528 = trunc i8 %3527 to i1
  br i1 %3528, label %3529, label %3551

3529:                                             ; preds = %3522
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = call i32 @fileno(ptr noundef %3530) #11
  %3532 = call i32 @isatty(i32 noundef %3531) #11
  %3533 = icmp ne i32 %3532, 0
  br i1 %3533, label %3534, label %3551

3534:                                             ; preds = %3529
  %3535 = load i32, ptr %84, align 4, !tbaa !5
  %3536 = call ptr @__errno_location() #12
  store i32 %3535, ptr %3536, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = load i32, ptr @test_count, align 4, !tbaa !5
  %3539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3540 = load i32, ptr %3539, align 4, !tbaa !5
  %3541 = call ptr @s2n_strerror(i32 noundef %3540, ptr noundef @.str.4)
  %3542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3543 = load i32, ptr %3542, align 4, !tbaa !5
  %3544 = call ptr @s2n_strerror_debug(i32 noundef %3543, ptr noundef @.str.4)
  %3545 = call ptr @__errno_location() #12
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  %3547 = call ptr @strerror(i32 noundef %3546) #11
  %3548 = call ptr @__errno_location() #12
  %3549 = load i32, ptr %3548, align 4, !tbaa !5
  %3550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3537, ptr noundef @.str.2, i32 noundef %3538, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3541, ptr noundef %3544, ptr noundef %3547, i32 noundef %3549) #11
  br label %3568

3551:                                             ; preds = %3529, %3522
  %3552 = load i32, ptr %84, align 4, !tbaa !5
  %3553 = call ptr @__errno_location() #12
  store i32 %3552, ptr %3553, align 4, !tbaa !5
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = load i32, ptr @test_count, align 4, !tbaa !5
  %3556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror(i32 noundef %3557, ptr noundef @.str.4)
  %3559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror_debug(i32 noundef %3560, ptr noundef @.str.4)
  %3562 = call ptr @__errno_location() #12
  %3563 = load i32, ptr %3562, align 4, !tbaa !5
  %3564 = call ptr @strerror(i32 noundef %3563) #11
  %3565 = call ptr @__errno_location() #12
  %3566 = load i32, ptr %3565, align 4, !tbaa !5
  %3567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3554, ptr noundef @.str.5, i32 noundef %3555, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3558, ptr noundef %3561, ptr noundef %3564, i32 noundef %3566) #11
  br label %3568

3568:                                             ; preds = %3551, %3534
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3569

3569:                                             ; preds = %3568
  br label %3570

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

3571:                                             ; No predecessors!
  br label %3572

3572:                                             ; preds = %3571
  br label %3573

3573:                                             ; preds = %3572, %3511
  br label %3574

3574:                                             ; preds = %3573
  br label %3575

3575:                                             ; preds = %3574
  call void @llvm.lifetime.start.p0(i64 56, ptr %85) #11
  call void @llvm.memset.p0.i64(ptr align 8 %85, i8 0, i64 56, i1 false)
  br label %3576

3576:                                             ; preds = %3575
  %3577 = load i32, ptr @test_count, align 4, !tbaa !5
  %3578 = add nsw i32 %3577, 1
  store i32 %3578, ptr @test_count, align 4, !tbaa !5
  %3579 = call i32 @s2n_hash_new(ptr noundef %85)
  %3580 = icmp eq i32 %3579, -1
  br i1 %3580, label %3581, label %3634

3581:                                             ; preds = %3576
  br label %3582

3582:                                             ; preds = %3581
  br label %3583

3583:                                             ; preds = %3582
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3584 = call ptr @__errno_location() #12
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  store i32 %3585, ptr %86, align 4, !tbaa !5
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = call i32 @s2n_print_stacktrace(ptr noundef %3586)
  %3588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3589 = trunc i8 %3588 to i1
  br i1 %3589, label %3590, label %3612

3590:                                             ; preds = %3583
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = call i32 @fileno(ptr noundef %3591) #11
  %3593 = call i32 @isatty(i32 noundef %3592) #11
  %3594 = icmp ne i32 %3593, 0
  br i1 %3594, label %3595, label %3612

3595:                                             ; preds = %3590
  %3596 = load i32, ptr %86, align 4, !tbaa !5
  %3597 = call ptr @__errno_location() #12
  store i32 %3596, ptr %3597, align 4, !tbaa !5
  %3598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3599 = load i32, ptr @test_count, align 4, !tbaa !5
  %3600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @s2n_strerror(i32 noundef %3601, ptr noundef @.str.4)
  %3603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror_debug(i32 noundef %3604, ptr noundef @.str.4)
  %3606 = call ptr @__errno_location() #12
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call ptr @strerror(i32 noundef %3607) #11
  %3609 = call ptr @__errno_location() #12
  %3610 = load i32, ptr %3609, align 4, !tbaa !5
  %3611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3598, ptr noundef @.str.2, i32 noundef %3599, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3602, ptr noundef %3605, ptr noundef %3608, i32 noundef %3610) #11
  br label %3629

3612:                                             ; preds = %3590, %3583
  %3613 = load i32, ptr %86, align 4, !tbaa !5
  %3614 = call ptr @__errno_location() #12
  store i32 %3613, ptr %3614, align 4, !tbaa !5
  %3615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3616 = load i32, ptr @test_count, align 4, !tbaa !5
  %3617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call ptr @s2n_strerror(i32 noundef %3618, ptr noundef @.str.4)
  %3620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror_debug(i32 noundef %3621, ptr noundef @.str.4)
  %3623 = call ptr @__errno_location() #12
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call ptr @strerror(i32 noundef %3624) #11
  %3626 = call ptr @__errno_location() #12
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3615, ptr noundef @.str.5, i32 noundef %3616, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3619, ptr noundef %3622, ptr noundef %3625, i32 noundef %3627) #11
  br label %3629

3629:                                             ; preds = %3612, %3595
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

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

3632:                                             ; No predecessors!
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633, %3576
  br label %3635

3635:                                             ; preds = %3634
  br label %3636

3636:                                             ; preds = %3635
  br label %3637

3637:                                             ; preds = %3636
  %3638 = load i32, ptr @test_count, align 4, !tbaa !5
  %3639 = add nsw i32 %3638, 1
  store i32 %3639, ptr @test_count, align 4, !tbaa !5
  %3640 = call i32 @s2n_hash_init(ptr noundef %85, i32 noundef 4)
  %3641 = icmp eq i32 %3640, -1
  br i1 %3641, label %3642, label %3695

3642:                                             ; preds = %3637
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

3644:                                             ; preds = %3643
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3645 = call ptr @__errno_location() #12
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  store i32 %3646, ptr %87, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @s2n_print_stacktrace(ptr noundef %3647)
  %3649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3650 = trunc i8 %3649 to i1
  br i1 %3650, label %3651, label %3673

3651:                                             ; preds = %3644
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @fileno(ptr noundef %3652) #11
  %3654 = call i32 @isatty(i32 noundef %3653) #11
  %3655 = icmp ne i32 %3654, 0
  br i1 %3655, label %3656, label %3673

3656:                                             ; preds = %3651
  %3657 = load i32, ptr %87, align 4, !tbaa !5
  %3658 = call ptr @__errno_location() #12
  store i32 %3657, ptr %3658, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = load i32, ptr @test_count, align 4, !tbaa !5
  %3661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror(i32 noundef %3662, ptr noundef @.str.4)
  %3664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3665 = load i32, ptr %3664, align 4, !tbaa !5
  %3666 = call ptr @s2n_strerror_debug(i32 noundef %3665, ptr noundef @.str.4)
  %3667 = call ptr @__errno_location() #12
  %3668 = load i32, ptr %3667, align 4, !tbaa !5
  %3669 = call ptr @strerror(i32 noundef %3668) #11
  %3670 = call ptr @__errno_location() #12
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  %3672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3659, ptr noundef @.str.2, i32 noundef %3660, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3663, ptr noundef %3666, ptr noundef %3669, i32 noundef %3671) #11
  br label %3690

3673:                                             ; preds = %3651, %3644
  %3674 = load i32, ptr %87, align 4, !tbaa !5
  %3675 = call ptr @__errno_location() #12
  store i32 %3674, ptr %3675, align 4, !tbaa !5
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror(i32 noundef %3679, ptr noundef @.str.4)
  %3681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call ptr @s2n_strerror_debug(i32 noundef %3682, ptr noundef @.str.4)
  %3684 = call ptr @__errno_location() #12
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call ptr @strerror(i32 noundef %3685) #11
  %3687 = call ptr @__errno_location() #12
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  %3689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3676, ptr noundef @.str.5, i32 noundef %3677, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3680, ptr noundef %3683, ptr noundef %3686, i32 noundef %3688) #11
  br label %3690

3690:                                             ; preds = %3673, %3656
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

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

3693:                                             ; No predecessors!
  br label %3694

3694:                                             ; preds = %3693
  br label %3695

3695:                                             ; preds = %3694, %3637
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696
  br label %3698

3698:                                             ; preds = %3697
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = add nsw i32 %3699, 1
  store i32 %3700, ptr @test_count, align 4, !tbaa !5
  %3701 = getelementptr inbounds %struct.s2n_blob, ptr %78, i32 0, i32 0
  %3702 = load ptr, ptr %3701, align 8, !tbaa !28
  %3703 = getelementptr inbounds %struct.s2n_blob, ptr %78, i32 0, i32 1
  %3704 = load i32, ptr %3703, align 8, !tbaa !29
  %3705 = call i32 @s2n_hash_update(ptr noundef %85, ptr noundef %3702, i32 noundef %3704)
  %3706 = icmp eq i32 %3705, -1
  br i1 %3706, label %3707, label %3760

3707:                                             ; preds = %3698
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3710 = call ptr @__errno_location() #12
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  store i32 %3711, ptr %88, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = call i32 @s2n_print_stacktrace(ptr noundef %3712)
  %3714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3715 = trunc i8 %3714 to i1
  br i1 %3715, label %3716, label %3738

3716:                                             ; preds = %3709
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = call i32 @fileno(ptr noundef %3717) #11
  %3719 = call i32 @isatty(i32 noundef %3718) #11
  %3720 = icmp ne i32 %3719, 0
  br i1 %3720, label %3721, label %3738

3721:                                             ; preds = %3716
  %3722 = load i32, ptr %88, align 4, !tbaa !5
  %3723 = call ptr @__errno_location() #12
  store i32 %3722, ptr %3723, align 4, !tbaa !5
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror(i32 noundef %3727, ptr noundef @.str.4)
  %3729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror_debug(i32 noundef %3730, ptr noundef @.str.4)
  %3732 = call ptr @__errno_location() #12
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call ptr @strerror(i32 noundef %3733) #11
  %3735 = call ptr @__errno_location() #12
  %3736 = load i32, ptr %3735, align 4, !tbaa !5
  %3737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3724, ptr noundef @.str.2, i32 noundef %3725, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3728, ptr noundef %3731, ptr noundef %3734, i32 noundef %3736) #11
  br label %3755

3738:                                             ; preds = %3716, %3709
  %3739 = load i32, ptr %88, align 4, !tbaa !5
  %3740 = call ptr @__errno_location() #12
  store i32 %3739, ptr %3740, align 4, !tbaa !5
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror(i32 noundef %3744, ptr noundef @.str.4)
  %3746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @s2n_strerror_debug(i32 noundef %3747, ptr noundef @.str.4)
  %3749 = call ptr @__errno_location() #12
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @strerror(i32 noundef %3750) #11
  %3752 = call ptr @__errno_location() #12
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3741, ptr noundef @.str.5, i32 noundef %3742, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3745, ptr noundef %3748, ptr noundef %3751, i32 noundef %3753) #11
  br label %3755

3755:                                             ; preds = %3738, %3721
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

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

3758:                                             ; No predecessors!
  br label %3759

3759:                                             ; preds = %3758
  br label %3760

3760:                                             ; preds = %3759, %3698
  br label %3761

3761:                                             ; preds = %3760
  br label %3762

3762:                                             ; preds = %3761
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #11
  store i64 256, ptr %89, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 256, ptr %90) #11
  call void @llvm.memset.p0.i64(ptr align 16 %90, i8 0, i64 256, i1 false)
  br label %3763

3763:                                             ; preds = %3762
  %3764 = load i64, ptr %89, align 8, !tbaa !23
  %3765 = icmp ule i64 %3764, 256
  br i1 %3765, label %3799, label %3766

3766:                                             ; preds = %3763
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

3768:                                             ; preds = %3767
  %3769 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3770 = getelementptr inbounds %struct.s2n_debug_info, ptr %3769, i32 0, i32 0
  store ptr @.str.59, ptr %3770, align 8, !tbaa !25
  %3771 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3772 = getelementptr inbounds %struct.s2n_debug_info, ptr %3771, i32 0, i32 0
  %3773 = load ptr, ptr %3772, align 8, !tbaa !25
  %3774 = getelementptr inbounds i8, ptr %3773, i64 21
  %3775 = call ptr @strrchr(ptr noundef %3774, i32 noundef 47) #15
  %3776 = icmp ne ptr %3775, null
  br i1 %3776, label %3777, label %3784

3777:                                             ; preds = %3768
  %3778 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3779 = getelementptr inbounds %struct.s2n_debug_info, ptr %3778, i32 0, i32 0
  %3780 = load ptr, ptr %3779, align 8, !tbaa !25
  %3781 = getelementptr inbounds i8, ptr %3780, i64 21
  %3782 = call ptr @strrchr(ptr noundef %3781, i32 noundef 47) #15
  %3783 = getelementptr inbounds i8, ptr %3782, i64 1
  br label %3789

3784:                                             ; preds = %3768
  %3785 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3786 = getelementptr inbounds %struct.s2n_debug_info, ptr %3785, i32 0, i32 0
  %3787 = load ptr, ptr %3786, align 8, !tbaa !25
  %3788 = getelementptr inbounds i8, ptr %3787, i64 21
  br label %3789

3789:                                             ; preds = %3784, %3777
  %3790 = phi ptr [ %3783, %3777 ], [ %3788, %3784 ]
  %3791 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3792 = getelementptr inbounds %struct.s2n_debug_info, ptr %3791, i32 0, i32 1
  store ptr %3790, ptr %3792, align 8, !tbaa !27
  %3793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %3793, align 4, !tbaa !5
  %3794 = call i32 @s2n_calculate_stacktrace()
  br label %3795

3795:                                             ; preds = %3789
  br label %3796

3796:                                             ; preds = %3795
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %4130

3797:                                             ; No predecessors!
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798, %3763
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800
  call void @llvm.lifetime.start.p0(i64 24, ptr %91) #11
  call void @llvm.memset.p0.i64(ptr align 8 %91, i8 0, i64 24, i1 false)
  br label %3802

3802:                                             ; preds = %3801
  %3803 = getelementptr inbounds [256 x i8], ptr %90, i64 0, i64 0
  %3804 = load i64, ptr %89, align 8, !tbaa !23
  %3805 = trunc i64 %3804 to i32
  %3806 = call i32 @s2n_blob_init(ptr noundef %91, ptr noundef %3803, i32 noundef %3805)
  %3807 = icmp sgt i32 %3806, -1
  br i1 %3807, label %3809, label %3808

3808:                                             ; preds = %3802
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %4129

3809:                                             ; preds = %3802
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  %3813 = load i32, ptr @test_count, align 4, !tbaa !5
  %3814 = add nsw i32 %3813, 1
  store i32 %3814, ptr @test_count, align 4, !tbaa !5
  %3815 = load ptr, ptr %71, align 8, !tbaa !9
  %3816 = call i32 @s2n_pkey_sign(ptr noundef %3815, i32 noundef 225, ptr noundef %81, ptr noundef %91)
  %3817 = icmp eq i32 %3816, -1
  br i1 %3817, label %3818, label %3871

3818:                                             ; preds = %3812
  br label %3819

3819:                                             ; preds = %3818
  br label %3820

3820:                                             ; preds = %3819
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3821 = call ptr @__errno_location() #12
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  store i32 %3822, ptr %92, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = call i32 @s2n_print_stacktrace(ptr noundef %3823)
  %3825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3826 = trunc i8 %3825 to i1
  br i1 %3826, label %3827, label %3849

3827:                                             ; preds = %3820
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @fileno(ptr noundef %3828) #11
  %3830 = call i32 @isatty(i32 noundef %3829) #11
  %3831 = icmp ne i32 %3830, 0
  br i1 %3831, label %3832, label %3849

3832:                                             ; preds = %3827
  %3833 = load i32, ptr %92, align 4, !tbaa !5
  %3834 = call ptr @__errno_location() #12
  store i32 %3833, ptr %3834, align 4, !tbaa !5
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = load i32, ptr @test_count, align 4, !tbaa !5
  %3837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror(i32 noundef %3838, ptr noundef @.str.4)
  %3840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  %3842 = call ptr @s2n_strerror_debug(i32 noundef %3841, ptr noundef @.str.4)
  %3843 = call ptr @__errno_location() #12
  %3844 = load i32, ptr %3843, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #11
  %3846 = call ptr @__errno_location() #12
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  %3848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3835, ptr noundef @.str.2, i32 noundef %3836, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3839, ptr noundef %3842, ptr noundef %3845, i32 noundef %3847) #11
  br label %3866

3849:                                             ; preds = %3827, %3820
  %3850 = load i32, ptr %92, align 4, !tbaa !5
  %3851 = call ptr @__errno_location() #12
  store i32 %3850, ptr %3851, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = load i32, ptr @test_count, align 4, !tbaa !5
  %3854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call ptr @s2n_strerror(i32 noundef %3855, ptr noundef @.str.4)
  %3857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = call ptr @s2n_strerror_debug(i32 noundef %3858, ptr noundef @.str.4)
  %3860 = call ptr @__errno_location() #12
  %3861 = load i32, ptr %3860, align 4, !tbaa !5
  %3862 = call ptr @strerror(i32 noundef %3861) #11
  %3863 = call ptr @__errno_location() #12
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3852, ptr noundef @.str.5, i32 noundef %3853, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3856, ptr noundef %3859, ptr noundef %3862, i32 noundef %3864) #11
  br label %3866

3866:                                             ; preds = %3849, %3832
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3867

3867:                                             ; preds = %3866
  br label %3868

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

3869:                                             ; No predecessors!
  br label %3870

3870:                                             ; preds = %3869
  br label %3871

3871:                                             ; preds = %3870, %3812
  br label %3872

3872:                                             ; preds = %3871
  br label %3873

3873:                                             ; preds = %3872
  br label %3874

3874:                                             ; preds = %3873
  %3875 = load i32, ptr @test_count, align 4, !tbaa !5
  %3876 = add nsw i32 %3875, 1
  store i32 %3876, ptr @test_count, align 4, !tbaa !5
  %3877 = call i32 @s2n_flip_random_bit(ptr noundef %91)
  %3878 = icmp eq i32 %3877, -1
  br i1 %3878, label %3879, label %3932

3879:                                             ; preds = %3874
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %3882 = call ptr @__errno_location() #12
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  store i32 %3883, ptr %93, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @s2n_print_stacktrace(ptr noundef %3884)
  %3886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3887 = trunc i8 %3886 to i1
  br i1 %3887, label %3888, label %3910

3888:                                             ; preds = %3881
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = call i32 @fileno(ptr noundef %3889) #11
  %3891 = call i32 @isatty(i32 noundef %3890) #11
  %3892 = icmp ne i32 %3891, 0
  br i1 %3892, label %3893, label %3910

3893:                                             ; preds = %3888
  %3894 = load i32, ptr %93, align 4, !tbaa !5
  %3895 = call ptr @__errno_location() #12
  store i32 %3894, ptr %3895, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call ptr @__errno_location() #12
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #11
  %3907 = call ptr @__errno_location() #12
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3896, ptr noundef @.str.2, i32 noundef %3897, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3900, ptr noundef %3903, ptr noundef %3906, i32 noundef %3908) #11
  br label %3927

3910:                                             ; preds = %3888, %3881
  %3911 = load i32, ptr %93, align 4, !tbaa !5
  %3912 = call ptr @__errno_location() #12
  store i32 %3911, ptr %3912, align 4, !tbaa !5
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %3915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @s2n_strerror(i32 noundef %3916, ptr noundef @.str.4)
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror_debug(i32 noundef %3919, ptr noundef @.str.4)
  %3921 = call ptr @__errno_location() #12
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @strerror(i32 noundef %3922) #11
  %3924 = call ptr @__errno_location() #12
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3913, ptr noundef @.str.5, i32 noundef %3914, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3917, ptr noundef %3920, ptr noundef %3923, i32 noundef %3925) #11
  br label %3927

3927:                                             ; preds = %3910, %3893
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

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

3930:                                             ; No predecessors!
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931, %3874
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  %3937 = load i32, ptr @test_count, align 4, !tbaa !5
  %3938 = add nsw i32 %3937, 1
  store i32 %3938, ptr @test_count, align 4, !tbaa !5
  %3939 = call i32 @s2n_pkey_verify(ptr noundef %57, i32 noundef 225, ptr noundef %85, ptr noundef %91)
  %3940 = icmp eq i32 %3939, -1
  br i1 %3940, label %3994, label %3941

3941:                                             ; preds = %3936
  br label %3942

3942:                                             ; preds = %3941
  br label %3943

3943:                                             ; preds = %3942
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %3944 = call ptr @__errno_location() #12
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  store i32 %3945, ptr %94, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = call i32 @s2n_print_stacktrace(ptr noundef %3946)
  %3948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3949 = trunc i8 %3948 to i1
  br i1 %3949, label %3950, label %3972

3950:                                             ; preds = %3943
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @fileno(ptr noundef %3951) #11
  %3953 = call i32 @isatty(i32 noundef %3952) #11
  %3954 = icmp ne i32 %3953, 0
  br i1 %3954, label %3955, label %3972

3955:                                             ; preds = %3950
  %3956 = load i32, ptr %94, align 4, !tbaa !5
  %3957 = call ptr @__errno_location() #12
  store i32 %3956, ptr %3957, align 4, !tbaa !5
  %3958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3959 = load i32, ptr @test_count, align 4, !tbaa !5
  %3960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror(i32 noundef %3961, ptr noundef @.str.4)
  %3963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror_debug(i32 noundef %3964, ptr noundef @.str.4)
  %3966 = call ptr @__errno_location() #12
  %3967 = load i32, ptr %3966, align 4, !tbaa !5
  %3968 = call ptr @strerror(i32 noundef %3967) #11
  %3969 = call ptr @__errno_location() #12
  %3970 = load i32, ptr %3969, align 4, !tbaa !5
  %3971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3958, ptr noundef @.str.2, i32 noundef %3959, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3962, ptr noundef %3965, ptr noundef %3968, i32 noundef %3970) #11
  br label %3989

3972:                                             ; preds = %3950, %3943
  %3973 = load i32, ptr %94, align 4, !tbaa !5
  %3974 = call ptr @__errno_location() #12
  store i32 %3973, ptr %3974, align 4, !tbaa !5
  %3975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3976 = load i32, ptr @test_count, align 4, !tbaa !5
  %3977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror(i32 noundef %3978, ptr noundef @.str.4)
  %3980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call ptr @s2n_strerror_debug(i32 noundef %3981, ptr noundef @.str.4)
  %3983 = call ptr @__errno_location() #12
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = call ptr @strerror(i32 noundef %3984) #11
  %3986 = call ptr @__errno_location() #12
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  %3988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3975, ptr noundef @.str.5, i32 noundef %3976, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3979, ptr noundef %3982, ptr noundef %3985, i32 noundef %3987) #11
  br label %3989

3989:                                             ; preds = %3972, %3955
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

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

3992:                                             ; No predecessors!
  br label %3993

3993:                                             ; preds = %3992
  br label %3994

3994:                                             ; preds = %3993, %3936
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  %3998 = load i32, ptr @test_count, align 4, !tbaa !5
  %3999 = add nsw i32 %3998, 1
  store i32 %3999, ptr @test_count, align 4, !tbaa !5
  %4000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = icmp eq i32 %4001, 0
  br i1 %4002, label %4003, label %4056

4003:                                             ; preds = %3997
  br label %4004

4004:                                             ; preds = %4003
  br label %4005

4005:                                             ; preds = %4004
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %4006 = call ptr @__errno_location() #12
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  store i32 %4007, ptr %95, align 4, !tbaa !5
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = call i32 @s2n_print_stacktrace(ptr noundef %4008)
  %4010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4011 = trunc i8 %4010 to i1
  br i1 %4011, label %4012, label %4034

4012:                                             ; preds = %4005
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = call i32 @fileno(ptr noundef %4013) #11
  %4015 = call i32 @isatty(i32 noundef %4014) #11
  %4016 = icmp ne i32 %4015, 0
  br i1 %4016, label %4017, label %4034

4017:                                             ; preds = %4012
  %4018 = load i32, ptr %95, align 4, !tbaa !5
  %4019 = call ptr @__errno_location() #12
  store i32 %4018, ptr %4019, align 4, !tbaa !5
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = load i32, ptr @test_count, align 4, !tbaa !5
  %4022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @s2n_strerror(i32 noundef %4023, ptr noundef @.str.4)
  %4025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call ptr @s2n_strerror_debug(i32 noundef %4026, ptr noundef @.str.4)
  %4028 = call ptr @__errno_location() #12
  %4029 = load i32, ptr %4028, align 4, !tbaa !5
  %4030 = call ptr @strerror(i32 noundef %4029) #11
  %4031 = call ptr @__errno_location() #12
  %4032 = load i32, ptr %4031, align 4, !tbaa !5
  %4033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4020, ptr noundef @.str.2, i32 noundef %4021, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4024, ptr noundef %4027, ptr noundef %4030, i32 noundef %4032) #11
  br label %4051

4034:                                             ; preds = %4012, %4005
  %4035 = load i32, ptr %95, align 4, !tbaa !5
  %4036 = call ptr @__errno_location() #12
  store i32 %4035, ptr %4036, align 4, !tbaa !5
  %4037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4038 = load i32, ptr @test_count, align 4, !tbaa !5
  %4039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror(i32 noundef %4040, ptr noundef @.str.4)
  %4042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call ptr @s2n_strerror_debug(i32 noundef %4043, ptr noundef @.str.4)
  %4045 = call ptr @__errno_location() #12
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  %4047 = call ptr @strerror(i32 noundef %4046) #11
  %4048 = call ptr @__errno_location() #12
  %4049 = load i32, ptr %4048, align 4, !tbaa !5
  %4050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4037, ptr noundef @.str.5, i32 noundef %4038, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4041, ptr noundef %4044, ptr noundef %4047, i32 noundef %4049) #11
  br label %4051

4051:                                             ; preds = %4034, %4017
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

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

4054:                                             ; No predecessors!
  br label %4055

4055:                                             ; preds = %4054
  br label %4056

4056:                                             ; preds = %4055, %3997
  br label %4057

4057:                                             ; preds = %4056
  br label %4058

4058:                                             ; preds = %4057
  br label %4059

4059:                                             ; preds = %4058
  %4060 = load i32, ptr @test_count, align 4, !tbaa !5
  %4061 = add nsw i32 %4060, 1
  store i32 %4061, ptr @test_count, align 4, !tbaa !5
  %4062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4063 = load i32, ptr %4062, align 4, !tbaa !5
  %4064 = call ptr @s2n_strerror_debug(i32 noundef %4063, ptr noundef @.str.4)
  %4065 = icmp eq ptr %4064, null
  br i1 %4065, label %4066, label %4119

4066:                                             ; preds = %4059
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4069 = call ptr @__errno_location() #12
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  store i32 %4070, ptr %96, align 4, !tbaa !5
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = call i32 @s2n_print_stacktrace(ptr noundef %4071)
  %4073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4074 = trunc i8 %4073 to i1
  br i1 %4074, label %4075, label %4097

4075:                                             ; preds = %4068
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = call i32 @fileno(ptr noundef %4076) #11
  %4078 = call i32 @isatty(i32 noundef %4077) #11
  %4079 = icmp ne i32 %4078, 0
  br i1 %4079, label %4080, label %4097

4080:                                             ; preds = %4075
  %4081 = load i32, ptr %96, align 4, !tbaa !5
  %4082 = call ptr @__errno_location() #12
  store i32 %4081, ptr %4082, align 4, !tbaa !5
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = load i32, ptr @test_count, align 4, !tbaa !5
  %4085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4086 = load i32, ptr %4085, align 4, !tbaa !5
  %4087 = call ptr @s2n_strerror(i32 noundef %4086, ptr noundef @.str.4)
  %4088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror_debug(i32 noundef %4089, ptr noundef @.str.4)
  %4091 = call ptr @__errno_location() #12
  %4092 = load i32, ptr %4091, align 4, !tbaa !5
  %4093 = call ptr @strerror(i32 noundef %4092) #11
  %4094 = call ptr @__errno_location() #12
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4083, ptr noundef @.str.2, i32 noundef %4084, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4087, ptr noundef %4090, ptr noundef %4093, i32 noundef %4095) #11
  br label %4114

4097:                                             ; preds = %4075, %4068
  %4098 = load i32, ptr %96, align 4, !tbaa !5
  %4099 = call ptr @__errno_location() #12
  store i32 %4098, ptr %4099, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror(i32 noundef %4103, ptr noundef @.str.4)
  %4105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror_debug(i32 noundef %4106, ptr noundef @.str.4)
  %4108 = call ptr @__errno_location() #12
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @strerror(i32 noundef %4109) #11
  %4111 = call ptr @__errno_location() #12
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4100, ptr noundef @.str.5, i32 noundef %4101, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4104, ptr noundef %4107, ptr noundef %4110, i32 noundef %4112) #11
  br label %4114

4114:                                             ; preds = %4097, %4080
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4115

4115:                                             ; preds = %4114
  br label %4116

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

4117:                                             ; No predecessors!
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

4119:                                             ; preds = %4118, %4059
  br label %4120

4120:                                             ; preds = %4119
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4123, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4124 = call ptr @__errno_location() #12
  store i32 0, ptr %4124, align 4, !tbaa !5
  br label %4125

4125:                                             ; preds = %4122
  br label %4126

4126:                                             ; preds = %4125
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

4128:                                             ; preds = %4127
  store i32 0, ptr %77, align 4
  br label %4129

4129:                                             ; preds = %4128, %3808
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #11
  br label %4130

4130:                                             ; preds = %4129, %3796
  call void @llvm.lifetime.end.p0(i64 256, ptr %90) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #11
  %4131 = call i32 @s2n_hash_free(ptr noundef %85)
  call void @llvm.lifetime.end.p0(i64 56, ptr %85) #11
  %4132 = call i32 @s2n_hash_free(ptr noundef %81)
  call void @llvm.lifetime.end.p0(i64 56, ptr %81) #11
  br label %4133

4133:                                             ; preds = %4130, %3321
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #11
  br label %4134

4134:                                             ; preds = %4133, %3309
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  %4135 = load i32, ptr %77, align 4
  switch i32 %4135, label %4324 [
    i32 0, label %4136
  ]

4136:                                             ; preds = %4134
  br label %4137

4137:                                             ; preds = %4136
  %4138 = load i32, ptr @test_count, align 4, !tbaa !5
  %4139 = add nsw i32 %4138, 1
  store i32 %4139, ptr @test_count, align 4, !tbaa !5
  %4140 = load ptr, ptr %56, align 8, !tbaa !9
  %4141 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %4140)
  %4142 = icmp eq i32 %4141, -1
  br i1 %4142, label %4143, label %4196

4143:                                             ; preds = %4137
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %4146 = call ptr @__errno_location() #12
  %4147 = load i32, ptr %4146, align 4, !tbaa !5
  store i32 %4147, ptr %97, align 4, !tbaa !5
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = call i32 @s2n_print_stacktrace(ptr noundef %4148)
  %4150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4151 = trunc i8 %4150 to i1
  br i1 %4151, label %4152, label %4174

4152:                                             ; preds = %4145
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = call i32 @fileno(ptr noundef %4153) #11
  %4155 = call i32 @isatty(i32 noundef %4154) #11
  %4156 = icmp ne i32 %4155, 0
  br i1 %4156, label %4157, label %4174

4157:                                             ; preds = %4152
  %4158 = load i32, ptr %97, align 4, !tbaa !5
  %4159 = call ptr @__errno_location() #12
  store i32 %4158, ptr %4159, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = load i32, ptr @test_count, align 4, !tbaa !5
  %4162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror(i32 noundef %4163, ptr noundef @.str.4)
  %4165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @s2n_strerror_debug(i32 noundef %4166, ptr noundef @.str.4)
  %4168 = call ptr @__errno_location() #12
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call ptr @strerror(i32 noundef %4169) #11
  %4171 = call ptr @__errno_location() #12
  %4172 = load i32, ptr %4171, align 4, !tbaa !5
  %4173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4160, ptr noundef @.str.2, i32 noundef %4161, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4164, ptr noundef %4167, ptr noundef %4170, i32 noundef %4172) #11
  br label %4191

4174:                                             ; preds = %4152, %4145
  %4175 = load i32, ptr %97, align 4, !tbaa !5
  %4176 = call ptr @__errno_location() #12
  store i32 %4175, ptr %4176, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef @.str.4)
  %4182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror_debug(i32 noundef %4183, ptr noundef @.str.4)
  %4185 = call ptr @__errno_location() #12
  %4186 = load i32, ptr %4185, align 4, !tbaa !5
  %4187 = call ptr @strerror(i32 noundef %4186) #11
  %4188 = call ptr @__errno_location() #12
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef @.str.5, i32 noundef %4178, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4181, ptr noundef %4184, ptr noundef %4187, i32 noundef %4189) #11
  br label %4191

4191:                                             ; preds = %4174, %4157
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

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

4194:                                             ; No predecessors!
  br label %4195

4195:                                             ; preds = %4194
  br label %4196

4196:                                             ; preds = %4195, %4137
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

4198:                                             ; preds = %4197
  br label %4199

4199:                                             ; preds = %4198
  %4200 = load i32, ptr @test_count, align 4, !tbaa !5
  %4201 = add nsw i32 %4200, 1
  store i32 %4201, ptr @test_count, align 4, !tbaa !5
  %4202 = load ptr, ptr %53, align 8, !tbaa !9
  %4203 = call i32 @s2n_config_free(ptr noundef %4202)
  %4204 = icmp eq i32 %4203, -1
  br i1 %4204, label %4205, label %4258

4205:                                             ; preds = %4199
  br label %4206

4206:                                             ; preds = %4205
  br label %4207

4207:                                             ; preds = %4206
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %4208 = call ptr @__errno_location() #12
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  store i32 %4209, ptr %98, align 4, !tbaa !5
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = call i32 @s2n_print_stacktrace(ptr noundef %4210)
  %4212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4213 = trunc i8 %4212 to i1
  br i1 %4213, label %4214, label %4236

4214:                                             ; preds = %4207
  %4215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4216 = call i32 @fileno(ptr noundef %4215) #11
  %4217 = call i32 @isatty(i32 noundef %4216) #11
  %4218 = icmp ne i32 %4217, 0
  br i1 %4218, label %4219, label %4236

4219:                                             ; preds = %4214
  %4220 = load i32, ptr %98, align 4, !tbaa !5
  %4221 = call ptr @__errno_location() #12
  store i32 %4220, ptr %4221, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = load i32, ptr @test_count, align 4, !tbaa !5
  %4224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = call ptr @s2n_strerror(i32 noundef %4225, ptr noundef @.str.4)
  %4227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror_debug(i32 noundef %4228, ptr noundef @.str.4)
  %4230 = call ptr @__errno_location() #12
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call ptr @strerror(i32 noundef %4231) #11
  %4233 = call ptr @__errno_location() #12
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4222, ptr noundef @.str.2, i32 noundef %4223, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4226, ptr noundef %4229, ptr noundef %4232, i32 noundef %4234) #11
  br label %4253

4236:                                             ; preds = %4214, %4207
  %4237 = load i32, ptr %98, align 4, !tbaa !5
  %4238 = call ptr @__errno_location() #12
  store i32 %4237, ptr %4238, align 4, !tbaa !5
  %4239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4240 = load i32, ptr @test_count, align 4, !tbaa !5
  %4241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4242 = load i32, ptr %4241, align 4, !tbaa !5
  %4243 = call ptr @s2n_strerror(i32 noundef %4242, ptr noundef @.str.4)
  %4244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4245 = load i32, ptr %4244, align 4, !tbaa !5
  %4246 = call ptr @s2n_strerror_debug(i32 noundef %4245, ptr noundef @.str.4)
  %4247 = call ptr @__errno_location() #12
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call ptr @strerror(i32 noundef %4248) #11
  %4250 = call ptr @__errno_location() #12
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4239, ptr noundef @.str.5, i32 noundef %4240, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4243, ptr noundef %4246, ptr noundef %4249, i32 noundef %4251) #11
  br label %4253

4253:                                             ; preds = %4236, %4219
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

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

4256:                                             ; No predecessors!
  br label %4257

4257:                                             ; preds = %4256
  br label %4258

4258:                                             ; preds = %4257, %4199
  br label %4259

4259:                                             ; preds = %4258
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

4261:                                             ; preds = %4260
  %4262 = load i32, ptr @test_count, align 4, !tbaa !5
  %4263 = add nsw i32 %4262, 1
  store i32 %4263, ptr @test_count, align 4, !tbaa !5
  %4264 = call i32 @s2n_pkey_free(ptr noundef %57)
  %4265 = icmp eq i32 %4264, -1
  br i1 %4265, label %4266, label %4319

4266:                                             ; preds = %4261
  br label %4267

4267:                                             ; preds = %4266
  br label %4268

4268:                                             ; preds = %4267
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %4269 = call ptr @__errno_location() #12
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  store i32 %4270, ptr %99, align 4, !tbaa !5
  %4271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4272 = call i32 @s2n_print_stacktrace(ptr noundef %4271)
  %4273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4274 = trunc i8 %4273 to i1
  br i1 %4274, label %4275, label %4297

4275:                                             ; preds = %4268
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = call i32 @fileno(ptr noundef %4276) #11
  %4278 = call i32 @isatty(i32 noundef %4277) #11
  %4279 = icmp ne i32 %4278, 0
  br i1 %4279, label %4280, label %4297

4280:                                             ; preds = %4275
  %4281 = load i32, ptr %99, align 4, !tbaa !5
  %4282 = call ptr @__errno_location() #12
  store i32 %4281, ptr %4282, align 4, !tbaa !5
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = load i32, ptr @test_count, align 4, !tbaa !5
  %4285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4286 = load i32, ptr %4285, align 4, !tbaa !5
  %4287 = call ptr @s2n_strerror(i32 noundef %4286, ptr noundef @.str.4)
  %4288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4289 = load i32, ptr %4288, align 4, !tbaa !5
  %4290 = call ptr @s2n_strerror_debug(i32 noundef %4289, ptr noundef @.str.4)
  %4291 = call ptr @__errno_location() #12
  %4292 = load i32, ptr %4291, align 4, !tbaa !5
  %4293 = call ptr @strerror(i32 noundef %4292) #11
  %4294 = call ptr @__errno_location() #12
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4283, ptr noundef @.str.2, i32 noundef %4284, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4287, ptr noundef %4290, ptr noundef %4293, i32 noundef %4295) #11
  br label %4314

4297:                                             ; preds = %4275, %4268
  %4298 = load i32, ptr %99, align 4, !tbaa !5
  %4299 = call ptr @__errno_location() #12
  store i32 %4298, ptr %4299, align 4, !tbaa !5
  %4300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4301 = load i32, ptr @test_count, align 4, !tbaa !5
  %4302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4303 = load i32, ptr %4302, align 4, !tbaa !5
  %4304 = call ptr @s2n_strerror(i32 noundef %4303, ptr noundef @.str.4)
  %4305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4306 = load i32, ptr %4305, align 4, !tbaa !5
  %4307 = call ptr @s2n_strerror_debug(i32 noundef %4306, ptr noundef @.str.4)
  %4308 = call ptr @__errno_location() #12
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call ptr @strerror(i32 noundef %4309) #11
  %4311 = call ptr @__errno_location() #12
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4300, ptr noundef @.str.5, i32 noundef %4301, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4304, ptr noundef %4307, ptr noundef %4310, i32 noundef %4312) #11
  br label %4314

4314:                                             ; preds = %4297, %4280
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

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

4317:                                             ; No predecessors!
  br label %4318

4318:                                             ; preds = %4317
  br label %4319

4319:                                             ; preds = %4318, %4261
  br label %4320

4320:                                             ; preds = %4319
  br label %4321

4321:                                             ; preds = %4320
  %4322 = load ptr, ptr %54, align 8, !tbaa !9
  call void @free(ptr noundef %4322) #11
  %4323 = load ptr, ptr %55, align 8, !tbaa !9
  call void @free(ptr noundef %4323) #11
  store i32 0, ptr %77, align 4
  br label %4324

4324:                                             ; preds = %4321, %4134
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  %4325 = load i32, ptr %77, align 4
  switch i32 %4325, label %9222 [
    i32 0, label %4326
    i32 1, label %9220
  ]

4326:                                             ; preds = %4324
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #11
  store ptr null, ptr %100, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #11
  store ptr null, ptr %101, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #11
  store ptr null, ptr %102, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  store ptr null, ptr %103, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #11
  store ptr null, ptr %104, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  store ptr null, ptr %105, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #11
  store ptr null, ptr %106, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %107) #11
  call void @llvm.memset.p0.i64(ptr align 8 %107, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %108) #11
  call void @llvm.memset.p0.i64(ptr align 8 %108, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  store i32 -1, ptr %109, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  store i32 -1, ptr %110, align 4, !tbaa !5
  br label %4327

4327:                                             ; preds = %4326
  %4328 = load i32, ptr @test_count, align 4, !tbaa !5
  %4329 = add nsw i32 %4328, 1
  store i32 %4329, ptr @test_count, align 4, !tbaa !5
  %4330 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %4330, ptr %101, align 8, !tbaa !9
  %4331 = icmp eq ptr %4330, null
  br i1 %4331, label %4332, label %4385

4332:                                             ; preds = %4327
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

4334:                                             ; preds = %4333
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4335 = call ptr @__errno_location() #12
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  store i32 %4336, ptr %111, align 4, !tbaa !5
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = call i32 @s2n_print_stacktrace(ptr noundef %4337)
  %4339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4340 = trunc i8 %4339 to i1
  br i1 %4340, label %4341, label %4363

4341:                                             ; preds = %4334
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @fileno(ptr noundef %4342) #11
  %4344 = call i32 @isatty(i32 noundef %4343) #11
  %4345 = icmp ne i32 %4344, 0
  br i1 %4345, label %4346, label %4363

4346:                                             ; preds = %4341
  %4347 = load i32, ptr %111, align 4, !tbaa !5
  %4348 = call ptr @__errno_location() #12
  store i32 %4347, ptr %4348, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = load i32, ptr @test_count, align 4, !tbaa !5
  %4351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call ptr @s2n_strerror(i32 noundef %4352, ptr noundef @.str.4)
  %4354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror_debug(i32 noundef %4355, ptr noundef @.str.4)
  %4357 = call ptr @__errno_location() #12
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call ptr @strerror(i32 noundef %4358) #11
  %4360 = call ptr @__errno_location() #12
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4349, ptr noundef @.str.2, i32 noundef %4350, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4353, ptr noundef %4356, ptr noundef %4359, i32 noundef %4361) #11
  br label %4380

4363:                                             ; preds = %4341, %4334
  %4364 = load i32, ptr %111, align 4, !tbaa !5
  %4365 = call ptr @__errno_location() #12
  store i32 %4364, ptr %4365, align 4, !tbaa !5
  %4366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4367 = load i32, ptr @test_count, align 4, !tbaa !5
  %4368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror(i32 noundef %4369, ptr noundef @.str.4)
  %4371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @s2n_strerror_debug(i32 noundef %4372, ptr noundef @.str.4)
  %4374 = call ptr @__errno_location() #12
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call ptr @strerror(i32 noundef %4375) #11
  %4377 = call ptr @__errno_location() #12
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4366, ptr noundef @.str.5, i32 noundef %4367, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4370, ptr noundef %4373, ptr noundef %4376, i32 noundef %4378) #11
  br label %4380

4380:                                             ; preds = %4363, %4346
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %4381

4381:                                             ; preds = %4380
  br label %4382

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

4383:                                             ; No predecessors!
  br label %4384

4384:                                             ; preds = %4383
  br label %4385

4385:                                             ; preds = %4384, %4327
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  br label %4388

4388:                                             ; preds = %4387
  %4389 = load i32, ptr @test_count, align 4, !tbaa !5
  %4390 = add nsw i32 %4389, 1
  store i32 %4390, ptr @test_count, align 4, !tbaa !5
  %4391 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %4391, ptr %102, align 8, !tbaa !9
  %4392 = icmp eq ptr %4391, null
  br i1 %4392, label %4393, label %4446

4393:                                             ; preds = %4388
  br label %4394

4394:                                             ; preds = %4393
  br label %4395

4395:                                             ; preds = %4394
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4396 = call ptr @__errno_location() #12
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  store i32 %4397, ptr %112, align 4, !tbaa !5
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = call i32 @s2n_print_stacktrace(ptr noundef %4398)
  %4400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4401 = trunc i8 %4400 to i1
  br i1 %4401, label %4402, label %4424

4402:                                             ; preds = %4395
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = call i32 @fileno(ptr noundef %4403) #11
  %4405 = call i32 @isatty(i32 noundef %4404) #11
  %4406 = icmp ne i32 %4405, 0
  br i1 %4406, label %4407, label %4424

4407:                                             ; preds = %4402
  %4408 = load i32, ptr %112, align 4, !tbaa !5
  %4409 = call ptr @__errno_location() #12
  store i32 %4408, ptr %4409, align 4, !tbaa !5
  %4410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror(i32 noundef %4413, ptr noundef @.str.4)
  %4415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror_debug(i32 noundef %4416, ptr noundef @.str.4)
  %4418 = call ptr @__errno_location() #12
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @strerror(i32 noundef %4419) #11
  %4421 = call ptr @__errno_location() #12
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4410, ptr noundef @.str.2, i32 noundef %4411, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4414, ptr noundef %4417, ptr noundef %4420, i32 noundef %4422) #11
  br label %4441

4424:                                             ; preds = %4402, %4395
  %4425 = load i32, ptr %112, align 4, !tbaa !5
  %4426 = call ptr @__errno_location() #12
  store i32 %4425, ptr %4426, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = load i32, ptr @test_count, align 4, !tbaa !5
  %4429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call ptr @s2n_strerror(i32 noundef %4430, ptr noundef @.str.4)
  %4432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror_debug(i32 noundef %4433, ptr noundef @.str.4)
  %4435 = call ptr @__errno_location() #12
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @strerror(i32 noundef %4436) #11
  %4438 = call ptr @__errno_location() #12
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4427, ptr noundef @.str.5, i32 noundef %4428, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4431, ptr noundef %4434, ptr noundef %4437, i32 noundef %4439) #11
  br label %4441

4441:                                             ; preds = %4424, %4407
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

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

4444:                                             ; No predecessors!
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445, %4388
  br label %4447

4447:                                             ; preds = %4446
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

4449:                                             ; preds = %4448
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = add nsw i32 %4450, 1
  store i32 %4451, ptr @test_count, align 4, !tbaa !5
  %4452 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %4452, ptr %103, align 8, !tbaa !9
  %4453 = icmp eq ptr %4452, null
  br i1 %4453, label %4454, label %4507

4454:                                             ; preds = %4449
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4457 = call ptr @__errno_location() #12
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  store i32 %4458, ptr %113, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = call i32 @s2n_print_stacktrace(ptr noundef %4459)
  %4461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4462 = trunc i8 %4461 to i1
  br i1 %4462, label %4463, label %4485

4463:                                             ; preds = %4456
  %4464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4465 = call i32 @fileno(ptr noundef %4464) #11
  %4466 = call i32 @isatty(i32 noundef %4465) #11
  %4467 = icmp ne i32 %4466, 0
  br i1 %4467, label %4468, label %4485

4468:                                             ; preds = %4463
  %4469 = load i32, ptr %113, align 4, !tbaa !5
  %4470 = call ptr @__errno_location() #12
  store i32 %4469, ptr %4470, align 4, !tbaa !5
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror(i32 noundef %4474, ptr noundef @.str.4)
  %4476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call ptr @s2n_strerror_debug(i32 noundef %4477, ptr noundef @.str.4)
  %4479 = call ptr @__errno_location() #12
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call ptr @strerror(i32 noundef %4480) #11
  %4482 = call ptr @__errno_location() #12
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4471, ptr noundef @.str.2, i32 noundef %4472, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4475, ptr noundef %4478, ptr noundef %4481, i32 noundef %4483) #11
  br label %4502

4485:                                             ; preds = %4463, %4456
  %4486 = load i32, ptr %113, align 4, !tbaa !5
  %4487 = call ptr @__errno_location() #12
  store i32 %4486, ptr %4487, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror(i32 noundef %4491, ptr noundef @.str.4)
  %4493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror_debug(i32 noundef %4494, ptr noundef @.str.4)
  %4496 = call ptr @__errno_location() #12
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @strerror(i32 noundef %4497) #11
  %4499 = call ptr @__errno_location() #12
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4488, ptr noundef @.str.5, i32 noundef %4489, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4492, ptr noundef %4495, ptr noundef %4498, i32 noundef %4500) #11
  br label %4502

4502:                                             ; preds = %4485, %4468
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4503

4503:                                             ; preds = %4502
  br label %4504

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

4505:                                             ; No predecessors!
  br label %4506

4506:                                             ; preds = %4505
  br label %4507

4507:                                             ; preds = %4506, %4449
  br label %4508

4508:                                             ; preds = %4507
  br label %4509

4509:                                             ; preds = %4508
  br label %4510

4510:                                             ; preds = %4509
  %4511 = load i32, ptr @test_count, align 4, !tbaa !5
  %4512 = add nsw i32 %4511, 1
  store i32 %4512, ptr @test_count, align 4, !tbaa !5
  %4513 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %4513, ptr %104, align 8, !tbaa !9
  %4514 = icmp eq ptr %4513, null
  br i1 %4514, label %4515, label %4568

4515:                                             ; preds = %4510
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %4518 = call ptr @__errno_location() #12
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  store i32 %4519, ptr %114, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = call i32 @s2n_print_stacktrace(ptr noundef %4520)
  %4522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4523 = trunc i8 %4522 to i1
  br i1 %4523, label %4524, label %4546

4524:                                             ; preds = %4517
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = call i32 @fileno(ptr noundef %4525) #11
  %4527 = call i32 @isatty(i32 noundef %4526) #11
  %4528 = icmp ne i32 %4527, 0
  br i1 %4528, label %4529, label %4546

4529:                                             ; preds = %4524
  %4530 = load i32, ptr %114, align 4, !tbaa !5
  %4531 = call ptr @__errno_location() #12
  store i32 %4530, ptr %4531, align 4, !tbaa !5
  %4532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4533 = load i32, ptr @test_count, align 4, !tbaa !5
  %4534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4535 = load i32, ptr %4534, align 4, !tbaa !5
  %4536 = call ptr @s2n_strerror(i32 noundef %4535, ptr noundef @.str.4)
  %4537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4538 = load i32, ptr %4537, align 4, !tbaa !5
  %4539 = call ptr @s2n_strerror_debug(i32 noundef %4538, ptr noundef @.str.4)
  %4540 = call ptr @__errno_location() #12
  %4541 = load i32, ptr %4540, align 4, !tbaa !5
  %4542 = call ptr @strerror(i32 noundef %4541) #11
  %4543 = call ptr @__errno_location() #12
  %4544 = load i32, ptr %4543, align 4, !tbaa !5
  %4545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4532, ptr noundef @.str.2, i32 noundef %4533, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4536, ptr noundef %4539, ptr noundef %4542, i32 noundef %4544) #11
  br label %4563

4546:                                             ; preds = %4524, %4517
  %4547 = load i32, ptr %114, align 4, !tbaa !5
  %4548 = call ptr @__errno_location() #12
  store i32 %4547, ptr %4548, align 4, !tbaa !5
  %4549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4550 = load i32, ptr @test_count, align 4, !tbaa !5
  %4551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror(i32 noundef %4552, ptr noundef @.str.4)
  %4554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call ptr @s2n_strerror_debug(i32 noundef %4555, ptr noundef @.str.4)
  %4557 = call ptr @__errno_location() #12
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call ptr @strerror(i32 noundef %4558) #11
  %4560 = call ptr @__errno_location() #12
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4549, ptr noundef @.str.5, i32 noundef %4550, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4553, ptr noundef %4556, ptr noundef %4559, i32 noundef %4561) #11
  br label %4563

4563:                                             ; preds = %4546, %4529
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4564

4564:                                             ; preds = %4563
  br label %4565

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

4566:                                             ; No predecessors!
  br label %4567

4567:                                             ; preds = %4566
  br label %4568

4568:                                             ; preds = %4567, %4510
  br label %4569

4569:                                             ; preds = %4568
  br label %4570

4570:                                             ; preds = %4569
  br label %4571

4571:                                             ; preds = %4570
  %4572 = load i32, ptr @test_count, align 4, !tbaa !5
  %4573 = add nsw i32 %4572, 1
  store i32 %4573, ptr @test_count, align 4, !tbaa !5
  %4574 = call ptr @s2n_config_new()
  store ptr %4574, ptr %100, align 8, !tbaa !9
  %4575 = icmp eq ptr %4574, null
  br i1 %4575, label %4576, label %4629

4576:                                             ; preds = %4571
  br label %4577

4577:                                             ; preds = %4576
  br label %4578

4578:                                             ; preds = %4577
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4579 = call ptr @__errno_location() #12
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  store i32 %4580, ptr %115, align 4, !tbaa !5
  %4581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4582 = call i32 @s2n_print_stacktrace(ptr noundef %4581)
  %4583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4584 = trunc i8 %4583 to i1
  br i1 %4584, label %4585, label %4607

4585:                                             ; preds = %4578
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = call i32 @fileno(ptr noundef %4586) #11
  %4588 = call i32 @isatty(i32 noundef %4587) #11
  %4589 = icmp ne i32 %4588, 0
  br i1 %4589, label %4590, label %4607

4590:                                             ; preds = %4585
  %4591 = load i32, ptr %115, align 4, !tbaa !5
  %4592 = call ptr @__errno_location() #12
  store i32 %4591, ptr %4592, align 4, !tbaa !5
  %4593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4594 = load i32, ptr @test_count, align 4, !tbaa !5
  %4595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror(i32 noundef %4596, ptr noundef @.str.4)
  %4598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call ptr @s2n_strerror_debug(i32 noundef %4599, ptr noundef @.str.4)
  %4601 = call ptr @__errno_location() #12
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call ptr @strerror(i32 noundef %4602) #11
  %4604 = call ptr @__errno_location() #12
  %4605 = load i32, ptr %4604, align 4, !tbaa !5
  %4606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4593, ptr noundef @.str.2, i32 noundef %4594, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4597, ptr noundef %4600, ptr noundef %4603, i32 noundef %4605) #11
  br label %4624

4607:                                             ; preds = %4585, %4578
  %4608 = load i32, ptr %115, align 4, !tbaa !5
  %4609 = call ptr @__errno_location() #12
  store i32 %4608, ptr %4609, align 4, !tbaa !5
  %4610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4611 = load i32, ptr @test_count, align 4, !tbaa !5
  %4612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call ptr @s2n_strerror(i32 noundef %4613, ptr noundef @.str.4)
  %4615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @s2n_strerror_debug(i32 noundef %4616, ptr noundef @.str.4)
  %4618 = call ptr @__errno_location() #12
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @strerror(i32 noundef %4619) #11
  %4621 = call ptr @__errno_location() #12
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4610, ptr noundef @.str.5, i32 noundef %4611, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4614, ptr noundef %4617, ptr noundef %4620, i32 noundef %4622) #11
  br label %4624

4624:                                             ; preds = %4607, %4590
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4625

4625:                                             ; preds = %4624
  br label %4626

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

4627:                                             ; No predecessors!
  br label %4628

4628:                                             ; preds = %4627
  br label %4629

4629:                                             ; preds = %4628, %4571
  br label %4630

4630:                                             ; preds = %4629
  br label %4631

4631:                                             ; preds = %4630
  br label %4632

4632:                                             ; preds = %4631
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = add nsw i32 %4633, 1
  store i32 %4634, ptr @test_count, align 4, !tbaa !5
  %4635 = load ptr, ptr %101, align 8, !tbaa !9
  %4636 = call i32 @s2n_read_test_pem(ptr noundef @.str.65, ptr noundef %4635, i64 noundef 12000)
  %4637 = icmp eq i32 %4636, -1
  br i1 %4637, label %4638, label %4691

4638:                                             ; preds = %4632
  br label %4639

4639:                                             ; preds = %4638
  br label %4640

4640:                                             ; preds = %4639
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4641 = call ptr @__errno_location() #12
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  store i32 %4642, ptr %116, align 4, !tbaa !5
  %4643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4644 = call i32 @s2n_print_stacktrace(ptr noundef %4643)
  %4645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4646 = trunc i8 %4645 to i1
  br i1 %4646, label %4647, label %4669

4647:                                             ; preds = %4640
  %4648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4649 = call i32 @fileno(ptr noundef %4648) #11
  %4650 = call i32 @isatty(i32 noundef %4649) #11
  %4651 = icmp ne i32 %4650, 0
  br i1 %4651, label %4652, label %4669

4652:                                             ; preds = %4647
  %4653 = load i32, ptr %116, align 4, !tbaa !5
  %4654 = call ptr @__errno_location() #12
  store i32 %4653, ptr %4654, align 4, !tbaa !5
  %4655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4656 = load i32, ptr @test_count, align 4, !tbaa !5
  %4657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror(i32 noundef %4658, ptr noundef @.str.4)
  %4660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror_debug(i32 noundef %4661, ptr noundef @.str.4)
  %4663 = call ptr @__errno_location() #12
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call ptr @strerror(i32 noundef %4664) #11
  %4666 = call ptr @__errno_location() #12
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  %4668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4655, ptr noundef @.str.2, i32 noundef %4656, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4659, ptr noundef %4662, ptr noundef %4665, i32 noundef %4667) #11
  br label %4686

4669:                                             ; preds = %4647, %4640
  %4670 = load i32, ptr %116, align 4, !tbaa !5
  %4671 = call ptr @__errno_location() #12
  store i32 %4670, ptr %4671, align 4, !tbaa !5
  %4672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4673 = load i32, ptr @test_count, align 4, !tbaa !5
  %4674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4675 = load i32, ptr %4674, align 4, !tbaa !5
  %4676 = call ptr @s2n_strerror(i32 noundef %4675, ptr noundef @.str.4)
  %4677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4678 = load i32, ptr %4677, align 4, !tbaa !5
  %4679 = call ptr @s2n_strerror_debug(i32 noundef %4678, ptr noundef @.str.4)
  %4680 = call ptr @__errno_location() #12
  %4681 = load i32, ptr %4680, align 4, !tbaa !5
  %4682 = call ptr @strerror(i32 noundef %4681) #11
  %4683 = call ptr @__errno_location() #12
  %4684 = load i32, ptr %4683, align 4, !tbaa !5
  %4685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4672, ptr noundef @.str.5, i32 noundef %4673, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4676, ptr noundef %4679, ptr noundef %4682, i32 noundef %4684) #11
  br label %4686

4686:                                             ; preds = %4669, %4652
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4687

4687:                                             ; preds = %4686
  br label %4688

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

4689:                                             ; No predecessors!
  br label %4690

4690:                                             ; preds = %4689
  br label %4691

4691:                                             ; preds = %4690, %4632
  br label %4692

4692:                                             ; preds = %4691
  br label %4693

4693:                                             ; preds = %4692
  br label %4694

4694:                                             ; preds = %4693
  %4695 = load i32, ptr @test_count, align 4, !tbaa !5
  %4696 = add nsw i32 %4695, 1
  store i32 %4696, ptr @test_count, align 4, !tbaa !5
  %4697 = load ptr, ptr %102, align 8, !tbaa !9
  %4698 = call i32 @s2n_read_test_pem(ptr noundef @.str.36, ptr noundef %4697, i64 noundef 12000)
  %4699 = icmp eq i32 %4698, -1
  br i1 %4699, label %4700, label %4753

4700:                                             ; preds = %4694
  br label %4701

4701:                                             ; preds = %4700
  br label %4702

4702:                                             ; preds = %4701
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4703 = call ptr @__errno_location() #12
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  store i32 %4704, ptr %117, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = call i32 @s2n_print_stacktrace(ptr noundef %4705)
  %4707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4708 = trunc i8 %4707 to i1
  br i1 %4708, label %4709, label %4731

4709:                                             ; preds = %4702
  %4710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4711 = call i32 @fileno(ptr noundef %4710) #11
  %4712 = call i32 @isatty(i32 noundef %4711) #11
  %4713 = icmp ne i32 %4712, 0
  br i1 %4713, label %4714, label %4731

4714:                                             ; preds = %4709
  %4715 = load i32, ptr %117, align 4, !tbaa !5
  %4716 = call ptr @__errno_location() #12
  store i32 %4715, ptr %4716, align 4, !tbaa !5
  %4717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4718 = load i32, ptr @test_count, align 4, !tbaa !5
  %4719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @s2n_strerror(i32 noundef %4720, ptr noundef @.str.4)
  %4722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call ptr @s2n_strerror_debug(i32 noundef %4723, ptr noundef @.str.4)
  %4725 = call ptr @__errno_location() #12
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call ptr @strerror(i32 noundef %4726) #11
  %4728 = call ptr @__errno_location() #12
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4717, ptr noundef @.str.2, i32 noundef %4718, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4721, ptr noundef %4724, ptr noundef %4727, i32 noundef %4729) #11
  br label %4748

4731:                                             ; preds = %4709, %4702
  %4732 = load i32, ptr %117, align 4, !tbaa !5
  %4733 = call ptr @__errno_location() #12
  store i32 %4732, ptr %4733, align 4, !tbaa !5
  %4734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4735 = load i32, ptr @test_count, align 4, !tbaa !5
  %4736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call ptr @s2n_strerror(i32 noundef %4737, ptr noundef @.str.4)
  %4739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4740 = load i32, ptr %4739, align 4, !tbaa !5
  %4741 = call ptr @s2n_strerror_debug(i32 noundef %4740, ptr noundef @.str.4)
  %4742 = call ptr @__errno_location() #12
  %4743 = load i32, ptr %4742, align 4, !tbaa !5
  %4744 = call ptr @strerror(i32 noundef %4743) #11
  %4745 = call ptr @__errno_location() #12
  %4746 = load i32, ptr %4745, align 4, !tbaa !5
  %4747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4734, ptr noundef @.str.5, i32 noundef %4735, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4738, ptr noundef %4741, ptr noundef %4744, i32 noundef %4746) #11
  br label %4748

4748:                                             ; preds = %4731, %4714
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4749

4749:                                             ; preds = %4748
  br label %4750

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

4751:                                             ; No predecessors!
  br label %4752

4752:                                             ; preds = %4751
  br label %4753

4753:                                             ; preds = %4752, %4694
  br label %4754

4754:                                             ; preds = %4753
  br label %4755

4755:                                             ; preds = %4754
  br label %4756

4756:                                             ; preds = %4755
  %4757 = load i32, ptr @test_count, align 4, !tbaa !5
  %4758 = add nsw i32 %4757, 1
  store i32 %4758, ptr @test_count, align 4, !tbaa !5
  %4759 = load ptr, ptr %103, align 8, !tbaa !9
  %4760 = call i32 @s2n_read_test_pem(ptr noundef @.str.21, ptr noundef %4759, i64 noundef 12000)
  %4761 = icmp eq i32 %4760, -1
  br i1 %4761, label %4762, label %4815

4762:                                             ; preds = %4756
  br label %4763

4763:                                             ; preds = %4762
  br label %4764

4764:                                             ; preds = %4763
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %4765 = call ptr @__errno_location() #12
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  store i32 %4766, ptr %118, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = call i32 @s2n_print_stacktrace(ptr noundef %4767)
  %4769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4770 = trunc i8 %4769 to i1
  br i1 %4770, label %4771, label %4793

4771:                                             ; preds = %4764
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @fileno(ptr noundef %4772) #11
  %4774 = call i32 @isatty(i32 noundef %4773) #11
  %4775 = icmp ne i32 %4774, 0
  br i1 %4775, label %4776, label %4793

4776:                                             ; preds = %4771
  %4777 = load i32, ptr %118, align 4, !tbaa !5
  %4778 = call ptr @__errno_location() #12
  store i32 %4777, ptr %4778, align 4, !tbaa !5
  %4779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4780 = load i32, ptr @test_count, align 4, !tbaa !5
  %4781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4782 = load i32, ptr %4781, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror(i32 noundef %4782, ptr noundef @.str.4)
  %4784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = call ptr @s2n_strerror_debug(i32 noundef %4785, ptr noundef @.str.4)
  %4787 = call ptr @__errno_location() #12
  %4788 = load i32, ptr %4787, align 4, !tbaa !5
  %4789 = call ptr @strerror(i32 noundef %4788) #11
  %4790 = call ptr @__errno_location() #12
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  %4792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4779, ptr noundef @.str.2, i32 noundef %4780, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4783, ptr noundef %4786, ptr noundef %4789, i32 noundef %4791) #11
  br label %4810

4793:                                             ; preds = %4771, %4764
  %4794 = load i32, ptr %118, align 4, !tbaa !5
  %4795 = call ptr @__errno_location() #12
  store i32 %4794, ptr %4795, align 4, !tbaa !5
  %4796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4797 = load i32, ptr @test_count, align 4, !tbaa !5
  %4798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror(i32 noundef %4799, ptr noundef @.str.4)
  %4801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call ptr @s2n_strerror_debug(i32 noundef %4802, ptr noundef @.str.4)
  %4804 = call ptr @__errno_location() #12
  %4805 = load i32, ptr %4804, align 4, !tbaa !5
  %4806 = call ptr @strerror(i32 noundef %4805) #11
  %4807 = call ptr @__errno_location() #12
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4796, ptr noundef @.str.5, i32 noundef %4797, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4800, ptr noundef %4803, ptr noundef %4806, i32 noundef %4808) #11
  br label %4810

4810:                                             ; preds = %4793, %4776
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

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

4813:                                             ; No predecessors!
  br label %4814

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814, %4756
  br label %4816

4816:                                             ; preds = %4815
  br label %4817

4817:                                             ; preds = %4816
  br label %4818

4818:                                             ; preds = %4817
  %4819 = load i32, ptr @test_count, align 4, !tbaa !5
  %4820 = add nsw i32 %4819, 1
  store i32 %4820, ptr @test_count, align 4, !tbaa !5
  %4821 = load ptr, ptr %104, align 8, !tbaa !9
  %4822 = call i32 @s2n_read_test_pem(ptr noundef @.str.23, ptr noundef %4821, i64 noundef 12000)
  %4823 = icmp eq i32 %4822, -1
  br i1 %4823, label %4824, label %4877

4824:                                             ; preds = %4818
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

4826:                                             ; preds = %4825
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %4827 = call ptr @__errno_location() #12
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  store i32 %4828, ptr %119, align 4, !tbaa !5
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = call i32 @s2n_print_stacktrace(ptr noundef %4829)
  %4831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4832 = trunc i8 %4831 to i1
  br i1 %4832, label %4833, label %4855

4833:                                             ; preds = %4826
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = call i32 @fileno(ptr noundef %4834) #11
  %4836 = call i32 @isatty(i32 noundef %4835) #11
  %4837 = icmp ne i32 %4836, 0
  br i1 %4837, label %4838, label %4855

4838:                                             ; preds = %4833
  %4839 = load i32, ptr %119, align 4, !tbaa !5
  %4840 = call ptr @__errno_location() #12
  store i32 %4839, ptr %4840, align 4, !tbaa !5
  %4841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4842 = load i32, ptr @test_count, align 4, !tbaa !5
  %4843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4844 = load i32, ptr %4843, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror(i32 noundef %4844, ptr noundef @.str.4)
  %4846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4847 = load i32, ptr %4846, align 4, !tbaa !5
  %4848 = call ptr @s2n_strerror_debug(i32 noundef %4847, ptr noundef @.str.4)
  %4849 = call ptr @__errno_location() #12
  %4850 = load i32, ptr %4849, align 4, !tbaa !5
  %4851 = call ptr @strerror(i32 noundef %4850) #11
  %4852 = call ptr @__errno_location() #12
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  %4854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4841, ptr noundef @.str.2, i32 noundef %4842, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4845, ptr noundef %4848, ptr noundef %4851, i32 noundef %4853) #11
  br label %4872

4855:                                             ; preds = %4833, %4826
  %4856 = load i32, ptr %119, align 4, !tbaa !5
  %4857 = call ptr @__errno_location() #12
  store i32 %4856, ptr %4857, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror(i32 noundef %4861, ptr noundef @.str.4)
  %4863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror_debug(i32 noundef %4864, ptr noundef @.str.4)
  %4866 = call ptr @__errno_location() #12
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call ptr @strerror(i32 noundef %4867) #11
  %4869 = call ptr @__errno_location() #12
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4858, ptr noundef @.str.5, i32 noundef %4859, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4862, ptr noundef %4865, ptr noundef %4868, i32 noundef %4870) #11
  br label %4872

4872:                                             ; preds = %4855, %4838
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %4873

4873:                                             ; preds = %4872
  br label %4874

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

4875:                                             ; No predecessors!
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

4877:                                             ; preds = %4876, %4818
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878
  br label %4880

4880:                                             ; preds = %4879
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = add nsw i32 %4881, 1
  store i32 %4882, ptr @test_count, align 4, !tbaa !5
  %4883 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %4883, ptr %105, align 8, !tbaa !9
  %4884 = icmp eq ptr %4883, null
  br i1 %4884, label %4885, label %4938

4885:                                             ; preds = %4880
  br label %4886

4886:                                             ; preds = %4885
  br label %4887

4887:                                             ; preds = %4886
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %4888 = call ptr @__errno_location() #12
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  store i32 %4889, ptr %120, align 4, !tbaa !5
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = call i32 @s2n_print_stacktrace(ptr noundef %4890)
  %4892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4893 = trunc i8 %4892 to i1
  br i1 %4893, label %4894, label %4916

4894:                                             ; preds = %4887
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = call i32 @fileno(ptr noundef %4895) #11
  %4897 = call i32 @isatty(i32 noundef %4896) #11
  %4898 = icmp ne i32 %4897, 0
  br i1 %4898, label %4899, label %4916

4899:                                             ; preds = %4894
  %4900 = load i32, ptr %120, align 4, !tbaa !5
  %4901 = call ptr @__errno_location() #12
  store i32 %4900, ptr %4901, align 4, !tbaa !5
  %4902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4903 = load i32, ptr @test_count, align 4, !tbaa !5
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror(i32 noundef %4905, ptr noundef @.str.4)
  %4907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call ptr @s2n_strerror_debug(i32 noundef %4908, ptr noundef @.str.4)
  %4910 = call ptr @__errno_location() #12
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @strerror(i32 noundef %4911) #11
  %4913 = call ptr @__errno_location() #12
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4902, ptr noundef @.str.2, i32 noundef %4903, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4906, ptr noundef %4909, ptr noundef %4912, i32 noundef %4914) #11
  br label %4933

4916:                                             ; preds = %4894, %4887
  %4917 = load i32, ptr %120, align 4, !tbaa !5
  %4918 = call ptr @__errno_location() #12
  store i32 %4917, ptr %4918, align 4, !tbaa !5
  %4919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4920 = load i32, ptr @test_count, align 4, !tbaa !5
  %4921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4922 = load i32, ptr %4921, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror(i32 noundef %4922, ptr noundef @.str.4)
  %4924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4925 = load i32, ptr %4924, align 4, !tbaa !5
  %4926 = call ptr @s2n_strerror_debug(i32 noundef %4925, ptr noundef @.str.4)
  %4927 = call ptr @__errno_location() #12
  %4928 = load i32, ptr %4927, align 4, !tbaa !5
  %4929 = call ptr @strerror(i32 noundef %4928) #11
  %4930 = call ptr @__errno_location() #12
  %4931 = load i32, ptr %4930, align 4, !tbaa !5
  %4932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4919, ptr noundef @.str.5, i32 noundef %4920, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4923, ptr noundef %4926, ptr noundef %4929, i32 noundef %4931) #11
  br label %4933

4933:                                             ; preds = %4916, %4899
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %4934

4934:                                             ; preds = %4933
  br label %4935

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

4936:                                             ; No predecessors!
  br label %4937

4937:                                             ; preds = %4936
  br label %4938

4938:                                             ; preds = %4937, %4880
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939
  br label %4941

4941:                                             ; preds = %4940
  %4942 = load i32, ptr @test_count, align 4, !tbaa !5
  %4943 = add nsw i32 %4942, 1
  store i32 %4943, ptr @test_count, align 4, !tbaa !5
  %4944 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %4944, ptr %106, align 8, !tbaa !9
  %4945 = icmp eq ptr %4944, null
  br i1 %4945, label %4946, label %4999

4946:                                             ; preds = %4941
  br label %4947

4947:                                             ; preds = %4946
  br label %4948

4948:                                             ; preds = %4947
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %4949 = call ptr @__errno_location() #12
  %4950 = load i32, ptr %4949, align 4, !tbaa !5
  store i32 %4950, ptr %121, align 4, !tbaa !5
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = call i32 @s2n_print_stacktrace(ptr noundef %4951)
  %4953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4954 = trunc i8 %4953 to i1
  br i1 %4954, label %4955, label %4977

4955:                                             ; preds = %4948
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = call i32 @fileno(ptr noundef %4956) #11
  %4958 = call i32 @isatty(i32 noundef %4957) #11
  %4959 = icmp ne i32 %4958, 0
  br i1 %4959, label %4960, label %4977

4960:                                             ; preds = %4955
  %4961 = load i32, ptr %121, align 4, !tbaa !5
  %4962 = call ptr @__errno_location() #12
  store i32 %4961, ptr %4962, align 4, !tbaa !5
  %4963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4964 = load i32, ptr @test_count, align 4, !tbaa !5
  %4965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call ptr @s2n_strerror(i32 noundef %4966, ptr noundef @.str.4)
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror_debug(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call ptr @__errno_location() #12
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @strerror(i32 noundef %4972) #11
  %4974 = call ptr @__errno_location() #12
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4963, ptr noundef @.str.2, i32 noundef %4964, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4967, ptr noundef %4970, ptr noundef %4973, i32 noundef %4975) #11
  br label %4994

4977:                                             ; preds = %4955, %4948
  %4978 = load i32, ptr %121, align 4, !tbaa !5
  %4979 = call ptr @__errno_location() #12
  store i32 %4978, ptr %4979, align 4, !tbaa !5
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = load i32, ptr @test_count, align 4, !tbaa !5
  %4982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4983 = load i32, ptr %4982, align 4, !tbaa !5
  %4984 = call ptr @s2n_strerror(i32 noundef %4983, ptr noundef @.str.4)
  %4985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror_debug(i32 noundef %4986, ptr noundef @.str.4)
  %4988 = call ptr @__errno_location() #12
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @strerror(i32 noundef %4989) #11
  %4991 = call ptr @__errno_location() #12
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4980, ptr noundef @.str.5, i32 noundef %4981, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4984, ptr noundef %4987, ptr noundef %4990, i32 noundef %4992) #11
  br label %4994

4994:                                             ; preds = %4977, %4960
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %4995

4995:                                             ; preds = %4994
  br label %4996

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

4997:                                             ; No predecessors!
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

4999:                                             ; preds = %4998, %4941
  br label %5000

5000:                                             ; preds = %4999
  br label %5001

5001:                                             ; preds = %5000
  br label %5002

5002:                                             ; preds = %5001
  %5003 = load i32, ptr @test_count, align 4, !tbaa !5
  %5004 = add nsw i32 %5003, 1
  store i32 %5004, ptr @test_count, align 4, !tbaa !5
  %5005 = load ptr, ptr %105, align 8, !tbaa !9
  %5006 = load ptr, ptr %101, align 8, !tbaa !9
  %5007 = call i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef %5005, ptr noundef %5006)
  %5008 = icmp eq i32 %5007, -1
  br i1 %5008, label %5009, label %5062

5009:                                             ; preds = %5002
  br label %5010

5010:                                             ; preds = %5009
  br label %5011

5011:                                             ; preds = %5010
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %5012 = call ptr @__errno_location() #12
  %5013 = load i32, ptr %5012, align 4, !tbaa !5
  store i32 %5013, ptr %122, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = call i32 @s2n_print_stacktrace(ptr noundef %5014)
  %5016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5017 = trunc i8 %5016 to i1
  br i1 %5017, label %5018, label %5040

5018:                                             ; preds = %5011
  %5019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5020 = call i32 @fileno(ptr noundef %5019) #11
  %5021 = call i32 @isatty(i32 noundef %5020) #11
  %5022 = icmp ne i32 %5021, 0
  br i1 %5022, label %5023, label %5040

5023:                                             ; preds = %5018
  %5024 = load i32, ptr %122, align 4, !tbaa !5
  %5025 = call ptr @__errno_location() #12
  store i32 %5024, ptr %5025, align 4, !tbaa !5
  %5026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5027 = load i32, ptr @test_count, align 4, !tbaa !5
  %5028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5029 = load i32, ptr %5028, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror(i32 noundef %5029, ptr noundef @.str.4)
  %5031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  %5033 = call ptr @s2n_strerror_debug(i32 noundef %5032, ptr noundef @.str.4)
  %5034 = call ptr @__errno_location() #12
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  %5036 = call ptr @strerror(i32 noundef %5035) #11
  %5037 = call ptr @__errno_location() #12
  %5038 = load i32, ptr %5037, align 4, !tbaa !5
  %5039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5026, ptr noundef @.str.2, i32 noundef %5027, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 223, ptr noundef %5030, ptr noundef %5033, ptr noundef %5036, i32 noundef %5038) #11
  br label %5057

5040:                                             ; preds = %5018, %5011
  %5041 = load i32, ptr %122, align 4, !tbaa !5
  %5042 = call ptr @__errno_location() #12
  store i32 %5041, ptr %5042, align 4, !tbaa !5
  %5043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5044 = load i32, ptr @test_count, align 4, !tbaa !5
  %5045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5046 = load i32, ptr %5045, align 4, !tbaa !5
  %5047 = call ptr @s2n_strerror(i32 noundef %5046, ptr noundef @.str.4)
  %5048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5049 = load i32, ptr %5048, align 4, !tbaa !5
  %5050 = call ptr @s2n_strerror_debug(i32 noundef %5049, ptr noundef @.str.4)
  %5051 = call ptr @__errno_location() #12
  %5052 = load i32, ptr %5051, align 4, !tbaa !5
  %5053 = call ptr @strerror(i32 noundef %5052) #11
  %5054 = call ptr @__errno_location() #12
  %5055 = load i32, ptr %5054, align 4, !tbaa !5
  %5056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5043, ptr noundef @.str.5, i32 noundef %5044, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 223, ptr noundef %5047, ptr noundef %5050, ptr noundef %5053, i32 noundef %5055) #11
  br label %5057

5057:                                             ; preds = %5040, %5023
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %5058

5058:                                             ; preds = %5057
  br label %5059

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

5060:                                             ; No predecessors!
  br label %5061

5061:                                             ; preds = %5060
  br label %5062

5062:                                             ; preds = %5061, %5002
  br label %5063

5063:                                             ; preds = %5062
  br label %5064

5064:                                             ; preds = %5063
  br label %5065

5065:                                             ; preds = %5064
  %5066 = load i32, ptr @test_count, align 4, !tbaa !5
  %5067 = add nsw i32 %5066, 1
  store i32 %5067, ptr @test_count, align 4, !tbaa !5
  %5068 = load ptr, ptr %105, align 8, !tbaa !9
  %5069 = load ptr, ptr %102, align 8, !tbaa !9
  %5070 = call i32 @s2n_cert_chain_and_key_set_private_key(ptr noundef %5068, ptr noundef %5069)
  %5071 = icmp eq i32 %5070, -1
  br i1 %5071, label %5072, label %5125

5072:                                             ; preds = %5065
  br label %5073

5073:                                             ; preds = %5072
  br label %5074

5074:                                             ; preds = %5073
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %5075 = call ptr @__errno_location() #12
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  store i32 %5076, ptr %123, align 4, !tbaa !5
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = call i32 @s2n_print_stacktrace(ptr noundef %5077)
  %5079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5080 = trunc i8 %5079 to i1
  br i1 %5080, label %5081, label %5103

5081:                                             ; preds = %5074
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = call i32 @fileno(ptr noundef %5082) #11
  %5084 = call i32 @isatty(i32 noundef %5083) #11
  %5085 = icmp ne i32 %5084, 0
  br i1 %5085, label %5086, label %5103

5086:                                             ; preds = %5081
  %5087 = load i32, ptr %123, align 4, !tbaa !5
  %5088 = call ptr @__errno_location() #12
  store i32 %5087, ptr %5088, align 4, !tbaa !5
  %5089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5090 = load i32, ptr @test_count, align 4, !tbaa !5
  %5091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @s2n_strerror(i32 noundef %5092, ptr noundef @.str.4)
  %5094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call ptr @s2n_strerror_debug(i32 noundef %5095, ptr noundef @.str.4)
  %5097 = call ptr @__errno_location() #12
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  %5099 = call ptr @strerror(i32 noundef %5098) #11
  %5100 = call ptr @__errno_location() #12
  %5101 = load i32, ptr %5100, align 4, !tbaa !5
  %5102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5089, ptr noundef @.str.2, i32 noundef %5090, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 224, ptr noundef %5093, ptr noundef %5096, ptr noundef %5099, i32 noundef %5101) #11
  br label %5120

5103:                                             ; preds = %5081, %5074
  %5104 = load i32, ptr %123, align 4, !tbaa !5
  %5105 = call ptr @__errno_location() #12
  store i32 %5104, ptr %5105, align 4, !tbaa !5
  %5106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = call ptr @s2n_strerror(i32 noundef %5109, ptr noundef @.str.4)
  %5111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5112 = load i32, ptr %5111, align 4, !tbaa !5
  %5113 = call ptr @s2n_strerror_debug(i32 noundef %5112, ptr noundef @.str.4)
  %5114 = call ptr @__errno_location() #12
  %5115 = load i32, ptr %5114, align 4, !tbaa !5
  %5116 = call ptr @strerror(i32 noundef %5115) #11
  %5117 = call ptr @__errno_location() #12
  %5118 = load i32, ptr %5117, align 4, !tbaa !5
  %5119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5106, ptr noundef @.str.5, i32 noundef %5107, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 224, ptr noundef %5110, ptr noundef %5113, ptr noundef %5116, i32 noundef %5118) #11
  br label %5120

5120:                                             ; preds = %5103, %5086
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5121

5121:                                             ; preds = %5120
  br label %5122

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

5123:                                             ; No predecessors!
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

5125:                                             ; preds = %5124, %5065
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

5127:                                             ; preds = %5126
  br label %5128

5128:                                             ; preds = %5127
  %5129 = load i32, ptr @test_count, align 4, !tbaa !5
  %5130 = add nsw i32 %5129, 1
  store i32 %5130, ptr @test_count, align 4, !tbaa !5
  %5131 = load ptr, ptr %106, align 8, !tbaa !9
  %5132 = load ptr, ptr %103, align 8, !tbaa !9
  %5133 = call i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef %5131, ptr noundef %5132)
  %5134 = icmp eq i32 %5133, -1
  br i1 %5134, label %5135, label %5188

5135:                                             ; preds = %5128
  br label %5136

5136:                                             ; preds = %5135
  br label %5137

5137:                                             ; preds = %5136
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5138 = call ptr @__errno_location() #12
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  store i32 %5139, ptr %124, align 4, !tbaa !5
  %5140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5141 = call i32 @s2n_print_stacktrace(ptr noundef %5140)
  %5142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5143 = trunc i8 %5142 to i1
  br i1 %5143, label %5144, label %5166

5144:                                             ; preds = %5137
  %5145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5146 = call i32 @fileno(ptr noundef %5145) #11
  %5147 = call i32 @isatty(i32 noundef %5146) #11
  %5148 = icmp ne i32 %5147, 0
  br i1 %5148, label %5149, label %5166

5149:                                             ; preds = %5144
  %5150 = load i32, ptr %124, align 4, !tbaa !5
  %5151 = call ptr @__errno_location() #12
  store i32 %5150, ptr %5151, align 4, !tbaa !5
  %5152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5153 = load i32, ptr @test_count, align 4, !tbaa !5
  %5154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5155 = load i32, ptr %5154, align 4, !tbaa !5
  %5156 = call ptr @s2n_strerror(i32 noundef %5155, ptr noundef @.str.4)
  %5157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror_debug(i32 noundef %5158, ptr noundef @.str.4)
  %5160 = call ptr @__errno_location() #12
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call ptr @strerror(i32 noundef %5161) #11
  %5163 = call ptr @__errno_location() #12
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5152, ptr noundef @.str.2, i32 noundef %5153, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 225, ptr noundef %5156, ptr noundef %5159, ptr noundef %5162, i32 noundef %5164) #11
  br label %5183

5166:                                             ; preds = %5144, %5137
  %5167 = load i32, ptr %124, align 4, !tbaa !5
  %5168 = call ptr @__errno_location() #12
  store i32 %5167, ptr %5168, align 4, !tbaa !5
  %5169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5170 = load i32, ptr @test_count, align 4, !tbaa !5
  %5171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5172 = load i32, ptr %5171, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror(i32 noundef %5172, ptr noundef @.str.4)
  %5174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5175 = load i32, ptr %5174, align 4, !tbaa !5
  %5176 = call ptr @s2n_strerror_debug(i32 noundef %5175, ptr noundef @.str.4)
  %5177 = call ptr @__errno_location() #12
  %5178 = load i32, ptr %5177, align 4, !tbaa !5
  %5179 = call ptr @strerror(i32 noundef %5178) #11
  %5180 = call ptr @__errno_location() #12
  %5181 = load i32, ptr %5180, align 4, !tbaa !5
  %5182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5169, ptr noundef @.str.5, i32 noundef %5170, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 225, ptr noundef %5173, ptr noundef %5176, ptr noundef %5179, i32 noundef %5181) #11
  br label %5183

5183:                                             ; preds = %5166, %5149
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

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

5186:                                             ; No predecessors!
  br label %5187

5187:                                             ; preds = %5186
  br label %5188

5188:                                             ; preds = %5187, %5128
  br label %5189

5189:                                             ; preds = %5188
  br label %5190

5190:                                             ; preds = %5189
  br label %5191

5191:                                             ; preds = %5190
  %5192 = load i32, ptr @test_count, align 4, !tbaa !5
  %5193 = add nsw i32 %5192, 1
  store i32 %5193, ptr @test_count, align 4, !tbaa !5
  %5194 = load ptr, ptr %106, align 8, !tbaa !9
  %5195 = load ptr, ptr %104, align 8, !tbaa !9
  %5196 = call i32 @s2n_cert_chain_and_key_set_private_key(ptr noundef %5194, ptr noundef %5195)
  %5197 = icmp eq i32 %5196, -1
  br i1 %5197, label %5198, label %5251

5198:                                             ; preds = %5191
  br label %5199

5199:                                             ; preds = %5198
  br label %5200

5200:                                             ; preds = %5199
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %5201 = call ptr @__errno_location() #12
  %5202 = load i32, ptr %5201, align 4, !tbaa !5
  store i32 %5202, ptr %125, align 4, !tbaa !5
  %5203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5204 = call i32 @s2n_print_stacktrace(ptr noundef %5203)
  %5205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5206 = trunc i8 %5205 to i1
  br i1 %5206, label %5207, label %5229

5207:                                             ; preds = %5200
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = call i32 @fileno(ptr noundef %5208) #11
  %5210 = call i32 @isatty(i32 noundef %5209) #11
  %5211 = icmp ne i32 %5210, 0
  br i1 %5211, label %5212, label %5229

5212:                                             ; preds = %5207
  %5213 = load i32, ptr %125, align 4, !tbaa !5
  %5214 = call ptr @__errno_location() #12
  store i32 %5213, ptr %5214, align 4, !tbaa !5
  %5215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5216 = load i32, ptr @test_count, align 4, !tbaa !5
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror_debug(i32 noundef %5221, ptr noundef @.str.4)
  %5223 = call ptr @__errno_location() #12
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @strerror(i32 noundef %5224) #11
  %5226 = call ptr @__errno_location() #12
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5215, ptr noundef @.str.2, i32 noundef %5216, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 226, ptr noundef %5219, ptr noundef %5222, ptr noundef %5225, i32 noundef %5227) #11
  br label %5246

5229:                                             ; preds = %5207, %5200
  %5230 = load i32, ptr %125, align 4, !tbaa !5
  %5231 = call ptr @__errno_location() #12
  store i32 %5230, ptr %5231, align 4, !tbaa !5
  %5232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5233 = load i32, ptr @test_count, align 4, !tbaa !5
  %5234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5235 = load i32, ptr %5234, align 4, !tbaa !5
  %5236 = call ptr @s2n_strerror(i32 noundef %5235, ptr noundef @.str.4)
  %5237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call ptr @s2n_strerror_debug(i32 noundef %5238, ptr noundef @.str.4)
  %5240 = call ptr @__errno_location() #12
  %5241 = load i32, ptr %5240, align 4, !tbaa !5
  %5242 = call ptr @strerror(i32 noundef %5241) #11
  %5243 = call ptr @__errno_location() #12
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  %5245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5232, ptr noundef @.str.5, i32 noundef %5233, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 226, ptr noundef %5236, ptr noundef %5239, ptr noundef %5242, i32 noundef %5244) #11
  br label %5246

5246:                                             ; preds = %5229, %5212
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

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

5249:                                             ; No predecessors!
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250, %5191
  br label %5252

5252:                                             ; preds = %5251
  br label %5253

5253:                                             ; preds = %5252
  br label %5254

5254:                                             ; preds = %5253
  %5255 = load i32, ptr @test_count, align 4, !tbaa !5
  %5256 = add nsw i32 %5255, 1
  store i32 %5256, ptr @test_count, align 4, !tbaa !5
  %5257 = load ptr, ptr %105, align 8, !tbaa !9
  %5258 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %5257, i32 0, i32 0
  %5259 = load ptr, ptr %5258, align 8, !tbaa !15
  %5260 = getelementptr inbounds %struct.s2n_cert_chain, ptr %5259, i32 0, i32 1
  %5261 = load ptr, ptr %5260, align 8, !tbaa !18
  %5262 = getelementptr inbounds %struct.s2n_cert, ptr %5261, i32 0, i32 3
  %5263 = call i32 @s2n_asn1der_to_public_key_and_type(ptr noundef %107, ptr noundef %109, ptr noundef %5262)
  %5264 = getelementptr inbounds %struct.s2n_result, ptr %126, i32 0, i32 0
  store i32 %5263, ptr %5264, align 4
  %5265 = getelementptr inbounds %struct.s2n_result, ptr %126, i32 0, i32 0
  %5266 = load i32, ptr %5265, align 4
  %5267 = call zeroext i1 @s2n_result_is_ok(i32 %5266)
  br i1 %5267, label %5321, label %5268

5268:                                             ; preds = %5254
  br label %5269

5269:                                             ; preds = %5268
  br label %5270

5270:                                             ; preds = %5269
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %5271 = call ptr @__errno_location() #12
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  store i32 %5272, ptr %127, align 4, !tbaa !5
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = call i32 @s2n_print_stacktrace(ptr noundef %5273)
  %5275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5276 = trunc i8 %5275 to i1
  br i1 %5276, label %5277, label %5299

5277:                                             ; preds = %5270
  %5278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5279 = call i32 @fileno(ptr noundef %5278) #11
  %5280 = call i32 @isatty(i32 noundef %5279) #11
  %5281 = icmp ne i32 %5280, 0
  br i1 %5281, label %5282, label %5299

5282:                                             ; preds = %5277
  %5283 = load i32, ptr %127, align 4, !tbaa !5
  %5284 = call ptr @__errno_location() #12
  store i32 %5283, ptr %5284, align 4, !tbaa !5
  %5285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5286 = load i32, ptr @test_count, align 4, !tbaa !5
  %5287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror(i32 noundef %5288, ptr noundef @.str.4)
  %5290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call ptr @s2n_strerror_debug(i32 noundef %5291, ptr noundef @.str.4)
  %5293 = call ptr @__errno_location() #12
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call ptr @strerror(i32 noundef %5294) #11
  %5296 = call ptr @__errno_location() #12
  %5297 = load i32, ptr %5296, align 4, !tbaa !5
  %5298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5285, ptr noundef @.str.2, i32 noundef %5286, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5289, ptr noundef %5292, ptr noundef %5295, i32 noundef %5297) #11
  br label %5316

5299:                                             ; preds = %5277, %5270
  %5300 = load i32, ptr %127, align 4, !tbaa !5
  %5301 = call ptr @__errno_location() #12
  store i32 %5300, ptr %5301, align 4, !tbaa !5
  %5302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror(i32 noundef %5305, ptr noundef @.str.4)
  %5307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call ptr @s2n_strerror_debug(i32 noundef %5308, ptr noundef @.str.4)
  %5310 = call ptr @__errno_location() #12
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  %5312 = call ptr @strerror(i32 noundef %5311) #11
  %5313 = call ptr @__errno_location() #12
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5302, ptr noundef @.str.5, i32 noundef %5303, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5306, ptr noundef %5309, ptr noundef %5312, i32 noundef %5314) #11
  br label %5316

5316:                                             ; preds = %5299, %5282
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

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

5319:                                             ; No predecessors!
  br label %5320

5320:                                             ; preds = %5319
  br label %5321

5321:                                             ; preds = %5320, %5254
  br label %5322

5322:                                             ; preds = %5321
  br label %5323

5323:                                             ; preds = %5322
  br label %5324

5324:                                             ; preds = %5323
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = add nsw i32 %5325, 1
  store i32 %5326, ptr @test_count, align 4, !tbaa !5
  %5327 = load ptr, ptr %106, align 8, !tbaa !9
  %5328 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %5327, i32 0, i32 0
  %5329 = load ptr, ptr %5328, align 8, !tbaa !15
  %5330 = getelementptr inbounds %struct.s2n_cert_chain, ptr %5329, i32 0, i32 1
  %5331 = load ptr, ptr %5330, align 8, !tbaa !18
  %5332 = getelementptr inbounds %struct.s2n_cert, ptr %5331, i32 0, i32 3
  %5333 = call i32 @s2n_asn1der_to_public_key_and_type(ptr noundef %108, ptr noundef %110, ptr noundef %5332)
  %5334 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  store i32 %5333, ptr %5334, align 4
  %5335 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  %5336 = load i32, ptr %5335, align 4
  %5337 = call zeroext i1 @s2n_result_is_ok(i32 %5336)
  br i1 %5337, label %5391, label %5338

5338:                                             ; preds = %5324
  br label %5339

5339:                                             ; preds = %5338
  br label %5340

5340:                                             ; preds = %5339
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5341 = call ptr @__errno_location() #12
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  store i32 %5342, ptr %129, align 4, !tbaa !5
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = call i32 @s2n_print_stacktrace(ptr noundef %5343)
  %5345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5346 = trunc i8 %5345 to i1
  br i1 %5346, label %5347, label %5369

5347:                                             ; preds = %5340
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = call i32 @fileno(ptr noundef %5348) #11
  %5350 = call i32 @isatty(i32 noundef %5349) #11
  %5351 = icmp ne i32 %5350, 0
  br i1 %5351, label %5352, label %5369

5352:                                             ; preds = %5347
  %5353 = load i32, ptr %129, align 4, !tbaa !5
  %5354 = call ptr @__errno_location() #12
  store i32 %5353, ptr %5354, align 4, !tbaa !5
  %5355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5356 = load i32, ptr @test_count, align 4, !tbaa !5
  %5357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = call ptr @s2n_strerror(i32 noundef %5358, ptr noundef @.str.4)
  %5360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5361 = load i32, ptr %5360, align 4, !tbaa !5
  %5362 = call ptr @s2n_strerror_debug(i32 noundef %5361, ptr noundef @.str.4)
  %5363 = call ptr @__errno_location() #12
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @strerror(i32 noundef %5364) #11
  %5366 = call ptr @__errno_location() #12
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5355, ptr noundef @.str.2, i32 noundef %5356, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5359, ptr noundef %5362, ptr noundef %5365, i32 noundef %5367) #11
  br label %5386

5369:                                             ; preds = %5347, %5340
  %5370 = load i32, ptr %129, align 4, !tbaa !5
  %5371 = call ptr @__errno_location() #12
  store i32 %5370, ptr %5371, align 4, !tbaa !5
  %5372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5373 = load i32, ptr @test_count, align 4, !tbaa !5
  %5374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5375 = load i32, ptr %5374, align 4, !tbaa !5
  %5376 = call ptr @s2n_strerror(i32 noundef %5375, ptr noundef @.str.4)
  %5377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5378 = load i32, ptr %5377, align 4, !tbaa !5
  %5379 = call ptr @s2n_strerror_debug(i32 noundef %5378, ptr noundef @.str.4)
  %5380 = call ptr @__errno_location() #12
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @strerror(i32 noundef %5381) #11
  %5383 = call ptr @__errno_location() #12
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5372, ptr noundef @.str.5, i32 noundef %5373, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5376, ptr noundef %5379, ptr noundef %5382, i32 noundef %5384) #11
  br label %5386

5386:                                             ; preds = %5369, %5352
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %5387

5387:                                             ; preds = %5386
  br label %5388

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

5389:                                             ; No predecessors!
  br label %5390

5390:                                             ; preds = %5389
  br label %5391

5391:                                             ; preds = %5390, %5324
  br label %5392

5392:                                             ; preds = %5391
  br label %5393

5393:                                             ; preds = %5392
  br label %5394

5394:                                             ; preds = %5393
  %5395 = load i32, ptr @test_count, align 4, !tbaa !5
  %5396 = add nsw i32 %5395, 1
  store i32 %5396, ptr @test_count, align 4, !tbaa !5
  %5397 = load i32, ptr %109, align 4, !tbaa !5
  %5398 = icmp eq i32 %5397, -1
  br i1 %5398, label %5399, label %5452

5399:                                             ; preds = %5394
  br label %5400

5400:                                             ; preds = %5399
  br label %5401

5401:                                             ; preds = %5400
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5402 = call ptr @__errno_location() #12
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  store i32 %5403, ptr %130, align 4, !tbaa !5
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = call i32 @s2n_print_stacktrace(ptr noundef %5404)
  %5406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5407 = trunc i8 %5406 to i1
  br i1 %5407, label %5408, label %5430

5408:                                             ; preds = %5401
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = call i32 @fileno(ptr noundef %5409) #11
  %5411 = call i32 @isatty(i32 noundef %5410) #11
  %5412 = icmp ne i32 %5411, 0
  br i1 %5412, label %5413, label %5430

5413:                                             ; preds = %5408
  %5414 = load i32, ptr %130, align 4, !tbaa !5
  %5415 = call ptr @__errno_location() #12
  store i32 %5414, ptr %5415, align 4, !tbaa !5
  %5416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5417 = load i32, ptr @test_count, align 4, !tbaa !5
  %5418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5419 = load i32, ptr %5418, align 4, !tbaa !5
  %5420 = call ptr @s2n_strerror(i32 noundef %5419, ptr noundef @.str.4)
  %5421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5422 = load i32, ptr %5421, align 4, !tbaa !5
  %5423 = call ptr @s2n_strerror_debug(i32 noundef %5422, ptr noundef @.str.4)
  %5424 = call ptr @__errno_location() #12
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  %5426 = call ptr @strerror(i32 noundef %5425) #11
  %5427 = call ptr @__errno_location() #12
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5416, ptr noundef @.str.2, i32 noundef %5417, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 231, ptr noundef %5420, ptr noundef %5423, ptr noundef %5426, i32 noundef %5428) #11
  br label %5447

5430:                                             ; preds = %5408, %5401
  %5431 = load i32, ptr %130, align 4, !tbaa !5
  %5432 = call ptr @__errno_location() #12
  store i32 %5431, ptr %5432, align 4, !tbaa !5
  %5433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5434 = load i32, ptr @test_count, align 4, !tbaa !5
  %5435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5436 = load i32, ptr %5435, align 4, !tbaa !5
  %5437 = call ptr @s2n_strerror(i32 noundef %5436, ptr noundef @.str.4)
  %5438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5439 = load i32, ptr %5438, align 4, !tbaa !5
  %5440 = call ptr @s2n_strerror_debug(i32 noundef %5439, ptr noundef @.str.4)
  %5441 = call ptr @__errno_location() #12
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  %5443 = call ptr @strerror(i32 noundef %5442) #11
  %5444 = call ptr @__errno_location() #12
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5433, ptr noundef @.str.5, i32 noundef %5434, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 231, ptr noundef %5437, ptr noundef %5440, ptr noundef %5443, i32 noundef %5445) #11
  br label %5447

5447:                                             ; preds = %5430, %5413
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5448

5448:                                             ; preds = %5447
  br label %5449

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

5450:                                             ; No predecessors!
  br label %5451

5451:                                             ; preds = %5450
  br label %5452

5452:                                             ; preds = %5451, %5394
  br label %5453

5453:                                             ; preds = %5452
  br label %5454

5454:                                             ; preds = %5453
  br label %5455

5455:                                             ; preds = %5454
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = add nsw i32 %5456, 1
  store i32 %5457, ptr @test_count, align 4, !tbaa !5
  %5458 = load i32, ptr %110, align 4, !tbaa !5
  %5459 = icmp eq i32 %5458, -1
  br i1 %5459, label %5460, label %5513

5460:                                             ; preds = %5455
  br label %5461

5461:                                             ; preds = %5460
  br label %5462

5462:                                             ; preds = %5461
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %5463 = call ptr @__errno_location() #12
  %5464 = load i32, ptr %5463, align 4, !tbaa !5
  store i32 %5464, ptr %131, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = call i32 @s2n_print_stacktrace(ptr noundef %5465)
  %5467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5468 = trunc i8 %5467 to i1
  br i1 %5468, label %5469, label %5491

5469:                                             ; preds = %5462
  %5470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5471 = call i32 @fileno(ptr noundef %5470) #11
  %5472 = call i32 @isatty(i32 noundef %5471) #11
  %5473 = icmp ne i32 %5472, 0
  br i1 %5473, label %5474, label %5491

5474:                                             ; preds = %5469
  %5475 = load i32, ptr %131, align 4, !tbaa !5
  %5476 = call ptr @__errno_location() #12
  store i32 %5475, ptr %5476, align 4, !tbaa !5
  %5477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5478 = load i32, ptr @test_count, align 4, !tbaa !5
  %5479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @s2n_strerror(i32 noundef %5480, ptr noundef @.str.4)
  %5482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call ptr @s2n_strerror_debug(i32 noundef %5483, ptr noundef @.str.4)
  %5485 = call ptr @__errno_location() #12
  %5486 = load i32, ptr %5485, align 4, !tbaa !5
  %5487 = call ptr @strerror(i32 noundef %5486) #11
  %5488 = call ptr @__errno_location() #12
  %5489 = load i32, ptr %5488, align 4, !tbaa !5
  %5490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5477, ptr noundef @.str.2, i32 noundef %5478, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 232, ptr noundef %5481, ptr noundef %5484, ptr noundef %5487, i32 noundef %5489) #11
  br label %5508

5491:                                             ; preds = %5469, %5462
  %5492 = load i32, ptr %131, align 4, !tbaa !5
  %5493 = call ptr @__errno_location() #12
  store i32 %5492, ptr %5493, align 4, !tbaa !5
  %5494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5495 = load i32, ptr @test_count, align 4, !tbaa !5
  %5496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5497 = load i32, ptr %5496, align 4, !tbaa !5
  %5498 = call ptr @s2n_strerror(i32 noundef %5497, ptr noundef @.str.4)
  %5499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5500 = load i32, ptr %5499, align 4, !tbaa !5
  %5501 = call ptr @s2n_strerror_debug(i32 noundef %5500, ptr noundef @.str.4)
  %5502 = call ptr @__errno_location() #12
  %5503 = load i32, ptr %5502, align 4, !tbaa !5
  %5504 = call ptr @strerror(i32 noundef %5503) #11
  %5505 = call ptr @__errno_location() #12
  %5506 = load i32, ptr %5505, align 4, !tbaa !5
  %5507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5494, ptr noundef @.str.5, i32 noundef %5495, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 232, ptr noundef %5498, ptr noundef %5501, ptr noundef %5504, i32 noundef %5506) #11
  br label %5508

5508:                                             ; preds = %5491, %5474
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5509

5509:                                             ; preds = %5508
  br label %5510

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

5511:                                             ; No predecessors!
  br label %5512

5512:                                             ; preds = %5511
  br label %5513

5513:                                             ; preds = %5512, %5455
  br label %5514

5514:                                             ; preds = %5513
  br label %5515

5515:                                             ; preds = %5514
  br label %5516

5516:                                             ; preds = %5515
  %5517 = load i32, ptr @test_count, align 4, !tbaa !5
  %5518 = add nsw i32 %5517, 1
  store i32 %5518, ptr @test_count, align 4, !tbaa !5
  %5519 = load ptr, ptr %105, align 8, !tbaa !9
  %5520 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %5519, i32 0, i32 0
  %5521 = load ptr, ptr %5520, align 8, !tbaa !15
  %5522 = getelementptr inbounds %struct.s2n_cert_chain, ptr %5521, i32 0, i32 1
  %5523 = load ptr, ptr %5522, align 8, !tbaa !18
  %5524 = load i32, ptr %109, align 4, !tbaa !5
  %5525 = call i32 @s2n_cert_set_cert_type(ptr noundef %5523, i32 noundef %5524)
  %5526 = icmp eq i32 %5525, -1
  br i1 %5526, label %5527, label %5580

5527:                                             ; preds = %5516
  br label %5528

5528:                                             ; preds = %5527
  br label %5529

5529:                                             ; preds = %5528
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %5530 = call ptr @__errno_location() #12
  %5531 = load i32, ptr %5530, align 4, !tbaa !5
  store i32 %5531, ptr %132, align 4, !tbaa !5
  %5532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5533 = call i32 @s2n_print_stacktrace(ptr noundef %5532)
  %5534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5535 = trunc i8 %5534 to i1
  br i1 %5535, label %5536, label %5558

5536:                                             ; preds = %5529
  %5537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5538 = call i32 @fileno(ptr noundef %5537) #11
  %5539 = call i32 @isatty(i32 noundef %5538) #11
  %5540 = icmp ne i32 %5539, 0
  br i1 %5540, label %5541, label %5558

5541:                                             ; preds = %5536
  %5542 = load i32, ptr %132, align 4, !tbaa !5
  %5543 = call ptr @__errno_location() #12
  store i32 %5542, ptr %5543, align 4, !tbaa !5
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5547 = load i32, ptr %5546, align 4, !tbaa !5
  %5548 = call ptr @s2n_strerror(i32 noundef %5547, ptr noundef @.str.4)
  %5549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5550 = load i32, ptr %5549, align 4, !tbaa !5
  %5551 = call ptr @s2n_strerror_debug(i32 noundef %5550, ptr noundef @.str.4)
  %5552 = call ptr @__errno_location() #12
  %5553 = load i32, ptr %5552, align 4, !tbaa !5
  %5554 = call ptr @strerror(i32 noundef %5553) #11
  %5555 = call ptr @__errno_location() #12
  %5556 = load i32, ptr %5555, align 4, !tbaa !5
  %5557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5544, ptr noundef @.str.2, i32 noundef %5545, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5548, ptr noundef %5551, ptr noundef %5554, i32 noundef %5556) #11
  br label %5575

5558:                                             ; preds = %5536, %5529
  %5559 = load i32, ptr %132, align 4, !tbaa !5
  %5560 = call ptr @__errno_location() #12
  store i32 %5559, ptr %5560, align 4, !tbaa !5
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = load i32, ptr @test_count, align 4, !tbaa !5
  %5563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5564 = load i32, ptr %5563, align 4, !tbaa !5
  %5565 = call ptr @s2n_strerror(i32 noundef %5564, ptr noundef @.str.4)
  %5566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5567 = load i32, ptr %5566, align 4, !tbaa !5
  %5568 = call ptr @s2n_strerror_debug(i32 noundef %5567, ptr noundef @.str.4)
  %5569 = call ptr @__errno_location() #12
  %5570 = load i32, ptr %5569, align 4, !tbaa !5
  %5571 = call ptr @strerror(i32 noundef %5570) #11
  %5572 = call ptr @__errno_location() #12
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5561, ptr noundef @.str.5, i32 noundef %5562, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5565, ptr noundef %5568, ptr noundef %5571, i32 noundef %5573) #11
  br label %5575

5575:                                             ; preds = %5558, %5541
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %5576

5576:                                             ; preds = %5575
  br label %5577

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

5578:                                             ; No predecessors!
  br label %5579

5579:                                             ; preds = %5578
  br label %5580

5580:                                             ; preds = %5579, %5516
  br label %5581

5581:                                             ; preds = %5580
  br label %5582

5582:                                             ; preds = %5581
  br label %5583

5583:                                             ; preds = %5582
  %5584 = load i32, ptr @test_count, align 4, !tbaa !5
  %5585 = add nsw i32 %5584, 1
  store i32 %5585, ptr @test_count, align 4, !tbaa !5
  %5586 = load ptr, ptr %106, align 8, !tbaa !9
  %5587 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %5586, i32 0, i32 0
  %5588 = load ptr, ptr %5587, align 8, !tbaa !15
  %5589 = getelementptr inbounds %struct.s2n_cert_chain, ptr %5588, i32 0, i32 1
  %5590 = load ptr, ptr %5589, align 8, !tbaa !18
  %5591 = load i32, ptr %110, align 4, !tbaa !5
  %5592 = call i32 @s2n_cert_set_cert_type(ptr noundef %5590, i32 noundef %5591)
  %5593 = icmp eq i32 %5592, -1
  br i1 %5593, label %5594, label %5647

5594:                                             ; preds = %5583
  br label %5595

5595:                                             ; preds = %5594
  br label %5596

5596:                                             ; preds = %5595
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %5597 = call ptr @__errno_location() #12
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  store i32 %5598, ptr %133, align 4, !tbaa !5
  %5599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5600 = call i32 @s2n_print_stacktrace(ptr noundef %5599)
  %5601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5602 = trunc i8 %5601 to i1
  br i1 %5602, label %5603, label %5625

5603:                                             ; preds = %5596
  %5604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5605 = call i32 @fileno(ptr noundef %5604) #11
  %5606 = call i32 @isatty(i32 noundef %5605) #11
  %5607 = icmp ne i32 %5606, 0
  br i1 %5607, label %5608, label %5625

5608:                                             ; preds = %5603
  %5609 = load i32, ptr %133, align 4, !tbaa !5
  %5610 = call ptr @__errno_location() #12
  store i32 %5609, ptr %5610, align 4, !tbaa !5
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = load i32, ptr @test_count, align 4, !tbaa !5
  %5613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call ptr @s2n_strerror(i32 noundef %5614, ptr noundef @.str.4)
  %5616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call ptr @s2n_strerror_debug(i32 noundef %5617, ptr noundef @.str.4)
  %5619 = call ptr @__errno_location() #12
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  %5621 = call ptr @strerror(i32 noundef %5620) #11
  %5622 = call ptr @__errno_location() #12
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  %5624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5611, ptr noundef @.str.2, i32 noundef %5612, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 235, ptr noundef %5615, ptr noundef %5618, ptr noundef %5621, i32 noundef %5623) #11
  br label %5642

5625:                                             ; preds = %5603, %5596
  %5626 = load i32, ptr %133, align 4, !tbaa !5
  %5627 = call ptr @__errno_location() #12
  store i32 %5626, ptr %5627, align 4, !tbaa !5
  %5628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5629 = load i32, ptr @test_count, align 4, !tbaa !5
  %5630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5631 = load i32, ptr %5630, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror_debug(i32 noundef %5634, ptr noundef @.str.4)
  %5636 = call ptr @__errno_location() #12
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call ptr @strerror(i32 noundef %5637) #11
  %5639 = call ptr @__errno_location() #12
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5628, ptr noundef @.str.5, i32 noundef %5629, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 235, ptr noundef %5632, ptr noundef %5635, ptr noundef %5638, i32 noundef %5640) #11
  br label %5642

5642:                                             ; preds = %5625, %5608
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %5643

5643:                                             ; preds = %5642
  br label %5644

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

5645:                                             ; No predecessors!
  br label %5646

5646:                                             ; preds = %5645
  br label %5647

5647:                                             ; preds = %5646, %5583
  br label %5648

5648:                                             ; preds = %5647
  br label %5649

5649:                                             ; preds = %5648
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #11
  %5650 = load ptr, ptr %105, align 8, !tbaa !9
  %5651 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %5650, i32 0, i32 1
  %5652 = load ptr, ptr %5651, align 8, !tbaa !20
  store ptr %5652, ptr %134, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  %5653 = load ptr, ptr %106, align 8, !tbaa !9
  %5654 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %5653, i32 0, i32 1
  %5655 = load ptr, ptr %5654, align 8, !tbaa !20
  store ptr %5655, ptr %135, align 8, !tbaa !9
  br label %5656

5656:                                             ; preds = %5649
  %5657 = load i32, ptr @test_count, align 4, !tbaa !5
  %5658 = add nsw i32 %5657, 1
  store i32 %5658, ptr @test_count, align 4, !tbaa !5
  %5659 = getelementptr inbounds %struct.s2n_pkey, ptr %107, i32 0, i32 0
  %5660 = load ptr, ptr %5659, align 8, !tbaa !21
  %5661 = icmp eq ptr %5660, null
  br i1 %5661, label %5662, label %5715

5662:                                             ; preds = %5656
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

5664:                                             ; preds = %5663
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %5665 = call ptr @__errno_location() #12
  %5666 = load i32, ptr %5665, align 4, !tbaa !5
  store i32 %5666, ptr %136, align 4, !tbaa !5
  %5667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5668 = call i32 @s2n_print_stacktrace(ptr noundef %5667)
  %5669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5670 = trunc i8 %5669 to i1
  br i1 %5670, label %5671, label %5693

5671:                                             ; preds = %5664
  %5672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5673 = call i32 @fileno(ptr noundef %5672) #11
  %5674 = call i32 @isatty(i32 noundef %5673) #11
  %5675 = icmp ne i32 %5674, 0
  br i1 %5675, label %5676, label %5693

5676:                                             ; preds = %5671
  %5677 = load i32, ptr %136, align 4, !tbaa !5
  %5678 = call ptr @__errno_location() #12
  store i32 %5677, ptr %5678, align 4, !tbaa !5
  %5679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5680 = load i32, ptr @test_count, align 4, !tbaa !5
  %5681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  %5683 = call ptr @s2n_strerror(i32 noundef %5682, ptr noundef @.str.4)
  %5684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5685 = load i32, ptr %5684, align 4, !tbaa !5
  %5686 = call ptr @s2n_strerror_debug(i32 noundef %5685, ptr noundef @.str.4)
  %5687 = call ptr @__errno_location() #12
  %5688 = load i32, ptr %5687, align 4, !tbaa !5
  %5689 = call ptr @strerror(i32 noundef %5688) #11
  %5690 = call ptr @__errno_location() #12
  %5691 = load i32, ptr %5690, align 4, !tbaa !5
  %5692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5679, ptr noundef @.str.2, i32 noundef %5680, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5683, ptr noundef %5686, ptr noundef %5689, i32 noundef %5691) #11
  br label %5710

5693:                                             ; preds = %5671, %5664
  %5694 = load i32, ptr %136, align 4, !tbaa !5
  %5695 = call ptr @__errno_location() #12
  store i32 %5694, ptr %5695, align 4, !tbaa !5
  %5696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5697 = load i32, ptr @test_count, align 4, !tbaa !5
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror(i32 noundef %5699, ptr noundef @.str.4)
  %5701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @s2n_strerror_debug(i32 noundef %5702, ptr noundef @.str.4)
  %5704 = call ptr @__errno_location() #12
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call ptr @strerror(i32 noundef %5705) #11
  %5707 = call ptr @__errno_location() #12
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5696, ptr noundef @.str.5, i32 noundef %5697, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5700, ptr noundef %5703, ptr noundef %5706, i32 noundef %5708) #11
  br label %5710

5710:                                             ; preds = %5693, %5676
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %5711

5711:                                             ; preds = %5710
  br label %5712

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

5713:                                             ; No predecessors!
  br label %5714

5714:                                             ; preds = %5713
  br label %5715

5715:                                             ; preds = %5714, %5656
  br label %5716

5716:                                             ; preds = %5715
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717
  %5719 = load i32, ptr @test_count, align 4, !tbaa !5
  %5720 = add nsw i32 %5719, 1
  store i32 %5720, ptr @test_count, align 4, !tbaa !5
  %5721 = getelementptr inbounds %struct.s2n_pkey, ptr %108, i32 0, i32 0
  %5722 = load ptr, ptr %5721, align 8, !tbaa !21
  %5723 = icmp eq ptr %5722, null
  br i1 %5723, label %5724, label %5777

5724:                                             ; preds = %5718
  br label %5725

5725:                                             ; preds = %5724
  br label %5726

5726:                                             ; preds = %5725
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %5727 = call ptr @__errno_location() #12
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  store i32 %5728, ptr %137, align 4, !tbaa !5
  %5729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5730 = call i32 @s2n_print_stacktrace(ptr noundef %5729)
  %5731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5732 = trunc i8 %5731 to i1
  br i1 %5732, label %5733, label %5755

5733:                                             ; preds = %5726
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = call i32 @fileno(ptr noundef %5734) #11
  %5736 = call i32 @isatty(i32 noundef %5735) #11
  %5737 = icmp ne i32 %5736, 0
  br i1 %5737, label %5738, label %5755

5738:                                             ; preds = %5733
  %5739 = load i32, ptr %137, align 4, !tbaa !5
  %5740 = call ptr @__errno_location() #12
  store i32 %5739, ptr %5740, align 4, !tbaa !5
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = load i32, ptr @test_count, align 4, !tbaa !5
  %5743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  %5745 = call ptr @s2n_strerror(i32 noundef %5744, ptr noundef @.str.4)
  %5746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = call ptr @s2n_strerror_debug(i32 noundef %5747, ptr noundef @.str.4)
  %5749 = call ptr @__errno_location() #12
  %5750 = load i32, ptr %5749, align 4, !tbaa !5
  %5751 = call ptr @strerror(i32 noundef %5750) #11
  %5752 = call ptr @__errno_location() #12
  %5753 = load i32, ptr %5752, align 4, !tbaa !5
  %5754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5741, ptr noundef @.str.2, i32 noundef %5742, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5745, ptr noundef %5748, ptr noundef %5751, i32 noundef %5753) #11
  br label %5772

5755:                                             ; preds = %5733, %5726
  %5756 = load i32, ptr %137, align 4, !tbaa !5
  %5757 = call ptr @__errno_location() #12
  store i32 %5756, ptr %5757, align 4, !tbaa !5
  %5758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5759 = load i32, ptr @test_count, align 4, !tbaa !5
  %5760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  %5762 = call ptr @s2n_strerror(i32 noundef %5761, ptr noundef @.str.4)
  %5763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5764 = load i32, ptr %5763, align 4, !tbaa !5
  %5765 = call ptr @s2n_strerror_debug(i32 noundef %5764, ptr noundef @.str.4)
  %5766 = call ptr @__errno_location() #12
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  %5768 = call ptr @strerror(i32 noundef %5767) #11
  %5769 = call ptr @__errno_location() #12
  %5770 = load i32, ptr %5769, align 4, !tbaa !5
  %5771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5758, ptr noundef @.str.5, i32 noundef %5759, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5762, ptr noundef %5765, ptr noundef %5768, i32 noundef %5770) #11
  br label %5772

5772:                                             ; preds = %5755, %5738
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %5773

5773:                                             ; preds = %5772
  br label %5774

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

5775:                                             ; No predecessors!
  br label %5776

5776:                                             ; preds = %5775
  br label %5777

5777:                                             ; preds = %5776, %5718
  br label %5778

5778:                                             ; preds = %5777
  br label %5779

5779:                                             ; preds = %5778
  br label %5780

5780:                                             ; preds = %5779
  %5781 = load i32, ptr @test_count, align 4, !tbaa !5
  %5782 = add nsw i32 %5781, 1
  store i32 %5782, ptr @test_count, align 4, !tbaa !5
  %5783 = load ptr, ptr %134, align 8, !tbaa !9
  %5784 = icmp eq ptr %5783, null
  br i1 %5784, label %5785, label %5838

5785:                                             ; preds = %5780
  br label %5786

5786:                                             ; preds = %5785
  br label %5787

5787:                                             ; preds = %5786
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %5788 = call ptr @__errno_location() #12
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  store i32 %5789, ptr %138, align 4, !tbaa !5
  %5790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5791 = call i32 @s2n_print_stacktrace(ptr noundef %5790)
  %5792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5793 = trunc i8 %5792 to i1
  br i1 %5793, label %5794, label %5816

5794:                                             ; preds = %5787
  %5795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5796 = call i32 @fileno(ptr noundef %5795) #11
  %5797 = call i32 @isatty(i32 noundef %5796) #11
  %5798 = icmp ne i32 %5797, 0
  br i1 %5798, label %5799, label %5816

5799:                                             ; preds = %5794
  %5800 = load i32, ptr %138, align 4, !tbaa !5
  %5801 = call ptr @__errno_location() #12
  store i32 %5800, ptr %5801, align 4, !tbaa !5
  %5802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5803 = load i32, ptr @test_count, align 4, !tbaa !5
  %5804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call ptr @s2n_strerror(i32 noundef %5805, ptr noundef @.str.4)
  %5807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  %5809 = call ptr @s2n_strerror_debug(i32 noundef %5808, ptr noundef @.str.4)
  %5810 = call ptr @__errno_location() #12
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call ptr @strerror(i32 noundef %5811) #11
  %5813 = call ptr @__errno_location() #12
  %5814 = load i32, ptr %5813, align 4, !tbaa !5
  %5815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5802, ptr noundef @.str.2, i32 noundef %5803, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5806, ptr noundef %5809, ptr noundef %5812, i32 noundef %5814) #11
  br label %5833

5816:                                             ; preds = %5794, %5787
  %5817 = load i32, ptr %138, align 4, !tbaa !5
  %5818 = call ptr @__errno_location() #12
  store i32 %5817, ptr %5818, align 4, !tbaa !5
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = load i32, ptr @test_count, align 4, !tbaa !5
  %5821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror(i32 noundef %5822, ptr noundef @.str.4)
  %5824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5825 = load i32, ptr %5824, align 4, !tbaa !5
  %5826 = call ptr @s2n_strerror_debug(i32 noundef %5825, ptr noundef @.str.4)
  %5827 = call ptr @__errno_location() #12
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @strerror(i32 noundef %5828) #11
  %5830 = call ptr @__errno_location() #12
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5819, ptr noundef @.str.5, i32 noundef %5820, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5823, ptr noundef %5826, ptr noundef %5829, i32 noundef %5831) #11
  br label %5833

5833:                                             ; preds = %5816, %5799
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5834

5834:                                             ; preds = %5833
  br label %5835

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

5836:                                             ; No predecessors!
  br label %5837

5837:                                             ; preds = %5836
  br label %5838

5838:                                             ; preds = %5837, %5780
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

5841:                                             ; preds = %5840
  %5842 = load i32, ptr @test_count, align 4, !tbaa !5
  %5843 = add nsw i32 %5842, 1
  store i32 %5843, ptr @test_count, align 4, !tbaa !5
  %5844 = load ptr, ptr %134, align 8, !tbaa !9
  %5845 = getelementptr inbounds %struct.s2n_pkey, ptr %5844, i32 0, i32 0
  %5846 = load ptr, ptr %5845, align 8, !tbaa !21
  %5847 = icmp eq ptr %5846, null
  br i1 %5847, label %5848, label %5901

5848:                                             ; preds = %5841
  br label %5849

5849:                                             ; preds = %5848
  br label %5850

5850:                                             ; preds = %5849
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %5851 = call ptr @__errno_location() #12
  %5852 = load i32, ptr %5851, align 4, !tbaa !5
  store i32 %5852, ptr %139, align 4, !tbaa !5
  %5853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5854 = call i32 @s2n_print_stacktrace(ptr noundef %5853)
  %5855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5856 = trunc i8 %5855 to i1
  br i1 %5856, label %5857, label %5879

5857:                                             ; preds = %5850
  %5858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5859 = call i32 @fileno(ptr noundef %5858) #11
  %5860 = call i32 @isatty(i32 noundef %5859) #11
  %5861 = icmp ne i32 %5860, 0
  br i1 %5861, label %5862, label %5879

5862:                                             ; preds = %5857
  %5863 = load i32, ptr %139, align 4, !tbaa !5
  %5864 = call ptr @__errno_location() #12
  store i32 %5863, ptr %5864, align 4, !tbaa !5
  %5865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5866 = load i32, ptr @test_count, align 4, !tbaa !5
  %5867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @s2n_strerror(i32 noundef %5868, ptr noundef @.str.4)
  %5870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @s2n_strerror_debug(i32 noundef %5871, ptr noundef @.str.4)
  %5873 = call ptr @__errno_location() #12
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @strerror(i32 noundef %5874) #11
  %5876 = call ptr @__errno_location() #12
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5865, ptr noundef @.str.2, i32 noundef %5866, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5869, ptr noundef %5872, ptr noundef %5875, i32 noundef %5877) #11
  br label %5896

5879:                                             ; preds = %5857, %5850
  %5880 = load i32, ptr %139, align 4, !tbaa !5
  %5881 = call ptr @__errno_location() #12
  store i32 %5880, ptr %5881, align 4, !tbaa !5
  %5882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5883 = load i32, ptr @test_count, align 4, !tbaa !5
  %5884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror(i32 noundef %5885, ptr noundef @.str.4)
  %5887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call ptr @s2n_strerror_debug(i32 noundef %5888, ptr noundef @.str.4)
  %5890 = call ptr @__errno_location() #12
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  %5892 = call ptr @strerror(i32 noundef %5891) #11
  %5893 = call ptr @__errno_location() #12
  %5894 = load i32, ptr %5893, align 4, !tbaa !5
  %5895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5882, ptr noundef @.str.5, i32 noundef %5883, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5886, ptr noundef %5889, ptr noundef %5892, i32 noundef %5894) #11
  br label %5896

5896:                                             ; preds = %5879, %5862
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %5897

5897:                                             ; preds = %5896
  br label %5898

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

5899:                                             ; No predecessors!
  br label %5900

5900:                                             ; preds = %5899
  br label %5901

5901:                                             ; preds = %5900, %5841
  br label %5902

5902:                                             ; preds = %5901
  br label %5903

5903:                                             ; preds = %5902
  br label %5904

5904:                                             ; preds = %5903
  %5905 = load i32, ptr @test_count, align 4, !tbaa !5
  %5906 = add nsw i32 %5905, 1
  store i32 %5906, ptr @test_count, align 4, !tbaa !5
  %5907 = load ptr, ptr %135, align 8, !tbaa !9
  %5908 = icmp eq ptr %5907, null
  br i1 %5908, label %5909, label %5962

5909:                                             ; preds = %5904
  br label %5910

5910:                                             ; preds = %5909
  br label %5911

5911:                                             ; preds = %5910
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %5912 = call ptr @__errno_location() #12
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  store i32 %5913, ptr %140, align 4, !tbaa !5
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = call i32 @s2n_print_stacktrace(ptr noundef %5914)
  %5916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5917 = trunc i8 %5916 to i1
  br i1 %5917, label %5918, label %5940

5918:                                             ; preds = %5911
  %5919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5920 = call i32 @fileno(ptr noundef %5919) #11
  %5921 = call i32 @isatty(i32 noundef %5920) #11
  %5922 = icmp ne i32 %5921, 0
  br i1 %5922, label %5923, label %5940

5923:                                             ; preds = %5918
  %5924 = load i32, ptr %140, align 4, !tbaa !5
  %5925 = call ptr @__errno_location() #12
  store i32 %5924, ptr %5925, align 4, !tbaa !5
  %5926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5927 = load i32, ptr @test_count, align 4, !tbaa !5
  %5928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @s2n_strerror(i32 noundef %5929, ptr noundef @.str.4)
  %5931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call ptr @s2n_strerror_debug(i32 noundef %5932, ptr noundef @.str.4)
  %5934 = call ptr @__errno_location() #12
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call ptr @strerror(i32 noundef %5935) #11
  %5937 = call ptr @__errno_location() #12
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5926, ptr noundef @.str.2, i32 noundef %5927, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5930, ptr noundef %5933, ptr noundef %5936, i32 noundef %5938) #11
  br label %5957

5940:                                             ; preds = %5918, %5911
  %5941 = load i32, ptr %140, align 4, !tbaa !5
  %5942 = call ptr @__errno_location() #12
  store i32 %5941, ptr %5942, align 4, !tbaa !5
  %5943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call ptr @s2n_strerror(i32 noundef %5946, ptr noundef @.str.4)
  %5948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call ptr @s2n_strerror_debug(i32 noundef %5949, ptr noundef @.str.4)
  %5951 = call ptr @__errno_location() #12
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @strerror(i32 noundef %5952) #11
  %5954 = call ptr @__errno_location() #12
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5943, ptr noundef @.str.5, i32 noundef %5944, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5947, ptr noundef %5950, ptr noundef %5953, i32 noundef %5955) #11
  br label %5957

5957:                                             ; preds = %5940, %5923
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %5958

5958:                                             ; preds = %5957
  br label %5959

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

5960:                                             ; No predecessors!
  br label %5961

5961:                                             ; preds = %5960
  br label %5962

5962:                                             ; preds = %5961, %5904
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

5965:                                             ; preds = %5964
  %5966 = load i32, ptr @test_count, align 4, !tbaa !5
  %5967 = add nsw i32 %5966, 1
  store i32 %5967, ptr @test_count, align 4, !tbaa !5
  %5968 = load ptr, ptr %135, align 8, !tbaa !9
  %5969 = getelementptr inbounds %struct.s2n_pkey, ptr %5968, i32 0, i32 0
  %5970 = load ptr, ptr %5969, align 8, !tbaa !21
  %5971 = icmp eq ptr %5970, null
  br i1 %5971, label %5972, label %6025

5972:                                             ; preds = %5965
  br label %5973

5973:                                             ; preds = %5972
  br label %5974

5974:                                             ; preds = %5973
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %5975 = call ptr @__errno_location() #12
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  store i32 %5976, ptr %141, align 4, !tbaa !5
  %5977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5978 = call i32 @s2n_print_stacktrace(ptr noundef %5977)
  %5979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5980 = trunc i8 %5979 to i1
  br i1 %5980, label %5981, label %6003

5981:                                             ; preds = %5974
  %5982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5983 = call i32 @fileno(ptr noundef %5982) #11
  %5984 = call i32 @isatty(i32 noundef %5983) #11
  %5985 = icmp ne i32 %5984, 0
  br i1 %5985, label %5986, label %6003

5986:                                             ; preds = %5981
  %5987 = load i32, ptr %141, align 4, !tbaa !5
  %5988 = call ptr @__errno_location() #12
  store i32 %5987, ptr %5988, align 4, !tbaa !5
  %5989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5990 = load i32, ptr @test_count, align 4, !tbaa !5
  %5991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  %5993 = call ptr @s2n_strerror(i32 noundef %5992, ptr noundef @.str.4)
  %5994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5995 = load i32, ptr %5994, align 4, !tbaa !5
  %5996 = call ptr @s2n_strerror_debug(i32 noundef %5995, ptr noundef @.str.4)
  %5997 = call ptr @__errno_location() #12
  %5998 = load i32, ptr %5997, align 4, !tbaa !5
  %5999 = call ptr @strerror(i32 noundef %5998) #11
  %6000 = call ptr @__errno_location() #12
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5989, ptr noundef @.str.2, i32 noundef %5990, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5993, ptr noundef %5996, ptr noundef %5999, i32 noundef %6001) #11
  br label %6020

6003:                                             ; preds = %5981, %5974
  %6004 = load i32, ptr %141, align 4, !tbaa !5
  %6005 = call ptr @__errno_location() #12
  store i32 %6004, ptr %6005, align 4, !tbaa !5
  %6006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6007 = load i32, ptr @test_count, align 4, !tbaa !5
  %6008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6009 = load i32, ptr %6008, align 4, !tbaa !5
  %6010 = call ptr @s2n_strerror(i32 noundef %6009, ptr noundef @.str.4)
  %6011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  %6013 = call ptr @s2n_strerror_debug(i32 noundef %6012, ptr noundef @.str.4)
  %6014 = call ptr @__errno_location() #12
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  %6016 = call ptr @strerror(i32 noundef %6015) #11
  %6017 = call ptr @__errno_location() #12
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6006, ptr noundef @.str.5, i32 noundef %6007, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6010, ptr noundef %6013, ptr noundef %6016, i32 noundef %6018) #11
  br label %6020

6020:                                             ; preds = %6003, %5986
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6021

6021:                                             ; preds = %6020
  br label %6022

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

6023:                                             ; No predecessors!
  br label %6024

6024:                                             ; preds = %6023
  br label %6025

6025:                                             ; preds = %6024, %5965
  br label %6026

6026:                                             ; preds = %6025
  br label %6027

6027:                                             ; preds = %6026
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #11
  store i64 32, ptr %142, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 32, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 16 %143, i8 0, i64 32, i1 false)
  br label %6028

6028:                                             ; preds = %6027
  %6029 = load i64, ptr %142, align 8, !tbaa !23
  %6030 = icmp ule i64 %6029, 32
  br i1 %6030, label %6064, label %6031

6031:                                             ; preds = %6028
  br label %6032

6032:                                             ; preds = %6031
  br label %6033

6033:                                             ; preds = %6032
  %6034 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6035 = getelementptr inbounds %struct.s2n_debug_info, ptr %6034, i32 0, i32 0
  store ptr @.str.86, ptr %6035, align 8, !tbaa !25
  %6036 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6037 = getelementptr inbounds %struct.s2n_debug_info, ptr %6036, i32 0, i32 0
  %6038 = load ptr, ptr %6037, align 8, !tbaa !25
  %6039 = getelementptr inbounds i8, ptr %6038, i64 21
  %6040 = call ptr @strrchr(ptr noundef %6039, i32 noundef 47) #15
  %6041 = icmp ne ptr %6040, null
  br i1 %6041, label %6042, label %6049

6042:                                             ; preds = %6033
  %6043 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6044 = getelementptr inbounds %struct.s2n_debug_info, ptr %6043, i32 0, i32 0
  %6045 = load ptr, ptr %6044, align 8, !tbaa !25
  %6046 = getelementptr inbounds i8, ptr %6045, i64 21
  %6047 = call ptr @strrchr(ptr noundef %6046, i32 noundef 47) #15
  %6048 = getelementptr inbounds i8, ptr %6047, i64 1
  br label %6054

6049:                                             ; preds = %6033
  %6050 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6051 = getelementptr inbounds %struct.s2n_debug_info, ptr %6050, i32 0, i32 0
  %6052 = load ptr, ptr %6051, align 8, !tbaa !25
  %6053 = getelementptr inbounds i8, ptr %6052, i64 21
  br label %6054

6054:                                             ; preds = %6049, %6042
  %6055 = phi ptr [ %6048, %6042 ], [ %6053, %6049 ]
  %6056 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6057 = getelementptr inbounds %struct.s2n_debug_info, ptr %6056, i32 0, i32 1
  store ptr %6055, ptr %6057, align 8, !tbaa !27
  %6058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %6058, align 4, !tbaa !5
  %6059 = call i32 @s2n_calculate_stacktrace()
  br label %6060

6060:                                             ; preds = %6054
  br label %6061

6061:                                             ; preds = %6060
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %6825

6062:                                             ; No predecessors!
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063, %6028
  br label %6065

6065:                                             ; preds = %6064
  br label %6066

6066:                                             ; preds = %6065
  call void @llvm.lifetime.start.p0(i64 24, ptr %144) #11
  call void @llvm.memset.p0.i64(ptr align 8 %144, i8 0, i64 24, i1 false)
  br label %6067

6067:                                             ; preds = %6066
  %6068 = getelementptr inbounds [32 x i8], ptr %143, i64 0, i64 0
  %6069 = load i64, ptr %142, align 8, !tbaa !23
  %6070 = trunc i64 %6069 to i32
  %6071 = call i32 @s2n_blob_init(ptr noundef %144, ptr noundef %6068, i32 noundef %6070)
  %6072 = icmp sgt i32 %6071, -1
  br i1 %6072, label %6074, label %6073

6073:                                             ; preds = %6067
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %6824

6074:                                             ; preds = %6067
  br label %6075

6075:                                             ; preds = %6074
  br label %6076

6076:                                             ; preds = %6075
  br label %6077

6077:                                             ; preds = %6076
  %6078 = load i32, ptr @test_count, align 4, !tbaa !5
  %6079 = add nsw i32 %6078, 1
  store i32 %6079, ptr @test_count, align 4, !tbaa !5
  %6080 = call i32 @s2n_get_private_random_data(ptr noundef %144)
  %6081 = getelementptr inbounds %struct.s2n_result, ptr %145, i32 0, i32 0
  store i32 %6080, ptr %6081, align 4
  %6082 = getelementptr inbounds %struct.s2n_result, ptr %145, i32 0, i32 0
  %6083 = load i32, ptr %6082, align 4
  %6084 = call zeroext i1 @s2n_result_is_ok(i32 %6083)
  br i1 %6084, label %6138, label %6085

6085:                                             ; preds = %6077
  br label %6086

6086:                                             ; preds = %6085
  br label %6087

6087:                                             ; preds = %6086
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %6088 = call ptr @__errno_location() #12
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  store i32 %6089, ptr %146, align 4, !tbaa !5
  %6090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6091 = call i32 @s2n_print_stacktrace(ptr noundef %6090)
  %6092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6093 = trunc i8 %6092 to i1
  br i1 %6093, label %6094, label %6116

6094:                                             ; preds = %6087
  %6095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6096 = call i32 @fileno(ptr noundef %6095) #11
  %6097 = call i32 @isatty(i32 noundef %6096) #11
  %6098 = icmp ne i32 %6097, 0
  br i1 %6098, label %6099, label %6116

6099:                                             ; preds = %6094
  %6100 = load i32, ptr %146, align 4, !tbaa !5
  %6101 = call ptr @__errno_location() #12
  store i32 %6100, ptr %6101, align 4, !tbaa !5
  %6102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6103 = load i32, ptr @test_count, align 4, !tbaa !5
  %6104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6105 = load i32, ptr %6104, align 4, !tbaa !5
  %6106 = call ptr @s2n_strerror(i32 noundef %6105, ptr noundef @.str.4)
  %6107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call ptr @s2n_strerror_debug(i32 noundef %6108, ptr noundef @.str.4)
  %6110 = call ptr @__errno_location() #12
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @strerror(i32 noundef %6111) #11
  %6113 = call ptr @__errno_location() #12
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6102, ptr noundef @.str.2, i32 noundef %6103, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 250, ptr noundef %6106, ptr noundef %6109, ptr noundef %6112, i32 noundef %6114) #11
  br label %6133

6116:                                             ; preds = %6094, %6087
  %6117 = load i32, ptr %146, align 4, !tbaa !5
  %6118 = call ptr @__errno_location() #12
  store i32 %6117, ptr %6118, align 4, !tbaa !5
  %6119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6120 = load i32, ptr @test_count, align 4, !tbaa !5
  %6121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6122 = load i32, ptr %6121, align 4, !tbaa !5
  %6123 = call ptr @s2n_strerror(i32 noundef %6122, ptr noundef @.str.4)
  %6124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6125 = load i32, ptr %6124, align 4, !tbaa !5
  %6126 = call ptr @s2n_strerror_debug(i32 noundef %6125, ptr noundef @.str.4)
  %6127 = call ptr @__errno_location() #12
  %6128 = load i32, ptr %6127, align 4, !tbaa !5
  %6129 = call ptr @strerror(i32 noundef %6128) #11
  %6130 = call ptr @__errno_location() #12
  %6131 = load i32, ptr %6130, align 4, !tbaa !5
  %6132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6119, ptr noundef @.str.5, i32 noundef %6120, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 250, ptr noundef %6123, ptr noundef %6126, ptr noundef %6129, i32 noundef %6131) #11
  br label %6133

6133:                                             ; preds = %6116, %6099
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6134

6134:                                             ; preds = %6133
  br label %6135

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

6136:                                             ; No predecessors!
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

6138:                                             ; preds = %6137, %6077
  br label %6139

6139:                                             ; preds = %6138
  br label %6140

6140:                                             ; preds = %6139
  call void @llvm.lifetime.start.p0(i64 56, ptr %147) #11
  call void @llvm.memset.p0.i64(ptr align 8 %147, i8 0, i64 56, i1 false)
  br label %6141

6141:                                             ; preds = %6140
  %6142 = load i32, ptr @test_count, align 4, !tbaa !5
  %6143 = add nsw i32 %6142, 1
  store i32 %6143, ptr @test_count, align 4, !tbaa !5
  %6144 = call i32 @s2n_hash_new(ptr noundef %147)
  %6145 = icmp eq i32 %6144, -1
  br i1 %6145, label %6146, label %6199

6146:                                             ; preds = %6141
  br label %6147

6147:                                             ; preds = %6146
  br label %6148

6148:                                             ; preds = %6147
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6149 = call ptr @__errno_location() #12
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  store i32 %6150, ptr %148, align 4, !tbaa !5
  %6151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6152 = call i32 @s2n_print_stacktrace(ptr noundef %6151)
  %6153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6154 = trunc i8 %6153 to i1
  br i1 %6154, label %6155, label %6177

6155:                                             ; preds = %6148
  %6156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6157 = call i32 @fileno(ptr noundef %6156) #11
  %6158 = call i32 @isatty(i32 noundef %6157) #11
  %6159 = icmp ne i32 %6158, 0
  br i1 %6159, label %6160, label %6177

6160:                                             ; preds = %6155
  %6161 = load i32, ptr %148, align 4, !tbaa !5
  %6162 = call ptr @__errno_location() #12
  store i32 %6161, ptr %6162, align 4, !tbaa !5
  %6163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6164 = load i32, ptr @test_count, align 4, !tbaa !5
  %6165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6166 = load i32, ptr %6165, align 4, !tbaa !5
  %6167 = call ptr @s2n_strerror(i32 noundef %6166, ptr noundef @.str.4)
  %6168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6169 = load i32, ptr %6168, align 4, !tbaa !5
  %6170 = call ptr @s2n_strerror_debug(i32 noundef %6169, ptr noundef @.str.4)
  %6171 = call ptr @__errno_location() #12
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  %6173 = call ptr @strerror(i32 noundef %6172) #11
  %6174 = call ptr @__errno_location() #12
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6163, ptr noundef @.str.2, i32 noundef %6164, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 254, ptr noundef %6167, ptr noundef %6170, ptr noundef %6173, i32 noundef %6175) #11
  br label %6194

6177:                                             ; preds = %6155, %6148
  %6178 = load i32, ptr %148, align 4, !tbaa !5
  %6179 = call ptr @__errno_location() #12
  store i32 %6178, ptr %6179, align 4, !tbaa !5
  %6180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6181 = load i32, ptr @test_count, align 4, !tbaa !5
  %6182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6183 = load i32, ptr %6182, align 4, !tbaa !5
  %6184 = call ptr @s2n_strerror(i32 noundef %6183, ptr noundef @.str.4)
  %6185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @s2n_strerror_debug(i32 noundef %6186, ptr noundef @.str.4)
  %6188 = call ptr @__errno_location() #12
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call ptr @strerror(i32 noundef %6189) #11
  %6191 = call ptr @__errno_location() #12
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6180, ptr noundef @.str.5, i32 noundef %6181, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 254, ptr noundef %6184, ptr noundef %6187, ptr noundef %6190, i32 noundef %6192) #11
  br label %6194

6194:                                             ; preds = %6177, %6160
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6195

6195:                                             ; preds = %6194
  br label %6196

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

6197:                                             ; No predecessors!
  br label %6198

6198:                                             ; preds = %6197
  br label %6199

6199:                                             ; preds = %6198, %6141
  br label %6200

6200:                                             ; preds = %6199
  br label %6201

6201:                                             ; preds = %6200
  br label %6202

6202:                                             ; preds = %6201
  %6203 = load i32, ptr @test_count, align 4, !tbaa !5
  %6204 = add nsw i32 %6203, 1
  store i32 %6204, ptr @test_count, align 4, !tbaa !5
  %6205 = call i32 @s2n_hash_init(ptr noundef %147, i32 noundef 4)
  %6206 = icmp eq i32 %6205, -1
  br i1 %6206, label %6207, label %6260

6207:                                             ; preds = %6202
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %6210 = call ptr @__errno_location() #12
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  store i32 %6211, ptr %149, align 4, !tbaa !5
  %6212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6213 = call i32 @s2n_print_stacktrace(ptr noundef %6212)
  %6214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6215 = trunc i8 %6214 to i1
  br i1 %6215, label %6216, label %6238

6216:                                             ; preds = %6209
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = call i32 @fileno(ptr noundef %6217) #11
  %6219 = call i32 @isatty(i32 noundef %6218) #11
  %6220 = icmp ne i32 %6219, 0
  br i1 %6220, label %6221, label %6238

6221:                                             ; preds = %6216
  %6222 = load i32, ptr %149, align 4, !tbaa !5
  %6223 = call ptr @__errno_location() #12
  store i32 %6222, ptr %6223, align 4, !tbaa !5
  %6224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6225 = load i32, ptr @test_count, align 4, !tbaa !5
  %6226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6227 = load i32, ptr %6226, align 4, !tbaa !5
  %6228 = call ptr @s2n_strerror(i32 noundef %6227, ptr noundef @.str.4)
  %6229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror_debug(i32 noundef %6230, ptr noundef @.str.4)
  %6232 = call ptr @__errno_location() #12
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  %6234 = call ptr @strerror(i32 noundef %6233) #11
  %6235 = call ptr @__errno_location() #12
  %6236 = load i32, ptr %6235, align 4, !tbaa !5
  %6237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6224, ptr noundef @.str.2, i32 noundef %6225, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 255, ptr noundef %6228, ptr noundef %6231, ptr noundef %6234, i32 noundef %6236) #11
  br label %6255

6238:                                             ; preds = %6216, %6209
  %6239 = load i32, ptr %149, align 4, !tbaa !5
  %6240 = call ptr @__errno_location() #12
  store i32 %6239, ptr %6240, align 4, !tbaa !5
  %6241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6242 = load i32, ptr @test_count, align 4, !tbaa !5
  %6243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @s2n_strerror(i32 noundef %6244, ptr noundef @.str.4)
  %6246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call ptr @s2n_strerror_debug(i32 noundef %6247, ptr noundef @.str.4)
  %6249 = call ptr @__errno_location() #12
  %6250 = load i32, ptr %6249, align 4, !tbaa !5
  %6251 = call ptr @strerror(i32 noundef %6250) #11
  %6252 = call ptr @__errno_location() #12
  %6253 = load i32, ptr %6252, align 4, !tbaa !5
  %6254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6241, ptr noundef @.str.5, i32 noundef %6242, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 255, ptr noundef %6245, ptr noundef %6248, ptr noundef %6251, i32 noundef %6253) #11
  br label %6255

6255:                                             ; preds = %6238, %6221
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

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

6258:                                             ; No predecessors!
  br label %6259

6259:                                             ; preds = %6258
  br label %6260

6260:                                             ; preds = %6259, %6202
  br label %6261

6261:                                             ; preds = %6260
  br label %6262

6262:                                             ; preds = %6261
  br label %6263

6263:                                             ; preds = %6262
  %6264 = load i32, ptr @test_count, align 4, !tbaa !5
  %6265 = add nsw i32 %6264, 1
  store i32 %6265, ptr @test_count, align 4, !tbaa !5
  %6266 = getelementptr inbounds %struct.s2n_blob, ptr %144, i32 0, i32 0
  %6267 = load ptr, ptr %6266, align 8, !tbaa !28
  %6268 = getelementptr inbounds %struct.s2n_blob, ptr %144, i32 0, i32 1
  %6269 = load i32, ptr %6268, align 8, !tbaa !29
  %6270 = call i32 @s2n_hash_update(ptr noundef %147, ptr noundef %6267, i32 noundef %6269)
  %6271 = icmp eq i32 %6270, -1
  br i1 %6271, label %6272, label %6325

6272:                                             ; preds = %6263
  br label %6273

6273:                                             ; preds = %6272
  br label %6274

6274:                                             ; preds = %6273
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %6275 = call ptr @__errno_location() #12
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  store i32 %6276, ptr %150, align 4, !tbaa !5
  %6277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6278 = call i32 @s2n_print_stacktrace(ptr noundef %6277)
  %6279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6280 = trunc i8 %6279 to i1
  br i1 %6280, label %6281, label %6303

6281:                                             ; preds = %6274
  %6282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6283 = call i32 @fileno(ptr noundef %6282) #11
  %6284 = call i32 @isatty(i32 noundef %6283) #11
  %6285 = icmp ne i32 %6284, 0
  br i1 %6285, label %6286, label %6303

6286:                                             ; preds = %6281
  %6287 = load i32, ptr %150, align 4, !tbaa !5
  %6288 = call ptr @__errno_location() #12
  store i32 %6287, ptr %6288, align 4, !tbaa !5
  %6289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6290 = load i32, ptr @test_count, align 4, !tbaa !5
  %6291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @s2n_strerror(i32 noundef %6292, ptr noundef @.str.4)
  %6294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call ptr @s2n_strerror_debug(i32 noundef %6295, ptr noundef @.str.4)
  %6297 = call ptr @__errno_location() #12
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  %6299 = call ptr @strerror(i32 noundef %6298) #11
  %6300 = call ptr @__errno_location() #12
  %6301 = load i32, ptr %6300, align 4, !tbaa !5
  %6302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6289, ptr noundef @.str.2, i32 noundef %6290, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 256, ptr noundef %6293, ptr noundef %6296, ptr noundef %6299, i32 noundef %6301) #11
  br label %6320

6303:                                             ; preds = %6281, %6274
  %6304 = load i32, ptr %150, align 4, !tbaa !5
  %6305 = call ptr @__errno_location() #12
  store i32 %6304, ptr %6305, align 4, !tbaa !5
  %6306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6307 = load i32, ptr @test_count, align 4, !tbaa !5
  %6308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @s2n_strerror(i32 noundef %6309, ptr noundef @.str.4)
  %6311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call ptr @s2n_strerror_debug(i32 noundef %6312, ptr noundef @.str.4)
  %6314 = call ptr @__errno_location() #12
  %6315 = load i32, ptr %6314, align 4, !tbaa !5
  %6316 = call ptr @strerror(i32 noundef %6315) #11
  %6317 = call ptr @__errno_location() #12
  %6318 = load i32, ptr %6317, align 4, !tbaa !5
  %6319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6306, ptr noundef @.str.5, i32 noundef %6307, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 256, ptr noundef %6310, ptr noundef %6313, ptr noundef %6316, i32 noundef %6318) #11
  br label %6320

6320:                                             ; preds = %6303, %6286
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

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

6323:                                             ; No predecessors!
  br label %6324

6324:                                             ; preds = %6323
  br label %6325

6325:                                             ; preds = %6324, %6263
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  call void @llvm.lifetime.start.p0(i64 56, ptr %151) #11
  call void @llvm.memset.p0.i64(ptr align 8 %151, i8 0, i64 56, i1 false)
  br label %6328

6328:                                             ; preds = %6327
  %6329 = load i32, ptr @test_count, align 4, !tbaa !5
  %6330 = add nsw i32 %6329, 1
  store i32 %6330, ptr @test_count, align 4, !tbaa !5
  %6331 = call i32 @s2n_hash_new(ptr noundef %151)
  %6332 = icmp eq i32 %6331, -1
  br i1 %6332, label %6333, label %6386

6333:                                             ; preds = %6328
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

6335:                                             ; preds = %6334
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %6336 = call ptr @__errno_location() #12
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  store i32 %6337, ptr %152, align 4, !tbaa !5
  %6338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6339 = call i32 @s2n_print_stacktrace(ptr noundef %6338)
  %6340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6341 = trunc i8 %6340 to i1
  br i1 %6341, label %6342, label %6364

6342:                                             ; preds = %6335
  %6343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6344 = call i32 @fileno(ptr noundef %6343) #11
  %6345 = call i32 @isatty(i32 noundef %6344) #11
  %6346 = icmp ne i32 %6345, 0
  br i1 %6346, label %6347, label %6364

6347:                                             ; preds = %6342
  %6348 = load i32, ptr %152, align 4, !tbaa !5
  %6349 = call ptr @__errno_location() #12
  store i32 %6348, ptr %6349, align 4, !tbaa !5
  %6350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %6352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call ptr @s2n_strerror(i32 noundef %6353, ptr noundef @.str.4)
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror_debug(i32 noundef %6356, ptr noundef @.str.4)
  %6358 = call ptr @__errno_location() #12
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @strerror(i32 noundef %6359) #11
  %6361 = call ptr @__errno_location() #12
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6350, ptr noundef @.str.2, i32 noundef %6351, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 259, ptr noundef %6354, ptr noundef %6357, ptr noundef %6360, i32 noundef %6362) #11
  br label %6381

6364:                                             ; preds = %6342, %6335
  %6365 = load i32, ptr %152, align 4, !tbaa !5
  %6366 = call ptr @__errno_location() #12
  store i32 %6365, ptr %6366, align 4, !tbaa !5
  %6367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @s2n_strerror(i32 noundef %6370, ptr noundef @.str.4)
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror_debug(i32 noundef %6373, ptr noundef @.str.4)
  %6375 = call ptr @__errno_location() #12
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #11
  %6378 = call ptr @__errno_location() #12
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6367, ptr noundef @.str.5, i32 noundef %6368, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 259, ptr noundef %6371, ptr noundef %6374, ptr noundef %6377, i32 noundef %6379) #11
  br label %6381

6381:                                             ; preds = %6364, %6347
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

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

6384:                                             ; No predecessors!
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

6386:                                             ; preds = %6385, %6328
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388
  %6390 = load i32, ptr @test_count, align 4, !tbaa !5
  %6391 = add nsw i32 %6390, 1
  store i32 %6391, ptr @test_count, align 4, !tbaa !5
  %6392 = call i32 @s2n_hash_init(ptr noundef %151, i32 noundef 4)
  %6393 = icmp eq i32 %6392, -1
  br i1 %6393, label %6394, label %6447

6394:                                             ; preds = %6389
  br label %6395

6395:                                             ; preds = %6394
  br label %6396

6396:                                             ; preds = %6395
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %6397 = call ptr @__errno_location() #12
  %6398 = load i32, ptr %6397, align 4, !tbaa !5
  store i32 %6398, ptr %153, align 4, !tbaa !5
  %6399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6400 = call i32 @s2n_print_stacktrace(ptr noundef %6399)
  %6401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6402 = trunc i8 %6401 to i1
  br i1 %6402, label %6403, label %6425

6403:                                             ; preds = %6396
  %6404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6405 = call i32 @fileno(ptr noundef %6404) #11
  %6406 = call i32 @isatty(i32 noundef %6405) #11
  %6407 = icmp ne i32 %6406, 0
  br i1 %6407, label %6408, label %6425

6408:                                             ; preds = %6403
  %6409 = load i32, ptr %153, align 4, !tbaa !5
  %6410 = call ptr @__errno_location() #12
  store i32 %6409, ptr %6410, align 4, !tbaa !5
  %6411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6412 = load i32, ptr @test_count, align 4, !tbaa !5
  %6413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call ptr @s2n_strerror(i32 noundef %6414, ptr noundef @.str.4)
  %6416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call ptr @s2n_strerror_debug(i32 noundef %6417, ptr noundef @.str.4)
  %6419 = call ptr @__errno_location() #12
  %6420 = load i32, ptr %6419, align 4, !tbaa !5
  %6421 = call ptr @strerror(i32 noundef %6420) #11
  %6422 = call ptr @__errno_location() #12
  %6423 = load i32, ptr %6422, align 4, !tbaa !5
  %6424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6411, ptr noundef @.str.2, i32 noundef %6412, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 260, ptr noundef %6415, ptr noundef %6418, ptr noundef %6421, i32 noundef %6423) #11
  br label %6442

6425:                                             ; preds = %6403, %6396
  %6426 = load i32, ptr %153, align 4, !tbaa !5
  %6427 = call ptr @__errno_location() #12
  store i32 %6426, ptr %6427, align 4, !tbaa !5
  %6428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6429 = load i32, ptr @test_count, align 4, !tbaa !5
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror(i32 noundef %6431, ptr noundef @.str.4)
  %6433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @s2n_strerror_debug(i32 noundef %6434, ptr noundef @.str.4)
  %6436 = call ptr @__errno_location() #12
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call ptr @strerror(i32 noundef %6437) #11
  %6439 = call ptr @__errno_location() #12
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6428, ptr noundef @.str.5, i32 noundef %6429, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 260, ptr noundef %6432, ptr noundef %6435, ptr noundef %6438, i32 noundef %6440) #11
  br label %6442

6442:                                             ; preds = %6425, %6408
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %6443

6443:                                             ; preds = %6442
  br label %6444

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

6445:                                             ; No predecessors!
  br label %6446

6446:                                             ; preds = %6445
  br label %6447

6447:                                             ; preds = %6446, %6389
  br label %6448

6448:                                             ; preds = %6447
  br label %6449

6449:                                             ; preds = %6448
  br label %6450

6450:                                             ; preds = %6449
  %6451 = load i32, ptr @test_count, align 4, !tbaa !5
  %6452 = add nsw i32 %6451, 1
  store i32 %6452, ptr @test_count, align 4, !tbaa !5
  %6453 = getelementptr inbounds %struct.s2n_blob, ptr %144, i32 0, i32 0
  %6454 = load ptr, ptr %6453, align 8, !tbaa !28
  %6455 = getelementptr inbounds %struct.s2n_blob, ptr %144, i32 0, i32 1
  %6456 = load i32, ptr %6455, align 8, !tbaa !29
  %6457 = call i32 @s2n_hash_update(ptr noundef %151, ptr noundef %6454, i32 noundef %6456)
  %6458 = icmp eq i32 %6457, -1
  br i1 %6458, label %6459, label %6512

6459:                                             ; preds = %6450
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %6462 = call ptr @__errno_location() #12
  %6463 = load i32, ptr %6462, align 4, !tbaa !5
  store i32 %6463, ptr %154, align 4, !tbaa !5
  %6464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6465 = call i32 @s2n_print_stacktrace(ptr noundef %6464)
  %6466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6467 = trunc i8 %6466 to i1
  br i1 %6467, label %6468, label %6490

6468:                                             ; preds = %6461
  %6469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6470 = call i32 @fileno(ptr noundef %6469) #11
  %6471 = call i32 @isatty(i32 noundef %6470) #11
  %6472 = icmp ne i32 %6471, 0
  br i1 %6472, label %6473, label %6490

6473:                                             ; preds = %6468
  %6474 = load i32, ptr %154, align 4, !tbaa !5
  %6475 = call ptr @__errno_location() #12
  store i32 %6474, ptr %6475, align 4, !tbaa !5
  %6476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6477 = load i32, ptr @test_count, align 4, !tbaa !5
  %6478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call ptr @s2n_strerror(i32 noundef %6479, ptr noundef @.str.4)
  %6481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6482 = load i32, ptr %6481, align 4, !tbaa !5
  %6483 = call ptr @s2n_strerror_debug(i32 noundef %6482, ptr noundef @.str.4)
  %6484 = call ptr @__errno_location() #12
  %6485 = load i32, ptr %6484, align 4, !tbaa !5
  %6486 = call ptr @strerror(i32 noundef %6485) #11
  %6487 = call ptr @__errno_location() #12
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6476, ptr noundef @.str.2, i32 noundef %6477, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 261, ptr noundef %6480, ptr noundef %6483, ptr noundef %6486, i32 noundef %6488) #11
  br label %6507

6490:                                             ; preds = %6468, %6461
  %6491 = load i32, ptr %154, align 4, !tbaa !5
  %6492 = call ptr @__errno_location() #12
  store i32 %6491, ptr %6492, align 4, !tbaa !5
  %6493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6494 = load i32, ptr @test_count, align 4, !tbaa !5
  %6495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @s2n_strerror(i32 noundef %6496, ptr noundef @.str.4)
  %6498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call ptr @s2n_strerror_debug(i32 noundef %6499, ptr noundef @.str.4)
  %6501 = call ptr @__errno_location() #12
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call ptr @strerror(i32 noundef %6502) #11
  %6504 = call ptr @__errno_location() #12
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6493, ptr noundef @.str.5, i32 noundef %6494, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 261, ptr noundef %6497, ptr noundef %6500, ptr noundef %6503, i32 noundef %6505) #11
  br label %6507

6507:                                             ; preds = %6490, %6473
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %6508

6508:                                             ; preds = %6507
  br label %6509

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

6510:                                             ; No predecessors!
  br label %6511

6511:                                             ; preds = %6510
  br label %6512

6512:                                             ; preds = %6511, %6450
  br label %6513

6513:                                             ; preds = %6512
  br label %6514

6514:                                             ; preds = %6513
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #11
  store i64 256, ptr %155, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 256, ptr %156) #11
  call void @llvm.memset.p0.i64(ptr align 16 %156, i8 0, i64 256, i1 false)
  br label %6515

6515:                                             ; preds = %6514
  %6516 = load i64, ptr %155, align 8, !tbaa !23
  %6517 = icmp ule i64 %6516, 256
  br i1 %6517, label %6551, label %6518

6518:                                             ; preds = %6515
  br label %6519

6519:                                             ; preds = %6518
  br label %6520

6520:                                             ; preds = %6519
  %6521 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6522 = getelementptr inbounds %struct.s2n_debug_info, ptr %6521, i32 0, i32 0
  store ptr @.str.87, ptr %6522, align 8, !tbaa !25
  %6523 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6524 = getelementptr inbounds %struct.s2n_debug_info, ptr %6523, i32 0, i32 0
  %6525 = load ptr, ptr %6524, align 8, !tbaa !25
  %6526 = getelementptr inbounds i8, ptr %6525, i64 21
  %6527 = call ptr @strrchr(ptr noundef %6526, i32 noundef 47) #15
  %6528 = icmp ne ptr %6527, null
  br i1 %6528, label %6529, label %6536

6529:                                             ; preds = %6520
  %6530 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6531 = getelementptr inbounds %struct.s2n_debug_info, ptr %6530, i32 0, i32 0
  %6532 = load ptr, ptr %6531, align 8, !tbaa !25
  %6533 = getelementptr inbounds i8, ptr %6532, i64 21
  %6534 = call ptr @strrchr(ptr noundef %6533, i32 noundef 47) #15
  %6535 = getelementptr inbounds i8, ptr %6534, i64 1
  br label %6541

6536:                                             ; preds = %6520
  %6537 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6538 = getelementptr inbounds %struct.s2n_debug_info, ptr %6537, i32 0, i32 0
  %6539 = load ptr, ptr %6538, align 8, !tbaa !25
  %6540 = getelementptr inbounds i8, ptr %6539, i64 21
  br label %6541

6541:                                             ; preds = %6536, %6529
  %6542 = phi ptr [ %6535, %6529 ], [ %6540, %6536 ]
  %6543 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6544 = getelementptr inbounds %struct.s2n_debug_info, ptr %6543, i32 0, i32 1
  store ptr %6542, ptr %6544, align 8, !tbaa !27
  %6545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %6545, align 4, !tbaa !5
  %6546 = call i32 @s2n_calculate_stacktrace()
  br label %6547

6547:                                             ; preds = %6541
  br label %6548

6548:                                             ; preds = %6547
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %6821

6549:                                             ; No predecessors!
  br label %6550

6550:                                             ; preds = %6549
  br label %6551

6551:                                             ; preds = %6550, %6515
  br label %6552

6552:                                             ; preds = %6551
  br label %6553

6553:                                             ; preds = %6552
  call void @llvm.lifetime.start.p0(i64 24, ptr %157) #11
  call void @llvm.memset.p0.i64(ptr align 8 %157, i8 0, i64 24, i1 false)
  br label %6554

6554:                                             ; preds = %6553
  %6555 = getelementptr inbounds [256 x i8], ptr %156, i64 0, i64 0
  %6556 = load i64, ptr %155, align 8, !tbaa !23
  %6557 = trunc i64 %6556 to i32
  %6558 = call i32 @s2n_blob_init(ptr noundef %157, ptr noundef %6555, i32 noundef %6557)
  %6559 = icmp sgt i32 %6558, -1
  br i1 %6559, label %6561, label %6560

6560:                                             ; preds = %6554
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %6820

6561:                                             ; preds = %6554
  br label %6562

6562:                                             ; preds = %6561
  br label %6563

6563:                                             ; preds = %6562
  br label %6564

6564:                                             ; preds = %6563
  %6565 = load i32, ptr @test_count, align 4, !tbaa !5
  %6566 = add nsw i32 %6565, 1
  store i32 %6566, ptr @test_count, align 4, !tbaa !5
  %6567 = load ptr, ptr %134, align 8, !tbaa !9
  %6568 = call i32 @s2n_pkey_sign(ptr noundef %6567, i32 noundef 225, ptr noundef %147, ptr noundef %157)
  %6569 = icmp eq i32 %6568, -1
  br i1 %6569, label %6570, label %6623

6570:                                             ; preds = %6564
  br label %6571

6571:                                             ; preds = %6570
  br label %6572

6572:                                             ; preds = %6571
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %6573 = call ptr @__errno_location() #12
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  store i32 %6574, ptr %158, align 4, !tbaa !5
  %6575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6576 = call i32 @s2n_print_stacktrace(ptr noundef %6575)
  %6577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6578 = trunc i8 %6577 to i1
  br i1 %6578, label %6579, label %6601

6579:                                             ; preds = %6572
  %6580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6581 = call i32 @fileno(ptr noundef %6580) #11
  %6582 = call i32 @isatty(i32 noundef %6581) #11
  %6583 = icmp ne i32 %6582, 0
  br i1 %6583, label %6584, label %6601

6584:                                             ; preds = %6579
  %6585 = load i32, ptr %158, align 4, !tbaa !5
  %6586 = call ptr @__errno_location() #12
  store i32 %6585, ptr %6586, align 4, !tbaa !5
  %6587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6588 = load i32, ptr @test_count, align 4, !tbaa !5
  %6589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call ptr @s2n_strerror(i32 noundef %6590, ptr noundef @.str.4)
  %6592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call ptr @s2n_strerror_debug(i32 noundef %6593, ptr noundef @.str.4)
  %6595 = call ptr @__errno_location() #12
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call ptr @strerror(i32 noundef %6596) #11
  %6598 = call ptr @__errno_location() #12
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6587, ptr noundef @.str.2, i32 noundef %6588, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 267, ptr noundef %6591, ptr noundef %6594, ptr noundef %6597, i32 noundef %6599) #11
  br label %6618

6601:                                             ; preds = %6579, %6572
  %6602 = load i32, ptr %158, align 4, !tbaa !5
  %6603 = call ptr @__errno_location() #12
  store i32 %6602, ptr %6603, align 4, !tbaa !5
  %6604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6605 = load i32, ptr @test_count, align 4, !tbaa !5
  %6606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  %6608 = call ptr @s2n_strerror(i32 noundef %6607, ptr noundef @.str.4)
  %6609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call ptr @s2n_strerror_debug(i32 noundef %6610, ptr noundef @.str.4)
  %6612 = call ptr @__errno_location() #12
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call ptr @strerror(i32 noundef %6613) #11
  %6615 = call ptr @__errno_location() #12
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6604, ptr noundef @.str.5, i32 noundef %6605, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 267, ptr noundef %6608, ptr noundef %6611, ptr noundef %6614, i32 noundef %6616) #11
  br label %6618

6618:                                             ; preds = %6601, %6584
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %6619

6619:                                             ; preds = %6618
  br label %6620

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

6621:                                             ; No predecessors!
  br label %6622

6622:                                             ; preds = %6621
  br label %6623

6623:                                             ; preds = %6622, %6564
  br label %6624

6624:                                             ; preds = %6623
  br label %6625

6625:                                             ; preds = %6624
  br label %6626

6626:                                             ; preds = %6625
  br label %6627

6627:                                             ; preds = %6626
  %6628 = load i32, ptr @test_count, align 4, !tbaa !5
  %6629 = add nsw i32 %6628, 1
  store i32 %6629, ptr @test_count, align 4, !tbaa !5
  %6630 = call i32 @s2n_pkey_verify(ptr noundef %108, i32 noundef 225, ptr noundef %151, ptr noundef %157)
  %6631 = icmp eq i32 %6630, -1
  br i1 %6631, label %6685, label %6632

6632:                                             ; preds = %6627
  br label %6633

6633:                                             ; preds = %6632
  br label %6634

6634:                                             ; preds = %6633
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %6635 = call ptr @__errno_location() #12
  %6636 = load i32, ptr %6635, align 4, !tbaa !5
  store i32 %6636, ptr %159, align 4, !tbaa !5
  %6637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6638 = call i32 @s2n_print_stacktrace(ptr noundef %6637)
  %6639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6640 = trunc i8 %6639 to i1
  br i1 %6640, label %6641, label %6663

6641:                                             ; preds = %6634
  %6642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6643 = call i32 @fileno(ptr noundef %6642) #11
  %6644 = call i32 @isatty(i32 noundef %6643) #11
  %6645 = icmp ne i32 %6644, 0
  br i1 %6645, label %6646, label %6663

6646:                                             ; preds = %6641
  %6647 = load i32, ptr %159, align 4, !tbaa !5
  %6648 = call ptr @__errno_location() #12
  store i32 %6647, ptr %6648, align 4, !tbaa !5
  %6649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6650 = load i32, ptr @test_count, align 4, !tbaa !5
  %6651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call ptr @s2n_strerror(i32 noundef %6652, ptr noundef @.str.4)
  %6654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6655 = load i32, ptr %6654, align 4, !tbaa !5
  %6656 = call ptr @s2n_strerror_debug(i32 noundef %6655, ptr noundef @.str.4)
  %6657 = call ptr @__errno_location() #12
  %6658 = load i32, ptr %6657, align 4, !tbaa !5
  %6659 = call ptr @strerror(i32 noundef %6658) #11
  %6660 = call ptr @__errno_location() #12
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  %6662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6649, ptr noundef @.str.2, i32 noundef %6650, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6653, ptr noundef %6656, ptr noundef %6659, i32 noundef %6661) #11
  br label %6680

6663:                                             ; preds = %6641, %6634
  %6664 = load i32, ptr %159, align 4, !tbaa !5
  %6665 = call ptr @__errno_location() #12
  store i32 %6664, ptr %6665, align 4, !tbaa !5
  %6666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6667 = load i32, ptr @test_count, align 4, !tbaa !5
  %6668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6669 = load i32, ptr %6668, align 4, !tbaa !5
  %6670 = call ptr @s2n_strerror(i32 noundef %6669, ptr noundef @.str.4)
  %6671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  %6673 = call ptr @s2n_strerror_debug(i32 noundef %6672, ptr noundef @.str.4)
  %6674 = call ptr @__errno_location() #12
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  %6676 = call ptr @strerror(i32 noundef %6675) #11
  %6677 = call ptr @__errno_location() #12
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  %6679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6666, ptr noundef @.str.5, i32 noundef %6667, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6670, ptr noundef %6673, ptr noundef %6676, i32 noundef %6678) #11
  br label %6680

6680:                                             ; preds = %6663, %6646
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %6681

6681:                                             ; preds = %6680
  br label %6682

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

6683:                                             ; No predecessors!
  br label %6684

6684:                                             ; preds = %6683
  br label %6685

6685:                                             ; preds = %6684, %6627
  br label %6686

6686:                                             ; preds = %6685
  br label %6687

6687:                                             ; preds = %6686
  br label %6688

6688:                                             ; preds = %6687
  %6689 = load i32, ptr @test_count, align 4, !tbaa !5
  %6690 = add nsw i32 %6689, 1
  store i32 %6690, ptr @test_count, align 4, !tbaa !5
  %6691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = icmp eq i32 %6692, 0
  br i1 %6693, label %6694, label %6747

6694:                                             ; preds = %6688
  br label %6695

6695:                                             ; preds = %6694
  br label %6696

6696:                                             ; preds = %6695
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %6697 = call ptr @__errno_location() #12
  %6698 = load i32, ptr %6697, align 4, !tbaa !5
  store i32 %6698, ptr %160, align 4, !tbaa !5
  %6699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6700 = call i32 @s2n_print_stacktrace(ptr noundef %6699)
  %6701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6702 = trunc i8 %6701 to i1
  br i1 %6702, label %6703, label %6725

6703:                                             ; preds = %6696
  %6704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6705 = call i32 @fileno(ptr noundef %6704) #11
  %6706 = call i32 @isatty(i32 noundef %6705) #11
  %6707 = icmp ne i32 %6706, 0
  br i1 %6707, label %6708, label %6725

6708:                                             ; preds = %6703
  %6709 = load i32, ptr %160, align 4, !tbaa !5
  %6710 = call ptr @__errno_location() #12
  store i32 %6709, ptr %6710, align 4, !tbaa !5
  %6711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6712 = load i32, ptr @test_count, align 4, !tbaa !5
  %6713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @s2n_strerror(i32 noundef %6714, ptr noundef @.str.4)
  %6716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call ptr @s2n_strerror_debug(i32 noundef %6717, ptr noundef @.str.4)
  %6719 = call ptr @__errno_location() #12
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  %6721 = call ptr @strerror(i32 noundef %6720) #11
  %6722 = call ptr @__errno_location() #12
  %6723 = load i32, ptr %6722, align 4, !tbaa !5
  %6724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6711, ptr noundef @.str.2, i32 noundef %6712, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6715, ptr noundef %6718, ptr noundef %6721, i32 noundef %6723) #11
  br label %6742

6725:                                             ; preds = %6703, %6696
  %6726 = load i32, ptr %160, align 4, !tbaa !5
  %6727 = call ptr @__errno_location() #12
  store i32 %6726, ptr %6727, align 4, !tbaa !5
  %6728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6729 = load i32, ptr @test_count, align 4, !tbaa !5
  %6730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6731 = load i32, ptr %6730, align 4, !tbaa !5
  %6732 = call ptr @s2n_strerror(i32 noundef %6731, ptr noundef @.str.4)
  %6733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  %6735 = call ptr @s2n_strerror_debug(i32 noundef %6734, ptr noundef @.str.4)
  %6736 = call ptr @__errno_location() #12
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call ptr @strerror(i32 noundef %6737) #11
  %6739 = call ptr @__errno_location() #12
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6728, ptr noundef @.str.5, i32 noundef %6729, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6732, ptr noundef %6735, ptr noundef %6738, i32 noundef %6740) #11
  br label %6742

6742:                                             ; preds = %6725, %6708
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %6743

6743:                                             ; preds = %6742
  br label %6744

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

6745:                                             ; No predecessors!
  br label %6746

6746:                                             ; preds = %6745
  br label %6747

6747:                                             ; preds = %6746, %6688
  br label %6748

6748:                                             ; preds = %6747
  br label %6749

6749:                                             ; preds = %6748
  br label %6750

6750:                                             ; preds = %6749
  %6751 = load i32, ptr @test_count, align 4, !tbaa !5
  %6752 = add nsw i32 %6751, 1
  store i32 %6752, ptr @test_count, align 4, !tbaa !5
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror_debug(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = icmp eq ptr %6755, null
  br i1 %6756, label %6757, label %6810

6757:                                             ; preds = %6750
  br label %6758

6758:                                             ; preds = %6757
  br label %6759

6759:                                             ; preds = %6758
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %6760 = call ptr @__errno_location() #12
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  store i32 %6761, ptr %161, align 4, !tbaa !5
  %6762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6763 = call i32 @s2n_print_stacktrace(ptr noundef %6762)
  %6764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6765 = trunc i8 %6764 to i1
  br i1 %6765, label %6766, label %6788

6766:                                             ; preds = %6759
  %6767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6768 = call i32 @fileno(ptr noundef %6767) #11
  %6769 = call i32 @isatty(i32 noundef %6768) #11
  %6770 = icmp ne i32 %6769, 0
  br i1 %6770, label %6771, label %6788

6771:                                             ; preds = %6766
  %6772 = load i32, ptr %161, align 4, !tbaa !5
  %6773 = call ptr @__errno_location() #12
  store i32 %6772, ptr %6773, align 4, !tbaa !5
  %6774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6775 = load i32, ptr @test_count, align 4, !tbaa !5
  %6776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call ptr @s2n_strerror(i32 noundef %6777, ptr noundef @.str.4)
  %6779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6780 = load i32, ptr %6779, align 4, !tbaa !5
  %6781 = call ptr @s2n_strerror_debug(i32 noundef %6780, ptr noundef @.str.4)
  %6782 = call ptr @__errno_location() #12
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  %6784 = call ptr @strerror(i32 noundef %6783) #11
  %6785 = call ptr @__errno_location() #12
  %6786 = load i32, ptr %6785, align 4, !tbaa !5
  %6787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6774, ptr noundef @.str.2, i32 noundef %6775, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6778, ptr noundef %6781, ptr noundef %6784, i32 noundef %6786) #11
  br label %6805

6788:                                             ; preds = %6766, %6759
  %6789 = load i32, ptr %161, align 4, !tbaa !5
  %6790 = call ptr @__errno_location() #12
  store i32 %6789, ptr %6790, align 4, !tbaa !5
  %6791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6792 = load i32, ptr @test_count, align 4, !tbaa !5
  %6793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6794 = load i32, ptr %6793, align 4, !tbaa !5
  %6795 = call ptr @s2n_strerror(i32 noundef %6794, ptr noundef @.str.4)
  %6796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6797 = load i32, ptr %6796, align 4, !tbaa !5
  %6798 = call ptr @s2n_strerror_debug(i32 noundef %6797, ptr noundef @.str.4)
  %6799 = call ptr @__errno_location() #12
  %6800 = load i32, ptr %6799, align 4, !tbaa !5
  %6801 = call ptr @strerror(i32 noundef %6800) #11
  %6802 = call ptr @__errno_location() #12
  %6803 = load i32, ptr %6802, align 4, !tbaa !5
  %6804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6791, ptr noundef @.str.5, i32 noundef %6792, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6795, ptr noundef %6798, ptr noundef %6801, i32 noundef %6803) #11
  br label %6805

6805:                                             ; preds = %6788, %6771
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %6806

6806:                                             ; preds = %6805
  br label %6807

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

6808:                                             ; No predecessors!
  br label %6809

6809:                                             ; preds = %6808
  br label %6810

6810:                                             ; preds = %6809, %6750
  br label %6811

6811:                                             ; preds = %6810
  br label %6812

6812:                                             ; preds = %6811
  br label %6813

6813:                                             ; preds = %6812
  %6814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6814, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6815 = call ptr @__errno_location() #12
  store i32 0, ptr %6815, align 4, !tbaa !5
  br label %6816

6816:                                             ; preds = %6813
  br label %6817

6817:                                             ; preds = %6816
  br label %6818

6818:                                             ; preds = %6817
  br label %6819

6819:                                             ; preds = %6818
  store i32 0, ptr %77, align 4
  br label %6820

6820:                                             ; preds = %6819, %6560
  call void @llvm.lifetime.end.p0(i64 24, ptr %157) #11
  br label %6821

6821:                                             ; preds = %6820, %6548
  call void @llvm.lifetime.end.p0(i64 256, ptr %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #11
  %6822 = call i32 @s2n_hash_free(ptr noundef %151)
  call void @llvm.lifetime.end.p0(i64 56, ptr %151) #11
  %6823 = call i32 @s2n_hash_free(ptr noundef %147)
  call void @llvm.lifetime.end.p0(i64 56, ptr %147) #11
  br label %6824

6824:                                             ; preds = %6821, %6073
  call void @llvm.lifetime.end.p0(i64 24, ptr %144) #11
  br label %6825

6825:                                             ; preds = %6824, %6061
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #11
  %6826 = load i32, ptr %77, align 4
  switch i32 %6826, label %7140 [
    i32 0, label %6827
  ]

6827:                                             ; preds = %6825
  br label %6828

6828:                                             ; preds = %6827
  %6829 = load i32, ptr @test_count, align 4, !tbaa !5
  %6830 = add nsw i32 %6829, 1
  store i32 %6830, ptr @test_count, align 4, !tbaa !5
  %6831 = load ptr, ptr %105, align 8, !tbaa !9
  %6832 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %6831)
  %6833 = icmp eq i32 %6832, -1
  br i1 %6833, label %6834, label %6887

6834:                                             ; preds = %6828
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

6836:                                             ; preds = %6835
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %6837 = call ptr @__errno_location() #12
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  store i32 %6838, ptr %162, align 4, !tbaa !5
  %6839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6840 = call i32 @s2n_print_stacktrace(ptr noundef %6839)
  %6841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6842 = trunc i8 %6841 to i1
  br i1 %6842, label %6843, label %6865

6843:                                             ; preds = %6836
  %6844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6845 = call i32 @fileno(ptr noundef %6844) #11
  %6846 = call i32 @isatty(i32 noundef %6845) #11
  %6847 = icmp ne i32 %6846, 0
  br i1 %6847, label %6848, label %6865

6848:                                             ; preds = %6843
  %6849 = load i32, ptr %162, align 4, !tbaa !5
  %6850 = call ptr @__errno_location() #12
  store i32 %6849, ptr %6850, align 4, !tbaa !5
  %6851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6852 = load i32, ptr @test_count, align 4, !tbaa !5
  %6853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  %6855 = call ptr @s2n_strerror(i32 noundef %6854, ptr noundef @.str.4)
  %6856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6857 = load i32, ptr %6856, align 4, !tbaa !5
  %6858 = call ptr @s2n_strerror_debug(i32 noundef %6857, ptr noundef @.str.4)
  %6859 = call ptr @__errno_location() #12
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  %6861 = call ptr @strerror(i32 noundef %6860) #11
  %6862 = call ptr @__errno_location() #12
  %6863 = load i32, ptr %6862, align 4, !tbaa !5
  %6864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6851, ptr noundef @.str.2, i32 noundef %6852, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 272, ptr noundef %6855, ptr noundef %6858, ptr noundef %6861, i32 noundef %6863) #11
  br label %6882

6865:                                             ; preds = %6843, %6836
  %6866 = load i32, ptr %162, align 4, !tbaa !5
  %6867 = call ptr @__errno_location() #12
  store i32 %6866, ptr %6867, align 4, !tbaa !5
  %6868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6869 = load i32, ptr @test_count, align 4, !tbaa !5
  %6870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  %6872 = call ptr @s2n_strerror(i32 noundef %6871, ptr noundef @.str.4)
  %6873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @s2n_strerror_debug(i32 noundef %6874, ptr noundef @.str.4)
  %6876 = call ptr @__errno_location() #12
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call ptr @strerror(i32 noundef %6877) #11
  %6879 = call ptr @__errno_location() #12
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6868, ptr noundef @.str.5, i32 noundef %6869, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 272, ptr noundef %6872, ptr noundef %6875, ptr noundef %6878, i32 noundef %6880) #11
  br label %6882

6882:                                             ; preds = %6865, %6848
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %6883

6883:                                             ; preds = %6882
  br label %6884

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

6885:                                             ; No predecessors!
  br label %6886

6886:                                             ; preds = %6885
  br label %6887

6887:                                             ; preds = %6886, %6828
  br label %6888

6888:                                             ; preds = %6887
  br label %6889

6889:                                             ; preds = %6888
  br label %6890

6890:                                             ; preds = %6889
  %6891 = load i32, ptr @test_count, align 4, !tbaa !5
  %6892 = add nsw i32 %6891, 1
  store i32 %6892, ptr @test_count, align 4, !tbaa !5
  %6893 = call i32 @s2n_pkey_free(ptr noundef %107)
  %6894 = icmp eq i32 %6893, -1
  br i1 %6894, label %6895, label %6948

6895:                                             ; preds = %6890
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %6898 = call ptr @__errno_location() #12
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  store i32 %6899, ptr %163, align 4, !tbaa !5
  %6900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6901 = call i32 @s2n_print_stacktrace(ptr noundef %6900)
  %6902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6903 = trunc i8 %6902 to i1
  br i1 %6903, label %6904, label %6926

6904:                                             ; preds = %6897
  %6905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6906 = call i32 @fileno(ptr noundef %6905) #11
  %6907 = call i32 @isatty(i32 noundef %6906) #11
  %6908 = icmp ne i32 %6907, 0
  br i1 %6908, label %6909, label %6926

6909:                                             ; preds = %6904
  %6910 = load i32, ptr %163, align 4, !tbaa !5
  %6911 = call ptr @__errno_location() #12
  store i32 %6910, ptr %6911, align 4, !tbaa !5
  %6912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  %6916 = call ptr @s2n_strerror(i32 noundef %6915, ptr noundef @.str.4)
  %6917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  %6919 = call ptr @s2n_strerror_debug(i32 noundef %6918, ptr noundef @.str.4)
  %6920 = call ptr @__errno_location() #12
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call ptr @strerror(i32 noundef %6921) #11
  %6923 = call ptr @__errno_location() #12
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6912, ptr noundef @.str.2, i32 noundef %6913, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6916, ptr noundef %6919, ptr noundef %6922, i32 noundef %6924) #11
  br label %6943

6926:                                             ; preds = %6904, %6897
  %6927 = load i32, ptr %163, align 4, !tbaa !5
  %6928 = call ptr @__errno_location() #12
  store i32 %6927, ptr %6928, align 4, !tbaa !5
  %6929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6930 = load i32, ptr @test_count, align 4, !tbaa !5
  %6931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6932 = load i32, ptr %6931, align 4, !tbaa !5
  %6933 = call ptr @s2n_strerror(i32 noundef %6932, ptr noundef @.str.4)
  %6934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6935 = load i32, ptr %6934, align 4, !tbaa !5
  %6936 = call ptr @s2n_strerror_debug(i32 noundef %6935, ptr noundef @.str.4)
  %6937 = call ptr @__errno_location() #12
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @strerror(i32 noundef %6938) #11
  %6940 = call ptr @__errno_location() #12
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6929, ptr noundef @.str.5, i32 noundef %6930, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6933, ptr noundef %6936, ptr noundef %6939, i32 noundef %6941) #11
  br label %6943

6943:                                             ; preds = %6926, %6909
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %6944

6944:                                             ; preds = %6943
  br label %6945

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

6946:                                             ; No predecessors!
  br label %6947

6947:                                             ; preds = %6946
  br label %6948

6948:                                             ; preds = %6947, %6890
  br label %6949

6949:                                             ; preds = %6948
  br label %6950

6950:                                             ; preds = %6949
  %6951 = load ptr, ptr %101, align 8, !tbaa !9
  call void @free(ptr noundef %6951) #11
  %6952 = load ptr, ptr %102, align 8, !tbaa !9
  call void @free(ptr noundef %6952) #11
  br label %6953

6953:                                             ; preds = %6950
  %6954 = load i32, ptr @test_count, align 4, !tbaa !5
  %6955 = add nsw i32 %6954, 1
  store i32 %6955, ptr @test_count, align 4, !tbaa !5
  %6956 = load ptr, ptr %106, align 8, !tbaa !9
  %6957 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %6956)
  %6958 = icmp eq i32 %6957, -1
  br i1 %6958, label %6959, label %7012

6959:                                             ; preds = %6953
  br label %6960

6960:                                             ; preds = %6959
  br label %6961

6961:                                             ; preds = %6960
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %6962 = call ptr @__errno_location() #12
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  store i32 %6963, ptr %164, align 4, !tbaa !5
  %6964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6965 = call i32 @s2n_print_stacktrace(ptr noundef %6964)
  %6966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6967 = trunc i8 %6966 to i1
  br i1 %6967, label %6968, label %6990

6968:                                             ; preds = %6961
  %6969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6970 = call i32 @fileno(ptr noundef %6969) #11
  %6971 = call i32 @isatty(i32 noundef %6970) #11
  %6972 = icmp ne i32 %6971, 0
  br i1 %6972, label %6973, label %6990

6973:                                             ; preds = %6968
  %6974 = load i32, ptr %164, align 4, !tbaa !5
  %6975 = call ptr @__errno_location() #12
  store i32 %6974, ptr %6975, align 4, !tbaa !5
  %6976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6977 = load i32, ptr @test_count, align 4, !tbaa !5
  %6978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6979 = load i32, ptr %6978, align 4, !tbaa !5
  %6980 = call ptr @s2n_strerror(i32 noundef %6979, ptr noundef @.str.4)
  %6981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  %6983 = call ptr @s2n_strerror_debug(i32 noundef %6982, ptr noundef @.str.4)
  %6984 = call ptr @__errno_location() #12
  %6985 = load i32, ptr %6984, align 4, !tbaa !5
  %6986 = call ptr @strerror(i32 noundef %6985) #11
  %6987 = call ptr @__errno_location() #12
  %6988 = load i32, ptr %6987, align 4, !tbaa !5
  %6989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6976, ptr noundef @.str.2, i32 noundef %6977, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 277, ptr noundef %6980, ptr noundef %6983, ptr noundef %6986, i32 noundef %6988) #11
  br label %7007

6990:                                             ; preds = %6968, %6961
  %6991 = load i32, ptr %164, align 4, !tbaa !5
  %6992 = call ptr @__errno_location() #12
  store i32 %6991, ptr %6992, align 4, !tbaa !5
  %6993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6994 = load i32, ptr @test_count, align 4, !tbaa !5
  %6995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6996 = load i32, ptr %6995, align 4, !tbaa !5
  %6997 = call ptr @s2n_strerror(i32 noundef %6996, ptr noundef @.str.4)
  %6998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @s2n_strerror_debug(i32 noundef %6999, ptr noundef @.str.4)
  %7001 = call ptr @__errno_location() #12
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @strerror(i32 noundef %7002) #11
  %7004 = call ptr @__errno_location() #12
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6993, ptr noundef @.str.5, i32 noundef %6994, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 277, ptr noundef %6997, ptr noundef %7000, ptr noundef %7003, i32 noundef %7005) #11
  br label %7007

7007:                                             ; preds = %6990, %6973
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7008

7008:                                             ; preds = %7007
  br label %7009

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

7010:                                             ; No predecessors!
  br label %7011

7011:                                             ; preds = %7010
  br label %7012

7012:                                             ; preds = %7011, %6953
  br label %7013

7013:                                             ; preds = %7012
  br label %7014

7014:                                             ; preds = %7013
  br label %7015

7015:                                             ; preds = %7014
  %7016 = load i32, ptr @test_count, align 4, !tbaa !5
  %7017 = add nsw i32 %7016, 1
  store i32 %7017, ptr @test_count, align 4, !tbaa !5
  %7018 = load ptr, ptr %100, align 8, !tbaa !9
  %7019 = call i32 @s2n_config_free(ptr noundef %7018)
  %7020 = icmp eq i32 %7019, -1
  br i1 %7020, label %7021, label %7074

7021:                                             ; preds = %7015
  br label %7022

7022:                                             ; preds = %7021
  br label %7023

7023:                                             ; preds = %7022
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %7024 = call ptr @__errno_location() #12
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  store i32 %7025, ptr %165, align 4, !tbaa !5
  %7026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7027 = call i32 @s2n_print_stacktrace(ptr noundef %7026)
  %7028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7029 = trunc i8 %7028 to i1
  br i1 %7029, label %7030, label %7052

7030:                                             ; preds = %7023
  %7031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7032 = call i32 @fileno(ptr noundef %7031) #11
  %7033 = call i32 @isatty(i32 noundef %7032) #11
  %7034 = icmp ne i32 %7033, 0
  br i1 %7034, label %7035, label %7052

7035:                                             ; preds = %7030
  %7036 = load i32, ptr %165, align 4, !tbaa !5
  %7037 = call ptr @__errno_location() #12
  store i32 %7036, ptr %7037, align 4, !tbaa !5
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = load i32, ptr @test_count, align 4, !tbaa !5
  %7040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7041 = load i32, ptr %7040, align 4, !tbaa !5
  %7042 = call ptr @s2n_strerror(i32 noundef %7041, ptr noundef @.str.4)
  %7043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7044 = load i32, ptr %7043, align 4, !tbaa !5
  %7045 = call ptr @s2n_strerror_debug(i32 noundef %7044, ptr noundef @.str.4)
  %7046 = call ptr @__errno_location() #12
  %7047 = load i32, ptr %7046, align 4, !tbaa !5
  %7048 = call ptr @strerror(i32 noundef %7047) #11
  %7049 = call ptr @__errno_location() #12
  %7050 = load i32, ptr %7049, align 4, !tbaa !5
  %7051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7038, ptr noundef @.str.2, i32 noundef %7039, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 278, ptr noundef %7042, ptr noundef %7045, ptr noundef %7048, i32 noundef %7050) #11
  br label %7069

7052:                                             ; preds = %7030, %7023
  %7053 = load i32, ptr %165, align 4, !tbaa !5
  %7054 = call ptr @__errno_location() #12
  store i32 %7053, ptr %7054, align 4, !tbaa !5
  %7055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7056 = load i32, ptr @test_count, align 4, !tbaa !5
  %7057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7058 = load i32, ptr %7057, align 4, !tbaa !5
  %7059 = call ptr @s2n_strerror(i32 noundef %7058, ptr noundef @.str.4)
  %7060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7061 = load i32, ptr %7060, align 4, !tbaa !5
  %7062 = call ptr @s2n_strerror_debug(i32 noundef %7061, ptr noundef @.str.4)
  %7063 = call ptr @__errno_location() #12
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  %7065 = call ptr @strerror(i32 noundef %7064) #11
  %7066 = call ptr @__errno_location() #12
  %7067 = load i32, ptr %7066, align 4, !tbaa !5
  %7068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7055, ptr noundef @.str.5, i32 noundef %7056, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 278, ptr noundef %7059, ptr noundef %7062, ptr noundef %7065, i32 noundef %7067) #11
  br label %7069

7069:                                             ; preds = %7052, %7035
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %7070

7070:                                             ; preds = %7069
  br label %7071

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

7072:                                             ; No predecessors!
  br label %7073

7073:                                             ; preds = %7072
  br label %7074

7074:                                             ; preds = %7073, %7015
  br label %7075

7075:                                             ; preds = %7074
  br label %7076

7076:                                             ; preds = %7075
  br label %7077

7077:                                             ; preds = %7076
  %7078 = load i32, ptr @test_count, align 4, !tbaa !5
  %7079 = add nsw i32 %7078, 1
  store i32 %7079, ptr @test_count, align 4, !tbaa !5
  %7080 = call i32 @s2n_pkey_free(ptr noundef %108)
  %7081 = icmp eq i32 %7080, -1
  br i1 %7081, label %7082, label %7135

7082:                                             ; preds = %7077
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

7084:                                             ; preds = %7083
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7085 = call ptr @__errno_location() #12
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  store i32 %7086, ptr %166, align 4, !tbaa !5
  %7087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7088 = call i32 @s2n_print_stacktrace(ptr noundef %7087)
  %7089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7090 = trunc i8 %7089 to i1
  br i1 %7090, label %7091, label %7113

7091:                                             ; preds = %7084
  %7092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7093 = call i32 @fileno(ptr noundef %7092) #11
  %7094 = call i32 @isatty(i32 noundef %7093) #11
  %7095 = icmp ne i32 %7094, 0
  br i1 %7095, label %7096, label %7113

7096:                                             ; preds = %7091
  %7097 = load i32, ptr %166, align 4, !tbaa !5
  %7098 = call ptr @__errno_location() #12
  store i32 %7097, ptr %7098, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @s2n_strerror(i32 noundef %7102, ptr noundef @.str.4)
  %7104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call ptr @s2n_strerror_debug(i32 noundef %7105, ptr noundef @.str.4)
  %7107 = call ptr @__errno_location() #12
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @strerror(i32 noundef %7108) #11
  %7110 = call ptr @__errno_location() #12
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7099, ptr noundef @.str.2, i32 noundef %7100, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 279, ptr noundef %7103, ptr noundef %7106, ptr noundef %7109, i32 noundef %7111) #11
  br label %7130

7113:                                             ; preds = %7091, %7084
  %7114 = load i32, ptr %166, align 4, !tbaa !5
  %7115 = call ptr @__errno_location() #12
  store i32 %7114, ptr %7115, align 4, !tbaa !5
  %7116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7117 = load i32, ptr @test_count, align 4, !tbaa !5
  %7118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call ptr @s2n_strerror(i32 noundef %7119, ptr noundef @.str.4)
  %7121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7122 = load i32, ptr %7121, align 4, !tbaa !5
  %7123 = call ptr @s2n_strerror_debug(i32 noundef %7122, ptr noundef @.str.4)
  %7124 = call ptr @__errno_location() #12
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call ptr @strerror(i32 noundef %7125) #11
  %7127 = call ptr @__errno_location() #12
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7116, ptr noundef @.str.5, i32 noundef %7117, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 279, ptr noundef %7120, ptr noundef %7123, ptr noundef %7126, i32 noundef %7128) #11
  br label %7130

7130:                                             ; preds = %7113, %7096
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7131

7131:                                             ; preds = %7130
  br label %7132

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

7133:                                             ; No predecessors!
  br label %7134

7134:                                             ; preds = %7133
  br label %7135

7135:                                             ; preds = %7134, %7077
  br label %7136

7136:                                             ; preds = %7135
  br label %7137

7137:                                             ; preds = %7136
  %7138 = load ptr, ptr %103, align 8, !tbaa !9
  call void @free(ptr noundef %7138) #11
  %7139 = load ptr, ptr %104, align 8, !tbaa !9
  call void @free(ptr noundef %7139) #11
  store i32 0, ptr %77, align 4
  br label %7140

7140:                                             ; preds = %7137, %6825
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  %7141 = load i32, ptr %77, align 4
  switch i32 %7141, label %9222 [
    i32 0, label %7142
    i32 1, label %9220
  ]

7142:                                             ; preds = %7140
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  store ptr null, ptr %167, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #11
  store ptr null, ptr %168, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #11
  store ptr null, ptr %169, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #11
  store ptr null, ptr %170, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %171) #11
  call void @llvm.memset.p0.i64(ptr align 8 %171, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  store i32 -1, ptr %172, align 4, !tbaa !5
  br label %7143

7143:                                             ; preds = %7142
  %7144 = load i32, ptr @test_count, align 4, !tbaa !5
  %7145 = add nsw i32 %7144, 1
  store i32 %7145, ptr @test_count, align 4, !tbaa !5
  %7146 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %7146, ptr %168, align 8, !tbaa !9
  %7147 = icmp eq ptr %7146, null
  br i1 %7147, label %7148, label %7201

7148:                                             ; preds = %7143
  br label %7149

7149:                                             ; preds = %7148
  br label %7150

7150:                                             ; preds = %7149
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %7151 = call ptr @__errno_location() #12
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  store i32 %7152, ptr %173, align 4, !tbaa !5
  %7153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7154 = call i32 @s2n_print_stacktrace(ptr noundef %7153)
  %7155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7156 = trunc i8 %7155 to i1
  br i1 %7156, label %7157, label %7179

7157:                                             ; preds = %7150
  %7158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7159 = call i32 @fileno(ptr noundef %7158) #11
  %7160 = call i32 @isatty(i32 noundef %7159) #11
  %7161 = icmp ne i32 %7160, 0
  br i1 %7161, label %7162, label %7179

7162:                                             ; preds = %7157
  %7163 = load i32, ptr %173, align 4, !tbaa !5
  %7164 = call ptr @__errno_location() #12
  store i32 %7163, ptr %7164, align 4, !tbaa !5
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = load i32, ptr @test_count, align 4, !tbaa !5
  %7167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call ptr @s2n_strerror(i32 noundef %7168, ptr noundef @.str.4)
  %7170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7171 = load i32, ptr %7170, align 4, !tbaa !5
  %7172 = call ptr @s2n_strerror_debug(i32 noundef %7171, ptr noundef @.str.4)
  %7173 = call ptr @__errno_location() #12
  %7174 = load i32, ptr %7173, align 4, !tbaa !5
  %7175 = call ptr @strerror(i32 noundef %7174) #11
  %7176 = call ptr @__errno_location() #12
  %7177 = load i32, ptr %7176, align 4, !tbaa !5
  %7178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7165, ptr noundef @.str.2, i32 noundef %7166, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 295, ptr noundef %7169, ptr noundef %7172, ptr noundef %7175, i32 noundef %7177) #11
  br label %7196

7179:                                             ; preds = %7157, %7150
  %7180 = load i32, ptr %173, align 4, !tbaa !5
  %7181 = call ptr @__errno_location() #12
  store i32 %7180, ptr %7181, align 4, !tbaa !5
  %7182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7183 = load i32, ptr @test_count, align 4, !tbaa !5
  %7184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7185 = load i32, ptr %7184, align 4, !tbaa !5
  %7186 = call ptr @s2n_strerror(i32 noundef %7185, ptr noundef @.str.4)
  %7187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7188 = load i32, ptr %7187, align 4, !tbaa !5
  %7189 = call ptr @s2n_strerror_debug(i32 noundef %7188, ptr noundef @.str.4)
  %7190 = call ptr @__errno_location() #12
  %7191 = load i32, ptr %7190, align 4, !tbaa !5
  %7192 = call ptr @strerror(i32 noundef %7191) #11
  %7193 = call ptr @__errno_location() #12
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7182, ptr noundef @.str.5, i32 noundef %7183, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 295, ptr noundef %7186, ptr noundef %7189, ptr noundef %7192, i32 noundef %7194) #11
  br label %7196

7196:                                             ; preds = %7179, %7162
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7197

7197:                                             ; preds = %7196
  br label %7198

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

7199:                                             ; No predecessors!
  br label %7200

7200:                                             ; preds = %7199
  br label %7201

7201:                                             ; preds = %7200, %7143
  br label %7202

7202:                                             ; preds = %7201
  br label %7203

7203:                                             ; preds = %7202
  br label %7204

7204:                                             ; preds = %7203
  %7205 = load i32, ptr @test_count, align 4, !tbaa !5
  %7206 = add nsw i32 %7205, 1
  store i32 %7206, ptr @test_count, align 4, !tbaa !5
  %7207 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %7207, ptr %169, align 8, !tbaa !9
  %7208 = icmp eq ptr %7207, null
  br i1 %7208, label %7209, label %7262

7209:                                             ; preds = %7204
  br label %7210

7210:                                             ; preds = %7209
  br label %7211

7211:                                             ; preds = %7210
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7212 = call ptr @__errno_location() #12
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  store i32 %7213, ptr %174, align 4, !tbaa !5
  %7214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7215 = call i32 @s2n_print_stacktrace(ptr noundef %7214)
  %7216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7217 = trunc i8 %7216 to i1
  br i1 %7217, label %7218, label %7240

7218:                                             ; preds = %7211
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = call i32 @fileno(ptr noundef %7219) #11
  %7221 = call i32 @isatty(i32 noundef %7220) #11
  %7222 = icmp ne i32 %7221, 0
  br i1 %7222, label %7223, label %7240

7223:                                             ; preds = %7218
  %7224 = load i32, ptr %174, align 4, !tbaa !5
  %7225 = call ptr @__errno_location() #12
  store i32 %7224, ptr %7225, align 4, !tbaa !5
  %7226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7227 = load i32, ptr @test_count, align 4, !tbaa !5
  %7228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  %7230 = call ptr @s2n_strerror(i32 noundef %7229, ptr noundef @.str.4)
  %7231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7232 = load i32, ptr %7231, align 4, !tbaa !5
  %7233 = call ptr @s2n_strerror_debug(i32 noundef %7232, ptr noundef @.str.4)
  %7234 = call ptr @__errno_location() #12
  %7235 = load i32, ptr %7234, align 4, !tbaa !5
  %7236 = call ptr @strerror(i32 noundef %7235) #11
  %7237 = call ptr @__errno_location() #12
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  %7239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7226, ptr noundef @.str.2, i32 noundef %7227, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 296, ptr noundef %7230, ptr noundef %7233, ptr noundef %7236, i32 noundef %7238) #11
  br label %7257

7240:                                             ; preds = %7218, %7211
  %7241 = load i32, ptr %174, align 4, !tbaa !5
  %7242 = call ptr @__errno_location() #12
  store i32 %7241, ptr %7242, align 4, !tbaa !5
  %7243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7244 = load i32, ptr @test_count, align 4, !tbaa !5
  %7245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7246 = load i32, ptr %7245, align 4, !tbaa !5
  %7247 = call ptr @s2n_strerror(i32 noundef %7246, ptr noundef @.str.4)
  %7248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  %7250 = call ptr @s2n_strerror_debug(i32 noundef %7249, ptr noundef @.str.4)
  %7251 = call ptr @__errno_location() #12
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  %7253 = call ptr @strerror(i32 noundef %7252) #11
  %7254 = call ptr @__errno_location() #12
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7243, ptr noundef @.str.5, i32 noundef %7244, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 296, ptr noundef %7247, ptr noundef %7250, ptr noundef %7253, i32 noundef %7255) #11
  br label %7257

7257:                                             ; preds = %7240, %7223
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %7258

7258:                                             ; preds = %7257
  br label %7259

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

7260:                                             ; No predecessors!
  br label %7261

7261:                                             ; preds = %7260
  br label %7262

7262:                                             ; preds = %7261, %7204
  br label %7263

7263:                                             ; preds = %7262
  br label %7264

7264:                                             ; preds = %7263
  br label %7265

7265:                                             ; preds = %7264
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = add nsw i32 %7266, 1
  store i32 %7267, ptr @test_count, align 4, !tbaa !5
  %7268 = call ptr @s2n_config_new()
  store ptr %7268, ptr %167, align 8, !tbaa !9
  %7269 = icmp eq ptr %7268, null
  br i1 %7269, label %7270, label %7323

7270:                                             ; preds = %7265
  br label %7271

7271:                                             ; preds = %7270
  br label %7272

7272:                                             ; preds = %7271
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  store i32 %7274, ptr %175, align 4, !tbaa !5
  %7275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7276 = call i32 @s2n_print_stacktrace(ptr noundef %7275)
  %7277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7278 = trunc i8 %7277 to i1
  br i1 %7278, label %7279, label %7301

7279:                                             ; preds = %7272
  %7280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7281 = call i32 @fileno(ptr noundef %7280) #11
  %7282 = call i32 @isatty(i32 noundef %7281) #11
  %7283 = icmp ne i32 %7282, 0
  br i1 %7283, label %7284, label %7301

7284:                                             ; preds = %7279
  %7285 = load i32, ptr %175, align 4, !tbaa !5
  %7286 = call ptr @__errno_location() #12
  store i32 %7285, ptr %7286, align 4, !tbaa !5
  %7287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7288 = load i32, ptr @test_count, align 4, !tbaa !5
  %7289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  %7291 = call ptr @s2n_strerror(i32 noundef %7290, ptr noundef @.str.4)
  %7292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7293 = load i32, ptr %7292, align 4, !tbaa !5
  %7294 = call ptr @s2n_strerror_debug(i32 noundef %7293, ptr noundef @.str.4)
  %7295 = call ptr @__errno_location() #12
  %7296 = load i32, ptr %7295, align 4, !tbaa !5
  %7297 = call ptr @strerror(i32 noundef %7296) #11
  %7298 = call ptr @__errno_location() #12
  %7299 = load i32, ptr %7298, align 4, !tbaa !5
  %7300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7287, ptr noundef @.str.2, i32 noundef %7288, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 297, ptr noundef %7291, ptr noundef %7294, ptr noundef %7297, i32 noundef %7299) #11
  br label %7318

7301:                                             ; preds = %7279, %7272
  %7302 = load i32, ptr %175, align 4, !tbaa !5
  %7303 = call ptr @__errno_location() #12
  store i32 %7302, ptr %7303, align 4, !tbaa !5
  %7304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7305 = load i32, ptr @test_count, align 4, !tbaa !5
  %7306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @s2n_strerror(i32 noundef %7307, ptr noundef @.str.4)
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror_debug(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call ptr @__errno_location() #12
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @strerror(i32 noundef %7313) #11
  %7315 = call ptr @__errno_location() #12
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7304, ptr noundef @.str.5, i32 noundef %7305, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 297, ptr noundef %7308, ptr noundef %7311, ptr noundef %7314, i32 noundef %7316) #11
  br label %7318

7318:                                             ; preds = %7301, %7284
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %7319

7319:                                             ; preds = %7318
  br label %7320

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

7321:                                             ; No predecessors!
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

7323:                                             ; preds = %7322, %7265
  br label %7324

7324:                                             ; preds = %7323
  br label %7325

7325:                                             ; preds = %7324
  br label %7326

7326:                                             ; preds = %7325
  %7327 = load i32, ptr @test_count, align 4, !tbaa !5
  %7328 = add nsw i32 %7327, 1
  store i32 %7328, ptr @test_count, align 4, !tbaa !5
  %7329 = load ptr, ptr %168, align 8, !tbaa !9
  %7330 = call i32 @s2n_read_test_pem(ptr noundef @.str.21, ptr noundef %7329, i64 noundef 12000)
  %7331 = icmp eq i32 %7330, -1
  br i1 %7331, label %7332, label %7385

7332:                                             ; preds = %7326
  br label %7333

7333:                                             ; preds = %7332
  br label %7334

7334:                                             ; preds = %7333
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %7335 = call ptr @__errno_location() #12
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  store i32 %7336, ptr %176, align 4, !tbaa !5
  %7337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7338 = call i32 @s2n_print_stacktrace(ptr noundef %7337)
  %7339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7340 = trunc i8 %7339 to i1
  br i1 %7340, label %7341, label %7363

7341:                                             ; preds = %7334
  %7342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7343 = call i32 @fileno(ptr noundef %7342) #11
  %7344 = call i32 @isatty(i32 noundef %7343) #11
  %7345 = icmp ne i32 %7344, 0
  br i1 %7345, label %7346, label %7363

7346:                                             ; preds = %7341
  %7347 = load i32, ptr %176, align 4, !tbaa !5
  %7348 = call ptr @__errno_location() #12
  store i32 %7347, ptr %7348, align 4, !tbaa !5
  %7349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7350 = load i32, ptr @test_count, align 4, !tbaa !5
  %7351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  %7353 = call ptr @s2n_strerror(i32 noundef %7352, ptr noundef @.str.4)
  %7354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call ptr @s2n_strerror_debug(i32 noundef %7355, ptr noundef @.str.4)
  %7357 = call ptr @__errno_location() #12
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call ptr @strerror(i32 noundef %7358) #11
  %7360 = call ptr @__errno_location() #12
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  %7362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7349, ptr noundef @.str.2, i32 noundef %7350, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 299, ptr noundef %7353, ptr noundef %7356, ptr noundef %7359, i32 noundef %7361) #11
  br label %7380

7363:                                             ; preds = %7341, %7334
  %7364 = load i32, ptr %176, align 4, !tbaa !5
  %7365 = call ptr @__errno_location() #12
  store i32 %7364, ptr %7365, align 4, !tbaa !5
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = load i32, ptr @test_count, align 4, !tbaa !5
  %7368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7369 = load i32, ptr %7368, align 4, !tbaa !5
  %7370 = call ptr @s2n_strerror(i32 noundef %7369, ptr noundef @.str.4)
  %7371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7372 = load i32, ptr %7371, align 4, !tbaa !5
  %7373 = call ptr @s2n_strerror_debug(i32 noundef %7372, ptr noundef @.str.4)
  %7374 = call ptr @__errno_location() #12
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call ptr @strerror(i32 noundef %7375) #11
  %7377 = call ptr @__errno_location() #12
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7366, ptr noundef @.str.5, i32 noundef %7367, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 299, ptr noundef %7370, ptr noundef %7373, ptr noundef %7376, i32 noundef %7378) #11
  br label %7380

7380:                                             ; preds = %7363, %7346
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %7381

7381:                                             ; preds = %7380
  br label %7382

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

7383:                                             ; No predecessors!
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

7385:                                             ; preds = %7384, %7326
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  br label %7388

7388:                                             ; preds = %7387
  %7389 = load i32, ptr @test_count, align 4, !tbaa !5
  %7390 = add nsw i32 %7389, 1
  store i32 %7390, ptr @test_count, align 4, !tbaa !5
  %7391 = load ptr, ptr %169, align 8, !tbaa !9
  %7392 = call i32 @s2n_read_test_pem(ptr noundef @.str.36, ptr noundef %7391, i64 noundef 12000)
  %7393 = icmp eq i32 %7392, -1
  br i1 %7393, label %7394, label %7447

7394:                                             ; preds = %7388
  br label %7395

7395:                                             ; preds = %7394
  br label %7396

7396:                                             ; preds = %7395
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %7397 = call ptr @__errno_location() #12
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  store i32 %7398, ptr %177, align 4, !tbaa !5
  %7399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7400 = call i32 @s2n_print_stacktrace(ptr noundef %7399)
  %7401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7402 = trunc i8 %7401 to i1
  br i1 %7402, label %7403, label %7425

7403:                                             ; preds = %7396
  %7404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7405 = call i32 @fileno(ptr noundef %7404) #11
  %7406 = call i32 @isatty(i32 noundef %7405) #11
  %7407 = icmp ne i32 %7406, 0
  br i1 %7407, label %7408, label %7425

7408:                                             ; preds = %7403
  %7409 = load i32, ptr %177, align 4, !tbaa !5
  %7410 = call ptr @__errno_location() #12
  store i32 %7409, ptr %7410, align 4, !tbaa !5
  %7411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7412 = load i32, ptr @test_count, align 4, !tbaa !5
  %7413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call ptr @s2n_strerror(i32 noundef %7414, ptr noundef @.str.4)
  %7416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7417 = load i32, ptr %7416, align 4, !tbaa !5
  %7418 = call ptr @s2n_strerror_debug(i32 noundef %7417, ptr noundef @.str.4)
  %7419 = call ptr @__errno_location() #12
  %7420 = load i32, ptr %7419, align 4, !tbaa !5
  %7421 = call ptr @strerror(i32 noundef %7420) #11
  %7422 = call ptr @__errno_location() #12
  %7423 = load i32, ptr %7422, align 4, !tbaa !5
  %7424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7411, ptr noundef @.str.2, i32 noundef %7412, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 300, ptr noundef %7415, ptr noundef %7418, ptr noundef %7421, i32 noundef %7423) #11
  br label %7442

7425:                                             ; preds = %7403, %7396
  %7426 = load i32, ptr %177, align 4, !tbaa !5
  %7427 = call ptr @__errno_location() #12
  store i32 %7426, ptr %7427, align 4, !tbaa !5
  %7428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7429 = load i32, ptr @test_count, align 4, !tbaa !5
  %7430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7431 = load i32, ptr %7430, align 4, !tbaa !5
  %7432 = call ptr @s2n_strerror(i32 noundef %7431, ptr noundef @.str.4)
  %7433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7434 = load i32, ptr %7433, align 4, !tbaa !5
  %7435 = call ptr @s2n_strerror_debug(i32 noundef %7434, ptr noundef @.str.4)
  %7436 = call ptr @__errno_location() #12
  %7437 = load i32, ptr %7436, align 4, !tbaa !5
  %7438 = call ptr @strerror(i32 noundef %7437) #11
  %7439 = call ptr @__errno_location() #12
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  %7441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7428, ptr noundef @.str.5, i32 noundef %7429, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 300, ptr noundef %7432, ptr noundef %7435, ptr noundef %7438, i32 noundef %7440) #11
  br label %7442

7442:                                             ; preds = %7425, %7408
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %7443

7443:                                             ; preds = %7442
  br label %7444

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

7445:                                             ; No predecessors!
  br label %7446

7446:                                             ; preds = %7445
  br label %7447

7447:                                             ; preds = %7446, %7388
  br label %7448

7448:                                             ; preds = %7447
  br label %7449

7449:                                             ; preds = %7448
  br label %7450

7450:                                             ; preds = %7449
  %7451 = load i32, ptr @test_count, align 4, !tbaa !5
  %7452 = add nsw i32 %7451, 1
  store i32 %7452, ptr @test_count, align 4, !tbaa !5
  %7453 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %7453, ptr %170, align 8, !tbaa !9
  %7454 = icmp eq ptr %7453, null
  br i1 %7454, label %7455, label %7508

7455:                                             ; preds = %7450
  br label %7456

7456:                                             ; preds = %7455
  br label %7457

7457:                                             ; preds = %7456
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %7458 = call ptr @__errno_location() #12
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  store i32 %7459, ptr %178, align 4, !tbaa !5
  %7460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7461 = call i32 @s2n_print_stacktrace(ptr noundef %7460)
  %7462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7463 = trunc i8 %7462 to i1
  br i1 %7463, label %7464, label %7486

7464:                                             ; preds = %7457
  %7465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7466 = call i32 @fileno(ptr noundef %7465) #11
  %7467 = call i32 @isatty(i32 noundef %7466) #11
  %7468 = icmp ne i32 %7467, 0
  br i1 %7468, label %7469, label %7486

7469:                                             ; preds = %7464
  %7470 = load i32, ptr %178, align 4, !tbaa !5
  %7471 = call ptr @__errno_location() #12
  store i32 %7470, ptr %7471, align 4, !tbaa !5
  %7472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7473 = load i32, ptr @test_count, align 4, !tbaa !5
  %7474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7475 = load i32, ptr %7474, align 4, !tbaa !5
  %7476 = call ptr @s2n_strerror(i32 noundef %7475, ptr noundef @.str.4)
  %7477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7478 = load i32, ptr %7477, align 4, !tbaa !5
  %7479 = call ptr @s2n_strerror_debug(i32 noundef %7478, ptr noundef @.str.4)
  %7480 = call ptr @__errno_location() #12
  %7481 = load i32, ptr %7480, align 4, !tbaa !5
  %7482 = call ptr @strerror(i32 noundef %7481) #11
  %7483 = call ptr @__errno_location() #12
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7472, ptr noundef @.str.2, i32 noundef %7473, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 301, ptr noundef %7476, ptr noundef %7479, ptr noundef %7482, i32 noundef %7484) #11
  br label %7503

7486:                                             ; preds = %7464, %7457
  %7487 = load i32, ptr %178, align 4, !tbaa !5
  %7488 = call ptr @__errno_location() #12
  store i32 %7487, ptr %7488, align 4, !tbaa !5
  %7489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7490 = load i32, ptr @test_count, align 4, !tbaa !5
  %7491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7492 = load i32, ptr %7491, align 4, !tbaa !5
  %7493 = call ptr @s2n_strerror(i32 noundef %7492, ptr noundef @.str.4)
  %7494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7495 = load i32, ptr %7494, align 4, !tbaa !5
  %7496 = call ptr @s2n_strerror_debug(i32 noundef %7495, ptr noundef @.str.4)
  %7497 = call ptr @__errno_location() #12
  %7498 = load i32, ptr %7497, align 4, !tbaa !5
  %7499 = call ptr @strerror(i32 noundef %7498) #11
  %7500 = call ptr @__errno_location() #12
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7489, ptr noundef @.str.5, i32 noundef %7490, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 301, ptr noundef %7493, ptr noundef %7496, ptr noundef %7499, i32 noundef %7501) #11
  br label %7503

7503:                                             ; preds = %7486, %7469
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %7504

7504:                                             ; preds = %7503
  br label %7505

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

7506:                                             ; No predecessors!
  br label %7507

7507:                                             ; preds = %7506
  br label %7508

7508:                                             ; preds = %7507, %7450
  br label %7509

7509:                                             ; preds = %7508
  br label %7510

7510:                                             ; preds = %7509
  br label %7511

7511:                                             ; preds = %7510
  %7512 = load i32, ptr @test_count, align 4, !tbaa !5
  %7513 = add nsw i32 %7512, 1
  store i32 %7513, ptr @test_count, align 4, !tbaa !5
  %7514 = load ptr, ptr %170, align 8, !tbaa !9
  %7515 = load ptr, ptr %168, align 8, !tbaa !9
  %7516 = call i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef %7514, ptr noundef %7515)
  %7517 = icmp eq i32 %7516, -1
  br i1 %7517, label %7518, label %7571

7518:                                             ; preds = %7511
  br label %7519

7519:                                             ; preds = %7518
  br label %7520

7520:                                             ; preds = %7519
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7521 = call ptr @__errno_location() #12
  %7522 = load i32, ptr %7521, align 4, !tbaa !5
  store i32 %7522, ptr %179, align 4, !tbaa !5
  %7523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7524 = call i32 @s2n_print_stacktrace(ptr noundef %7523)
  %7525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7526 = trunc i8 %7525 to i1
  br i1 %7526, label %7527, label %7549

7527:                                             ; preds = %7520
  %7528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7529 = call i32 @fileno(ptr noundef %7528) #11
  %7530 = call i32 @isatty(i32 noundef %7529) #11
  %7531 = icmp ne i32 %7530, 0
  br i1 %7531, label %7532, label %7549

7532:                                             ; preds = %7527
  %7533 = load i32, ptr %179, align 4, !tbaa !5
  %7534 = call ptr @__errno_location() #12
  store i32 %7533, ptr %7534, align 4, !tbaa !5
  %7535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7536 = load i32, ptr @test_count, align 4, !tbaa !5
  %7537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7538 = load i32, ptr %7537, align 4, !tbaa !5
  %7539 = call ptr @s2n_strerror(i32 noundef %7538, ptr noundef @.str.4)
  %7540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7541 = load i32, ptr %7540, align 4, !tbaa !5
  %7542 = call ptr @s2n_strerror_debug(i32 noundef %7541, ptr noundef @.str.4)
  %7543 = call ptr @__errno_location() #12
  %7544 = load i32, ptr %7543, align 4, !tbaa !5
  %7545 = call ptr @strerror(i32 noundef %7544) #11
  %7546 = call ptr @__errno_location() #12
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  %7548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7535, ptr noundef @.str.2, i32 noundef %7536, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 303, ptr noundef %7539, ptr noundef %7542, ptr noundef %7545, i32 noundef %7547) #11
  br label %7566

7549:                                             ; preds = %7527, %7520
  %7550 = load i32, ptr %179, align 4, !tbaa !5
  %7551 = call ptr @__errno_location() #12
  store i32 %7550, ptr %7551, align 4, !tbaa !5
  %7552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7553 = load i32, ptr @test_count, align 4, !tbaa !5
  %7554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7555 = load i32, ptr %7554, align 4, !tbaa !5
  %7556 = call ptr @s2n_strerror(i32 noundef %7555, ptr noundef @.str.4)
  %7557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7558 = load i32, ptr %7557, align 4, !tbaa !5
  %7559 = call ptr @s2n_strerror_debug(i32 noundef %7558, ptr noundef @.str.4)
  %7560 = call ptr @__errno_location() #12
  %7561 = load i32, ptr %7560, align 4, !tbaa !5
  %7562 = call ptr @strerror(i32 noundef %7561) #11
  %7563 = call ptr @__errno_location() #12
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7552, ptr noundef @.str.5, i32 noundef %7553, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 303, ptr noundef %7556, ptr noundef %7559, ptr noundef %7562, i32 noundef %7564) #11
  br label %7566

7566:                                             ; preds = %7549, %7532
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %7567

7567:                                             ; preds = %7566
  br label %7568

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

7569:                                             ; No predecessors!
  br label %7570

7570:                                             ; preds = %7569
  br label %7571

7571:                                             ; preds = %7570, %7511
  br label %7572

7572:                                             ; preds = %7571
  br label %7573

7573:                                             ; preds = %7572
  br label %7574

7574:                                             ; preds = %7573
  %7575 = load i32, ptr @test_count, align 4, !tbaa !5
  %7576 = add nsw i32 %7575, 1
  store i32 %7576, ptr @test_count, align 4, !tbaa !5
  %7577 = load ptr, ptr %170, align 8, !tbaa !9
  %7578 = load ptr, ptr %169, align 8, !tbaa !9
  %7579 = call i32 @s2n_cert_chain_and_key_set_private_key(ptr noundef %7577, ptr noundef %7578)
  %7580 = icmp eq i32 %7579, -1
  br i1 %7580, label %7581, label %7634

7581:                                             ; preds = %7574
  br label %7582

7582:                                             ; preds = %7581
  br label %7583

7583:                                             ; preds = %7582
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %7584 = call ptr @__errno_location() #12
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  store i32 %7585, ptr %180, align 4, !tbaa !5
  %7586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7587 = call i32 @s2n_print_stacktrace(ptr noundef %7586)
  %7588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7589 = trunc i8 %7588 to i1
  br i1 %7589, label %7590, label %7612

7590:                                             ; preds = %7583
  %7591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7592 = call i32 @fileno(ptr noundef %7591) #11
  %7593 = call i32 @isatty(i32 noundef %7592) #11
  %7594 = icmp ne i32 %7593, 0
  br i1 %7594, label %7595, label %7612

7595:                                             ; preds = %7590
  %7596 = load i32, ptr %180, align 4, !tbaa !5
  %7597 = call ptr @__errno_location() #12
  store i32 %7596, ptr %7597, align 4, !tbaa !5
  %7598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7599 = load i32, ptr @test_count, align 4, !tbaa !5
  %7600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7601 = load i32, ptr %7600, align 4, !tbaa !5
  %7602 = call ptr @s2n_strerror(i32 noundef %7601, ptr noundef @.str.4)
  %7603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7604 = load i32, ptr %7603, align 4, !tbaa !5
  %7605 = call ptr @s2n_strerror_debug(i32 noundef %7604, ptr noundef @.str.4)
  %7606 = call ptr @__errno_location() #12
  %7607 = load i32, ptr %7606, align 4, !tbaa !5
  %7608 = call ptr @strerror(i32 noundef %7607) #11
  %7609 = call ptr @__errno_location() #12
  %7610 = load i32, ptr %7609, align 4, !tbaa !5
  %7611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7598, ptr noundef @.str.2, i32 noundef %7599, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7602, ptr noundef %7605, ptr noundef %7608, i32 noundef %7610) #11
  br label %7629

7612:                                             ; preds = %7590, %7583
  %7613 = load i32, ptr %180, align 4, !tbaa !5
  %7614 = call ptr @__errno_location() #12
  store i32 %7613, ptr %7614, align 4, !tbaa !5
  %7615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7616 = load i32, ptr @test_count, align 4, !tbaa !5
  %7617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7618 = load i32, ptr %7617, align 4, !tbaa !5
  %7619 = call ptr @s2n_strerror(i32 noundef %7618, ptr noundef @.str.4)
  %7620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7621 = load i32, ptr %7620, align 4, !tbaa !5
  %7622 = call ptr @s2n_strerror_debug(i32 noundef %7621, ptr noundef @.str.4)
  %7623 = call ptr @__errno_location() #12
  %7624 = load i32, ptr %7623, align 4, !tbaa !5
  %7625 = call ptr @strerror(i32 noundef %7624) #11
  %7626 = call ptr @__errno_location() #12
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7615, ptr noundef @.str.5, i32 noundef %7616, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7619, ptr noundef %7622, ptr noundef %7625, i32 noundef %7627) #11
  br label %7629

7629:                                             ; preds = %7612, %7595
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %7630

7630:                                             ; preds = %7629
  br label %7631

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

7632:                                             ; No predecessors!
  br label %7633

7633:                                             ; preds = %7632
  br label %7634

7634:                                             ; preds = %7633, %7574
  br label %7635

7635:                                             ; preds = %7634
  br label %7636

7636:                                             ; preds = %7635
  br label %7637

7637:                                             ; preds = %7636
  %7638 = load i32, ptr @test_count, align 4, !tbaa !5
  %7639 = add nsw i32 %7638, 1
  store i32 %7639, ptr @test_count, align 4, !tbaa !5
  %7640 = load ptr, ptr %170, align 8, !tbaa !9
  %7641 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %7640, i32 0, i32 0
  %7642 = load ptr, ptr %7641, align 8, !tbaa !15
  %7643 = getelementptr inbounds %struct.s2n_cert_chain, ptr %7642, i32 0, i32 1
  %7644 = load ptr, ptr %7643, align 8, !tbaa !18
  %7645 = getelementptr inbounds %struct.s2n_cert, ptr %7644, i32 0, i32 3
  %7646 = call i32 @s2n_asn1der_to_public_key_and_type(ptr noundef %171, ptr noundef %172, ptr noundef %7645)
  %7647 = getelementptr inbounds %struct.s2n_result, ptr %181, i32 0, i32 0
  store i32 %7646, ptr %7647, align 4
  %7648 = getelementptr inbounds %struct.s2n_result, ptr %181, i32 0, i32 0
  %7649 = load i32, ptr %7648, align 4
  %7650 = call zeroext i1 @s2n_result_is_ok(i32 %7649)
  br i1 %7650, label %7704, label %7651

7651:                                             ; preds = %7637
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

7653:                                             ; preds = %7652
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %7654 = call ptr @__errno_location() #12
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  store i32 %7655, ptr %182, align 4, !tbaa !5
  %7656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7657 = call i32 @s2n_print_stacktrace(ptr noundef %7656)
  %7658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7659 = trunc i8 %7658 to i1
  br i1 %7659, label %7660, label %7682

7660:                                             ; preds = %7653
  %7661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7662 = call i32 @fileno(ptr noundef %7661) #11
  %7663 = call i32 @isatty(i32 noundef %7662) #11
  %7664 = icmp ne i32 %7663, 0
  br i1 %7664, label %7665, label %7682

7665:                                             ; preds = %7660
  %7666 = load i32, ptr %182, align 4, !tbaa !5
  %7667 = call ptr @__errno_location() #12
  store i32 %7666, ptr %7667, align 4, !tbaa !5
  %7668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @s2n_strerror(i32 noundef %7671, ptr noundef @.str.4)
  %7673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef @.str.4)
  %7676 = call ptr @__errno_location() #12
  %7677 = load i32, ptr %7676, align 4, !tbaa !5
  %7678 = call ptr @strerror(i32 noundef %7677) #11
  %7679 = call ptr @__errno_location() #12
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7668, ptr noundef @.str.2, i32 noundef %7669, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 307, ptr noundef %7672, ptr noundef %7675, ptr noundef %7678, i32 noundef %7680) #11
  br label %7699

7682:                                             ; preds = %7660, %7653
  %7683 = load i32, ptr %182, align 4, !tbaa !5
  %7684 = call ptr @__errno_location() #12
  store i32 %7683, ptr %7684, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = load i32, ptr @test_count, align 4, !tbaa !5
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @s2n_strerror(i32 noundef %7688, ptr noundef @.str.4)
  %7690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call ptr @s2n_strerror_debug(i32 noundef %7691, ptr noundef @.str.4)
  %7693 = call ptr @__errno_location() #12
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @strerror(i32 noundef %7694) #11
  %7696 = call ptr @__errno_location() #12
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7685, ptr noundef @.str.5, i32 noundef %7686, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 307, ptr noundef %7689, ptr noundef %7692, ptr noundef %7695, i32 noundef %7697) #11
  br label %7699

7699:                                             ; preds = %7682, %7665
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %7700

7700:                                             ; preds = %7699
  br label %7701

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

7702:                                             ; No predecessors!
  br label %7703

7703:                                             ; preds = %7702
  br label %7704

7704:                                             ; preds = %7703, %7637
  br label %7705

7705:                                             ; preds = %7704
  br label %7706

7706:                                             ; preds = %7705
  br label %7707

7707:                                             ; preds = %7706
  %7708 = load i32, ptr @test_count, align 4, !tbaa !5
  %7709 = add nsw i32 %7708, 1
  store i32 %7709, ptr @test_count, align 4, !tbaa !5
  %7710 = load i32, ptr %172, align 4, !tbaa !5
  %7711 = icmp eq i32 %7710, -1
  br i1 %7711, label %7712, label %7765

7712:                                             ; preds = %7707
  br label %7713

7713:                                             ; preds = %7712
  br label %7714

7714:                                             ; preds = %7713
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %7715 = call ptr @__errno_location() #12
  %7716 = load i32, ptr %7715, align 4, !tbaa !5
  store i32 %7716, ptr %183, align 4, !tbaa !5
  %7717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7718 = call i32 @s2n_print_stacktrace(ptr noundef %7717)
  %7719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7720 = trunc i8 %7719 to i1
  br i1 %7720, label %7721, label %7743

7721:                                             ; preds = %7714
  %7722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7723 = call i32 @fileno(ptr noundef %7722) #11
  %7724 = call i32 @isatty(i32 noundef %7723) #11
  %7725 = icmp ne i32 %7724, 0
  br i1 %7725, label %7726, label %7743

7726:                                             ; preds = %7721
  %7727 = load i32, ptr %183, align 4, !tbaa !5
  %7728 = call ptr @__errno_location() #12
  store i32 %7727, ptr %7728, align 4, !tbaa !5
  %7729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7730 = load i32, ptr @test_count, align 4, !tbaa !5
  %7731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7732 = load i32, ptr %7731, align 4, !tbaa !5
  %7733 = call ptr @s2n_strerror(i32 noundef %7732, ptr noundef @.str.4)
  %7734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7735 = load i32, ptr %7734, align 4, !tbaa !5
  %7736 = call ptr @s2n_strerror_debug(i32 noundef %7735, ptr noundef @.str.4)
  %7737 = call ptr @__errno_location() #12
  %7738 = load i32, ptr %7737, align 4, !tbaa !5
  %7739 = call ptr @strerror(i32 noundef %7738) #11
  %7740 = call ptr @__errno_location() #12
  %7741 = load i32, ptr %7740, align 4, !tbaa !5
  %7742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7729, ptr noundef @.str.2, i32 noundef %7730, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 308, ptr noundef %7733, ptr noundef %7736, ptr noundef %7739, i32 noundef %7741) #11
  br label %7760

7743:                                             ; preds = %7721, %7714
  %7744 = load i32, ptr %183, align 4, !tbaa !5
  %7745 = call ptr @__errno_location() #12
  store i32 %7744, ptr %7745, align 4, !tbaa !5
  %7746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7747 = load i32, ptr @test_count, align 4, !tbaa !5
  %7748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call ptr @s2n_strerror(i32 noundef %7749, ptr noundef @.str.4)
  %7751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = call ptr @s2n_strerror_debug(i32 noundef %7752, ptr noundef @.str.4)
  %7754 = call ptr @__errno_location() #12
  %7755 = load i32, ptr %7754, align 4, !tbaa !5
  %7756 = call ptr @strerror(i32 noundef %7755) #11
  %7757 = call ptr @__errno_location() #12
  %7758 = load i32, ptr %7757, align 4, !tbaa !5
  %7759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7746, ptr noundef @.str.5, i32 noundef %7747, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 308, ptr noundef %7750, ptr noundef %7753, ptr noundef %7756, i32 noundef %7758) #11
  br label %7760

7760:                                             ; preds = %7743, %7726
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %7761

7761:                                             ; preds = %7760
  br label %7762

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

7763:                                             ; No predecessors!
  br label %7764

7764:                                             ; preds = %7763
  br label %7765

7765:                                             ; preds = %7764, %7707
  br label %7766

7766:                                             ; preds = %7765
  br label %7767

7767:                                             ; preds = %7766
  br label %7768

7768:                                             ; preds = %7767
  %7769 = load i32, ptr @test_count, align 4, !tbaa !5
  %7770 = add nsw i32 %7769, 1
  store i32 %7770, ptr @test_count, align 4, !tbaa !5
  %7771 = load ptr, ptr %170, align 8, !tbaa !9
  %7772 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %7771, i32 0, i32 0
  %7773 = load ptr, ptr %7772, align 8, !tbaa !15
  %7774 = getelementptr inbounds %struct.s2n_cert_chain, ptr %7773, i32 0, i32 1
  %7775 = load ptr, ptr %7774, align 8, !tbaa !18
  %7776 = load i32, ptr %172, align 4, !tbaa !5
  %7777 = call i32 @s2n_cert_set_cert_type(ptr noundef %7775, i32 noundef %7776)
  %7778 = icmp eq i32 %7777, -1
  br i1 %7778, label %7779, label %7832

7779:                                             ; preds = %7768
  br label %7780

7780:                                             ; preds = %7779
  br label %7781

7781:                                             ; preds = %7780
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %7782 = call ptr @__errno_location() #12
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  store i32 %7783, ptr %184, align 4, !tbaa !5
  %7784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7785 = call i32 @s2n_print_stacktrace(ptr noundef %7784)
  %7786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7787 = trunc i8 %7786 to i1
  br i1 %7787, label %7788, label %7810

7788:                                             ; preds = %7781
  %7789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7790 = call i32 @fileno(ptr noundef %7789) #11
  %7791 = call i32 @isatty(i32 noundef %7790) #11
  %7792 = icmp ne i32 %7791, 0
  br i1 %7792, label %7793, label %7810

7793:                                             ; preds = %7788
  %7794 = load i32, ptr %184, align 4, !tbaa !5
  %7795 = call ptr @__errno_location() #12
  store i32 %7794, ptr %7795, align 4, !tbaa !5
  %7796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7797 = load i32, ptr @test_count, align 4, !tbaa !5
  %7798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7799 = load i32, ptr %7798, align 4, !tbaa !5
  %7800 = call ptr @s2n_strerror(i32 noundef %7799, ptr noundef @.str.4)
  %7801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  %7803 = call ptr @s2n_strerror_debug(i32 noundef %7802, ptr noundef @.str.4)
  %7804 = call ptr @__errno_location() #12
  %7805 = load i32, ptr %7804, align 4, !tbaa !5
  %7806 = call ptr @strerror(i32 noundef %7805) #11
  %7807 = call ptr @__errno_location() #12
  %7808 = load i32, ptr %7807, align 4, !tbaa !5
  %7809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7796, ptr noundef @.str.2, i32 noundef %7797, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 309, ptr noundef %7800, ptr noundef %7803, ptr noundef %7806, i32 noundef %7808) #11
  br label %7827

7810:                                             ; preds = %7788, %7781
  %7811 = load i32, ptr %184, align 4, !tbaa !5
  %7812 = call ptr @__errno_location() #12
  store i32 %7811, ptr %7812, align 4, !tbaa !5
  %7813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7814 = load i32, ptr @test_count, align 4, !tbaa !5
  %7815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7816 = load i32, ptr %7815, align 4, !tbaa !5
  %7817 = call ptr @s2n_strerror(i32 noundef %7816, ptr noundef @.str.4)
  %7818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7819 = load i32, ptr %7818, align 4, !tbaa !5
  %7820 = call ptr @s2n_strerror_debug(i32 noundef %7819, ptr noundef @.str.4)
  %7821 = call ptr @__errno_location() #12
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call ptr @strerror(i32 noundef %7822) #11
  %7824 = call ptr @__errno_location() #12
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7813, ptr noundef @.str.5, i32 noundef %7814, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 309, ptr noundef %7817, ptr noundef %7820, ptr noundef %7823, i32 noundef %7825) #11
  br label %7827

7827:                                             ; preds = %7810, %7793
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %7828

7828:                                             ; preds = %7827
  br label %7829

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

7830:                                             ; No predecessors!
  br label %7831

7831:                                             ; preds = %7830
  br label %7832

7832:                                             ; preds = %7831, %7768
  br label %7833

7833:                                             ; preds = %7832
  br label %7834

7834:                                             ; preds = %7833
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #11
  %7835 = load ptr, ptr %170, align 8, !tbaa !9
  %7836 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %7835, i32 0, i32 1
  %7837 = load ptr, ptr %7836, align 8, !tbaa !20
  store ptr %7837, ptr %185, align 8, !tbaa !9
  br label %7838

7838:                                             ; preds = %7834
  %7839 = load i32, ptr @test_count, align 4, !tbaa !5
  %7840 = add nsw i32 %7839, 1
  store i32 %7840, ptr @test_count, align 4, !tbaa !5
  %7841 = getelementptr inbounds %struct.s2n_pkey, ptr %171, i32 0, i32 0
  %7842 = load ptr, ptr %7841, align 8, !tbaa !21
  %7843 = icmp eq ptr %7842, null
  br i1 %7843, label %7844, label %7897

7844:                                             ; preds = %7838
  br label %7845

7845:                                             ; preds = %7844
  br label %7846

7846:                                             ; preds = %7845
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %7847 = call ptr @__errno_location() #12
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  store i32 %7848, ptr %186, align 4, !tbaa !5
  %7849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7850 = call i32 @s2n_print_stacktrace(ptr noundef %7849)
  %7851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7852 = trunc i8 %7851 to i1
  br i1 %7852, label %7853, label %7875

7853:                                             ; preds = %7846
  %7854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7855 = call i32 @fileno(ptr noundef %7854) #11
  %7856 = call i32 @isatty(i32 noundef %7855) #11
  %7857 = icmp ne i32 %7856, 0
  br i1 %7857, label %7858, label %7875

7858:                                             ; preds = %7853
  %7859 = load i32, ptr %186, align 4, !tbaa !5
  %7860 = call ptr @__errno_location() #12
  store i32 %7859, ptr %7860, align 4, !tbaa !5
  %7861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7862 = load i32, ptr @test_count, align 4, !tbaa !5
  %7863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7864 = load i32, ptr %7863, align 4, !tbaa !5
  %7865 = call ptr @s2n_strerror(i32 noundef %7864, ptr noundef @.str.4)
  %7866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7867 = load i32, ptr %7866, align 4, !tbaa !5
  %7868 = call ptr @s2n_strerror_debug(i32 noundef %7867, ptr noundef @.str.4)
  %7869 = call ptr @__errno_location() #12
  %7870 = load i32, ptr %7869, align 4, !tbaa !5
  %7871 = call ptr @strerror(i32 noundef %7870) #11
  %7872 = call ptr @__errno_location() #12
  %7873 = load i32, ptr %7872, align 4, !tbaa !5
  %7874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7861, ptr noundef @.str.2, i32 noundef %7862, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 313, ptr noundef %7865, ptr noundef %7868, ptr noundef %7871, i32 noundef %7873) #11
  br label %7892

7875:                                             ; preds = %7853, %7846
  %7876 = load i32, ptr %186, align 4, !tbaa !5
  %7877 = call ptr @__errno_location() #12
  store i32 %7876, ptr %7877, align 4, !tbaa !5
  %7878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7879 = load i32, ptr @test_count, align 4, !tbaa !5
  %7880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7881 = load i32, ptr %7880, align 4, !tbaa !5
  %7882 = call ptr @s2n_strerror(i32 noundef %7881, ptr noundef @.str.4)
  %7883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7884 = load i32, ptr %7883, align 4, !tbaa !5
  %7885 = call ptr @s2n_strerror_debug(i32 noundef %7884, ptr noundef @.str.4)
  %7886 = call ptr @__errno_location() #12
  %7887 = load i32, ptr %7886, align 4, !tbaa !5
  %7888 = call ptr @strerror(i32 noundef %7887) #11
  %7889 = call ptr @__errno_location() #12
  %7890 = load i32, ptr %7889, align 4, !tbaa !5
  %7891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7878, ptr noundef @.str.5, i32 noundef %7879, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 313, ptr noundef %7882, ptr noundef %7885, ptr noundef %7888, i32 noundef %7890) #11
  br label %7892

7892:                                             ; preds = %7875, %7858
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %7893

7893:                                             ; preds = %7892
  br label %7894

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

7895:                                             ; No predecessors!
  br label %7896

7896:                                             ; preds = %7895
  br label %7897

7897:                                             ; preds = %7896, %7838
  br label %7898

7898:                                             ; preds = %7897
  br label %7899

7899:                                             ; preds = %7898
  br label %7900

7900:                                             ; preds = %7899
  %7901 = load i32, ptr @test_count, align 4, !tbaa !5
  %7902 = add nsw i32 %7901, 1
  store i32 %7902, ptr @test_count, align 4, !tbaa !5
  %7903 = load ptr, ptr %185, align 8, !tbaa !9
  %7904 = icmp eq ptr %7903, null
  br i1 %7904, label %7905, label %7958

7905:                                             ; preds = %7900
  br label %7906

7906:                                             ; preds = %7905
  br label %7907

7907:                                             ; preds = %7906
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %7908 = call ptr @__errno_location() #12
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  store i32 %7909, ptr %187, align 4, !tbaa !5
  %7910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7911 = call i32 @s2n_print_stacktrace(ptr noundef %7910)
  %7912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7913 = trunc i8 %7912 to i1
  br i1 %7913, label %7914, label %7936

7914:                                             ; preds = %7907
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = call i32 @fileno(ptr noundef %7915) #11
  %7917 = call i32 @isatty(i32 noundef %7916) #11
  %7918 = icmp ne i32 %7917, 0
  br i1 %7918, label %7919, label %7936

7919:                                             ; preds = %7914
  %7920 = load i32, ptr %187, align 4, !tbaa !5
  %7921 = call ptr @__errno_location() #12
  store i32 %7920, ptr %7921, align 4, !tbaa !5
  %7922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7923 = load i32, ptr @test_count, align 4, !tbaa !5
  %7924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7925 = load i32, ptr %7924, align 4, !tbaa !5
  %7926 = call ptr @s2n_strerror(i32 noundef %7925, ptr noundef @.str.4)
  %7927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  %7929 = call ptr @s2n_strerror_debug(i32 noundef %7928, ptr noundef @.str.4)
  %7930 = call ptr @__errno_location() #12
  %7931 = load i32, ptr %7930, align 4, !tbaa !5
  %7932 = call ptr @strerror(i32 noundef %7931) #11
  %7933 = call ptr @__errno_location() #12
  %7934 = load i32, ptr %7933, align 4, !tbaa !5
  %7935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7922, ptr noundef @.str.2, i32 noundef %7923, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7926, ptr noundef %7929, ptr noundef %7932, i32 noundef %7934) #11
  br label %7953

7936:                                             ; preds = %7914, %7907
  %7937 = load i32, ptr %187, align 4, !tbaa !5
  %7938 = call ptr @__errno_location() #12
  store i32 %7937, ptr %7938, align 4, !tbaa !5
  %7939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7940 = load i32, ptr @test_count, align 4, !tbaa !5
  %7941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call ptr @s2n_strerror(i32 noundef %7942, ptr noundef @.str.4)
  %7944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call ptr @s2n_strerror_debug(i32 noundef %7945, ptr noundef @.str.4)
  %7947 = call ptr @__errno_location() #12
  %7948 = load i32, ptr %7947, align 4, !tbaa !5
  %7949 = call ptr @strerror(i32 noundef %7948) #11
  %7950 = call ptr @__errno_location() #12
  %7951 = load i32, ptr %7950, align 4, !tbaa !5
  %7952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7939, ptr noundef @.str.5, i32 noundef %7940, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7943, ptr noundef %7946, ptr noundef %7949, i32 noundef %7951) #11
  br label %7953

7953:                                             ; preds = %7936, %7919
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %7954

7954:                                             ; preds = %7953
  br label %7955

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

7956:                                             ; No predecessors!
  br label %7957

7957:                                             ; preds = %7956
  br label %7958

7958:                                             ; preds = %7957, %7900
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

7960:                                             ; preds = %7959
  br label %7961

7961:                                             ; preds = %7960
  %7962 = load i32, ptr @test_count, align 4, !tbaa !5
  %7963 = add nsw i32 %7962, 1
  store i32 %7963, ptr @test_count, align 4, !tbaa !5
  %7964 = load ptr, ptr %185, align 8, !tbaa !9
  %7965 = getelementptr inbounds %struct.s2n_pkey, ptr %7964, i32 0, i32 0
  %7966 = load ptr, ptr %7965, align 8, !tbaa !21
  %7967 = icmp eq ptr %7966, null
  br i1 %7967, label %7968, label %8021

7968:                                             ; preds = %7961
  br label %7969

7969:                                             ; preds = %7968
  br label %7970

7970:                                             ; preds = %7969
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %7971 = call ptr @__errno_location() #12
  %7972 = load i32, ptr %7971, align 4, !tbaa !5
  store i32 %7972, ptr %188, align 4, !tbaa !5
  %7973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7974 = call i32 @s2n_print_stacktrace(ptr noundef %7973)
  %7975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7976 = trunc i8 %7975 to i1
  br i1 %7976, label %7977, label %7999

7977:                                             ; preds = %7970
  %7978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7979 = call i32 @fileno(ptr noundef %7978) #11
  %7980 = call i32 @isatty(i32 noundef %7979) #11
  %7981 = icmp ne i32 %7980, 0
  br i1 %7981, label %7982, label %7999

7982:                                             ; preds = %7977
  %7983 = load i32, ptr %188, align 4, !tbaa !5
  %7984 = call ptr @__errno_location() #12
  store i32 %7983, ptr %7984, align 4, !tbaa !5
  %7985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7986 = load i32, ptr @test_count, align 4, !tbaa !5
  %7987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7988 = load i32, ptr %7987, align 4, !tbaa !5
  %7989 = call ptr @s2n_strerror(i32 noundef %7988, ptr noundef @.str.4)
  %7990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7991 = load i32, ptr %7990, align 4, !tbaa !5
  %7992 = call ptr @s2n_strerror_debug(i32 noundef %7991, ptr noundef @.str.4)
  %7993 = call ptr @__errno_location() #12
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  %7995 = call ptr @strerror(i32 noundef %7994) #11
  %7996 = call ptr @__errno_location() #12
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  %7998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7985, ptr noundef @.str.2, i32 noundef %7986, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7989, ptr noundef %7992, ptr noundef %7995, i32 noundef %7997) #11
  br label %8016

7999:                                             ; preds = %7977, %7970
  %8000 = load i32, ptr %188, align 4, !tbaa !5
  %8001 = call ptr @__errno_location() #12
  store i32 %8000, ptr %8001, align 4, !tbaa !5
  %8002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8003 = load i32, ptr @test_count, align 4, !tbaa !5
  %8004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8005 = load i32, ptr %8004, align 4, !tbaa !5
  %8006 = call ptr @s2n_strerror(i32 noundef %8005, ptr noundef @.str.4)
  %8007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8008 = load i32, ptr %8007, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror_debug(i32 noundef %8008, ptr noundef @.str.4)
  %8010 = call ptr @__errno_location() #12
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @strerror(i32 noundef %8011) #11
  %8013 = call ptr @__errno_location() #12
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8002, ptr noundef @.str.5, i32 noundef %8003, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 315, ptr noundef %8006, ptr noundef %8009, ptr noundef %8012, i32 noundef %8014) #11
  br label %8016

8016:                                             ; preds = %7999, %7982
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %8017

8017:                                             ; preds = %8016
  br label %8018

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

8019:                                             ; No predecessors!
  br label %8020

8020:                                             ; preds = %8019
  br label %8021

8021:                                             ; preds = %8020, %7961
  br label %8022

8022:                                             ; preds = %8021
  br label %8023

8023:                                             ; preds = %8022
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #11
  store i64 32, ptr %189, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #11
  call void @llvm.memset.p0.i64(ptr align 16 %190, i8 0, i64 32, i1 false)
  br label %8024

8024:                                             ; preds = %8023
  %8025 = load i64, ptr %189, align 8, !tbaa !23
  %8026 = icmp ule i64 %8025, 32
  br i1 %8026, label %8060, label %8027

8027:                                             ; preds = %8024
  br label %8028

8028:                                             ; preds = %8027
  br label %8029

8029:                                             ; preds = %8028
  %8030 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8031 = getelementptr inbounds %struct.s2n_debug_info, ptr %8030, i32 0, i32 0
  store ptr @.str.94, ptr %8031, align 8, !tbaa !25
  %8032 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8033 = getelementptr inbounds %struct.s2n_debug_info, ptr %8032, i32 0, i32 0
  %8034 = load ptr, ptr %8033, align 8, !tbaa !25
  %8035 = getelementptr inbounds i8, ptr %8034, i64 21
  %8036 = call ptr @strrchr(ptr noundef %8035, i32 noundef 47) #15
  %8037 = icmp ne ptr %8036, null
  br i1 %8037, label %8038, label %8045

8038:                                             ; preds = %8029
  %8039 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8040 = getelementptr inbounds %struct.s2n_debug_info, ptr %8039, i32 0, i32 0
  %8041 = load ptr, ptr %8040, align 8, !tbaa !25
  %8042 = getelementptr inbounds i8, ptr %8041, i64 21
  %8043 = call ptr @strrchr(ptr noundef %8042, i32 noundef 47) #15
  %8044 = getelementptr inbounds i8, ptr %8043, i64 1
  br label %8050

8045:                                             ; preds = %8029
  %8046 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8047 = getelementptr inbounds %struct.s2n_debug_info, ptr %8046, i32 0, i32 0
  %8048 = load ptr, ptr %8047, align 8, !tbaa !25
  %8049 = getelementptr inbounds i8, ptr %8048, i64 21
  br label %8050

8050:                                             ; preds = %8045, %8038
  %8051 = phi ptr [ %8044, %8038 ], [ %8049, %8045 ]
  %8052 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8053 = getelementptr inbounds %struct.s2n_debug_info, ptr %8052, i32 0, i32 1
  store ptr %8051, ptr %8053, align 8, !tbaa !27
  %8054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %8054, align 4, !tbaa !5
  %8055 = call i32 @s2n_calculate_stacktrace()
  br label %8056

8056:                                             ; preds = %8050
  br label %8057

8057:                                             ; preds = %8056
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %8882

8058:                                             ; No predecessors!
  br label %8059

8059:                                             ; preds = %8058
  br label %8060

8060:                                             ; preds = %8059, %8024
  br label %8061

8061:                                             ; preds = %8060
  br label %8062

8062:                                             ; preds = %8061
  call void @llvm.lifetime.start.p0(i64 24, ptr %191) #11
  call void @llvm.memset.p0.i64(ptr align 8 %191, i8 0, i64 24, i1 false)
  br label %8063

8063:                                             ; preds = %8062
  %8064 = getelementptr inbounds [32 x i8], ptr %190, i64 0, i64 0
  %8065 = load i64, ptr %189, align 8, !tbaa !23
  %8066 = trunc i64 %8065 to i32
  %8067 = call i32 @s2n_blob_init(ptr noundef %191, ptr noundef %8064, i32 noundef %8066)
  %8068 = icmp sgt i32 %8067, -1
  br i1 %8068, label %8070, label %8069

8069:                                             ; preds = %8063
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %8881

8070:                                             ; preds = %8063
  br label %8071

8071:                                             ; preds = %8070
  br label %8072

8072:                                             ; preds = %8071
  br label %8073

8073:                                             ; preds = %8072
  %8074 = load i32, ptr @test_count, align 4, !tbaa !5
  %8075 = add nsw i32 %8074, 1
  store i32 %8075, ptr @test_count, align 4, !tbaa !5
  %8076 = call i32 @s2n_get_private_random_data(ptr noundef %191)
  %8077 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  store i32 %8076, ptr %8077, align 4
  %8078 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  %8079 = load i32, ptr %8078, align 4
  %8080 = call zeroext i1 @s2n_result_is_ok(i32 %8079)
  br i1 %8080, label %8134, label %8081

8081:                                             ; preds = %8073
  br label %8082

8082:                                             ; preds = %8081
  br label %8083

8083:                                             ; preds = %8082
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %8084 = call ptr @__errno_location() #12
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  store i32 %8085, ptr %193, align 4, !tbaa !5
  %8086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8087 = call i32 @s2n_print_stacktrace(ptr noundef %8086)
  %8088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8089 = trunc i8 %8088 to i1
  br i1 %8089, label %8090, label %8112

8090:                                             ; preds = %8083
  %8091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8092 = call i32 @fileno(ptr noundef %8091) #11
  %8093 = call i32 @isatty(i32 noundef %8092) #11
  %8094 = icmp ne i32 %8093, 0
  br i1 %8094, label %8095, label %8112

8095:                                             ; preds = %8090
  %8096 = load i32, ptr %193, align 4, !tbaa !5
  %8097 = call ptr @__errno_location() #12
  store i32 %8096, ptr %8097, align 4, !tbaa !5
  %8098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8099 = load i32, ptr @test_count, align 4, !tbaa !5
  %8100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8101 = load i32, ptr %8100, align 4, !tbaa !5
  %8102 = call ptr @s2n_strerror(i32 noundef %8101, ptr noundef @.str.4)
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call ptr @s2n_strerror_debug(i32 noundef %8104, ptr noundef @.str.4)
  %8106 = call ptr @__errno_location() #12
  %8107 = load i32, ptr %8106, align 4, !tbaa !5
  %8108 = call ptr @strerror(i32 noundef %8107) #11
  %8109 = call ptr @__errno_location() #12
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8098, ptr noundef @.str.2, i32 noundef %8099, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8102, ptr noundef %8105, ptr noundef %8108, i32 noundef %8110) #11
  br label %8129

8112:                                             ; preds = %8090, %8083
  %8113 = load i32, ptr %193, align 4, !tbaa !5
  %8114 = call ptr @__errno_location() #12
  store i32 %8113, ptr %8114, align 4, !tbaa !5
  %8115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8116 = load i32, ptr @test_count, align 4, !tbaa !5
  %8117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8118 = load i32, ptr %8117, align 4, !tbaa !5
  %8119 = call ptr @s2n_strerror(i32 noundef %8118, ptr noundef @.str.4)
  %8120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8121 = load i32, ptr %8120, align 4, !tbaa !5
  %8122 = call ptr @s2n_strerror_debug(i32 noundef %8121, ptr noundef @.str.4)
  %8123 = call ptr @__errno_location() #12
  %8124 = load i32, ptr %8123, align 4, !tbaa !5
  %8125 = call ptr @strerror(i32 noundef %8124) #11
  %8126 = call ptr @__errno_location() #12
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  %8128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8115, ptr noundef @.str.5, i32 noundef %8116, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8119, ptr noundef %8122, ptr noundef %8125, i32 noundef %8127) #11
  br label %8129

8129:                                             ; preds = %8112, %8095
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %8130

8130:                                             ; preds = %8129
  br label %8131

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

8132:                                             ; No predecessors!
  br label %8133

8133:                                             ; preds = %8132
  br label %8134

8134:                                             ; preds = %8133, %8073
  br label %8135

8135:                                             ; preds = %8134
  br label %8136

8136:                                             ; preds = %8135
  call void @llvm.lifetime.start.p0(i64 56, ptr %194) #11
  call void @llvm.memset.p0.i64(ptr align 8 %194, i8 0, i64 56, i1 false)
  br label %8137

8137:                                             ; preds = %8136
  %8138 = load i32, ptr @test_count, align 4, !tbaa !5
  %8139 = add nsw i32 %8138, 1
  store i32 %8139, ptr @test_count, align 4, !tbaa !5
  %8140 = call i32 @s2n_hash_new(ptr noundef %194)
  %8141 = icmp eq i32 %8140, -1
  br i1 %8141, label %8142, label %8195

8142:                                             ; preds = %8137
  br label %8143

8143:                                             ; preds = %8142
  br label %8144

8144:                                             ; preds = %8143
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8145 = call ptr @__errno_location() #12
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  store i32 %8146, ptr %195, align 4, !tbaa !5
  %8147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8148 = call i32 @s2n_print_stacktrace(ptr noundef %8147)
  %8149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8150 = trunc i8 %8149 to i1
  br i1 %8150, label %8151, label %8173

8151:                                             ; preds = %8144
  %8152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8153 = call i32 @fileno(ptr noundef %8152) #11
  %8154 = call i32 @isatty(i32 noundef %8153) #11
  %8155 = icmp ne i32 %8154, 0
  br i1 %8155, label %8156, label %8173

8156:                                             ; preds = %8151
  %8157 = load i32, ptr %195, align 4, !tbaa !5
  %8158 = call ptr @__errno_location() #12
  store i32 %8157, ptr %8158, align 4, !tbaa !5
  %8159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8160 = load i32, ptr @test_count, align 4, !tbaa !5
  %8161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8162 = load i32, ptr %8161, align 4, !tbaa !5
  %8163 = call ptr @s2n_strerror(i32 noundef %8162, ptr noundef @.str.4)
  %8164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8165 = load i32, ptr %8164, align 4, !tbaa !5
  %8166 = call ptr @s2n_strerror_debug(i32 noundef %8165, ptr noundef @.str.4)
  %8167 = call ptr @__errno_location() #12
  %8168 = load i32, ptr %8167, align 4, !tbaa !5
  %8169 = call ptr @strerror(i32 noundef %8168) #11
  %8170 = call ptr @__errno_location() #12
  %8171 = load i32, ptr %8170, align 4, !tbaa !5
  %8172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8159, ptr noundef @.str.2, i32 noundef %8160, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8163, ptr noundef %8166, ptr noundef %8169, i32 noundef %8171) #11
  br label %8190

8173:                                             ; preds = %8151, %8144
  %8174 = load i32, ptr %195, align 4, !tbaa !5
  %8175 = call ptr @__errno_location() #12
  store i32 %8174, ptr %8175, align 4, !tbaa !5
  %8176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8177 = load i32, ptr @test_count, align 4, !tbaa !5
  %8178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8179 = load i32, ptr %8178, align 4, !tbaa !5
  %8180 = call ptr @s2n_strerror(i32 noundef %8179, ptr noundef @.str.4)
  %8181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8182 = load i32, ptr %8181, align 4, !tbaa !5
  %8183 = call ptr @s2n_strerror_debug(i32 noundef %8182, ptr noundef @.str.4)
  %8184 = call ptr @__errno_location() #12
  %8185 = load i32, ptr %8184, align 4, !tbaa !5
  %8186 = call ptr @strerror(i32 noundef %8185) #11
  %8187 = call ptr @__errno_location() #12
  %8188 = load i32, ptr %8187, align 4, !tbaa !5
  %8189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8176, ptr noundef @.str.5, i32 noundef %8177, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8180, ptr noundef %8183, ptr noundef %8186, i32 noundef %8188) #11
  br label %8190

8190:                                             ; preds = %8173, %8156
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %8191

8191:                                             ; preds = %8190
  br label %8192

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

8193:                                             ; No predecessors!
  br label %8194

8194:                                             ; preds = %8193
  br label %8195

8195:                                             ; preds = %8194, %8137
  br label %8196

8196:                                             ; preds = %8195
  br label %8197

8197:                                             ; preds = %8196
  br label %8198

8198:                                             ; preds = %8197
  %8199 = load i32, ptr @test_count, align 4, !tbaa !5
  %8200 = add nsw i32 %8199, 1
  store i32 %8200, ptr @test_count, align 4, !tbaa !5
  %8201 = call i32 @s2n_hash_init(ptr noundef %194, i32 noundef 4)
  %8202 = icmp eq i32 %8201, -1
  br i1 %8202, label %8203, label %8256

8203:                                             ; preds = %8198
  br label %8204

8204:                                             ; preds = %8203
  br label %8205

8205:                                             ; preds = %8204
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %8206 = call ptr @__errno_location() #12
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  store i32 %8207, ptr %196, align 4, !tbaa !5
  %8208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8209 = call i32 @s2n_print_stacktrace(ptr noundef %8208)
  %8210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8211 = trunc i8 %8210 to i1
  br i1 %8211, label %8212, label %8234

8212:                                             ; preds = %8205
  %8213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8214 = call i32 @fileno(ptr noundef %8213) #11
  %8215 = call i32 @isatty(i32 noundef %8214) #11
  %8216 = icmp ne i32 %8215, 0
  br i1 %8216, label %8217, label %8234

8217:                                             ; preds = %8212
  %8218 = load i32, ptr %196, align 4, !tbaa !5
  %8219 = call ptr @__errno_location() #12
  store i32 %8218, ptr %8219, align 4, !tbaa !5
  %8220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8221 = load i32, ptr @test_count, align 4, !tbaa !5
  %8222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8223 = load i32, ptr %8222, align 4, !tbaa !5
  %8224 = call ptr @s2n_strerror(i32 noundef %8223, ptr noundef @.str.4)
  %8225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8226 = load i32, ptr %8225, align 4, !tbaa !5
  %8227 = call ptr @s2n_strerror_debug(i32 noundef %8226, ptr noundef @.str.4)
  %8228 = call ptr @__errno_location() #12
  %8229 = load i32, ptr %8228, align 4, !tbaa !5
  %8230 = call ptr @strerror(i32 noundef %8229) #11
  %8231 = call ptr @__errno_location() #12
  %8232 = load i32, ptr %8231, align 4, !tbaa !5
  %8233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8220, ptr noundef @.str.2, i32 noundef %8221, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8224, ptr noundef %8227, ptr noundef %8230, i32 noundef %8232) #11
  br label %8251

8234:                                             ; preds = %8212, %8205
  %8235 = load i32, ptr %196, align 4, !tbaa !5
  %8236 = call ptr @__errno_location() #12
  store i32 %8235, ptr %8236, align 4, !tbaa !5
  %8237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8238 = load i32, ptr @test_count, align 4, !tbaa !5
  %8239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8240 = load i32, ptr %8239, align 4, !tbaa !5
  %8241 = call ptr @s2n_strerror(i32 noundef %8240, ptr noundef @.str.4)
  %8242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8243 = load i32, ptr %8242, align 4, !tbaa !5
  %8244 = call ptr @s2n_strerror_debug(i32 noundef %8243, ptr noundef @.str.4)
  %8245 = call ptr @__errno_location() #12
  %8246 = load i32, ptr %8245, align 4, !tbaa !5
  %8247 = call ptr @strerror(i32 noundef %8246) #11
  %8248 = call ptr @__errno_location() #12
  %8249 = load i32, ptr %8248, align 4, !tbaa !5
  %8250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8237, ptr noundef @.str.5, i32 noundef %8238, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8241, ptr noundef %8244, ptr noundef %8247, i32 noundef %8249) #11
  br label %8251

8251:                                             ; preds = %8234, %8217
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %8252

8252:                                             ; preds = %8251
  br label %8253

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

8254:                                             ; No predecessors!
  br label %8255

8255:                                             ; preds = %8254
  br label %8256

8256:                                             ; preds = %8255, %8198
  br label %8257

8257:                                             ; preds = %8256
  br label %8258

8258:                                             ; preds = %8257
  br label %8259

8259:                                             ; preds = %8258
  %8260 = load i32, ptr @test_count, align 4, !tbaa !5
  %8261 = add nsw i32 %8260, 1
  store i32 %8261, ptr @test_count, align 4, !tbaa !5
  %8262 = getelementptr inbounds %struct.s2n_blob, ptr %191, i32 0, i32 0
  %8263 = load ptr, ptr %8262, align 8, !tbaa !28
  %8264 = getelementptr inbounds %struct.s2n_blob, ptr %191, i32 0, i32 1
  %8265 = load i32, ptr %8264, align 8, !tbaa !29
  %8266 = call i32 @s2n_hash_update(ptr noundef %194, ptr noundef %8263, i32 noundef %8265)
  %8267 = icmp eq i32 %8266, -1
  br i1 %8267, label %8268, label %8321

8268:                                             ; preds = %8259
  br label %8269

8269:                                             ; preds = %8268
  br label %8270

8270:                                             ; preds = %8269
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %8271 = call ptr @__errno_location() #12
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  store i32 %8272, ptr %197, align 4, !tbaa !5
  %8273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8274 = call i32 @s2n_print_stacktrace(ptr noundef %8273)
  %8275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8276 = trunc i8 %8275 to i1
  br i1 %8276, label %8277, label %8299

8277:                                             ; preds = %8270
  %8278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8279 = call i32 @fileno(ptr noundef %8278) #11
  %8280 = call i32 @isatty(i32 noundef %8279) #11
  %8281 = icmp ne i32 %8280, 0
  br i1 %8281, label %8282, label %8299

8282:                                             ; preds = %8277
  %8283 = load i32, ptr %197, align 4, !tbaa !5
  %8284 = call ptr @__errno_location() #12
  store i32 %8283, ptr %8284, align 4, !tbaa !5
  %8285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8286 = load i32, ptr @test_count, align 4, !tbaa !5
  %8287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8288 = load i32, ptr %8287, align 4, !tbaa !5
  %8289 = call ptr @s2n_strerror(i32 noundef %8288, ptr noundef @.str.4)
  %8290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call ptr @s2n_strerror_debug(i32 noundef %8291, ptr noundef @.str.4)
  %8293 = call ptr @__errno_location() #12
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  %8295 = call ptr @strerror(i32 noundef %8294) #11
  %8296 = call ptr @__errno_location() #12
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  %8298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8285, ptr noundef @.str.2, i32 noundef %8286, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 325, ptr noundef %8289, ptr noundef %8292, ptr noundef %8295, i32 noundef %8297) #11
  br label %8316

8299:                                             ; preds = %8277, %8270
  %8300 = load i32, ptr %197, align 4, !tbaa !5
  %8301 = call ptr @__errno_location() #12
  store i32 %8300, ptr %8301, align 4, !tbaa !5
  %8302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8303 = load i32, ptr @test_count, align 4, !tbaa !5
  %8304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8305 = load i32, ptr %8304, align 4, !tbaa !5
  %8306 = call ptr @s2n_strerror(i32 noundef %8305, ptr noundef @.str.4)
  %8307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  %8309 = call ptr @s2n_strerror_debug(i32 noundef %8308, ptr noundef @.str.4)
  %8310 = call ptr @__errno_location() #12
  %8311 = load i32, ptr %8310, align 4, !tbaa !5
  %8312 = call ptr @strerror(i32 noundef %8311) #11
  %8313 = call ptr @__errno_location() #12
  %8314 = load i32, ptr %8313, align 4, !tbaa !5
  %8315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8302, ptr noundef @.str.5, i32 noundef %8303, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 325, ptr noundef %8306, ptr noundef %8309, ptr noundef %8312, i32 noundef %8314) #11
  br label %8316

8316:                                             ; preds = %8299, %8282
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %8317

8317:                                             ; preds = %8316
  br label %8318

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

8319:                                             ; No predecessors!
  br label %8320

8320:                                             ; preds = %8319
  br label %8321

8321:                                             ; preds = %8320, %8259
  br label %8322

8322:                                             ; preds = %8321
  br label %8323

8323:                                             ; preds = %8322
  br label %8324

8324:                                             ; preds = %8323
  %8325 = load i32, ptr @test_count, align 4, !tbaa !5
  %8326 = add nsw i32 %8325, 1
  store i32 %8326, ptr @test_count, align 4, !tbaa !5
  %8327 = call i32 @s2n_flip_random_bit(ptr noundef %191)
  %8328 = icmp eq i32 %8327, -1
  br i1 %8328, label %8329, label %8382

8329:                                             ; preds = %8324
  br label %8330

8330:                                             ; preds = %8329
  br label %8331

8331:                                             ; preds = %8330
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %8332 = call ptr @__errno_location() #12
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  store i32 %8333, ptr %198, align 4, !tbaa !5
  %8334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8335 = call i32 @s2n_print_stacktrace(ptr noundef %8334)
  %8336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8337 = trunc i8 %8336 to i1
  br i1 %8337, label %8338, label %8360

8338:                                             ; preds = %8331
  %8339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8340 = call i32 @fileno(ptr noundef %8339) #11
  %8341 = call i32 @isatty(i32 noundef %8340) #11
  %8342 = icmp ne i32 %8341, 0
  br i1 %8342, label %8343, label %8360

8343:                                             ; preds = %8338
  %8344 = load i32, ptr %198, align 4, !tbaa !5
  %8345 = call ptr @__errno_location() #12
  store i32 %8344, ptr %8345, align 4, !tbaa !5
  %8346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8347 = load i32, ptr @test_count, align 4, !tbaa !5
  %8348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call ptr @s2n_strerror(i32 noundef %8349, ptr noundef @.str.4)
  %8351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8352 = load i32, ptr %8351, align 4, !tbaa !5
  %8353 = call ptr @s2n_strerror_debug(i32 noundef %8352, ptr noundef @.str.4)
  %8354 = call ptr @__errno_location() #12
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @strerror(i32 noundef %8355) #11
  %8357 = call ptr @__errno_location() #12
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8346, ptr noundef @.str.2, i32 noundef %8347, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 328, ptr noundef %8350, ptr noundef %8353, ptr noundef %8356, i32 noundef %8358) #11
  br label %8377

8360:                                             ; preds = %8338, %8331
  %8361 = load i32, ptr %198, align 4, !tbaa !5
  %8362 = call ptr @__errno_location() #12
  store i32 %8361, ptr %8362, align 4, !tbaa !5
  %8363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8364 = load i32, ptr @test_count, align 4, !tbaa !5
  %8365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8366 = load i32, ptr %8365, align 4, !tbaa !5
  %8367 = call ptr @s2n_strerror(i32 noundef %8366, ptr noundef @.str.4)
  %8368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8369 = load i32, ptr %8368, align 4, !tbaa !5
  %8370 = call ptr @s2n_strerror_debug(i32 noundef %8369, ptr noundef @.str.4)
  %8371 = call ptr @__errno_location() #12
  %8372 = load i32, ptr %8371, align 4, !tbaa !5
  %8373 = call ptr @strerror(i32 noundef %8372) #11
  %8374 = call ptr @__errno_location() #12
  %8375 = load i32, ptr %8374, align 4, !tbaa !5
  %8376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8363, ptr noundef @.str.5, i32 noundef %8364, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 328, ptr noundef %8367, ptr noundef %8370, ptr noundef %8373, i32 noundef %8375) #11
  br label %8377

8377:                                             ; preds = %8360, %8343
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %8378

8378:                                             ; preds = %8377
  br label %8379

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

8380:                                             ; No predecessors!
  br label %8381

8381:                                             ; preds = %8380
  br label %8382

8382:                                             ; preds = %8381, %8324
  br label %8383

8383:                                             ; preds = %8382
  br label %8384

8384:                                             ; preds = %8383
  call void @llvm.lifetime.start.p0(i64 56, ptr %199) #11
  call void @llvm.memset.p0.i64(ptr align 8 %199, i8 0, i64 56, i1 false)
  br label %8385

8385:                                             ; preds = %8384
  %8386 = load i32, ptr @test_count, align 4, !tbaa !5
  %8387 = add nsw i32 %8386, 1
  store i32 %8387, ptr @test_count, align 4, !tbaa !5
  %8388 = call i32 @s2n_hash_new(ptr noundef %199)
  %8389 = icmp eq i32 %8388, -1
  br i1 %8389, label %8390, label %8443

8390:                                             ; preds = %8385
  br label %8391

8391:                                             ; preds = %8390
  br label %8392

8392:                                             ; preds = %8391
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %8393 = call ptr @__errno_location() #12
  %8394 = load i32, ptr %8393, align 4, !tbaa !5
  store i32 %8394, ptr %200, align 4, !tbaa !5
  %8395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8396 = call i32 @s2n_print_stacktrace(ptr noundef %8395)
  %8397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8398 = trunc i8 %8397 to i1
  br i1 %8398, label %8399, label %8421

8399:                                             ; preds = %8392
  %8400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8401 = call i32 @fileno(ptr noundef %8400) #11
  %8402 = call i32 @isatty(i32 noundef %8401) #11
  %8403 = icmp ne i32 %8402, 0
  br i1 %8403, label %8404, label %8421

8404:                                             ; preds = %8399
  %8405 = load i32, ptr %200, align 4, !tbaa !5
  %8406 = call ptr @__errno_location() #12
  store i32 %8405, ptr %8406, align 4, !tbaa !5
  %8407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8408 = load i32, ptr @test_count, align 4, !tbaa !5
  %8409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8410 = load i32, ptr %8409, align 4, !tbaa !5
  %8411 = call ptr @s2n_strerror(i32 noundef %8410, ptr noundef @.str.4)
  %8412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8413 = load i32, ptr %8412, align 4, !tbaa !5
  %8414 = call ptr @s2n_strerror_debug(i32 noundef %8413, ptr noundef @.str.4)
  %8415 = call ptr @__errno_location() #12
  %8416 = load i32, ptr %8415, align 4, !tbaa !5
  %8417 = call ptr @strerror(i32 noundef %8416) #11
  %8418 = call ptr @__errno_location() #12
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8407, ptr noundef @.str.2, i32 noundef %8408, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 331, ptr noundef %8411, ptr noundef %8414, ptr noundef %8417, i32 noundef %8419) #11
  br label %8438

8421:                                             ; preds = %8399, %8392
  %8422 = load i32, ptr %200, align 4, !tbaa !5
  %8423 = call ptr @__errno_location() #12
  store i32 %8422, ptr %8423, align 4, !tbaa !5
  %8424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8425 = load i32, ptr @test_count, align 4, !tbaa !5
  %8426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8427 = load i32, ptr %8426, align 4, !tbaa !5
  %8428 = call ptr @s2n_strerror(i32 noundef %8427, ptr noundef @.str.4)
  %8429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8430 = load i32, ptr %8429, align 4, !tbaa !5
  %8431 = call ptr @s2n_strerror_debug(i32 noundef %8430, ptr noundef @.str.4)
  %8432 = call ptr @__errno_location() #12
  %8433 = load i32, ptr %8432, align 4, !tbaa !5
  %8434 = call ptr @strerror(i32 noundef %8433) #11
  %8435 = call ptr @__errno_location() #12
  %8436 = load i32, ptr %8435, align 4, !tbaa !5
  %8437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8424, ptr noundef @.str.5, i32 noundef %8425, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 331, ptr noundef %8428, ptr noundef %8431, ptr noundef %8434, i32 noundef %8436) #11
  br label %8438

8438:                                             ; preds = %8421, %8404
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %8439

8439:                                             ; preds = %8438
  br label %8440

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

8441:                                             ; No predecessors!
  br label %8442

8442:                                             ; preds = %8441
  br label %8443

8443:                                             ; preds = %8442, %8385
  br label %8444

8444:                                             ; preds = %8443
  br label %8445

8445:                                             ; preds = %8444
  br label %8446

8446:                                             ; preds = %8445
  %8447 = load i32, ptr @test_count, align 4, !tbaa !5
  %8448 = add nsw i32 %8447, 1
  store i32 %8448, ptr @test_count, align 4, !tbaa !5
  %8449 = call i32 @s2n_hash_init(ptr noundef %199, i32 noundef 4)
  %8450 = icmp eq i32 %8449, -1
  br i1 %8450, label %8451, label %8504

8451:                                             ; preds = %8446
  br label %8452

8452:                                             ; preds = %8451
  br label %8453

8453:                                             ; preds = %8452
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %8454 = call ptr @__errno_location() #12
  %8455 = load i32, ptr %8454, align 4, !tbaa !5
  store i32 %8455, ptr %201, align 4, !tbaa !5
  %8456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8457 = call i32 @s2n_print_stacktrace(ptr noundef %8456)
  %8458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8459 = trunc i8 %8458 to i1
  br i1 %8459, label %8460, label %8482

8460:                                             ; preds = %8453
  %8461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8462 = call i32 @fileno(ptr noundef %8461) #11
  %8463 = call i32 @isatty(i32 noundef %8462) #11
  %8464 = icmp ne i32 %8463, 0
  br i1 %8464, label %8465, label %8482

8465:                                             ; preds = %8460
  %8466 = load i32, ptr %201, align 4, !tbaa !5
  %8467 = call ptr @__errno_location() #12
  store i32 %8466, ptr %8467, align 4, !tbaa !5
  %8468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8469 = load i32, ptr @test_count, align 4, !tbaa !5
  %8470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @s2n_strerror(i32 noundef %8471, ptr noundef @.str.4)
  %8473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call ptr @s2n_strerror_debug(i32 noundef %8474, ptr noundef @.str.4)
  %8476 = call ptr @__errno_location() #12
  %8477 = load i32, ptr %8476, align 4, !tbaa !5
  %8478 = call ptr @strerror(i32 noundef %8477) #11
  %8479 = call ptr @__errno_location() #12
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8468, ptr noundef @.str.2, i32 noundef %8469, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 332, ptr noundef %8472, ptr noundef %8475, ptr noundef %8478, i32 noundef %8480) #11
  br label %8499

8482:                                             ; preds = %8460, %8453
  %8483 = load i32, ptr %201, align 4, !tbaa !5
  %8484 = call ptr @__errno_location() #12
  store i32 %8483, ptr %8484, align 4, !tbaa !5
  %8485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8486 = load i32, ptr @test_count, align 4, !tbaa !5
  %8487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  %8489 = call ptr @s2n_strerror(i32 noundef %8488, ptr noundef @.str.4)
  %8490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call ptr @s2n_strerror_debug(i32 noundef %8491, ptr noundef @.str.4)
  %8493 = call ptr @__errno_location() #12
  %8494 = load i32, ptr %8493, align 4, !tbaa !5
  %8495 = call ptr @strerror(i32 noundef %8494) #11
  %8496 = call ptr @__errno_location() #12
  %8497 = load i32, ptr %8496, align 4, !tbaa !5
  %8498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8485, ptr noundef @.str.5, i32 noundef %8486, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 332, ptr noundef %8489, ptr noundef %8492, ptr noundef %8495, i32 noundef %8497) #11
  br label %8499

8499:                                             ; preds = %8482, %8465
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %8500

8500:                                             ; preds = %8499
  br label %8501

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

8502:                                             ; No predecessors!
  br label %8503

8503:                                             ; preds = %8502
  br label %8504

8504:                                             ; preds = %8503, %8446
  br label %8505

8505:                                             ; preds = %8504
  br label %8506

8506:                                             ; preds = %8505
  br label %8507

8507:                                             ; preds = %8506
  %8508 = load i32, ptr @test_count, align 4, !tbaa !5
  %8509 = add nsw i32 %8508, 1
  store i32 %8509, ptr @test_count, align 4, !tbaa !5
  %8510 = getelementptr inbounds %struct.s2n_blob, ptr %191, i32 0, i32 0
  %8511 = load ptr, ptr %8510, align 8, !tbaa !28
  %8512 = getelementptr inbounds %struct.s2n_blob, ptr %191, i32 0, i32 1
  %8513 = load i32, ptr %8512, align 8, !tbaa !29
  %8514 = call i32 @s2n_hash_update(ptr noundef %199, ptr noundef %8511, i32 noundef %8513)
  %8515 = icmp eq i32 %8514, -1
  br i1 %8515, label %8516, label %8569

8516:                                             ; preds = %8507
  br label %8517

8517:                                             ; preds = %8516
  br label %8518

8518:                                             ; preds = %8517
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %8519 = call ptr @__errno_location() #12
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  store i32 %8520, ptr %202, align 4, !tbaa !5
  %8521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8522 = call i32 @s2n_print_stacktrace(ptr noundef %8521)
  %8523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8524 = trunc i8 %8523 to i1
  br i1 %8524, label %8525, label %8547

8525:                                             ; preds = %8518
  %8526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8527 = call i32 @fileno(ptr noundef %8526) #11
  %8528 = call i32 @isatty(i32 noundef %8527) #11
  %8529 = icmp ne i32 %8528, 0
  br i1 %8529, label %8530, label %8547

8530:                                             ; preds = %8525
  %8531 = load i32, ptr %202, align 4, !tbaa !5
  %8532 = call ptr @__errno_location() #12
  store i32 %8531, ptr %8532, align 4, !tbaa !5
  %8533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8534 = load i32, ptr @test_count, align 4, !tbaa !5
  %8535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8536 = load i32, ptr %8535, align 4, !tbaa !5
  %8537 = call ptr @s2n_strerror(i32 noundef %8536, ptr noundef @.str.4)
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror_debug(i32 noundef %8539, ptr noundef @.str.4)
  %8541 = call ptr @__errno_location() #12
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @strerror(i32 noundef %8542) #11
  %8544 = call ptr @__errno_location() #12
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8533, ptr noundef @.str.2, i32 noundef %8534, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 333, ptr noundef %8537, ptr noundef %8540, ptr noundef %8543, i32 noundef %8545) #11
  br label %8564

8547:                                             ; preds = %8525, %8518
  %8548 = load i32, ptr %202, align 4, !tbaa !5
  %8549 = call ptr @__errno_location() #12
  store i32 %8548, ptr %8549, align 4, !tbaa !5
  %8550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8551 = load i32, ptr @test_count, align 4, !tbaa !5
  %8552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8553 = load i32, ptr %8552, align 4, !tbaa !5
  %8554 = call ptr @s2n_strerror(i32 noundef %8553, ptr noundef @.str.4)
  %8555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = call ptr @s2n_strerror_debug(i32 noundef %8556, ptr noundef @.str.4)
  %8558 = call ptr @__errno_location() #12
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @strerror(i32 noundef %8559) #11
  %8561 = call ptr @__errno_location() #12
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8550, ptr noundef @.str.5, i32 noundef %8551, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 333, ptr noundef %8554, ptr noundef %8557, ptr noundef %8560, i32 noundef %8562) #11
  br label %8564

8564:                                             ; preds = %8547, %8530
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %8565

8565:                                             ; preds = %8564
  br label %8566

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

8567:                                             ; No predecessors!
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568, %8507
  br label %8570

8570:                                             ; preds = %8569
  br label %8571

8571:                                             ; preds = %8570
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #11
  store i64 256, ptr %203, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 256, ptr %204) #11
  call void @llvm.memset.p0.i64(ptr align 16 %204, i8 0, i64 256, i1 false)
  br label %8572

8572:                                             ; preds = %8571
  %8573 = load i64, ptr %203, align 8, !tbaa !23
  %8574 = icmp ule i64 %8573, 256
  br i1 %8574, label %8608, label %8575

8575:                                             ; preds = %8572
  br label %8576

8576:                                             ; preds = %8575
  br label %8577

8577:                                             ; preds = %8576
  %8578 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8579 = getelementptr inbounds %struct.s2n_debug_info, ptr %8578, i32 0, i32 0
  store ptr @.str.96, ptr %8579, align 8, !tbaa !25
  %8580 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8581 = getelementptr inbounds %struct.s2n_debug_info, ptr %8580, i32 0, i32 0
  %8582 = load ptr, ptr %8581, align 8, !tbaa !25
  %8583 = getelementptr inbounds i8, ptr %8582, i64 21
  %8584 = call ptr @strrchr(ptr noundef %8583, i32 noundef 47) #15
  %8585 = icmp ne ptr %8584, null
  br i1 %8585, label %8586, label %8593

8586:                                             ; preds = %8577
  %8587 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8588 = getelementptr inbounds %struct.s2n_debug_info, ptr %8587, i32 0, i32 0
  %8589 = load ptr, ptr %8588, align 8, !tbaa !25
  %8590 = getelementptr inbounds i8, ptr %8589, i64 21
  %8591 = call ptr @strrchr(ptr noundef %8590, i32 noundef 47) #15
  %8592 = getelementptr inbounds i8, ptr %8591, i64 1
  br label %8598

8593:                                             ; preds = %8577
  %8594 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8595 = getelementptr inbounds %struct.s2n_debug_info, ptr %8594, i32 0, i32 0
  %8596 = load ptr, ptr %8595, align 8, !tbaa !25
  %8597 = getelementptr inbounds i8, ptr %8596, i64 21
  br label %8598

8598:                                             ; preds = %8593, %8586
  %8599 = phi ptr [ %8592, %8586 ], [ %8597, %8593 ]
  %8600 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8601 = getelementptr inbounds %struct.s2n_debug_info, ptr %8600, i32 0, i32 1
  store ptr %8599, ptr %8601, align 8, !tbaa !27
  %8602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %8602, align 4, !tbaa !5
  %8603 = call i32 @s2n_calculate_stacktrace()
  br label %8604

8604:                                             ; preds = %8598
  br label %8605

8605:                                             ; preds = %8604
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %8878

8606:                                             ; No predecessors!
  br label %8607

8607:                                             ; preds = %8606
  br label %8608

8608:                                             ; preds = %8607, %8572
  br label %8609

8609:                                             ; preds = %8608
  br label %8610

8610:                                             ; preds = %8609
  call void @llvm.lifetime.start.p0(i64 24, ptr %205) #11
  call void @llvm.memset.p0.i64(ptr align 8 %205, i8 0, i64 24, i1 false)
  br label %8611

8611:                                             ; preds = %8610
  %8612 = getelementptr inbounds [256 x i8], ptr %204, i64 0, i64 0
  %8613 = load i64, ptr %203, align 8, !tbaa !23
  %8614 = trunc i64 %8613 to i32
  %8615 = call i32 @s2n_blob_init(ptr noundef %205, ptr noundef %8612, i32 noundef %8614)
  %8616 = icmp sgt i32 %8615, -1
  br i1 %8616, label %8618, label %8617

8617:                                             ; preds = %8611
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %77, align 4
  br label %8877

8618:                                             ; preds = %8611
  br label %8619

8619:                                             ; preds = %8618
  br label %8620

8620:                                             ; preds = %8619
  br label %8621

8621:                                             ; preds = %8620
  %8622 = load i32, ptr @test_count, align 4, !tbaa !5
  %8623 = add nsw i32 %8622, 1
  store i32 %8623, ptr @test_count, align 4, !tbaa !5
  %8624 = load ptr, ptr %185, align 8, !tbaa !9
  %8625 = call i32 @s2n_pkey_sign(ptr noundef %8624, i32 noundef 225, ptr noundef %194, ptr noundef %205)
  %8626 = icmp eq i32 %8625, -1
  br i1 %8626, label %8627, label %8680

8627:                                             ; preds = %8621
  br label %8628

8628:                                             ; preds = %8627
  br label %8629

8629:                                             ; preds = %8628
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %8630 = call ptr @__errno_location() #12
  %8631 = load i32, ptr %8630, align 4, !tbaa !5
  store i32 %8631, ptr %206, align 4, !tbaa !5
  %8632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8633 = call i32 @s2n_print_stacktrace(ptr noundef %8632)
  %8634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8635 = trunc i8 %8634 to i1
  br i1 %8635, label %8636, label %8658

8636:                                             ; preds = %8629
  %8637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8638 = call i32 @fileno(ptr noundef %8637) #11
  %8639 = call i32 @isatty(i32 noundef %8638) #11
  %8640 = icmp ne i32 %8639, 0
  br i1 %8640, label %8641, label %8658

8641:                                             ; preds = %8636
  %8642 = load i32, ptr %206, align 4, !tbaa !5
  %8643 = call ptr @__errno_location() #12
  store i32 %8642, ptr %8643, align 4, !tbaa !5
  %8644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8645 = load i32, ptr @test_count, align 4, !tbaa !5
  %8646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8647 = load i32, ptr %8646, align 4, !tbaa !5
  %8648 = call ptr @s2n_strerror(i32 noundef %8647, ptr noundef @.str.4)
  %8649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  %8651 = call ptr @s2n_strerror_debug(i32 noundef %8650, ptr noundef @.str.4)
  %8652 = call ptr @__errno_location() #12
  %8653 = load i32, ptr %8652, align 4, !tbaa !5
  %8654 = call ptr @strerror(i32 noundef %8653) #11
  %8655 = call ptr @__errno_location() #12
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8644, ptr noundef @.str.2, i32 noundef %8645, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 337, ptr noundef %8648, ptr noundef %8651, ptr noundef %8654, i32 noundef %8656) #11
  br label %8675

8658:                                             ; preds = %8636, %8629
  %8659 = load i32, ptr %206, align 4, !tbaa !5
  %8660 = call ptr @__errno_location() #12
  store i32 %8659, ptr %8660, align 4, !tbaa !5
  %8661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8662 = load i32, ptr @test_count, align 4, !tbaa !5
  %8663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call ptr @s2n_strerror(i32 noundef %8664, ptr noundef @.str.4)
  %8666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call ptr @s2n_strerror_debug(i32 noundef %8667, ptr noundef @.str.4)
  %8669 = call ptr @__errno_location() #12
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call ptr @strerror(i32 noundef %8670) #11
  %8672 = call ptr @__errno_location() #12
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8661, ptr noundef @.str.5, i32 noundef %8662, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 337, ptr noundef %8665, ptr noundef %8668, ptr noundef %8671, i32 noundef %8673) #11
  br label %8675

8675:                                             ; preds = %8658, %8641
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %8676

8676:                                             ; preds = %8675
  br label %8677

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

8678:                                             ; No predecessors!
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

8680:                                             ; preds = %8679, %8621
  br label %8681

8681:                                             ; preds = %8680
  br label %8682

8682:                                             ; preds = %8681
  br label %8683

8683:                                             ; preds = %8682
  br label %8684

8684:                                             ; preds = %8683
  %8685 = load i32, ptr @test_count, align 4, !tbaa !5
  %8686 = add nsw i32 %8685, 1
  store i32 %8686, ptr @test_count, align 4, !tbaa !5
  %8687 = call i32 @s2n_pkey_verify(ptr noundef %171, i32 noundef 225, ptr noundef %199, ptr noundef %205)
  %8688 = icmp eq i32 %8687, -1
  br i1 %8688, label %8742, label %8689

8689:                                             ; preds = %8684
  br label %8690

8690:                                             ; preds = %8689
  br label %8691

8691:                                             ; preds = %8690
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %8692 = call ptr @__errno_location() #12
  %8693 = load i32, ptr %8692, align 4, !tbaa !5
  store i32 %8693, ptr %207, align 4, !tbaa !5
  %8694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8695 = call i32 @s2n_print_stacktrace(ptr noundef %8694)
  %8696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8697 = trunc i8 %8696 to i1
  br i1 %8697, label %8698, label %8720

8698:                                             ; preds = %8691
  %8699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8700 = call i32 @fileno(ptr noundef %8699) #11
  %8701 = call i32 @isatty(i32 noundef %8700) #11
  %8702 = icmp ne i32 %8701, 0
  br i1 %8702, label %8703, label %8720

8703:                                             ; preds = %8698
  %8704 = load i32, ptr %207, align 4, !tbaa !5
  %8705 = call ptr @__errno_location() #12
  store i32 %8704, ptr %8705, align 4, !tbaa !5
  %8706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8707 = load i32, ptr @test_count, align 4, !tbaa !5
  %8708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8709 = load i32, ptr %8708, align 4, !tbaa !5
  %8710 = call ptr @s2n_strerror(i32 noundef %8709, ptr noundef @.str.4)
  %8711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  %8713 = call ptr @s2n_strerror_debug(i32 noundef %8712, ptr noundef @.str.4)
  %8714 = call ptr @__errno_location() #12
  %8715 = load i32, ptr %8714, align 4, !tbaa !5
  %8716 = call ptr @strerror(i32 noundef %8715) #11
  %8717 = call ptr @__errno_location() #12
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8706, ptr noundef @.str.2, i32 noundef %8707, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8710, ptr noundef %8713, ptr noundef %8716, i32 noundef %8718) #11
  br label %8737

8720:                                             ; preds = %8698, %8691
  %8721 = load i32, ptr %207, align 4, !tbaa !5
  %8722 = call ptr @__errno_location() #12
  store i32 %8721, ptr %8722, align 4, !tbaa !5
  %8723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8724 = load i32, ptr @test_count, align 4, !tbaa !5
  %8725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8726 = load i32, ptr %8725, align 4, !tbaa !5
  %8727 = call ptr @s2n_strerror(i32 noundef %8726, ptr noundef @.str.4)
  %8728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call ptr @s2n_strerror_debug(i32 noundef %8729, ptr noundef @.str.4)
  %8731 = call ptr @__errno_location() #12
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @strerror(i32 noundef %8732) #11
  %8734 = call ptr @__errno_location() #12
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8723, ptr noundef @.str.5, i32 noundef %8724, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8727, ptr noundef %8730, ptr noundef %8733, i32 noundef %8735) #11
  br label %8737

8737:                                             ; preds = %8720, %8703
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %8738

8738:                                             ; preds = %8737
  br label %8739

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

8740:                                             ; No predecessors!
  br label %8741

8741:                                             ; preds = %8740
  br label %8742

8742:                                             ; preds = %8741, %8684
  br label %8743

8743:                                             ; preds = %8742
  br label %8744

8744:                                             ; preds = %8743
  br label %8745

8745:                                             ; preds = %8744
  %8746 = load i32, ptr @test_count, align 4, !tbaa !5
  %8747 = add nsw i32 %8746, 1
  store i32 %8747, ptr @test_count, align 4, !tbaa !5
  %8748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  %8750 = icmp eq i32 %8749, 0
  br i1 %8750, label %8751, label %8804

8751:                                             ; preds = %8745
  br label %8752

8752:                                             ; preds = %8751
  br label %8753

8753:                                             ; preds = %8752
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %8754 = call ptr @__errno_location() #12
  %8755 = load i32, ptr %8754, align 4, !tbaa !5
  store i32 %8755, ptr %208, align 4, !tbaa !5
  %8756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8757 = call i32 @s2n_print_stacktrace(ptr noundef %8756)
  %8758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8759 = trunc i8 %8758 to i1
  br i1 %8759, label %8760, label %8782

8760:                                             ; preds = %8753
  %8761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8762 = call i32 @fileno(ptr noundef %8761) #11
  %8763 = call i32 @isatty(i32 noundef %8762) #11
  %8764 = icmp ne i32 %8763, 0
  br i1 %8764, label %8765, label %8782

8765:                                             ; preds = %8760
  %8766 = load i32, ptr %208, align 4, !tbaa !5
  %8767 = call ptr @__errno_location() #12
  store i32 %8766, ptr %8767, align 4, !tbaa !5
  %8768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8769 = load i32, ptr @test_count, align 4, !tbaa !5
  %8770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  %8772 = call ptr @s2n_strerror(i32 noundef %8771, ptr noundef @.str.4)
  %8773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  %8775 = call ptr @s2n_strerror_debug(i32 noundef %8774, ptr noundef @.str.4)
  %8776 = call ptr @__errno_location() #12
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  %8778 = call ptr @strerror(i32 noundef %8777) #11
  %8779 = call ptr @__errno_location() #12
  %8780 = load i32, ptr %8779, align 4, !tbaa !5
  %8781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8768, ptr noundef @.str.2, i32 noundef %8769, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8772, ptr noundef %8775, ptr noundef %8778, i32 noundef %8780) #11
  br label %8799

8782:                                             ; preds = %8760, %8753
  %8783 = load i32, ptr %208, align 4, !tbaa !5
  %8784 = call ptr @__errno_location() #12
  store i32 %8783, ptr %8784, align 4, !tbaa !5
  %8785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8786 = load i32, ptr @test_count, align 4, !tbaa !5
  %8787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8788 = load i32, ptr %8787, align 4, !tbaa !5
  %8789 = call ptr @s2n_strerror(i32 noundef %8788, ptr noundef @.str.4)
  %8790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror_debug(i32 noundef %8791, ptr noundef @.str.4)
  %8793 = call ptr @__errno_location() #12
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @strerror(i32 noundef %8794) #11
  %8796 = call ptr @__errno_location() #12
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8785, ptr noundef @.str.5, i32 noundef %8786, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8789, ptr noundef %8792, ptr noundef %8795, i32 noundef %8797) #11
  br label %8799

8799:                                             ; preds = %8782, %8765
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %8800

8800:                                             ; preds = %8799
  br label %8801

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

8802:                                             ; No predecessors!
  br label %8803

8803:                                             ; preds = %8802
  br label %8804

8804:                                             ; preds = %8803, %8745
  br label %8805

8805:                                             ; preds = %8804
  br label %8806

8806:                                             ; preds = %8805
  br label %8807

8807:                                             ; preds = %8806
  %8808 = load i32, ptr @test_count, align 4, !tbaa !5
  %8809 = add nsw i32 %8808, 1
  store i32 %8809, ptr @test_count, align 4, !tbaa !5
  %8810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8811 = load i32, ptr %8810, align 4, !tbaa !5
  %8812 = call ptr @s2n_strerror_debug(i32 noundef %8811, ptr noundef @.str.4)
  %8813 = icmp eq ptr %8812, null
  br i1 %8813, label %8814, label %8867

8814:                                             ; preds = %8807
  br label %8815

8815:                                             ; preds = %8814
  br label %8816

8816:                                             ; preds = %8815
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %8817 = call ptr @__errno_location() #12
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  store i32 %8818, ptr %209, align 4, !tbaa !5
  %8819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8820 = call i32 @s2n_print_stacktrace(ptr noundef %8819)
  %8821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8822 = trunc i8 %8821 to i1
  br i1 %8822, label %8823, label %8845

8823:                                             ; preds = %8816
  %8824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8825 = call i32 @fileno(ptr noundef %8824) #11
  %8826 = call i32 @isatty(i32 noundef %8825) #11
  %8827 = icmp ne i32 %8826, 0
  br i1 %8827, label %8828, label %8845

8828:                                             ; preds = %8823
  %8829 = load i32, ptr %209, align 4, !tbaa !5
  %8830 = call ptr @__errno_location() #12
  store i32 %8829, ptr %8830, align 4, !tbaa !5
  %8831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8832 = load i32, ptr @test_count, align 4, !tbaa !5
  %8833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  %8835 = call ptr @s2n_strerror(i32 noundef %8834, ptr noundef @.str.4)
  %8836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call ptr @s2n_strerror_debug(i32 noundef %8837, ptr noundef @.str.4)
  %8839 = call ptr @__errno_location() #12
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  %8841 = call ptr @strerror(i32 noundef %8840) #11
  %8842 = call ptr @__errno_location() #12
  %8843 = load i32, ptr %8842, align 4, !tbaa !5
  %8844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8831, ptr noundef @.str.2, i32 noundef %8832, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8835, ptr noundef %8838, ptr noundef %8841, i32 noundef %8843) #11
  br label %8862

8845:                                             ; preds = %8823, %8816
  %8846 = load i32, ptr %209, align 4, !tbaa !5
  %8847 = call ptr @__errno_location() #12
  store i32 %8846, ptr %8847, align 4, !tbaa !5
  %8848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8849 = load i32, ptr @test_count, align 4, !tbaa !5
  %8850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @s2n_strerror(i32 noundef %8851, ptr noundef @.str.4)
  %8853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @s2n_strerror_debug(i32 noundef %8854, ptr noundef @.str.4)
  %8856 = call ptr @__errno_location() #12
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call ptr @strerror(i32 noundef %8857) #11
  %8859 = call ptr @__errno_location() #12
  %8860 = load i32, ptr %8859, align 4, !tbaa !5
  %8861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8848, ptr noundef @.str.5, i32 noundef %8849, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8852, ptr noundef %8855, ptr noundef %8858, i32 noundef %8860) #11
  br label %8862

8862:                                             ; preds = %8845, %8828
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %8863

8863:                                             ; preds = %8862
  br label %8864

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

8865:                                             ; No predecessors!
  br label %8866

8866:                                             ; preds = %8865
  br label %8867

8867:                                             ; preds = %8866, %8807
  br label %8868

8868:                                             ; preds = %8867
  br label %8869

8869:                                             ; preds = %8868
  br label %8870

8870:                                             ; preds = %8869
  %8871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8871, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8872 = call ptr @__errno_location() #12
  store i32 0, ptr %8872, align 4, !tbaa !5
  br label %8873

8873:                                             ; preds = %8870
  br label %8874

8874:                                             ; preds = %8873
  br label %8875

8875:                                             ; preds = %8874
  br label %8876

8876:                                             ; preds = %8875
  store i32 0, ptr %77, align 4
  br label %8877

8877:                                             ; preds = %8876, %8617
  call void @llvm.lifetime.end.p0(i64 24, ptr %205) #11
  br label %8878

8878:                                             ; preds = %8877, %8605
  call void @llvm.lifetime.end.p0(i64 256, ptr %204) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #11
  %8879 = call i32 @s2n_hash_free(ptr noundef %199)
  call void @llvm.lifetime.end.p0(i64 56, ptr %199) #11
  %8880 = call i32 @s2n_hash_free(ptr noundef %194)
  call void @llvm.lifetime.end.p0(i64 56, ptr %194) #11
  br label %8881

8881:                                             ; preds = %8878, %8069
  call void @llvm.lifetime.end.p0(i64 24, ptr %191) #11
  br label %8882

8882:                                             ; preds = %8881, %8057
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #11
  %8883 = load i32, ptr %77, align 4
  switch i32 %8883, label %9072 [
    i32 0, label %8884
  ]

8884:                                             ; preds = %8882
  br label %8885

8885:                                             ; preds = %8884
  %8886 = load i32, ptr @test_count, align 4, !tbaa !5
  %8887 = add nsw i32 %8886, 1
  store i32 %8887, ptr @test_count, align 4, !tbaa !5
  %8888 = load ptr, ptr %170, align 8, !tbaa !9
  %8889 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %8888)
  %8890 = icmp eq i32 %8889, -1
  br i1 %8890, label %8891, label %8944

8891:                                             ; preds = %8885
  br label %8892

8892:                                             ; preds = %8891
  br label %8893

8893:                                             ; preds = %8892
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %8894 = call ptr @__errno_location() #12
  %8895 = load i32, ptr %8894, align 4, !tbaa !5
  store i32 %8895, ptr %210, align 4, !tbaa !5
  %8896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8897 = call i32 @s2n_print_stacktrace(ptr noundef %8896)
  %8898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8899 = trunc i8 %8898 to i1
  br i1 %8899, label %8900, label %8922

8900:                                             ; preds = %8893
  %8901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8902 = call i32 @fileno(ptr noundef %8901) #11
  %8903 = call i32 @isatty(i32 noundef %8902) #11
  %8904 = icmp ne i32 %8903, 0
  br i1 %8904, label %8905, label %8922

8905:                                             ; preds = %8900
  %8906 = load i32, ptr %210, align 4, !tbaa !5
  %8907 = call ptr @__errno_location() #12
  store i32 %8906, ptr %8907, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = load i32, ptr @test_count, align 4, !tbaa !5
  %8910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = call ptr @s2n_strerror(i32 noundef %8911, ptr noundef @.str.4)
  %8913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call ptr @s2n_strerror_debug(i32 noundef %8914, ptr noundef @.str.4)
  %8916 = call ptr @__errno_location() #12
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @strerror(i32 noundef %8917) #11
  %8919 = call ptr @__errno_location() #12
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8908, ptr noundef @.str.2, i32 noundef %8909, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8912, ptr noundef %8915, ptr noundef %8918, i32 noundef %8920) #11
  br label %8939

8922:                                             ; preds = %8900, %8893
  %8923 = load i32, ptr %210, align 4, !tbaa !5
  %8924 = call ptr @__errno_location() #12
  store i32 %8923, ptr %8924, align 4, !tbaa !5
  %8925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8926 = load i32, ptr @test_count, align 4, !tbaa !5
  %8927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8928 = load i32, ptr %8927, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror(i32 noundef %8928, ptr noundef @.str.4)
  %8930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8931 = load i32, ptr %8930, align 4, !tbaa !5
  %8932 = call ptr @s2n_strerror_debug(i32 noundef %8931, ptr noundef @.str.4)
  %8933 = call ptr @__errno_location() #12
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call ptr @strerror(i32 noundef %8934) #11
  %8936 = call ptr @__errno_location() #12
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8925, ptr noundef @.str.5, i32 noundef %8926, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8929, ptr noundef %8932, ptr noundef %8935, i32 noundef %8937) #11
  br label %8939

8939:                                             ; preds = %8922, %8905
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

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

8942:                                             ; No predecessors!
  br label %8943

8943:                                             ; preds = %8942
  br label %8944

8944:                                             ; preds = %8943, %8885
  br label %8945

8945:                                             ; preds = %8944
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  %8948 = load i32, ptr @test_count, align 4, !tbaa !5
  %8949 = add nsw i32 %8948, 1
  store i32 %8949, ptr @test_count, align 4, !tbaa !5
  %8950 = load ptr, ptr %167, align 8, !tbaa !9
  %8951 = call i32 @s2n_config_free(ptr noundef %8950)
  %8952 = icmp eq i32 %8951, -1
  br i1 %8952, label %8953, label %9006

8953:                                             ; preds = %8947
  br label %8954

8954:                                             ; preds = %8953
  br label %8955

8955:                                             ; preds = %8954
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %8956 = call ptr @__errno_location() #12
  %8957 = load i32, ptr %8956, align 4, !tbaa !5
  store i32 %8957, ptr %211, align 4, !tbaa !5
  %8958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8959 = call i32 @s2n_print_stacktrace(ptr noundef %8958)
  %8960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8961 = trunc i8 %8960 to i1
  br i1 %8961, label %8962, label %8984

8962:                                             ; preds = %8955
  %8963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8964 = call i32 @fileno(ptr noundef %8963) #11
  %8965 = call i32 @isatty(i32 noundef %8964) #11
  %8966 = icmp ne i32 %8965, 0
  br i1 %8966, label %8967, label %8984

8967:                                             ; preds = %8962
  %8968 = load i32, ptr %211, align 4, !tbaa !5
  %8969 = call ptr @__errno_location() #12
  store i32 %8968, ptr %8969, align 4, !tbaa !5
  %8970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8971 = load i32, ptr @test_count, align 4, !tbaa !5
  %8972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @s2n_strerror(i32 noundef %8973, ptr noundef @.str.4)
  %8975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call ptr @s2n_strerror_debug(i32 noundef %8976, ptr noundef @.str.4)
  %8978 = call ptr @__errno_location() #12
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call ptr @strerror(i32 noundef %8979) #11
  %8981 = call ptr @__errno_location() #12
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8970, ptr noundef @.str.2, i32 noundef %8971, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 343, ptr noundef %8974, ptr noundef %8977, ptr noundef %8980, i32 noundef %8982) #11
  br label %9001

8984:                                             ; preds = %8962, %8955
  %8985 = load i32, ptr %211, align 4, !tbaa !5
  %8986 = call ptr @__errno_location() #12
  store i32 %8985, ptr %8986, align 4, !tbaa !5
  %8987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8988 = load i32, ptr @test_count, align 4, !tbaa !5
  %8989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = call ptr @s2n_strerror(i32 noundef %8990, ptr noundef @.str.4)
  %8992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8993 = load i32, ptr %8992, align 4, !tbaa !5
  %8994 = call ptr @s2n_strerror_debug(i32 noundef %8993, ptr noundef @.str.4)
  %8995 = call ptr @__errno_location() #12
  %8996 = load i32, ptr %8995, align 4, !tbaa !5
  %8997 = call ptr @strerror(i32 noundef %8996) #11
  %8998 = call ptr @__errno_location() #12
  %8999 = load i32, ptr %8998, align 4, !tbaa !5
  %9000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8987, ptr noundef @.str.5, i32 noundef %8988, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 343, ptr noundef %8991, ptr noundef %8994, ptr noundef %8997, i32 noundef %8999) #11
  br label %9001

9001:                                             ; preds = %8984, %8967
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %9002

9002:                                             ; preds = %9001
  br label %9003

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

9004:                                             ; No predecessors!
  br label %9005

9005:                                             ; preds = %9004
  br label %9006

9006:                                             ; preds = %9005, %8947
  br label %9007

9007:                                             ; preds = %9006
  br label %9008

9008:                                             ; preds = %9007
  br label %9009

9009:                                             ; preds = %9008
  %9010 = load i32, ptr @test_count, align 4, !tbaa !5
  %9011 = add nsw i32 %9010, 1
  store i32 %9011, ptr @test_count, align 4, !tbaa !5
  %9012 = call i32 @s2n_pkey_free(ptr noundef %171)
  %9013 = icmp eq i32 %9012, -1
  br i1 %9013, label %9014, label %9067

9014:                                             ; preds = %9009
  br label %9015

9015:                                             ; preds = %9014
  br label %9016

9016:                                             ; preds = %9015
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %9017 = call ptr @__errno_location() #12
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  store i32 %9018, ptr %212, align 4, !tbaa !5
  %9019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9020 = call i32 @s2n_print_stacktrace(ptr noundef %9019)
  %9021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9022 = trunc i8 %9021 to i1
  br i1 %9022, label %9023, label %9045

9023:                                             ; preds = %9016
  %9024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9025 = call i32 @fileno(ptr noundef %9024) #11
  %9026 = call i32 @isatty(i32 noundef %9025) #11
  %9027 = icmp ne i32 %9026, 0
  br i1 %9027, label %9028, label %9045

9028:                                             ; preds = %9023
  %9029 = load i32, ptr %212, align 4, !tbaa !5
  %9030 = call ptr @__errno_location() #12
  store i32 %9029, ptr %9030, align 4, !tbaa !5
  %9031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9032 = load i32, ptr @test_count, align 4, !tbaa !5
  %9033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  %9035 = call ptr @s2n_strerror(i32 noundef %9034, ptr noundef @.str.4)
  %9036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror_debug(i32 noundef %9037, ptr noundef @.str.4)
  %9039 = call ptr @__errno_location() #12
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @strerror(i32 noundef %9040) #11
  %9042 = call ptr @__errno_location() #12
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9031, ptr noundef @.str.2, i32 noundef %9032, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 344, ptr noundef %9035, ptr noundef %9038, ptr noundef %9041, i32 noundef %9043) #11
  br label %9062

9045:                                             ; preds = %9023, %9016
  %9046 = load i32, ptr %212, align 4, !tbaa !5
  %9047 = call ptr @__errno_location() #12
  store i32 %9046, ptr %9047, align 4, !tbaa !5
  %9048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9049 = load i32, ptr @test_count, align 4, !tbaa !5
  %9050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9051 = load i32, ptr %9050, align 4, !tbaa !5
  %9052 = call ptr @s2n_strerror(i32 noundef %9051, ptr noundef @.str.4)
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror_debug(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call ptr @__errno_location() #12
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @strerror(i32 noundef %9057) #11
  %9059 = call ptr @__errno_location() #12
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9048, ptr noundef @.str.5, i32 noundef %9049, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 344, ptr noundef %9052, ptr noundef %9055, ptr noundef %9058, i32 noundef %9060) #11
  br label %9062

9062:                                             ; preds = %9045, %9028
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %9063

9063:                                             ; preds = %9062
  br label %9064

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

9065:                                             ; No predecessors!
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

9067:                                             ; preds = %9066, %9009
  br label %9068

9068:                                             ; preds = %9067
  br label %9069

9069:                                             ; preds = %9068
  %9070 = load ptr, ptr %168, align 8, !tbaa !9
  call void @free(ptr noundef %9070) #11
  %9071 = load ptr, ptr %169, align 8, !tbaa !9
  call void @free(ptr noundef %9071) #11
  store i32 0, ptr %77, align 4
  br label %9072

9072:                                             ; preds = %9069, %8882
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %171) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  %9073 = load i32, ptr %77, align 4
  switch i32 %9073, label %9222 [
    i32 0, label %9074
    i32 1, label %9220
  ]

9074:                                             ; preds = %9072
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

9076:                                             ; preds = %9075
  %9077 = call i32 @s2n_cleanup()
  %9078 = icmp eq i32 %9077, -1
  br i1 %9078, label %9079, label %9130

9079:                                             ; preds = %9076
  br label %9080

9080:                                             ; preds = %9079
  br label %9081

9081:                                             ; preds = %9080
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %9082 = call ptr @__errno_location() #12
  %9083 = load i32, ptr %9082, align 4, !tbaa !5
  store i32 %9083, ptr %213, align 4, !tbaa !5
  %9084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9085 = call i32 @s2n_print_stacktrace(ptr noundef %9084)
  %9086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9087 = trunc i8 %9086 to i1
  br i1 %9087, label %9088, label %9110

9088:                                             ; preds = %9081
  %9089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9090 = call i32 @fileno(ptr noundef %9089) #11
  %9091 = call i32 @isatty(i32 noundef %9090) #11
  %9092 = icmp ne i32 %9091, 0
  br i1 %9092, label %9093, label %9110

9093:                                             ; preds = %9088
  %9094 = load i32, ptr %213, align 4, !tbaa !5
  %9095 = call ptr @__errno_location() #12
  store i32 %9094, ptr %9095, align 4, !tbaa !5
  %9096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9097 = load i32, ptr @test_count, align 4, !tbaa !5
  %9098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9099 = load i32, ptr %9098, align 4, !tbaa !5
  %9100 = call ptr @s2n_strerror(i32 noundef %9099, ptr noundef @.str.4)
  %9101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  %9103 = call ptr @s2n_strerror_debug(i32 noundef %9102, ptr noundef @.str.4)
  %9104 = call ptr @__errno_location() #12
  %9105 = load i32, ptr %9104, align 4, !tbaa !5
  %9106 = call ptr @strerror(i32 noundef %9105) #11
  %9107 = call ptr @__errno_location() #12
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9096, ptr noundef @.str.2, i32 noundef %9097, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9100, ptr noundef %9103, ptr noundef %9106, i32 noundef %9108) #11
  br label %9127

9110:                                             ; preds = %9088, %9081
  %9111 = load i32, ptr %213, align 4, !tbaa !5
  %9112 = call ptr @__errno_location() #12
  store i32 %9111, ptr %9112, align 4, !tbaa !5
  %9113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9114 = load i32, ptr @test_count, align 4, !tbaa !5
  %9115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9116 = load i32, ptr %9115, align 4, !tbaa !5
  %9117 = call ptr @s2n_strerror(i32 noundef %9116, ptr noundef @.str.4)
  %9118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9119 = load i32, ptr %9118, align 4, !tbaa !5
  %9120 = call ptr @s2n_strerror_debug(i32 noundef %9119, ptr noundef @.str.4)
  %9121 = call ptr @__errno_location() #12
  %9122 = load i32, ptr %9121, align 4, !tbaa !5
  %9123 = call ptr @strerror(i32 noundef %9122) #11
  %9124 = call ptr @__errno_location() #12
  %9125 = load i32, ptr %9124, align 4, !tbaa !5
  %9126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9113, ptr noundef @.str.5, i32 noundef %9114, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9117, ptr noundef %9120, ptr noundef %9123, i32 noundef %9125) #11
  br label %9127

9127:                                             ; preds = %9110, %9093
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %9128

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

9129:                                             ; No predecessors!
  br label %9130

9130:                                             ; preds = %9129, %9076
  br label %9131

9131:                                             ; preds = %9130
  br label %9132

9132:                                             ; preds = %9131
  br label %9133

9133:                                             ; preds = %9132
  %9134 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %9135 = icmp eq i32 %9134, -1
  br i1 %9135, label %9136, label %9187

9136:                                             ; preds = %9133
  br label %9137

9137:                                             ; preds = %9136
  br label %9138

9138:                                             ; preds = %9137
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %9139 = call ptr @__errno_location() #12
  %9140 = load i32, ptr %9139, align 4, !tbaa !5
  store i32 %9140, ptr %214, align 4, !tbaa !5
  %9141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9142 = call i32 @s2n_print_stacktrace(ptr noundef %9141)
  %9143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9144 = trunc i8 %9143 to i1
  br i1 %9144, label %9145, label %9167

9145:                                             ; preds = %9138
  %9146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9147 = call i32 @fileno(ptr noundef %9146) #11
  %9148 = call i32 @isatty(i32 noundef %9147) #11
  %9149 = icmp ne i32 %9148, 0
  br i1 %9149, label %9150, label %9167

9150:                                             ; preds = %9145
  %9151 = load i32, ptr %214, align 4, !tbaa !5
  %9152 = call ptr @__errno_location() #12
  store i32 %9151, ptr %9152, align 4, !tbaa !5
  %9153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9154 = load i32, ptr @test_count, align 4, !tbaa !5
  %9155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9156 = load i32, ptr %9155, align 4, !tbaa !5
  %9157 = call ptr @s2n_strerror(i32 noundef %9156, ptr noundef @.str.4)
  %9158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9159 = load i32, ptr %9158, align 4, !tbaa !5
  %9160 = call ptr @s2n_strerror_debug(i32 noundef %9159, ptr noundef @.str.4)
  %9161 = call ptr @__errno_location() #12
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  %9163 = call ptr @strerror(i32 noundef %9162) #11
  %9164 = call ptr @__errno_location() #12
  %9165 = load i32, ptr %9164, align 4, !tbaa !5
  %9166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9153, ptr noundef @.str.2, i32 noundef %9154, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9157, ptr noundef %9160, ptr noundef %9163, i32 noundef %9165) #11
  br label %9184

9167:                                             ; preds = %9145, %9138
  %9168 = load i32, ptr %214, align 4, !tbaa !5
  %9169 = call ptr @__errno_location() #12
  store i32 %9168, ptr %9169, align 4, !tbaa !5
  %9170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9171 = load i32, ptr @test_count, align 4, !tbaa !5
  %9172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9173 = load i32, ptr %9172, align 4, !tbaa !5
  %9174 = call ptr @s2n_strerror(i32 noundef %9173, ptr noundef @.str.4)
  %9175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9176 = load i32, ptr %9175, align 4, !tbaa !5
  %9177 = call ptr @s2n_strerror_debug(i32 noundef %9176, ptr noundef @.str.4)
  %9178 = call ptr @__errno_location() #12
  %9179 = load i32, ptr %9178, align 4, !tbaa !5
  %9180 = call ptr @strerror(i32 noundef %9179) #11
  %9181 = call ptr @__errno_location() #12
  %9182 = load i32, ptr %9181, align 4, !tbaa !5
  %9183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9170, ptr noundef @.str.5, i32 noundef %9171, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9174, ptr noundef %9177, ptr noundef %9180, i32 noundef %9182) #11
  br label %9184

9184:                                             ; preds = %9167, %9150
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %9185

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

9186:                                             ; No predecessors!
  br label %9187

9187:                                             ; preds = %9186, %9133
  br label %9188

9188:                                             ; preds = %9187
  %9189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9190 = trunc i8 %9189 to i1
  br i1 %9190, label %9191, label %9207

9191:                                             ; preds = %9188
  %9192 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9193 = call i32 @fileno(ptr noundef %9192) #11
  %9194 = call i32 @isatty(i32 noundef %9193) #11
  %9195 = icmp ne i32 %9194, 0
  br i1 %9195, label %9196, label %9207

9196:                                             ; preds = %9191
  %9197 = load i32, ptr @test_count, align 4, !tbaa !5
  %9198 = icmp ne i32 %9197, 0
  br i1 %9198, label %9199, label %9203

9199:                                             ; preds = %9196
  %9200 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9201 = load i32, ptr @test_count, align 4, !tbaa !5
  %9202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9200, ptr noundef @.str.12, i32 noundef %9201) #11
  br label %9206

9203:                                             ; preds = %9196
  %9204 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9204, ptr noundef @.str.13) #11
  br label %9206

9206:                                             ; preds = %9203, %9199
  br label %9218

9207:                                             ; preds = %9191, %9188
  %9208 = load i32, ptr @test_count, align 4, !tbaa !5
  %9209 = icmp ne i32 %9208, 0
  br i1 %9209, label %9210, label %9214

9210:                                             ; preds = %9207
  %9211 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9212 = load i32, ptr @test_count, align 4, !tbaa !5
  %9213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9211, ptr noundef @.str.14, i32 noundef %9212) #11
  br label %9217

9214:                                             ; preds = %9207
  %9215 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9215, ptr noundef @.str.15) #11
  br label %9217

9217:                                             ; preds = %9214, %9210
  br label %9218

9218:                                             ; preds = %9217, %9206
  store i32 0, ptr %3, align 4
  br label %9220

9219:                                             ; No predecessors!
  br label %9220

9220:                                             ; preds = %9219, %9218, %9072, %7140, %4324, %651
  %9221 = load i32, ptr %3, align 4
  ret i32 %9221

9222:                                             ; preds = %9072, %7140, %4324
  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

declare i32 @s2n_disable_tls13_in_test(...) #4

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

declare i32 @s2n_cleanup() #4

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

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #9

declare ptr @s2n_config_new() #4

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #4

declare ptr @s2n_cert_chain_and_key_new() #4

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

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

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #4

declare i32 @s2n_config_free(ptr noundef) #4

declare i32 @s2n_pkey_free(ptr noundef) #4

; Function Attrs: nounwind
declare void @free(ptr noundef) #3

declare void @s2n_debug_info_reset() #4

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

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

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

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

declare i32 @s2n_calculate_stacktrace() #4

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

declare i32 @s2n_get_private_random_data(ptr noundef) #4

declare i32 @s2n_hash_free(ptr noundef) #4

declare i32 @s2n_hash_new(ptr noundef) #4

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

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

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

declare i32 @s2n_pkey_verify(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #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 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind 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 allocsize(0) }
attributes #15 = { 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 = !{!16, !10, i64 0}
!16 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !17, i64 16, !17, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!17 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!18 = !{!19, !10, i64 8}
!19 = !{!"s2n_cert_chain", !6, i64 0, !10, i64 8}
!20 = !{!16, !10, i64 8}
!21 = !{!22, !10, i64 0}
!22 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!23 = !{!24, !24, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!26, !10, i64 0}
!26 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!27 = !{!26, !10, i64 8}
!28 = !{!17, !10, i64 0}
!29 = !{!17, !6, i64 8}


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [75 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

20:                                               ; preds = %16, %9
  br label %21

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

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

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

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

49:                                               ; preds = %45, %38
  br label %50

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

62:                                               ; preds = %33
  %63 = tail call i32 @s2n_init() #7
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %65, label %89

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

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

76:                                               ; preds = %72, %65
  br label %77

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

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

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

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

105:                                              ; preds = %101, %94
  br label %106

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

118:                                              ; preds = %89
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr @test_count, align 4, !tbaa !5
  %121 = tail call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #7
  br i1 %121, label %122, label %146

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

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

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

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

146:                                              ; preds = %118
  %147 = tail call i32 @s2n_cleanup() #7
  %148 = icmp eq i32 %147, -1
  br i1 %148, label %149, label %173

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

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

160:                                              ; preds = %156, %149
  br label %161

161:                                              ; preds = %156, %160
  %.str.5.sink79 = phi ptr [ @.str.5, %160 ], [ @.str.2, %156 ]
  store i32 %151, ptr %150, align 4, !tbaa !5
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = load i32, ptr @test_count, align 4, !tbaa !5
  %164 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = tail call ptr @s2n_strerror(i32 noundef %165, ptr noundef nonnull @.str.4) #7
  %167 = load i32, ptr %164, align 4, !tbaa !5
  %168 = tail call ptr @s2n_strerror_debug(i32 noundef %167, ptr noundef nonnull @.str.4) #7
  %169 = load i32, ptr %150, align 4, !tbaa !5
  %170 = tail call ptr @strerror(i32 noundef %169) #7
  %171 = load i32, ptr %150, align 4, !tbaa !5
  %172 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %162, ptr noundef nonnull %.str.5.sink79, i32 noundef %163, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %166, ptr noundef %168, ptr noundef %170, i32 noundef %171) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

173:                                              ; preds = %146
  %174 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #7
  %175 = icmp eq i32 %174, -1
  br i1 %175, label %176, label %200

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

183:                                              ; preds = %176
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = tail call i32 @fileno(ptr noundef %184) #7
  %186 = tail call i32 @isatty(i32 noundef %185) #7
  %.not18 = icmp eq i32 %186, 0
  br i1 %.not18, label %187, label %188

187:                                              ; preds = %183, %176
  br label %188

188:                                              ; preds = %183, %187
  %.str.5.sink90 = phi ptr [ @.str.5, %187 ], [ @.str.2, %183 ]
  store i32 %178, ptr %177, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = tail call ptr @s2n_strerror(i32 noundef %192, ptr noundef nonnull @.str.4) #7
  %194 = load i32, ptr %191, align 4, !tbaa !5
  %195 = tail call ptr @s2n_strerror_debug(i32 noundef %194, ptr noundef nonnull @.str.4) #7
  %196 = load i32, ptr %177, align 4, !tbaa !5
  %197 = tail call ptr @strerror(i32 noundef %196) #7
  %198 = load i32, ptr %177, align 4, !tbaa !5
  %199 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull %.str.5.sink90, i32 noundef %190, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %193, ptr noundef %195, ptr noundef %197, i32 noundef %198) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

200:                                              ; preds = %173
  %201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %214

203:                                              ; preds = %200
  %204 = load ptr, ptr @stdout, align 8, !tbaa !9
  %205 = tail call i32 @fileno(ptr noundef %204) #7
  %206 = tail call i32 @isatty(i32 noundef %205) #7
  %.not = icmp eq i32 %206, 0
  br i1 %.not, label %214, label %207

207:                                              ; preds = %203
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not17 = icmp eq i32 %208, 0
  %209 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not17, label %212, label %210

210:                                              ; preds = %207
  %211 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef nonnull @.str.12, i32 noundef %208) #7
  br label %221

212:                                              ; preds = %207
  %213 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef nonnull @.str.13) #7
  br label %221

214:                                              ; preds = %203, %200
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not16 = icmp eq i32 %215, 0
  %216 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not16, label %219, label %217

217:                                              ; preds = %214
  %218 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %216, ptr noundef nonnull @.str.14, i32 noundef %215) #7
  br label %221

219:                                              ; preds = %214
  %220 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %216, ptr noundef nonnull @.str.15) #7
  br label %221

221:                                              ; preds = %217, %219, %210, %212
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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