; LLVM IR from aws/s2n-tls :: tests/unit (s2n_hmac_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x 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_result = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@__const.main.sekrit = external hidden unnamed_addr constant [7 x i8], align 1
@__const.main.longsekrit = external hidden unnamed_addr constant [101 x i8], align 16
@__const.main.hello = external hidden unnamed_addr constant [13 x i8], align 1
@__const.main.string1 = external hidden unnamed_addr constant [9 x i8], align 1
@__const.main.string2 = external hidden unnamed_addr constant [13 x i8], align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@stdout = external global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [181 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca [256 x i8], align 16
  %7 = alloca [256 x i8], align 16
  %8 = alloca [256 x i8], align 16
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca [7 x i8], align 1
  %11 = alloca [101 x i8], align 16
  %12 = alloca [13 x i8], align 1
  %13 = alloca [9 x i8], align 1
  %14 = alloca [13 x i8], align 1
  %15 = alloca %struct.s2n_hmac_state, align 8
  %16 = alloca %struct.s2n_hmac_state, align 8
  %17 = alloca %struct.s2n_hmac_state, align 8
  %18 = alloca %struct.s2n_blob, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i8, align 1
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %struct.s2n_result, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_result, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i8, align 1
  %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 i32, align 4
  %54 = alloca %struct.s2n_result, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca %struct.s2n_result, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i8, align 1
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i8, align 1
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_result, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca %struct.s2n_result, align 4
  %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 i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_result, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i8, align 1
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca %struct.s2n_result, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i8, align 1
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca %struct.s2n_result, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i8, align 1
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca %struct.s2n_result, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i8, align 1
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca %struct.s2n_result, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = 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
  call void @llvm.lifetime.start.p0(i64 256, ptr %6) #11
  call void @llvm.lifetime.start.p0(i64 256, ptr %7) #11
  call void @llvm.lifetime.start.p0(i64 256, ptr %8) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 7, ptr %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 @__const.main.sekrit, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 101, ptr %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const.main.longsekrit, i64 101, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr %12) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %12, ptr align 1 @__const.main.hello, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr %13) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %13, ptr align 1 @__const.main.string1, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr %14) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %14, ptr align 1 @__const.main.string2, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 432, ptr %15) #11
  call void @llvm.lifetime.start.p0(i64 432, ptr %16) #11
  call void @llvm.lifetime.start.p0(i64 432, ptr %17) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #11
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 24, i1 false)
  br label %179

179:                                              ; preds = %2
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr @test_count, align 4, !tbaa !5
  %182 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %183 = call i32 @s2n_blob_init(ptr noundef %18, ptr noundef %182, i32 noundef 256)
  %184 = icmp eq i32 %183, -1
  br i1 %184, label %185, label %238

185:                                              ; preds = %179
  br label %186

186:                                              ; preds = %185
  br label %187

187:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %188 = call ptr @__errno_location() #12
  %189 = load i32, ptr %188, align 4, !tbaa !5
  store i32 %189, ptr %19, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @s2n_print_stacktrace(ptr noundef %190)
  %192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %193 = trunc i8 %192 to i1
  br i1 %193, label %194, label %216

194:                                              ; preds = %187
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = call i32 @fileno(ptr noundef %195) #11
  %197 = call i32 @isatty(i32 noundef %196) #11
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %199, label %216

199:                                              ; preds = %194
  %200 = load i32, ptr %19, align 4, !tbaa !5
  %201 = call ptr @__errno_location() #12
  store i32 %200, ptr %201, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call ptr @s2n_strerror(i32 noundef %205, ptr noundef @.str.3)
  %207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = call ptr @s2n_strerror_debug(i32 noundef %208, ptr noundef @.str.3)
  %210 = call ptr @__errno_location() #12
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = call ptr @strerror(i32 noundef %211) #11
  %213 = call ptr @__errno_location() #12
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %202, ptr noundef @.str, i32 noundef %203, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 41, ptr noundef %206, ptr noundef %209, ptr noundef %212, i32 noundef %214) #11
  br label %233

216:                                              ; preds = %194, %187
  %217 = load i32, ptr %19, align 4, !tbaa !5
  %218 = call ptr @__errno_location() #12
  store i32 %217, ptr %218, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call ptr @s2n_strerror(i32 noundef %222, ptr noundef @.str.3)
  %224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef @.str.3)
  %227 = call ptr @__errno_location() #12
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call ptr @strerror(i32 noundef %228) #11
  %230 = call ptr @__errno_location() #12
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %219, ptr noundef @.str.4, i32 noundef %220, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 41, ptr noundef %223, ptr noundef %226, ptr noundef %229, i32 noundef %231) #11
  br label %233

233:                                              ; preds = %216, %199
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %234

234:                                              ; preds = %233
  br label %235

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

236:                                              ; No predecessors!
  br label %237

237:                                              ; preds = %236
  br label %238

238:                                              ; preds = %237, %179
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  br label %241

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %243 = load ptr, ptr @stdout, align 8, !tbaa !9
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str.5, ptr noundef @.str.2) #11
  %245 = load ptr, ptr @stdout, align 8, !tbaa !9
  %246 = call i32 @fflush(ptr noundef %245)
  br label %247

247:                                              ; preds = %242
  %248 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %249 = icmp eq i32 %248, -1
  br i1 %249, label %250, label %303

250:                                              ; preds = %247
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %253 = call ptr @__errno_location() #12
  %254 = load i32, ptr %253, align 4, !tbaa !5
  store i32 %254, ptr %20, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @s2n_print_stacktrace(ptr noundef %255)
  %257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %258 = trunc i8 %257 to i1
  br i1 %258, label %259, label %281

259:                                              ; preds = %252
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = call i32 @fileno(ptr noundef %260) #11
  %262 = call i32 @isatty(i32 noundef %261) #11
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %264, label %281

264:                                              ; preds = %259
  %265 = load i32, ptr %20, align 4, !tbaa !5
  %266 = call ptr @__errno_location() #12
  store i32 %265, ptr %266, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror(i32 noundef %270, ptr noundef @.str.3)
  %272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror_debug(i32 noundef %273, ptr noundef @.str.3)
  %275 = call ptr @__errno_location() #12
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call ptr @strerror(i32 noundef %276) #11
  %278 = call ptr @__errno_location() #12
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef @.str, i32 noundef %268, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 43, ptr noundef %271, ptr noundef %274, ptr noundef %277, i32 noundef %279) #11
  br label %298

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

298:                                              ; preds = %281, %264
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %299

299:                                              ; preds = %298
  br label %300

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

301:                                              ; No predecessors!
  br label %302

302:                                              ; preds = %301
  br label %303

303:                                              ; preds = %302, %247
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = add nsw i32 %307, 1
  store i32 %308, ptr @test_count, align 4, !tbaa !5
  %309 = call i32 @s2n_enable_atexit()
  %310 = icmp eq i32 %309, -1
  br i1 %310, label %311, label %364

311:                                              ; preds = %306
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %314 = call ptr @__errno_location() #12
  %315 = load i32, ptr %314, align 4, !tbaa !5
  store i32 %315, ptr %21, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @s2n_print_stacktrace(ptr noundef %316)
  %318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %319 = trunc i8 %318 to i1
  br i1 %319, label %320, label %342

320:                                              ; preds = %313
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @fileno(ptr noundef %321) #11
  %323 = call i32 @isatty(i32 noundef %322) #11
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %325, label %342

325:                                              ; preds = %320
  %326 = load i32, ptr %21, align 4, !tbaa !5
  %327 = call ptr @__errno_location() #12
  store i32 %326, ptr %327, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror(i32 noundef %331, ptr noundef @.str.3)
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef @.str.3)
  %336 = call ptr @__errno_location() #12
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #11
  %339 = call ptr @__errno_location() #12
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef @.str, i32 noundef %329, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 43, ptr noundef %332, ptr noundef %335, ptr noundef %338, i32 noundef %340) #11
  br label %359

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

359:                                              ; preds = %342, %325
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %360

360:                                              ; preds = %359
  br label %361

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

362:                                              ; No predecessors!
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363, %306
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  %370 = call i32 @s2n_init()
  %371 = icmp eq i32 %370, -1
  br i1 %371, label %372, label %425

372:                                              ; preds = %369
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %375 = call ptr @__errno_location() #12
  %376 = load i32, ptr %375, align 4, !tbaa !5
  store i32 %376, ptr %22, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377)
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc i8 %379 to i1
  br i1 %380, label %381, label %403

381:                                              ; preds = %374
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @fileno(ptr noundef %382) #11
  %384 = call i32 @isatty(i32 noundef %383) #11
  %385 = icmp ne i32 %384, 0
  br i1 %385, label %386, label %403

386:                                              ; preds = %381
  %387 = load i32, ptr %22, align 4, !tbaa !5
  %388 = call ptr @__errno_location() #12
  store i32 %387, ptr %388, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror(i32 noundef %392, ptr noundef @.str.3)
  %394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror_debug(i32 noundef %395, ptr noundef @.str.3)
  %397 = call ptr @__errno_location() #12
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = call ptr @strerror(i32 noundef %398) #11
  %400 = call ptr @__errno_location() #12
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %389, ptr noundef @.str, i32 noundef %390, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 43, ptr noundef %393, ptr noundef %396, ptr noundef %399, i32 noundef %401) #11
  br label %420

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

420:                                              ; preds = %403, %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %421

421:                                              ; preds = %420
  br label %422

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

423:                                              ; No predecessors!
  br label %424

424:                                              ; preds = %423
  br label %425

425:                                              ; preds = %424, %369
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr @test_count, align 4, !tbaa !5
  %433 = call i32 (...) @s2n_disable_tls13_in_test()
  %434 = icmp eq i32 %433, -1
  br i1 %434, label %435, label %488

435:                                              ; preds = %430
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %438 = call ptr @__errno_location() #12
  %439 = load i32, ptr %438, align 4, !tbaa !5
  store i32 %439, ptr %23, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = call i32 @s2n_print_stacktrace(ptr noundef %440)
  %442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %443 = trunc i8 %442 to i1
  br i1 %443, label %444, label %466

444:                                              ; preds = %437
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = call i32 @fileno(ptr noundef %445) #11
  %447 = call i32 @isatty(i32 noundef %446) #11
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %449, label %466

449:                                              ; preds = %444
  %450 = load i32, ptr %23, align 4, !tbaa !5
  %451 = call ptr @__errno_location() #12
  store i32 %450, ptr %451, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror(i32 noundef %455, ptr noundef @.str.3)
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef @.str.3)
  %460 = call ptr @__errno_location() #12
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #11
  %463 = call ptr @__errno_location() #12
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %452, ptr noundef @.str, i32 noundef %453, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 44, ptr noundef %456, ptr noundef %459, ptr noundef %462, i32 noundef %464) #11
  br label %483

466:                                              ; preds = %444, %437
  %467 = load i32, ptr %23, align 4, !tbaa !5
  %468 = call ptr @__errno_location() #12
  store i32 %467, ptr %468, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef @.str.3)
  %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_debug(i32 noundef %475, ptr noundef @.str.3)
  %477 = call ptr @__errno_location() #12
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #11
  %480 = call ptr @__errno_location() #12
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef @.str.4, i32 noundef %470, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 44, ptr noundef %473, ptr noundef %476, ptr noundef %479, i32 noundef %481) #11
  br label %483

483:                                              ; preds = %466, %449
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %484

484:                                              ; preds = %483
  br label %485

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

486:                                              ; No predecessors!
  br label %487

487:                                              ; preds = %486
  br label %488

488:                                              ; preds = %487, %430
  br label %489

489:                                              ; preds = %488
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = call i32 @s2n_hmac_new(ptr noundef %15)
  %495 = icmp eq i32 %494, -1
  br i1 %495, label %496, label %549

496:                                              ; preds = %491
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %499 = call ptr @__errno_location() #12
  %500 = load i32, ptr %499, align 4, !tbaa !5
  store i32 %500, ptr %24, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501)
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %527

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

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

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

544:                                              ; preds = %527, %510
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %545

545:                                              ; preds = %544
  br label %546

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

547:                                              ; No predecessors!
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548, %491
  br label %550

550:                                              ; preds = %549
  br label %551

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = call i32 @s2n_hmac_new(ptr noundef %16)
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %610

557:                                              ; preds = %552
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %560 = call ptr @__errno_location() #12
  %561 = load i32, ptr %560, align 4, !tbaa !5
  store i32 %561, ptr %25, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @s2n_print_stacktrace(ptr noundef %562)
  %564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %565 = trunc i8 %564 to i1
  br i1 %565, label %566, label %588

566:                                              ; preds = %559
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @fileno(ptr noundef %567) #11
  %569 = call i32 @isatty(i32 noundef %568) #11
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %588

571:                                              ; preds = %566
  %572 = load i32, ptr %25, align 4, !tbaa !5
  %573 = call ptr @__errno_location() #12
  store i32 %572, ptr %573, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror(i32 noundef %577, ptr noundef @.str.3)
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror_debug(i32 noundef %580, ptr noundef @.str.3)
  %582 = call ptr @__errno_location() #12
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call ptr @strerror(i32 noundef %583) #11
  %585 = call ptr @__errno_location() #12
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef @.str, i32 noundef %575, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 47, ptr noundef %578, ptr noundef %581, ptr noundef %584, i32 noundef %586) #11
  br label %605

588:                                              ; preds = %566, %559
  %589 = load i32, ptr %25, align 4, !tbaa !5
  %590 = call ptr @__errno_location() #12
  store i32 %589, ptr %590, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror(i32 noundef %594, ptr noundef @.str.3)
  %596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @s2n_strerror_debug(i32 noundef %597, ptr noundef @.str.3)
  %599 = call ptr @__errno_location() #12
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call ptr @strerror(i32 noundef %600) #11
  %602 = call ptr @__errno_location() #12
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %591, ptr noundef @.str.4, i32 noundef %592, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 47, ptr noundef %595, ptr noundef %598, ptr noundef %601, i32 noundef %603) #11
  br label %605

605:                                              ; preds = %588, %571
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %606

606:                                              ; preds = %605
  br label %607

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

608:                                              ; No predecessors!
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609, %552
  br label %611

611:                                              ; preds = %610
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = call i32 @s2n_hmac_new(ptr noundef %17)
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %618, label %671

618:                                              ; preds = %613
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %621 = call ptr @__errno_location() #12
  %622 = load i32, ptr %621, align 4, !tbaa !5
  store i32 %622, ptr %26, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @s2n_print_stacktrace(ptr noundef %623)
  %625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %626 = trunc i8 %625 to i1
  br i1 %626, label %627, label %649

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #11
  %630 = call i32 @isatty(i32 noundef %629) #11
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %649

632:                                              ; preds = %627
  %633 = load i32, ptr %26, align 4, !tbaa !5
  %634 = call ptr @__errno_location() #12
  store i32 %633, ptr %634, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef @.str.3)
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef @.str.3)
  %643 = call ptr @__errno_location() #12
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #11
  %646 = call ptr @__errno_location() #12
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef @.str, i32 noundef %636, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 48, ptr noundef %639, ptr noundef %642, ptr noundef %645, i32 noundef %647) #11
  br label %666

649:                                              ; preds = %627, %620
  %650 = load i32, ptr %26, align 4, !tbaa !5
  %651 = call ptr @__errno_location() #12
  store i32 %650, ptr %651, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef @.str.3)
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef @.str.3)
  %660 = call ptr @__errno_location() #12
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #11
  %663 = call ptr @__errno_location() #12
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef @.str.4, i32 noundef %653, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 48, ptr noundef %656, ptr noundef %659, ptr noundef %662, i32 noundef %664) #11
  br label %666

666:                                              ; preds = %649, %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %667

667:                                              ; preds = %666
  br label %668

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

669:                                              ; No predecessors!
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670, %613
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #11
  store i8 0, ptr %27, align 1, !tbaa !15
  br label %674

674:                                              ; preds = %673
  %675 = call i32 @s2n_hmac_digest_size(i32 noundef 7, ptr noundef %27)
  %676 = icmp sgt i32 %675, -1
  br i1 %676, label %678, label %677

677:                                              ; preds = %674
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %1584

678:                                              ; preds = %674
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr @test_count, align 4, !tbaa !5
  %684 = load i8, ptr %27, align 1, !tbaa !15
  %685 = zext i8 %684 to i32
  %686 = icmp eq i32 %685, 16
  br i1 %686, label %740, label %687

687:                                              ; preds = %681
  br label %688

688:                                              ; preds = %687
  br label %689

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

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

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

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

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

736:                                              ; preds = %735
  br label %737

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

738:                                              ; No predecessors!
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739, %681
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = add nsw i32 %744, 1
  store i32 %745, ptr @test_count, align 4, !tbaa !5
  %746 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %747 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %748 = call i64 @strlen(ptr noundef %747) #14
  %749 = trunc i64 %748 to i32
  %750 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 7, ptr noundef %746, i32 noundef %749)
  %751 = icmp eq i32 %750, -1
  br i1 %751, label %752, label %805

752:                                              ; preds = %743
  br label %753

753:                                              ; preds = %752
  br label %754

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

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

766:                                              ; preds = %761
  %767 = load i32, ptr %30, align 4, !tbaa !5
  %768 = call ptr @__errno_location() #12
  store i32 %767, ptr %768, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror(i32 noundef %772, ptr noundef @.str.3)
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef @.str.3)
  %777 = call ptr @__errno_location() #12
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @strerror(i32 noundef %778) #11
  %780 = call ptr @__errno_location() #12
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef @.str, i32 noundef %770, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 55, ptr noundef %773, ptr noundef %776, ptr noundef %779, i32 noundef %781) #11
  br label %800

783:                                              ; preds = %761, %754
  %784 = load i32, ptr %30, align 4, !tbaa !5
  %785 = call ptr @__errno_location() #12
  store i32 %784, ptr %785, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef @.str.3)
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef @.str.3)
  %794 = call ptr @__errno_location() #12
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #11
  %797 = call ptr @__errno_location() #12
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef @.str.4, i32 noundef %787, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 55, ptr noundef %790, ptr noundef %793, ptr noundef %796, i32 noundef %798) #11
  br label %800

800:                                              ; preds = %783, %766
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %801

801:                                              ; preds = %800
  br label %802

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

803:                                              ; No predecessors!
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804, %743
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %812 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %813 = call i64 @strlen(ptr noundef %812) #14
  %814 = trunc i64 %813 to i32
  %815 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %811, i32 noundef %814)
  %816 = icmp eq i32 %815, -1
  br i1 %816, label %817, label %870

817:                                              ; preds = %808
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %820 = call ptr @__errno_location() #12
  %821 = load i32, ptr %820, align 4, !tbaa !5
  store i32 %821, ptr %31, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = call i32 @s2n_print_stacktrace(ptr noundef %822)
  %824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %825 = trunc i8 %824 to i1
  br i1 %825, label %826, label %848

826:                                              ; preds = %819
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = call i32 @fileno(ptr noundef %827) #11
  %829 = call i32 @isatty(i32 noundef %828) #11
  %830 = icmp ne i32 %829, 0
  br i1 %830, label %831, label %848

831:                                              ; preds = %826
  %832 = load i32, ptr %31, align 4, !tbaa !5
  %833 = call ptr @__errno_location() #12
  store i32 %832, ptr %833, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror(i32 noundef %837, ptr noundef @.str.3)
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror_debug(i32 noundef %840, ptr noundef @.str.3)
  %842 = call ptr @__errno_location() #12
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #11
  %845 = call ptr @__errno_location() #12
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %834, ptr noundef @.str, i32 noundef %835, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 56, ptr noundef %838, ptr noundef %841, ptr noundef %844, i32 noundef %846) #11
  br label %865

848:                                              ; preds = %826, %819
  %849 = load i32, ptr %31, 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.3)
  %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.3)
  %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.4, i32 noundef %852, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 56, ptr noundef %855, ptr noundef %858, ptr noundef %861, i32 noundef %863) #11
  br label %865

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

866:                                              ; preds = %865
  br label %867

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

868:                                              ; No predecessors!
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869, %808
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = add nsw i32 %874, 1
  store i32 %875, ptr @test_count, align 4, !tbaa !5
  %876 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %877 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %876, i32 noundef 16)
  %878 = icmp eq i32 %877, -1
  br i1 %878, label %879, label %932

879:                                              ; preds = %873
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %882 = call ptr @__errno_location() #12
  %883 = load i32, ptr %882, align 4, !tbaa !5
  store i32 %883, ptr %32, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @s2n_print_stacktrace(ptr noundef %884)
  %886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %887 = trunc i8 %886 to i1
  br i1 %887, label %888, label %910

888:                                              ; preds = %881
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @fileno(ptr noundef %889) #11
  %891 = call i32 @isatty(i32 noundef %890) #11
  %892 = icmp ne i32 %891, 0
  br i1 %892, label %893, label %910

893:                                              ; preds = %888
  %894 = load i32, ptr %32, align 4, !tbaa !5
  %895 = call ptr @__errno_location() #12
  store i32 %894, ptr %895, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror(i32 noundef %899, ptr noundef @.str.3)
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef @.str.3)
  %904 = call ptr @__errno_location() #12
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @strerror(i32 noundef %905) #11
  %907 = call ptr @__errno_location() #12
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %896, ptr noundef @.str, i32 noundef %897, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 57, ptr noundef %900, ptr noundef %903, ptr noundef %906, i32 noundef %908) #11
  br label %927

910:                                              ; preds = %888, %881
  %911 = load i32, ptr %32, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #12
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.3)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.3)
  %921 = call ptr @__errno_location() #12
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #11
  %924 = call ptr @__errno_location() #12
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.4, i32 noundef %914, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 57, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #11
  br label %927

927:                                              ; preds = %910, %893
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %928

928:                                              ; preds = %927
  br label %929

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

930:                                              ; No predecessors!
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931, %873
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %939 = icmp eq i32 %938, -1
  br i1 %939, label %940, label %993

940:                                              ; preds = %935
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %943 = call ptr @__errno_location() #12
  %944 = load i32, ptr %943, align 4, !tbaa !5
  store i32 %944, ptr %33, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945)
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc i8 %947 to i1
  br i1 %948, label %949, label %971

949:                                              ; preds = %942
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #11
  %952 = call i32 @isatty(i32 noundef %951) #11
  %953 = icmp ne i32 %952, 0
  br i1 %953, label %954, label %971

954:                                              ; preds = %949
  %955 = load i32, ptr %33, align 4, !tbaa !5
  %956 = call ptr @__errno_location() #12
  store i32 %955, ptr %956, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef @.str.3)
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef @.str.3)
  %965 = call ptr @__errno_location() #12
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #11
  %968 = call ptr @__errno_location() #12
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef @.str, i32 noundef %958, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 59, ptr noundef %961, ptr noundef %964, ptr noundef %967, i32 noundef %969) #11
  br label %988

971:                                              ; preds = %949, %942
  %972 = load i32, ptr %33, 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.3)
  %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.3)
  %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.4, i32 noundef %975, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 59, ptr noundef %978, ptr noundef %981, ptr noundef %984, i32 noundef %986) #11
  br label %988

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

989:                                              ; preds = %988
  br label %990

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

991:                                              ; No predecessors!
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992, %935
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %996

996:                                              ; preds = %1069, %995
  %997 = load i32, ptr %34, align 4, !tbaa !5
  %998 = icmp slt i32 %997, 16
  br i1 %998, label %1000, label %999

999:                                              ; preds = %996
  store i32 86, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1072

1000:                                             ; preds = %996
  br label %1001

1001:                                             ; preds = %1000
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = load i32, ptr %34, align 4, !tbaa !5
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %1005
  %1007 = load i8, ptr %1006, align 1, !tbaa !15
  %1008 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %1007)
  %1009 = getelementptr inbounds %struct.s2n_result, ptr %35, i32 0, i32 0
  store i32 %1008, ptr %1009, align 4
  %1010 = getelementptr inbounds %struct.s2n_result, ptr %35, i32 0, i32 0
  %1011 = load i32, ptr %1010, align 4
  %1012 = call zeroext i1 @s2n_result_is_ok(i32 %1011)
  br i1 %1012, label %1066, label %1013

1013:                                             ; preds = %1001
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1016 = call ptr @__errno_location() #12
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  store i32 %1017, ptr %36, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @s2n_print_stacktrace(ptr noundef %1018)
  %1020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1021 = trunc i8 %1020 to i1
  br i1 %1021, label %1022, label %1044

1022:                                             ; preds = %1015
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @fileno(ptr noundef %1023) #11
  %1025 = call i32 @isatty(i32 noundef %1024) #11
  %1026 = icmp ne i32 %1025, 0
  br i1 %1026, label %1027, label %1044

1027:                                             ; preds = %1022
  %1028 = load i32, ptr %36, align 4, !tbaa !5
  %1029 = call ptr @__errno_location() #12
  store i32 %1028, ptr %1029, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef @.str.3)
  %1035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef @.str.3)
  %1038 = call ptr @__errno_location() #12
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @strerror(i32 noundef %1039) #11
  %1041 = call ptr @__errno_location() #12
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef @.str, i32 noundef %1031, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 61, ptr noundef %1034, ptr noundef %1037, ptr noundef %1040, i32 noundef %1042) #11
  br label %1061

1044:                                             ; preds = %1022, %1015
  %1045 = load i32, ptr %36, align 4, !tbaa !5
  %1046 = call ptr @__errno_location() #12
  store i32 %1045, ptr %1046, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef @.str.3)
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef @.str.3)
  %1055 = call ptr @__errno_location() #12
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #11
  %1058 = call ptr @__errno_location() #12
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef @.str.4, i32 noundef %1048, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 61, ptr noundef %1051, ptr noundef %1054, ptr noundef %1057, i32 noundef %1059) #11
  br label %1061

1061:                                             ; preds = %1044, %1027
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

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

1064:                                             ; No predecessors!
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065, %1001
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  %1070 = load i32, ptr %34, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr %34, align 4, !tbaa !5
  br label %996, !llvm.loop !16

1072:                                             ; preds = %999
  br label %1073

1073:                                             ; preds = %1072
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = add nsw i32 %1074, 1
  store i32 %1075, ptr @test_count, align 4, !tbaa !5
  %1076 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %1077 = call i32 @memcmp(ptr noundef %1076, ptr noundef @.str.19, i64 noundef 32) #14
  %1078 = icmp eq i32 %1077, 0
  br i1 %1078, label %1132, label %1079

1079:                                             ; preds = %1073
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

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

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

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

1110:                                             ; preds = %1088, %1081
  %1111 = load i32, ptr %37, align 4, !tbaa !5
  %1112 = call ptr @__errno_location() #12
  store i32 %1111, ptr %1112, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror(i32 noundef %1116, ptr noundef @.str.3)
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef @.str.3)
  %1121 = call ptr @__errno_location() #12
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @strerror(i32 noundef %1122) #11
  %1124 = call ptr @__errno_location() #12
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef @.str.4, i32 noundef %1114, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 65, ptr noundef %1117, ptr noundef %1120, ptr noundef %1123, i32 noundef %1125) #11
  br label %1127

1127:                                             ; preds = %1110, %1093
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

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

1130:                                             ; No predecessors!
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131, %1073
  br label %1133

1133:                                             ; preds = %1132
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = add nsw i32 %1136, 1
  store i32 %1137, ptr @test_count, align 4, !tbaa !5
  %1138 = call i32 @s2n_hmac_reset(ptr noundef %15)
  %1139 = icmp eq i32 %1138, -1
  br i1 %1139, label %1140, label %1193

1140:                                             ; preds = %1135
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

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

1149:                                             ; preds = %1142
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @fileno(ptr noundef %1150) #11
  %1152 = call i32 @isatty(i32 noundef %1151) #11
  %1153 = icmp ne i32 %1152, 0
  br i1 %1153, label %1154, label %1171

1154:                                             ; preds = %1149
  %1155 = load i32, ptr %38, align 4, !tbaa !5
  %1156 = call ptr @__errno_location() #12
  store i32 %1155, ptr %1156, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef @.str.3)
  %1162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @s2n_strerror_debug(i32 noundef %1163, ptr noundef @.str.3)
  %1165 = call ptr @__errno_location() #12
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #11
  %1168 = call ptr @__errno_location() #12
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1157, ptr noundef @.str, i32 noundef %1158, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 68, ptr noundef %1161, ptr noundef %1164, ptr noundef %1167, i32 noundef %1169) #11
  br label %1188

1171:                                             ; preds = %1149, %1142
  %1172 = load i32, ptr %38, align 4, !tbaa !5
  %1173 = call ptr @__errno_location() #12
  store i32 %1172, ptr %1173, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror(i32 noundef %1177, ptr noundef @.str.3)
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @s2n_strerror_debug(i32 noundef %1180, ptr noundef @.str.3)
  %1182 = call ptr @__errno_location() #12
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #11
  %1185 = call ptr @__errno_location() #12
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1174, ptr noundef @.str.4, i32 noundef %1175, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 68, ptr noundef %1178, ptr noundef %1181, ptr noundef %1184, i32 noundef %1186) #11
  br label %1188

1188:                                             ; preds = %1171, %1154
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

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

1191:                                             ; No predecessors!
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192, %1135
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  %1199 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %1200 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %1201 = call i64 @strlen(ptr noundef %1200) #14
  %1202 = trunc i64 %1201 to i32
  %1203 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %1199, i32 noundef %1202)
  %1204 = icmp eq i32 %1203, -1
  br i1 %1204, label %1205, label %1258

1205:                                             ; preds = %1196
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

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

1214:                                             ; preds = %1207
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = call i32 @fileno(ptr noundef %1215) #11
  %1217 = call i32 @isatty(i32 noundef %1216) #11
  %1218 = icmp ne i32 %1217, 0
  br i1 %1218, label %1219, label %1236

1219:                                             ; preds = %1214
  %1220 = load i32, ptr %39, align 4, !tbaa !5
  %1221 = call ptr @__errno_location() #12
  store i32 %1220, ptr %1221, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror(i32 noundef %1225, ptr noundef @.str.3)
  %1227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1228 = load i32, ptr %1227, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef @.str.3)
  %1230 = call ptr @__errno_location() #12
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @strerror(i32 noundef %1231) #11
  %1233 = call ptr @__errno_location() #12
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1222, ptr noundef @.str, i32 noundef %1223, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1226, ptr noundef %1229, ptr noundef %1232, i32 noundef %1234) #11
  br label %1253

1236:                                             ; preds = %1214, %1207
  %1237 = load i32, ptr %39, align 4, !tbaa !5
  %1238 = call ptr @__errno_location() #12
  store i32 %1237, ptr %1238, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call ptr @s2n_strerror(i32 noundef %1242, ptr noundef @.str.3)
  %1244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror_debug(i32 noundef %1245, ptr noundef @.str.3)
  %1247 = call ptr @__errno_location() #12
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @strerror(i32 noundef %1248) #11
  %1250 = call ptr @__errno_location() #12
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1239, ptr noundef @.str.4, i32 noundef %1240, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1243, ptr noundef %1246, ptr noundef %1249, i32 noundef %1251) #11
  br label %1253

1253:                                             ; preds = %1236, %1219
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1254

1254:                                             ; preds = %1253
  br label %1255

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

1256:                                             ; No predecessors!
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

1258:                                             ; preds = %1257, %1196
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

1260:                                             ; preds = %1259
  br label %1261

1261:                                             ; preds = %1260
  %1262 = load i32, ptr @test_count, align 4, !tbaa !5
  %1263 = add nsw i32 %1262, 1
  store i32 %1263, ptr @test_count, align 4, !tbaa !5
  %1264 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %1265 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %1264, i32 noundef 16)
  %1266 = icmp eq i32 %1265, -1
  br i1 %1266, label %1267, label %1320

1267:                                             ; preds = %1261
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1270 = call ptr @__errno_location() #12
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  store i32 %1271, ptr %40, align 4, !tbaa !5
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @s2n_print_stacktrace(ptr noundef %1272)
  %1274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1275 = trunc i8 %1274 to i1
  br i1 %1275, label %1276, label %1298

1276:                                             ; preds = %1269
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = call i32 @fileno(ptr noundef %1277) #11
  %1279 = call i32 @isatty(i32 noundef %1278) #11
  %1280 = icmp ne i32 %1279, 0
  br i1 %1280, label %1281, label %1298

1281:                                             ; preds = %1276
  %1282 = load i32, ptr %40, align 4, !tbaa !5
  %1283 = call ptr @__errno_location() #12
  store i32 %1282, ptr %1283, align 4, !tbaa !5
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = load i32, ptr @test_count, align 4, !tbaa !5
  %1286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror(i32 noundef %1287, ptr noundef @.str.3)
  %1289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef @.str.3)
  %1292 = call ptr @__errno_location() #12
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @strerror(i32 noundef %1293) #11
  %1295 = call ptr @__errno_location() #12
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1284, ptr noundef @.str, i32 noundef %1285, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 70, ptr noundef %1288, ptr noundef %1291, ptr noundef %1294, i32 noundef %1296) #11
  br label %1315

1298:                                             ; preds = %1276, %1269
  %1299 = load i32, ptr %40, align 4, !tbaa !5
  %1300 = call ptr @__errno_location() #12
  store i32 %1299, ptr %1300, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef @.str.3)
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror_debug(i32 noundef %1307, ptr noundef @.str.3)
  %1309 = call ptr @__errno_location() #12
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @strerror(i32 noundef %1310) #11
  %1312 = call ptr @__errno_location() #12
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef @.str.4, i32 noundef %1302, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 70, ptr noundef %1305, ptr noundef %1308, ptr noundef %1311, i32 noundef %1313) #11
  br label %1315

1315:                                             ; preds = %1298, %1281
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

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

1318:                                             ; No predecessors!
  br label %1319

1319:                                             ; preds = %1318
  br label %1320

1320:                                             ; preds = %1319, %1261
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  br label %1323

1323:                                             ; preds = %1322
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %1327 = icmp eq i32 %1326, -1
  br i1 %1327, label %1328, label %1381

1328:                                             ; preds = %1323
  br label %1329

1329:                                             ; preds = %1328
  br label %1330

1330:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1331 = call ptr @__errno_location() #12
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  store i32 %1332, ptr %41, align 4, !tbaa !5
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @s2n_print_stacktrace(ptr noundef %1333)
  %1335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1336 = trunc i8 %1335 to i1
  br i1 %1336, label %1337, label %1359

1337:                                             ; preds = %1330
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = call i32 @fileno(ptr noundef %1338) #11
  %1340 = call i32 @isatty(i32 noundef %1339) #11
  %1341 = icmp ne i32 %1340, 0
  br i1 %1341, label %1342, label %1359

1342:                                             ; preds = %1337
  %1343 = load i32, ptr %41, align 4, !tbaa !5
  %1344 = call ptr @__errno_location() #12
  store i32 %1343, ptr %1344, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = load i32, ptr @test_count, align 4, !tbaa !5
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror(i32 noundef %1348, ptr noundef @.str.3)
  %1350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef @.str.3)
  %1353 = call ptr @__errno_location() #12
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @strerror(i32 noundef %1354) #11
  %1356 = call ptr @__errno_location() #12
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1345, ptr noundef @.str, i32 noundef %1346, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 72, ptr noundef %1349, ptr noundef %1352, ptr noundef %1355, i32 noundef %1357) #11
  br label %1376

1359:                                             ; preds = %1337, %1330
  %1360 = load i32, ptr %41, align 4, !tbaa !5
  %1361 = call ptr @__errno_location() #12
  store i32 %1360, ptr %1361, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef @.str.3)
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef @.str.3)
  %1370 = call ptr @__errno_location() #12
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #11
  %1373 = call ptr @__errno_location() #12
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef @.str.4, i32 noundef %1363, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 72, ptr noundef %1366, ptr noundef %1369, ptr noundef %1372, i32 noundef %1374) #11
  br label %1376

1376:                                             ; preds = %1359, %1342
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

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

1379:                                             ; No predecessors!
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380, %1323
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %1384

1384:                                             ; preds = %1457, %1383
  %1385 = load i32, ptr %42, align 4, !tbaa !5
  %1386 = icmp slt i32 %1385, 16
  br i1 %1386, label %1388, label %1387

1387:                                             ; preds = %1384
  store i32 125, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1460

1388:                                             ; preds = %1384
  br label %1389

1389:                                             ; preds = %1388
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = add nsw i32 %1390, 1
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = load i32, ptr %42, align 4, !tbaa !5
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %1393
  %1395 = load i8, ptr %1394, align 1, !tbaa !15
  %1396 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %1395)
  %1397 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  store i32 %1396, ptr %1397, align 4
  %1398 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  %1399 = load i32, ptr %1398, align 4
  %1400 = call zeroext i1 @s2n_result_is_ok(i32 %1399)
  br i1 %1400, label %1454, label %1401

1401:                                             ; preds = %1389
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1404 = call ptr @__errno_location() #12
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  store i32 %1405, ptr %44, 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 %44, 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.3)
  %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.3)
  %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, i32 noundef %1419, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #11
  br label %1449

1432:                                             ; preds = %1410, %1403
  %1433 = load i32, ptr %44, 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.3)
  %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.3)
  %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.4, i32 noundef %1436, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 74, 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 %44) #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, %1389
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  %1458 = load i32, ptr %42, align 4, !tbaa !5
  %1459 = add nsw i32 %1458, 1
  store i32 %1459, ptr %42, align 4, !tbaa !5
  br label %1384, !llvm.loop !18

1460:                                             ; preds = %1387
  br label %1461

1461:                                             ; preds = %1460
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %1465 = call i32 @memcmp(ptr noundef %1464, ptr noundef @.str.19, i64 noundef 32) #14
  %1466 = icmp eq i32 %1465, 0
  br i1 %1466, label %1520, label %1467

1467:                                             ; preds = %1461
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

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

1476:                                             ; preds = %1469
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @fileno(ptr noundef %1477) #11
  %1479 = call i32 @isatty(i32 noundef %1478) #11
  %1480 = icmp ne i32 %1479, 0
  br i1 %1480, label %1481, label %1498

1481:                                             ; preds = %1476
  %1482 = load i32, ptr %45, align 4, !tbaa !5
  %1483 = call ptr @__errno_location() #12
  store i32 %1482, ptr %1483, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef @.str.3)
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef @.str.3)
  %1492 = call ptr @__errno_location() #12
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #11
  %1495 = call ptr @__errno_location() #12
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1484, ptr noundef @.str, i32 noundef %1485, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 78, ptr noundef %1488, ptr noundef %1491, ptr noundef %1494, i32 noundef %1496) #11
  br label %1515

1498:                                             ; preds = %1476, %1469
  %1499 = load i32, ptr %45, align 4, !tbaa !5
  %1500 = call ptr @__errno_location() #12
  store i32 %1499, ptr %1500, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror(i32 noundef %1504, ptr noundef @.str.3)
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef @.str.3)
  %1509 = call ptr @__errno_location() #12
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @strerror(i32 noundef %1510) #11
  %1512 = call ptr @__errno_location() #12
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1501, ptr noundef @.str.4, i32 noundef %1502, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 78, ptr noundef %1505, ptr noundef %1508, ptr noundef %1511, i32 noundef %1513) #11
  br label %1515

1515:                                             ; preds = %1498, %1481
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

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

1518:                                             ; No predecessors!
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519, %1461
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr @test_count, align 4, !tbaa !5
  %1526 = call i32 @s2n_hmac_reset(ptr noundef %15)
  %1527 = icmp eq i32 %1526, -1
  br i1 %1527, label %1528, label %1581

1528:                                             ; preds = %1523
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

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

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

1542:                                             ; preds = %1537
  %1543 = load i32, ptr %46, align 4, !tbaa !5
  %1544 = call ptr @__errno_location() #12
  store i32 %1543, ptr %1544, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef @.str.3)
  %1550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror_debug(i32 noundef %1551, ptr noundef @.str.3)
  %1553 = call ptr @__errno_location() #12
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @strerror(i32 noundef %1554) #11
  %1556 = call ptr @__errno_location() #12
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef @.str, i32 noundef %1546, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 80, ptr noundef %1549, ptr noundef %1552, ptr noundef %1555, i32 noundef %1557) #11
  br label %1576

1559:                                             ; preds = %1537, %1530
  %1560 = load i32, ptr %46, align 4, !tbaa !5
  %1561 = call ptr @__errno_location() #12
  store i32 %1560, ptr %1561, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror(i32 noundef %1565, ptr noundef @.str.3)
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror_debug(i32 noundef %1568, ptr noundef @.str.3)
  %1570 = call ptr @__errno_location() #12
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @strerror(i32 noundef %1571) #11
  %1573 = call ptr @__errno_location() #12
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef @.str.4, i32 noundef %1563, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 80, ptr noundef %1566, ptr noundef %1569, ptr noundef %1572, i32 noundef %1574) #11
  br label %1576

1576:                                             ; preds = %1559, %1542
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

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

1579:                                             ; No predecessors!
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580, %1523
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  store i32 0, ptr %28, align 4
  br label %1584

1584:                                             ; preds = %1583, %677
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #11
  %1585 = load i32, ptr %28, align 4
  switch i32 %1585, label %8154 [
    i32 0, label %1586
  ]

1586:                                             ; preds = %1584
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #11
  store i8 0, ptr %47, align 1, !tbaa !15
  br label %1587

1587:                                             ; preds = %1586
  %1588 = call i32 @s2n_hmac_digest_size(i32 noundef 8, ptr noundef %47)
  %1589 = icmp sgt i32 %1588, -1
  br i1 %1589, label %1591, label %1590

1590:                                             ; preds = %1587
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %2497

1591:                                             ; preds = %1587
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = add nsw i32 %1595, 1
  store i32 %1596, ptr @test_count, align 4, !tbaa !5
  %1597 = load i8, ptr %47, align 1, !tbaa !15
  %1598 = zext i8 %1597 to i32
  %1599 = icmp eq i32 %1598, 20
  br i1 %1599, label %1653, label %1600

1600:                                             ; preds = %1594
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

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

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

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

1631:                                             ; preds = %1609, %1602
  %1632 = load i32, ptr %48, align 4, !tbaa !5
  %1633 = call ptr @__errno_location() #12
  store i32 %1632, ptr %1633, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = load i32, ptr @test_count, align 4, !tbaa !5
  %1636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror(i32 noundef %1637, ptr noundef @.str.3)
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror_debug(i32 noundef %1640, ptr noundef @.str.3)
  %1642 = call ptr @__errno_location() #12
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call ptr @strerror(i32 noundef %1643) #11
  %1645 = call ptr @__errno_location() #12
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1634, ptr noundef @.str.4, i32 noundef %1635, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 87, ptr noundef %1638, ptr noundef %1641, ptr noundef %1644, i32 noundef %1646) #11
  br label %1648

1648:                                             ; preds = %1631, %1614
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1649

1649:                                             ; preds = %1648
  br label %1650

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

1651:                                             ; No predecessors!
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

1653:                                             ; preds = %1652, %1594
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %1660 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %1661 = call i64 @strlen(ptr noundef %1660) #14
  %1662 = trunc i64 %1661 to i32
  %1663 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 8, ptr noundef %1659, i32 noundef %1662)
  %1664 = icmp eq i32 %1663, -1
  br i1 %1664, label %1665, label %1718

1665:                                             ; preds = %1656
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1668 = call ptr @__errno_location() #12
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  store i32 %1669, ptr %49, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @s2n_print_stacktrace(ptr noundef %1670)
  %1672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1673 = trunc i8 %1672 to i1
  br i1 %1673, label %1674, label %1696

1674:                                             ; preds = %1667
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @fileno(ptr noundef %1675) #11
  %1677 = call i32 @isatty(i32 noundef %1676) #11
  %1678 = icmp ne i32 %1677, 0
  br i1 %1678, label %1679, label %1696

1679:                                             ; preds = %1674
  %1680 = load i32, ptr %49, 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.3)
  %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.3)
  %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, i32 noundef %1683, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 88, ptr noundef %1686, ptr noundef %1689, ptr noundef %1692, i32 noundef %1694) #11
  br label %1713

1696:                                             ; preds = %1674, %1667
  %1697 = load i32, ptr %49, align 4, !tbaa !5
  %1698 = call ptr @__errno_location() #12
  store i32 %1697, ptr %1698, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef @.str.3)
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef @.str.3)
  %1707 = call ptr @__errno_location() #12
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef @.str.4, i32 noundef %1700, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 88, ptr noundef %1703, ptr noundef %1706, ptr noundef %1709, i32 noundef %1711) #11
  br label %1713

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

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; No predecessors!
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717, %1656
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %1725 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %1726 = call i64 @strlen(ptr noundef %1725) #14
  %1727 = trunc i64 %1726 to i32
  %1728 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %1724, i32 noundef %1727)
  %1729 = icmp eq i32 %1728, -1
  br i1 %1729, label %1730, label %1783

1730:                                             ; preds = %1721
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

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

1739:                                             ; preds = %1732
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @fileno(ptr noundef %1740) #11
  %1742 = call i32 @isatty(i32 noundef %1741) #11
  %1743 = icmp ne i32 %1742, 0
  br i1 %1743, label %1744, label %1761

1744:                                             ; preds = %1739
  %1745 = load i32, ptr %50, align 4, !tbaa !5
  %1746 = call ptr @__errno_location() #12
  store i32 %1745, ptr %1746, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef @.str.3)
  %1752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @s2n_strerror_debug(i32 noundef %1753, ptr noundef @.str.3)
  %1755 = call ptr @__errno_location() #12
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #11
  %1758 = call ptr @__errno_location() #12
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef @.str, i32 noundef %1748, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 89, ptr noundef %1751, ptr noundef %1754, ptr noundef %1757, i32 noundef %1759) #11
  br label %1778

1761:                                             ; preds = %1739, %1732
  %1762 = load i32, ptr %50, align 4, !tbaa !5
  %1763 = call ptr @__errno_location() #12
  store i32 %1762, ptr %1763, align 4, !tbaa !5
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror(i32 noundef %1767, ptr noundef @.str.3)
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef @.str.3)
  %1772 = call ptr @__errno_location() #12
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @strerror(i32 noundef %1773) #11
  %1775 = call ptr @__errno_location() #12
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1764, ptr noundef @.str.4, i32 noundef %1765, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 89, ptr noundef %1768, ptr noundef %1771, ptr noundef %1774, i32 noundef %1776) #11
  br label %1778

1778:                                             ; preds = %1761, %1744
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

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

1781:                                             ; No predecessors!
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782, %1721
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  br label %1786

1786:                                             ; preds = %1785
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = add nsw i32 %1787, 1
  store i32 %1788, ptr @test_count, align 4, !tbaa !5
  %1789 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %1790 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %1789, i32 noundef 20)
  %1791 = icmp eq i32 %1790, -1
  br i1 %1791, label %1792, label %1845

1792:                                             ; preds = %1786
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1795 = call ptr @__errno_location() #12
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  store i32 %1796, ptr %51, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = call i32 @s2n_print_stacktrace(ptr noundef %1797)
  %1799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1800 = trunc i8 %1799 to i1
  br i1 %1800, label %1801, label %1823

1801:                                             ; preds = %1794
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @fileno(ptr noundef %1802) #11
  %1804 = call i32 @isatty(i32 noundef %1803) #11
  %1805 = icmp ne i32 %1804, 0
  br i1 %1805, label %1806, label %1823

1806:                                             ; preds = %1801
  %1807 = load i32, ptr %51, align 4, !tbaa !5
  %1808 = call ptr @__errno_location() #12
  store i32 %1807, ptr %1808, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror(i32 noundef %1812, ptr noundef @.str.3)
  %1814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call ptr @s2n_strerror_debug(i32 noundef %1815, ptr noundef @.str.3)
  %1817 = call ptr @__errno_location() #12
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @strerror(i32 noundef %1818) #11
  %1820 = call ptr @__errno_location() #12
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1809, ptr noundef @.str, i32 noundef %1810, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 90, ptr noundef %1813, ptr noundef %1816, ptr noundef %1819, i32 noundef %1821) #11
  br label %1840

1823:                                             ; preds = %1801, %1794
  %1824 = load i32, ptr %51, align 4, !tbaa !5
  %1825 = call ptr @__errno_location() #12
  store i32 %1824, ptr %1825, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror(i32 noundef %1829, ptr noundef @.str.3)
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror_debug(i32 noundef %1832, ptr noundef @.str.3)
  %1834 = call ptr @__errno_location() #12
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @strerror(i32 noundef %1835) #11
  %1837 = call ptr @__errno_location() #12
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1826, ptr noundef @.str.4, i32 noundef %1827, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 90, ptr noundef %1830, ptr noundef %1833, ptr noundef %1836, i32 noundef %1838) #11
  br label %1840

1840:                                             ; preds = %1823, %1806
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1841

1841:                                             ; preds = %1840
  br label %1842

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

1843:                                             ; No predecessors!
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844, %1786
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

1848:                                             ; preds = %1847
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = add nsw i32 %1849, 1
  store i32 %1850, ptr @test_count, align 4, !tbaa !5
  %1851 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %1852 = icmp eq i32 %1851, -1
  br i1 %1852, label %1853, label %1906

1853:                                             ; preds = %1848
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

1855:                                             ; preds = %1854
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %1856 = call ptr @__errno_location() #12
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  store i32 %1857, ptr %52, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = call i32 @s2n_print_stacktrace(ptr noundef %1858)
  %1860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1861 = trunc i8 %1860 to i1
  br i1 %1861, label %1862, label %1884

1862:                                             ; preds = %1855
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @fileno(ptr noundef %1863) #11
  %1865 = call i32 @isatty(i32 noundef %1864) #11
  %1866 = icmp ne i32 %1865, 0
  br i1 %1866, label %1867, label %1884

1867:                                             ; preds = %1862
  %1868 = load i32, ptr %52, align 4, !tbaa !5
  %1869 = call ptr @__errno_location() #12
  store i32 %1868, ptr %1869, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror(i32 noundef %1873, ptr noundef @.str.3)
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef @.str.3)
  %1878 = call ptr @__errno_location() #12
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @strerror(i32 noundef %1879) #11
  %1881 = call ptr @__errno_location() #12
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1870, ptr noundef @.str, i32 noundef %1871, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1874, ptr noundef %1877, ptr noundef %1880, i32 noundef %1882) #11
  br label %1901

1884:                                             ; preds = %1862, %1855
  %1885 = load i32, ptr %52, align 4, !tbaa !5
  %1886 = call ptr @__errno_location() #12
  store i32 %1885, ptr %1886, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef @.str.3)
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef @.str.3)
  %1895 = call ptr @__errno_location() #12
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @strerror(i32 noundef %1896) #11
  %1898 = call ptr @__errno_location() #12
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef @.str.4, i32 noundef %1888, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1891, ptr noundef %1894, ptr noundef %1897, i32 noundef %1899) #11
  br label %1901

1901:                                             ; preds = %1884, %1867
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

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

1904:                                             ; No predecessors!
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

1906:                                             ; preds = %1905, %1848
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  store i32 0, ptr %53, align 4, !tbaa !5
  br label %1909

1909:                                             ; preds = %1982, %1908
  %1910 = load i32, ptr %53, align 4, !tbaa !5
  %1911 = icmp slt i32 %1910, 20
  br i1 %1911, label %1913, label %1912

1912:                                             ; preds = %1909
  store i32 178, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1985

1913:                                             ; preds = %1909
  br label %1914

1914:                                             ; preds = %1913
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = load i32, ptr %53, align 4, !tbaa !5
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %1918
  %1920 = load i8, ptr %1919, align 1, !tbaa !15
  %1921 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %1920)
  %1922 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %1921, ptr %1922, align 4
  %1923 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  %1924 = load i32, ptr %1923, align 4
  %1925 = call zeroext i1 @s2n_result_is_ok(i32 %1924)
  br i1 %1925, label %1979, label %1926

1926:                                             ; preds = %1914
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %1929 = call ptr @__errno_location() #12
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  store i32 %1930, ptr %55, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @s2n_print_stacktrace(ptr noundef %1931)
  %1933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1934 = trunc i8 %1933 to i1
  br i1 %1934, label %1935, label %1957

1935:                                             ; preds = %1928
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @fileno(ptr noundef %1936) #11
  %1938 = call i32 @isatty(i32 noundef %1937) #11
  %1939 = icmp ne i32 %1938, 0
  br i1 %1939, label %1940, label %1957

1940:                                             ; preds = %1935
  %1941 = load i32, ptr %55, align 4, !tbaa !5
  %1942 = call ptr @__errno_location() #12
  store i32 %1941, ptr %1942, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef @.str.3)
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror_debug(i32 noundef %1949, ptr noundef @.str.3)
  %1951 = call ptr @__errno_location() #12
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #11
  %1954 = call ptr @__errno_location() #12
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef @.str, i32 noundef %1944, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 94, ptr noundef %1947, ptr noundef %1950, ptr noundef %1953, i32 noundef %1955) #11
  br label %1974

1957:                                             ; preds = %1935, %1928
  %1958 = load i32, ptr %55, align 4, !tbaa !5
  %1959 = call ptr @__errno_location() #12
  store i32 %1958, ptr %1959, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror(i32 noundef %1963, ptr noundef @.str.3)
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror_debug(i32 noundef %1966, ptr noundef @.str.3)
  %1968 = call ptr @__errno_location() #12
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @strerror(i32 noundef %1969) #11
  %1971 = call ptr @__errno_location() #12
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef @.str.4, i32 noundef %1961, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 94, ptr noundef %1964, ptr noundef %1967, ptr noundef %1970, i32 noundef %1972) #11
  br label %1974

1974:                                             ; preds = %1957, %1940
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

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

1977:                                             ; No predecessors!
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978, %1914
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  %1983 = load i32, ptr %53, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr %53, align 4, !tbaa !5
  br label %1909, !llvm.loop !19

1985:                                             ; preds = %1912
  br label %1986

1986:                                             ; preds = %1985
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = add nsw i32 %1987, 1
  store i32 %1988, ptr @test_count, align 4, !tbaa !5
  %1989 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %1990 = call i32 @memcmp(ptr noundef %1989, ptr noundef @.str.25, i64 noundef 40) #14
  %1991 = icmp eq i32 %1990, 0
  br i1 %1991, label %2045, label %1992

1992:                                             ; preds = %1986
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

1994:                                             ; preds = %1993
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %1995 = call ptr @__errno_location() #12
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  store i32 %1996, ptr %56, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @s2n_print_stacktrace(ptr noundef %1997)
  %1999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2000 = trunc i8 %1999 to i1
  br i1 %2000, label %2001, label %2023

2001:                                             ; preds = %1994
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @fileno(ptr noundef %2002) #11
  %2004 = call i32 @isatty(i32 noundef %2003) #11
  %2005 = icmp ne i32 %2004, 0
  br i1 %2005, label %2006, label %2023

2006:                                             ; preds = %2001
  %2007 = load i32, ptr %56, align 4, !tbaa !5
  %2008 = call ptr @__errno_location() #12
  store i32 %2007, ptr %2008, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror(i32 noundef %2012, ptr noundef @.str.3)
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror_debug(i32 noundef %2015, ptr noundef @.str.3)
  %2017 = call ptr @__errno_location() #12
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #11
  %2020 = call ptr @__errno_location() #12
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef @.str, i32 noundef %2010, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 98, ptr noundef %2013, ptr noundef %2016, ptr noundef %2019, i32 noundef %2021) #11
  br label %2040

2023:                                             ; preds = %2001, %1994
  %2024 = load i32, ptr %56, align 4, !tbaa !5
  %2025 = call ptr @__errno_location() #12
  store i32 %2024, ptr %2025, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror(i32 noundef %2029, ptr noundef @.str.3)
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef %2032, ptr noundef @.str.3)
  %2034 = call ptr @__errno_location() #12
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #11
  %2037 = call ptr @__errno_location() #12
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2026, ptr noundef @.str.4, i32 noundef %2027, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 98, ptr noundef %2030, ptr noundef %2033, ptr noundef %2036, i32 noundef %2038) #11
  br label %2040

2040:                                             ; preds = %2023, %2006
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

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

2043:                                             ; No predecessors!
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044, %1986
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = add nsw i32 %2049, 1
  store i32 %2050, ptr @test_count, align 4, !tbaa !5
  %2051 = call i32 @s2n_hmac_reset(ptr noundef %15)
  %2052 = icmp eq i32 %2051, -1
  br i1 %2052, label %2053, label %2106

2053:                                             ; preds = %2048
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2056 = call ptr @__errno_location() #12
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  store i32 %2057, ptr %57, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @s2n_print_stacktrace(ptr noundef %2058)
  %2060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2061 = trunc i8 %2060 to i1
  br i1 %2061, label %2062, label %2084

2062:                                             ; preds = %2055
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @fileno(ptr noundef %2063) #11
  %2065 = call i32 @isatty(i32 noundef %2064) #11
  %2066 = icmp ne i32 %2065, 0
  br i1 %2066, label %2067, label %2084

2067:                                             ; preds = %2062
  %2068 = load i32, ptr %57, align 4, !tbaa !5
  %2069 = call ptr @__errno_location() #12
  store i32 %2068, ptr %2069, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror(i32 noundef %2073, ptr noundef @.str.3)
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef @.str.3)
  %2078 = call ptr @__errno_location() #12
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @strerror(i32 noundef %2079) #11
  %2081 = call ptr @__errno_location() #12
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef @.str, i32 noundef %2071, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 101, ptr noundef %2074, ptr noundef %2077, ptr noundef %2080, i32 noundef %2082) #11
  br label %2101

2084:                                             ; preds = %2062, %2055
  %2085 = load i32, ptr %57, align 4, !tbaa !5
  %2086 = call ptr @__errno_location() #12
  store i32 %2085, ptr %2086, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef @.str.3)
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef @.str.3)
  %2095 = call ptr @__errno_location() #12
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #11
  %2098 = call ptr @__errno_location() #12
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef @.str.4, i32 noundef %2088, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 101, ptr noundef %2091, ptr noundef %2094, ptr noundef %2097, i32 noundef %2099) #11
  br label %2101

2101:                                             ; preds = %2084, %2067
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

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

2104:                                             ; No predecessors!
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105, %2048
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = add nsw i32 %2110, 1
  store i32 %2111, ptr @test_count, align 4, !tbaa !5
  %2112 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %2113 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %2114 = call i64 @strlen(ptr noundef %2113) #14
  %2115 = trunc i64 %2114 to i32
  %2116 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %2112, i32 noundef %2115)
  %2117 = icmp eq i32 %2116, -1
  br i1 %2117, label %2118, label %2171

2118:                                             ; preds = %2109
  br label %2119

2119:                                             ; preds = %2118
  br label %2120

2120:                                             ; preds = %2119
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2121 = call ptr @__errno_location() #12
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  store i32 %2122, ptr %58, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @s2n_print_stacktrace(ptr noundef %2123)
  %2125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2126 = trunc i8 %2125 to i1
  br i1 %2126, label %2127, label %2149

2127:                                             ; preds = %2120
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @fileno(ptr noundef %2128) #11
  %2130 = call i32 @isatty(i32 noundef %2129) #11
  %2131 = icmp ne i32 %2130, 0
  br i1 %2131, label %2132, label %2149

2132:                                             ; preds = %2127
  %2133 = load i32, ptr %58, align 4, !tbaa !5
  %2134 = call ptr @__errno_location() #12
  store i32 %2133, ptr %2134, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror(i32 noundef %2138, ptr noundef @.str.3)
  %2140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror_debug(i32 noundef %2141, ptr noundef @.str.3)
  %2143 = call ptr @__errno_location() #12
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @strerror(i32 noundef %2144) #11
  %2146 = call ptr @__errno_location() #12
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2135, ptr noundef @.str, i32 noundef %2136, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 102, ptr noundef %2139, ptr noundef %2142, ptr noundef %2145, i32 noundef %2147) #11
  br label %2166

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

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

2167:                                             ; preds = %2166
  br label %2168

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

2169:                                             ; No predecessors!
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170, %2109
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = add nsw i32 %2175, 1
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %2178 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %2177, i32 noundef 20)
  %2179 = icmp eq i32 %2178, -1
  br i1 %2179, label %2180, label %2233

2180:                                             ; preds = %2174
  br label %2181

2181:                                             ; preds = %2180
  br label %2182

2182:                                             ; preds = %2181
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2183 = call ptr @__errno_location() #12
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  store i32 %2184, ptr %59, align 4, !tbaa !5
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = call i32 @s2n_print_stacktrace(ptr noundef %2185)
  %2187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2188 = trunc i8 %2187 to i1
  br i1 %2188, label %2189, label %2211

2189:                                             ; preds = %2182
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = call i32 @fileno(ptr noundef %2190) #11
  %2192 = call i32 @isatty(i32 noundef %2191) #11
  %2193 = icmp ne i32 %2192, 0
  br i1 %2193, label %2194, label %2211

2194:                                             ; preds = %2189
  %2195 = load i32, ptr %59, align 4, !tbaa !5
  %2196 = call ptr @__errno_location() #12
  store i32 %2195, ptr %2196, align 4, !tbaa !5
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @s2n_strerror(i32 noundef %2200, ptr noundef @.str.3)
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror_debug(i32 noundef %2203, ptr noundef @.str.3)
  %2205 = call ptr @__errno_location() #12
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @strerror(i32 noundef %2206) #11
  %2208 = call ptr @__errno_location() #12
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2197, ptr noundef @.str, i32 noundef %2198, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 103, ptr noundef %2201, ptr noundef %2204, ptr noundef %2207, i32 noundef %2209) #11
  br label %2228

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

2228:                                             ; preds = %2211, %2194
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

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

2231:                                             ; No predecessors!
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232, %2174
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235
  %2237 = load i32, ptr @test_count, align 4, !tbaa !5
  %2238 = add nsw i32 %2237, 1
  store i32 %2238, ptr @test_count, align 4, !tbaa !5
  %2239 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %2240 = icmp eq i32 %2239, -1
  br i1 %2240, label %2241, label %2294

2241:                                             ; preds = %2236
  br label %2242

2242:                                             ; preds = %2241
  br label %2243

2243:                                             ; preds = %2242
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2244 = call ptr @__errno_location() #12
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  store i32 %2245, ptr %60, align 4, !tbaa !5
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @s2n_print_stacktrace(ptr noundef %2246)
  %2248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2249 = trunc i8 %2248 to i1
  br i1 %2249, label %2250, label %2272

2250:                                             ; preds = %2243
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = call i32 @fileno(ptr noundef %2251) #11
  %2253 = call i32 @isatty(i32 noundef %2252) #11
  %2254 = icmp ne i32 %2253, 0
  br i1 %2254, label %2255, label %2272

2255:                                             ; preds = %2250
  %2256 = load i32, ptr %60, align 4, !tbaa !5
  %2257 = call ptr @__errno_location() #12
  store i32 %2256, ptr %2257, align 4, !tbaa !5
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = load i32, ptr @test_count, align 4, !tbaa !5
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror(i32 noundef %2261, ptr noundef @.str.3)
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef @.str.3)
  %2266 = call ptr @__errno_location() #12
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @strerror(i32 noundef %2267) #11
  %2269 = call ptr @__errno_location() #12
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2258, ptr noundef @.str, i32 noundef %2259, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 105, ptr noundef %2262, ptr noundef %2265, ptr noundef %2268, i32 noundef %2270) #11
  br label %2289

2272:                                             ; preds = %2250, %2243
  %2273 = load i32, ptr %60, align 4, !tbaa !5
  %2274 = call ptr @__errno_location() #12
  store i32 %2273, ptr %2274, align 4, !tbaa !5
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror(i32 noundef %2278, ptr noundef @.str.3)
  %2280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @s2n_strerror_debug(i32 noundef %2281, ptr noundef @.str.3)
  %2283 = call ptr @__errno_location() #12
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @strerror(i32 noundef %2284) #11
  %2286 = call ptr @__errno_location() #12
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2275, ptr noundef @.str.4, i32 noundef %2276, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 105, ptr noundef %2279, ptr noundef %2282, ptr noundef %2285, i32 noundef %2287) #11
  br label %2289

2289:                                             ; preds = %2272, %2255
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

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

2292:                                             ; No predecessors!
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293, %2236
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  store i32 0, ptr %61, align 4, !tbaa !5
  br label %2297

2297:                                             ; preds = %2370, %2296
  %2298 = load i32, ptr %61, align 4, !tbaa !5
  %2299 = icmp slt i32 %2298, 20
  br i1 %2299, label %2301, label %2300

2300:                                             ; preds = %2297
  store i32 217, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2373

2301:                                             ; preds = %2297
  br label %2302

2302:                                             ; preds = %2301
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = add nsw i32 %2303, 1
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = load i32, ptr %61, align 4, !tbaa !5
  %2306 = sext i32 %2305 to i64
  %2307 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %2306
  %2308 = load i8, ptr %2307, align 1, !tbaa !15
  %2309 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %2308)
  %2310 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  store i32 %2309, ptr %2310, align 4
  %2311 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  %2312 = load i32, ptr %2311, align 4
  %2313 = call zeroext i1 @s2n_result_is_ok(i32 %2312)
  br i1 %2313, label %2367, label %2314

2314:                                             ; preds = %2302
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2317 = call ptr @__errno_location() #12
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  store i32 %2318, ptr %63, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = call i32 @s2n_print_stacktrace(ptr noundef %2319)
  %2321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2322 = trunc i8 %2321 to i1
  br i1 %2322, label %2323, label %2345

2323:                                             ; preds = %2316
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @fileno(ptr noundef %2324) #11
  %2326 = call i32 @isatty(i32 noundef %2325) #11
  %2327 = icmp ne i32 %2326, 0
  br i1 %2327, label %2328, label %2345

2328:                                             ; preds = %2323
  %2329 = load i32, ptr %63, align 4, !tbaa !5
  %2330 = call ptr @__errno_location() #12
  store i32 %2329, ptr %2330, align 4, !tbaa !5
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror(i32 noundef %2334, ptr noundef @.str.3)
  %2336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror_debug(i32 noundef %2337, ptr noundef @.str.3)
  %2339 = call ptr @__errno_location() #12
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @strerror(i32 noundef %2340) #11
  %2342 = call ptr @__errno_location() #12
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2331, ptr noundef @.str, i32 noundef %2332, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 107, ptr noundef %2335, ptr noundef %2338, ptr noundef %2341, i32 noundef %2343) #11
  br label %2362

2345:                                             ; preds = %2323, %2316
  %2346 = load i32, ptr %63, align 4, !tbaa !5
  %2347 = call ptr @__errno_location() #12
  store i32 %2346, ptr %2347, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror(i32 noundef %2351, ptr noundef @.str.3)
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef @.str.3)
  %2356 = call ptr @__errno_location() #12
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @strerror(i32 noundef %2357) #11
  %2359 = call ptr @__errno_location() #12
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2348, ptr noundef @.str.4, i32 noundef %2349, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 107, ptr noundef %2352, ptr noundef %2355, ptr noundef %2358, i32 noundef %2360) #11
  br label %2362

2362:                                             ; preds = %2345, %2328
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

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

2365:                                             ; No predecessors!
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366, %2302
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  %2371 = load i32, ptr %61, align 4, !tbaa !5
  %2372 = add nsw i32 %2371, 1
  store i32 %2372, ptr %61, align 4, !tbaa !5
  br label %2297, !llvm.loop !20

2373:                                             ; preds = %2300
  br label %2374

2374:                                             ; preds = %2373
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = add nsw i32 %2375, 1
  store i32 %2376, ptr @test_count, align 4, !tbaa !5
  %2377 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %2378 = call i32 @memcmp(ptr noundef %2377, ptr noundef @.str.25, i64 noundef 40) #14
  %2379 = icmp eq i32 %2378, 0
  br i1 %2379, label %2433, label %2380

2380:                                             ; preds = %2374
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

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

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

2394:                                             ; preds = %2389
  %2395 = load i32, ptr %64, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #12
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.3)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.3)
  %2405 = call ptr @__errno_location() #12
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #11
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str, i32 noundef %2398, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 111, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2428

2411:                                             ; preds = %2389, %2382
  %2412 = load i32, ptr %64, align 4, !tbaa !5
  %2413 = call ptr @__errno_location() #12
  store i32 %2412, ptr %2413, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef @.str.3)
  %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_debug(i32 noundef %2420, ptr noundef @.str.3)
  %2422 = call ptr @__errno_location() #12
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #11
  %2425 = call ptr @__errno_location() #12
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef @.str.4, i32 noundef %2415, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 111, ptr noundef %2418, ptr noundef %2421, ptr noundef %2424, i32 noundef %2426) #11
  br label %2428

2428:                                             ; preds = %2411, %2394
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

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

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432, %2374
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = add nsw i32 %2437, 1
  store i32 %2438, ptr @test_count, align 4, !tbaa !5
  %2439 = call i32 @s2n_hmac_reset(ptr noundef %15)
  %2440 = icmp eq i32 %2439, -1
  br i1 %2440, label %2441, label %2494

2441:                                             ; preds = %2436
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

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

2450:                                             ; preds = %2443
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = call i32 @fileno(ptr noundef %2451) #11
  %2453 = call i32 @isatty(i32 noundef %2452) #11
  %2454 = icmp ne i32 %2453, 0
  br i1 %2454, label %2455, label %2472

2455:                                             ; preds = %2450
  %2456 = load i32, ptr %65, align 4, !tbaa !5
  %2457 = call ptr @__errno_location() #12
  store i32 %2456, ptr %2457, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = load i32, ptr @test_count, align 4, !tbaa !5
  %2460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @s2n_strerror(i32 noundef %2461, ptr noundef @.str.3)
  %2463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef @.str.3)
  %2466 = call ptr @__errno_location() #12
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @strerror(i32 noundef %2467) #11
  %2469 = call ptr @__errno_location() #12
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2458, ptr noundef @.str, i32 noundef %2459, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 113, ptr noundef %2462, ptr noundef %2465, ptr noundef %2468, i32 noundef %2470) #11
  br label %2489

2472:                                             ; preds = %2450, %2443
  %2473 = load i32, ptr %65, align 4, !tbaa !5
  %2474 = call ptr @__errno_location() #12
  store i32 %2473, ptr %2474, align 4, !tbaa !5
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = load i32, ptr @test_count, align 4, !tbaa !5
  %2477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call ptr @s2n_strerror(i32 noundef %2478, ptr noundef @.str.3)
  %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_debug(i32 noundef %2481, ptr noundef @.str.3)
  %2483 = call ptr @__errno_location() #12
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @strerror(i32 noundef %2484) #11
  %2486 = call ptr @__errno_location() #12
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2475, ptr noundef @.str.4, i32 noundef %2476, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 113, ptr noundef %2479, ptr noundef %2482, ptr noundef %2485, i32 noundef %2487) #11
  br label %2489

2489:                                             ; preds = %2472, %2455
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

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

2492:                                             ; No predecessors!
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

2494:                                             ; preds = %2493, %2436
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

2496:                                             ; preds = %2495
  store i32 0, ptr %28, align 4
  br label %2497

2497:                                             ; preds = %2496, %1590
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #11
  %2498 = load i32, ptr %28, align 4
  switch i32 %2498, label %8154 [
    i32 0, label %2499
  ]

2499:                                             ; preds = %2497
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #11
  store i8 0, ptr %66, align 1, !tbaa !15
  br label %2500

2500:                                             ; preds = %2499
  %2501 = call i32 @s2n_hmac_digest_size(i32 noundef 1, ptr noundef %66)
  %2502 = icmp sgt i32 %2501, -1
  br i1 %2502, label %2504, label %2503

2503:                                             ; preds = %2500
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %3022

2504:                                             ; preds = %2500
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506
  %2508 = load i32, ptr @test_count, align 4, !tbaa !5
  %2509 = add nsw i32 %2508, 1
  store i32 %2509, ptr @test_count, align 4, !tbaa !5
  %2510 = load i8, ptr %66, align 1, !tbaa !15
  %2511 = zext i8 %2510 to i32
  %2512 = icmp eq i32 %2511, 16
  br i1 %2512, label %2566, label %2513

2513:                                             ; preds = %2507
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2516 = call ptr @__errno_location() #12
  %2517 = load i32, ptr %2516, align 4, !tbaa !5
  store i32 %2517, ptr %67, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @s2n_print_stacktrace(ptr noundef %2518)
  %2520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2521 = trunc i8 %2520 to i1
  br i1 %2521, label %2522, label %2544

2522:                                             ; preds = %2515
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @fileno(ptr noundef %2523) #11
  %2525 = call i32 @isatty(i32 noundef %2524) #11
  %2526 = icmp ne i32 %2525, 0
  br i1 %2526, label %2527, label %2544

2527:                                             ; preds = %2522
  %2528 = load i32, ptr %67, align 4, !tbaa !5
  %2529 = call ptr @__errno_location() #12
  store i32 %2528, ptr %2529, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = load i32, ptr @test_count, align 4, !tbaa !5
  %2532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef @.str.3)
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef @.str.3)
  %2538 = call ptr @__errno_location() #12
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #11
  %2541 = call ptr @__errno_location() #12
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2530, ptr noundef @.str, i32 noundef %2531, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 120, ptr noundef %2534, ptr noundef %2537, ptr noundef %2540, i32 noundef %2542) #11
  br label %2561

2544:                                             ; preds = %2522, %2515
  %2545 = load i32, ptr %67, align 4, !tbaa !5
  %2546 = call ptr @__errno_location() #12
  store i32 %2545, ptr %2546, align 4, !tbaa !5
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = load i32, ptr @test_count, align 4, !tbaa !5
  %2549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror(i32 noundef %2550, ptr noundef @.str.3)
  %2552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call ptr @s2n_strerror_debug(i32 noundef %2553, ptr noundef @.str.3)
  %2555 = call ptr @__errno_location() #12
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @strerror(i32 noundef %2556) #11
  %2558 = call ptr @__errno_location() #12
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2547, ptr noundef @.str.4, i32 noundef %2548, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 120, ptr noundef %2551, ptr noundef %2554, ptr noundef %2557, i32 noundef %2559) #11
  br label %2561

2561:                                             ; preds = %2544, %2527
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

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

2564:                                             ; No predecessors!
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565, %2507
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = add nsw i32 %2570, 1
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %2573 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %2574 = call i64 @strlen(ptr noundef %2573) #14
  %2575 = trunc i64 %2574 to i32
  %2576 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 1, ptr noundef %2572, i32 noundef %2575)
  %2577 = icmp eq i32 %2576, -1
  br i1 %2577, label %2578, label %2631

2578:                                             ; preds = %2569
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2581 = call ptr @__errno_location() #12
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  store i32 %2582, ptr %68, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583)
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc i8 %2585 to i1
  br i1 %2586, label %2587, label %2609

2587:                                             ; preds = %2580
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #11
  %2590 = call i32 @isatty(i32 noundef %2589) #11
  %2591 = icmp ne i32 %2590, 0
  br i1 %2591, label %2592, label %2609

2592:                                             ; preds = %2587
  %2593 = load i32, ptr %68, align 4, !tbaa !5
  %2594 = call ptr @__errno_location() #12
  store i32 %2593, ptr %2594, align 4, !tbaa !5
  %2595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror(i32 noundef %2598, ptr noundef @.str.3)
  %2600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror_debug(i32 noundef %2601, ptr noundef @.str.3)
  %2603 = call ptr @__errno_location() #12
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #11
  %2606 = call ptr @__errno_location() #12
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2595, ptr noundef @.str, i32 noundef %2596, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 121, ptr noundef %2599, ptr noundef %2602, ptr noundef %2605, i32 noundef %2607) #11
  br label %2626

2609:                                             ; preds = %2587, %2580
  %2610 = load i32, ptr %68, align 4, !tbaa !5
  %2611 = call ptr @__errno_location() #12
  store i32 %2610, ptr %2611, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef @.str.3)
  %2617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef @.str.3)
  %2620 = call ptr @__errno_location() #12
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @strerror(i32 noundef %2621) #11
  %2623 = call ptr @__errno_location() #12
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2612, ptr noundef @.str.4, i32 noundef %2613, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 121, ptr noundef %2616, ptr noundef %2619, ptr noundef %2622, i32 noundef %2624) #11
  br label %2626

2626:                                             ; preds = %2609, %2592
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

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

2629:                                             ; No predecessors!
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

2631:                                             ; preds = %2630, %2569
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %2638 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %2639 = call i64 @strlen(ptr noundef %2638) #14
  %2640 = trunc i64 %2639 to i32
  %2641 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %2637, i32 noundef %2640)
  %2642 = icmp eq i32 %2641, -1
  br i1 %2642, label %2643, label %2696

2643:                                             ; preds = %2634
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

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

2652:                                             ; preds = %2645
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = call i32 @fileno(ptr noundef %2653) #11
  %2655 = call i32 @isatty(i32 noundef %2654) #11
  %2656 = icmp ne i32 %2655, 0
  br i1 %2656, label %2657, label %2674

2657:                                             ; preds = %2652
  %2658 = load i32, ptr %69, align 4, !tbaa !5
  %2659 = call ptr @__errno_location() #12
  store i32 %2658, ptr %2659, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror(i32 noundef %2663, ptr noundef @.str.3)
  %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_debug(i32 noundef %2666, ptr noundef @.str.3)
  %2668 = call ptr @__errno_location() #12
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @strerror(i32 noundef %2669) #11
  %2671 = call ptr @__errno_location() #12
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2660, ptr noundef @.str, i32 noundef %2661, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 122, ptr noundef %2664, ptr noundef %2667, ptr noundef %2670, i32 noundef %2672) #11
  br label %2691

2674:                                             ; preds = %2652, %2645
  %2675 = load i32, ptr %69, align 4, !tbaa !5
  %2676 = call ptr @__errno_location() #12
  store i32 %2675, ptr %2676, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef @.str.3)
  %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_debug(i32 noundef %2683, ptr noundef @.str.3)
  %2685 = call ptr @__errno_location() #12
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #11
  %2688 = call ptr @__errno_location() #12
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef @.str.4, i32 noundef %2678, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 122, ptr noundef %2681, ptr noundef %2684, ptr noundef %2687, i32 noundef %2689) #11
  br label %2691

2691:                                             ; preds = %2674, %2657
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

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

2694:                                             ; No predecessors!
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695, %2634
  br label %2697

2697:                                             ; preds = %2696
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = add nsw i32 %2700, 1
  store i32 %2701, ptr @test_count, align 4, !tbaa !5
  %2702 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %2703 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %2702, i32 noundef 16)
  %2704 = icmp eq i32 %2703, -1
  br i1 %2704, label %2705, label %2758

2705:                                             ; preds = %2699
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

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

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

2719:                                             ; preds = %2714
  %2720 = load i32, ptr %70, align 4, !tbaa !5
  %2721 = call ptr @__errno_location() #12
  store i32 %2720, ptr %2721, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @s2n_strerror(i32 noundef %2725, ptr noundef @.str.3)
  %2727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror_debug(i32 noundef %2728, ptr noundef @.str.3)
  %2730 = call ptr @__errno_location() #12
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @strerror(i32 noundef %2731) #11
  %2733 = call ptr @__errno_location() #12
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2722, ptr noundef @.str, i32 noundef %2723, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 123, ptr noundef %2726, ptr noundef %2729, ptr noundef %2732, i32 noundef %2734) #11
  br label %2753

2736:                                             ; preds = %2714, %2707
  %2737 = load i32, ptr %70, align 4, !tbaa !5
  %2738 = call ptr @__errno_location() #12
  store i32 %2737, ptr %2738, align 4, !tbaa !5
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = load i32, ptr @test_count, align 4, !tbaa !5
  %2741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call ptr @s2n_strerror(i32 noundef %2742, ptr noundef @.str.3)
  %2744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror_debug(i32 noundef %2745, ptr noundef @.str.3)
  %2747 = call ptr @__errno_location() #12
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @strerror(i32 noundef %2748) #11
  %2750 = call ptr @__errno_location() #12
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2739, ptr noundef @.str.4, i32 noundef %2740, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 123, ptr noundef %2743, ptr noundef %2746, ptr noundef %2749, i32 noundef %2751) #11
  br label %2753

2753:                                             ; preds = %2736, %2719
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

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

2756:                                             ; No predecessors!
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757, %2699
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = add nsw i32 %2762, 1
  store i32 %2763, ptr @test_count, align 4, !tbaa !5
  %2764 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %2765 = icmp eq i32 %2764, -1
  br i1 %2765, label %2766, label %2819

2766:                                             ; preds = %2761
  br label %2767

2767:                                             ; preds = %2766
  br label %2768

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

2775:                                             ; preds = %2768
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @fileno(ptr noundef %2776) #11
  %2778 = call i32 @isatty(i32 noundef %2777) #11
  %2779 = icmp ne i32 %2778, 0
  br i1 %2779, label %2780, label %2797

2780:                                             ; preds = %2775
  %2781 = load i32, ptr %71, align 4, !tbaa !5
  %2782 = call ptr @__errno_location() #12
  store i32 %2781, ptr %2782, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef @.str.3)
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef @.str.3)
  %2791 = call ptr @__errno_location() #12
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #11
  %2794 = call ptr @__errno_location() #12
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef @.str, i32 noundef %2784, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 125, ptr noundef %2787, ptr noundef %2790, ptr noundef %2793, i32 noundef %2795) #11
  br label %2814

2797:                                             ; preds = %2775, %2768
  %2798 = load i32, ptr %71, align 4, !tbaa !5
  %2799 = call ptr @__errno_location() #12
  store i32 %2798, ptr %2799, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef @.str.3)
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef @.str.3)
  %2808 = call ptr @__errno_location() #12
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @strerror(i32 noundef %2809) #11
  %2811 = call ptr @__errno_location() #12
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef @.str.4, i32 noundef %2801, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 125, ptr noundef %2804, ptr noundef %2807, ptr noundef %2810, i32 noundef %2812) #11
  br label %2814

2814:                                             ; preds = %2797, %2780
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2815

2815:                                             ; preds = %2814
  br label %2816

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

2817:                                             ; No predecessors!
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818, %2761
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  store i32 0, ptr %72, align 4, !tbaa !5
  br label %2822

2822:                                             ; preds = %2895, %2821
  %2823 = load i32, ptr %72, align 4, !tbaa !5
  %2824 = icmp slt i32 %2823, 16
  br i1 %2824, label %2826, label %2825

2825:                                             ; preds = %2822
  store i32 270, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2898

2826:                                             ; preds = %2822
  br label %2827

2827:                                             ; preds = %2826
  %2828 = load i32, ptr @test_count, align 4, !tbaa !5
  %2829 = add nsw i32 %2828, 1
  store i32 %2829, ptr @test_count, align 4, !tbaa !5
  %2830 = load i32, ptr %72, align 4, !tbaa !5
  %2831 = sext i32 %2830 to i64
  %2832 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %2831
  %2833 = load i8, ptr %2832, align 1, !tbaa !15
  %2834 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %2833)
  %2835 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2834, ptr %2835, align 4
  %2836 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %2837 = load i32, ptr %2836, align 4
  %2838 = call zeroext i1 @s2n_result_is_ok(i32 %2837)
  br i1 %2838, label %2892, label %2839

2839:                                             ; preds = %2827
  br label %2840

2840:                                             ; preds = %2839
  br label %2841

2841:                                             ; preds = %2840
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %2842 = call ptr @__errno_location() #12
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  store i32 %2843, ptr %74, align 4, !tbaa !5
  %2844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2845 = call i32 @s2n_print_stacktrace(ptr noundef %2844)
  %2846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2847 = trunc i8 %2846 to i1
  br i1 %2847, label %2848, label %2870

2848:                                             ; preds = %2841
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @fileno(ptr noundef %2849) #11
  %2851 = call i32 @isatty(i32 noundef %2850) #11
  %2852 = icmp ne i32 %2851, 0
  br i1 %2852, label %2853, label %2870

2853:                                             ; preds = %2848
  %2854 = load i32, ptr %74, align 4, !tbaa !5
  %2855 = call ptr @__errno_location() #12
  store i32 %2854, ptr %2855, align 4, !tbaa !5
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = load i32, ptr @test_count, align 4, !tbaa !5
  %2858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call ptr @s2n_strerror(i32 noundef %2859, ptr noundef @.str.3)
  %2861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call ptr @s2n_strerror_debug(i32 noundef %2862, ptr noundef @.str.3)
  %2864 = call ptr @__errno_location() #12
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @strerror(i32 noundef %2865) #11
  %2867 = call ptr @__errno_location() #12
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2856, ptr noundef @.str, i32 noundef %2857, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 127, ptr noundef %2860, ptr noundef %2863, ptr noundef %2866, i32 noundef %2868) #11
  br label %2887

2870:                                             ; preds = %2848, %2841
  %2871 = load i32, ptr %74, align 4, !tbaa !5
  %2872 = call ptr @__errno_location() #12
  store i32 %2871, ptr %2872, align 4, !tbaa !5
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = load i32, ptr @test_count, align 4, !tbaa !5
  %2875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call ptr @s2n_strerror(i32 noundef %2876, ptr noundef @.str.3)
  %2878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2879 = load i32, ptr %2878, align 4, !tbaa !5
  %2880 = call ptr @s2n_strerror_debug(i32 noundef %2879, ptr noundef @.str.3)
  %2881 = call ptr @__errno_location() #12
  %2882 = load i32, ptr %2881, align 4, !tbaa !5
  %2883 = call ptr @strerror(i32 noundef %2882) #11
  %2884 = call ptr @__errno_location() #12
  %2885 = load i32, ptr %2884, align 4, !tbaa !5
  %2886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2873, ptr noundef @.str.4, i32 noundef %2874, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 127, ptr noundef %2877, ptr noundef %2880, ptr noundef %2883, i32 noundef %2885) #11
  br label %2887

2887:                                             ; preds = %2870, %2853
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2888

2888:                                             ; preds = %2887
  br label %2889

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

2890:                                             ; No predecessors!
  br label %2891

2891:                                             ; preds = %2890
  br label %2892

2892:                                             ; preds = %2891, %2827
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  %2896 = load i32, ptr %72, align 4, !tbaa !5
  %2897 = add nsw i32 %2896, 1
  store i32 %2897, ptr %72, align 4, !tbaa !5
  br label %2822, !llvm.loop !21

2898:                                             ; preds = %2825
  br label %2899

2899:                                             ; preds = %2898
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %2903 = call i32 @memcmp(ptr noundef %2902, ptr noundef @.str.29, i64 noundef 32) #14
  %2904 = icmp eq i32 %2903, 0
  br i1 %2904, label %2958, label %2905

2905:                                             ; preds = %2899
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

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

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

2919:                                             ; preds = %2914
  %2920 = load i32, ptr %75, align 4, !tbaa !5
  %2921 = call ptr @__errno_location() #12
  store i32 %2920, ptr %2921, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror(i32 noundef %2925, ptr noundef @.str.3)
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef @.str.3)
  %2930 = call ptr @__errno_location() #12
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @strerror(i32 noundef %2931) #11
  %2933 = call ptr @__errno_location() #12
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2922, ptr noundef @.str, i32 noundef %2923, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 131, ptr noundef %2926, ptr noundef %2929, ptr noundef %2932, i32 noundef %2934) #11
  br label %2953

2936:                                             ; preds = %2914, %2907
  %2937 = load i32, ptr %75, align 4, !tbaa !5
  %2938 = call ptr @__errno_location() #12
  store i32 %2937, ptr %2938, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @s2n_strerror(i32 noundef %2942, ptr noundef @.str.3)
  %2944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror_debug(i32 noundef %2945, ptr noundef @.str.3)
  %2947 = call ptr @__errno_location() #12
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call ptr @strerror(i32 noundef %2948) #11
  %2950 = call ptr @__errno_location() #12
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef @.str.4, i32 noundef %2940, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 131, ptr noundef %2943, ptr noundef %2946, ptr noundef %2949, i32 noundef %2951) #11
  br label %2953

2953:                                             ; preds = %2936, %2919
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

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

2956:                                             ; No predecessors!
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957, %2899
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

2961:                                             ; preds = %2960
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = add nsw i32 %2962, 1
  store i32 %2963, ptr @test_count, align 4, !tbaa !5
  %2964 = call i32 @s2n_hmac_reset(ptr noundef %15)
  %2965 = icmp eq i32 %2964, -1
  br i1 %2965, label %2966, label %3019

2966:                                             ; preds = %2961
  br label %2967

2967:                                             ; preds = %2966
  br label %2968

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

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

2980:                                             ; preds = %2975
  %2981 = load i32, ptr %76, align 4, !tbaa !5
  %2982 = call ptr @__errno_location() #12
  store i32 %2981, ptr %2982, align 4, !tbaa !5
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = load i32, ptr @test_count, align 4, !tbaa !5
  %2985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @s2n_strerror(i32 noundef %2986, ptr noundef @.str.3)
  %2988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror_debug(i32 noundef %2989, ptr noundef @.str.3)
  %2991 = call ptr @__errno_location() #12
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @strerror(i32 noundef %2992) #11
  %2994 = call ptr @__errno_location() #12
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2983, ptr noundef @.str, i32 noundef %2984, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 133, ptr noundef %2987, ptr noundef %2990, ptr noundef %2993, i32 noundef %2995) #11
  br label %3014

2997:                                             ; preds = %2975, %2968
  %2998 = load i32, ptr %76, align 4, !tbaa !5
  %2999 = call ptr @__errno_location() #12
  store i32 %2998, ptr %2999, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror(i32 noundef %3003, ptr noundef @.str.3)
  %3005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror_debug(i32 noundef %3006, ptr noundef @.str.3)
  %3008 = call ptr @__errno_location() #12
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call ptr @strerror(i32 noundef %3009) #11
  %3011 = call ptr @__errno_location() #12
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3000, ptr noundef @.str.4, i32 noundef %3001, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 133, ptr noundef %3004, ptr noundef %3007, ptr noundef %3010, i32 noundef %3012) #11
  br label %3014

3014:                                             ; preds = %2997, %2980
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

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

3017:                                             ; No predecessors!
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

3019:                                             ; preds = %3018, %2961
  br label %3020

3020:                                             ; preds = %3019
  br label %3021

3021:                                             ; preds = %3020
  store i32 0, ptr %28, align 4
  br label %3022

3022:                                             ; preds = %3021, %2503
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #11
  %3023 = load i32, ptr %28, align 4
  switch i32 %3023, label %8154 [
    i32 0, label %3024
  ]

3024:                                             ; preds = %3022
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #11
  store i8 0, ptr %77, align 1, !tbaa !15
  br label %3025

3025:                                             ; preds = %3024
  %3026 = call i32 @s2n_hmac_digest_size(i32 noundef 2, ptr noundef %77)
  %3027 = icmp sgt i32 %3026, -1
  br i1 %3027, label %3029, label %3028

3028:                                             ; preds = %3025
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %8153

3029:                                             ; preds = %3025
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3031
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = add nsw i32 %3033, 1
  store i32 %3034, ptr @test_count, align 4, !tbaa !5
  %3035 = load i8, ptr %77, align 1, !tbaa !15
  %3036 = zext i8 %3035 to i32
  %3037 = icmp eq i32 %3036, 20
  br i1 %3037, label %3091, label %3038

3038:                                             ; preds = %3032
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3041 = call ptr @__errno_location() #12
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  store i32 %3042, ptr %78, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = call i32 @s2n_print_stacktrace(ptr noundef %3043)
  %3045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3046 = trunc i8 %3045 to i1
  br i1 %3046, label %3047, label %3069

3047:                                             ; preds = %3040
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @fileno(ptr noundef %3048) #11
  %3050 = call i32 @isatty(i32 noundef %3049) #11
  %3051 = icmp ne i32 %3050, 0
  br i1 %3051, label %3052, label %3069

3052:                                             ; preds = %3047
  %3053 = load i32, ptr %78, align 4, !tbaa !5
  %3054 = call ptr @__errno_location() #12
  store i32 %3053, ptr %3054, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror(i32 noundef %3058, ptr noundef @.str.3)
  %3060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror_debug(i32 noundef %3061, ptr noundef @.str.3)
  %3063 = call ptr @__errno_location() #12
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call ptr @strerror(i32 noundef %3064) #11
  %3066 = call ptr @__errno_location() #12
  %3067 = load i32, ptr %3066, align 4, !tbaa !5
  %3068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3055, ptr noundef @.str, i32 noundef %3056, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 139, ptr noundef %3059, ptr noundef %3062, ptr noundef %3065, i32 noundef %3067) #11
  br label %3086

3069:                                             ; preds = %3047, %3040
  %3070 = load i32, ptr %78, align 4, !tbaa !5
  %3071 = call ptr @__errno_location() #12
  store i32 %3070, ptr %3071, align 4, !tbaa !5
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror(i32 noundef %3075, ptr noundef @.str.3)
  %3077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3078 = load i32, ptr %3077, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror_debug(i32 noundef %3078, ptr noundef @.str.3)
  %3080 = call ptr @__errno_location() #12
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @strerror(i32 noundef %3081) #11
  %3083 = call ptr @__errno_location() #12
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3072, ptr noundef @.str.4, i32 noundef %3073, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 139, ptr noundef %3076, ptr noundef %3079, ptr noundef %3082, i32 noundef %3084) #11
  br label %3086

3086:                                             ; preds = %3069, %3052
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3087

3087:                                             ; preds = %3086
  br label %3088

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

3089:                                             ; No predecessors!
  br label %3090

3090:                                             ; preds = %3089
  br label %3091

3091:                                             ; preds = %3090, %3032
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092
  br label %3094

3094:                                             ; preds = %3093
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = add nsw i32 %3095, 1
  store i32 %3096, ptr @test_count, align 4, !tbaa !5
  %3097 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %3098 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %3099 = call i64 @strlen(ptr noundef %3098) #14
  %3100 = trunc i64 %3099 to i32
  %3101 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 2, ptr noundef %3097, i32 noundef %3100)
  %3102 = icmp eq i32 %3101, -1
  br i1 %3102, label %3103, label %3156

3103:                                             ; preds = %3094
  br label %3104

3104:                                             ; preds = %3103
  br label %3105

3105:                                             ; preds = %3104
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3106 = call ptr @__errno_location() #12
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  store i32 %3107, ptr %79, align 4, !tbaa !5
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @s2n_print_stacktrace(ptr noundef %3108)
  %3110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3111 = trunc i8 %3110 to i1
  br i1 %3111, label %3112, label %3134

3112:                                             ; preds = %3105
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = call i32 @fileno(ptr noundef %3113) #11
  %3115 = call i32 @isatty(i32 noundef %3114) #11
  %3116 = icmp ne i32 %3115, 0
  br i1 %3116, label %3117, label %3134

3117:                                             ; preds = %3112
  %3118 = load i32, ptr %79, align 4, !tbaa !5
  %3119 = call ptr @__errno_location() #12
  store i32 %3118, ptr %3119, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = load i32, ptr @test_count, align 4, !tbaa !5
  %3122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call ptr @s2n_strerror(i32 noundef %3123, ptr noundef @.str.3)
  %3125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call ptr @s2n_strerror_debug(i32 noundef %3126, ptr noundef @.str.3)
  %3128 = call ptr @__errno_location() #12
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  %3130 = call ptr @strerror(i32 noundef %3129) #11
  %3131 = call ptr @__errno_location() #12
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3120, ptr noundef @.str, i32 noundef %3121, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 140, ptr noundef %3124, ptr noundef %3127, ptr noundef %3130, i32 noundef %3132) #11
  br label %3151

3134:                                             ; preds = %3112, %3105
  %3135 = load i32, ptr %79, align 4, !tbaa !5
  %3136 = call ptr @__errno_location() #12
  store i32 %3135, ptr %3136, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = load i32, ptr @test_count, align 4, !tbaa !5
  %3139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror(i32 noundef %3140, ptr noundef @.str.3)
  %3142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3143 = load i32, ptr %3142, align 4, !tbaa !5
  %3144 = call ptr @s2n_strerror_debug(i32 noundef %3143, ptr noundef @.str.3)
  %3145 = call ptr @__errno_location() #12
  %3146 = load i32, ptr %3145, align 4, !tbaa !5
  %3147 = call ptr @strerror(i32 noundef %3146) #11
  %3148 = call ptr @__errno_location() #12
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3137, ptr noundef @.str.4, i32 noundef %3138, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 140, ptr noundef %3141, ptr noundef %3144, ptr noundef %3147, i32 noundef %3149) #11
  br label %3151

3151:                                             ; preds = %3134, %3117
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3152

3152:                                             ; preds = %3151
  br label %3153

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

3154:                                             ; No predecessors!
  br label %3155

3155:                                             ; preds = %3154
  br label %3156

3156:                                             ; preds = %3155, %3094
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157
  br label %3159

3159:                                             ; preds = %3158
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = add nsw i32 %3160, 1
  store i32 %3161, ptr @test_count, align 4, !tbaa !5
  %3162 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %3163 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %3164 = call i64 @strlen(ptr noundef %3163) #14
  %3165 = trunc i64 %3164 to i32
  %3166 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %3162, i32 noundef %3165)
  %3167 = icmp eq i32 %3166, -1
  br i1 %3167, label %3168, label %3221

3168:                                             ; preds = %3159
  br label %3169

3169:                                             ; preds = %3168
  br label %3170

3170:                                             ; preds = %3169
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3171 = call ptr @__errno_location() #12
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  store i32 %3172, ptr %80, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = call i32 @s2n_print_stacktrace(ptr noundef %3173)
  %3175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3176 = trunc i8 %3175 to i1
  br i1 %3176, label %3177, label %3199

3177:                                             ; preds = %3170
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @fileno(ptr noundef %3178) #11
  %3180 = call i32 @isatty(i32 noundef %3179) #11
  %3181 = icmp ne i32 %3180, 0
  br i1 %3181, label %3182, label %3199

3182:                                             ; preds = %3177
  %3183 = load i32, ptr %80, align 4, !tbaa !5
  %3184 = call ptr @__errno_location() #12
  store i32 %3183, ptr %3184, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef @.str.3)
  %3190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef @.str.3)
  %3193 = call ptr @__errno_location() #12
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @strerror(i32 noundef %3194) #11
  %3196 = call ptr @__errno_location() #12
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef @.str, i32 noundef %3186, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 141, ptr noundef %3189, ptr noundef %3192, ptr noundef %3195, i32 noundef %3197) #11
  br label %3216

3199:                                             ; preds = %3177, %3170
  %3200 = load i32, ptr %80, align 4, !tbaa !5
  %3201 = call ptr @__errno_location() #12
  store i32 %3200, ptr %3201, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror(i32 noundef %3205, ptr noundef @.str.3)
  %3207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror_debug(i32 noundef %3208, ptr noundef @.str.3)
  %3210 = call ptr @__errno_location() #12
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @strerror(i32 noundef %3211) #11
  %3213 = call ptr @__errno_location() #12
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef @.str.4, i32 noundef %3203, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 141, ptr noundef %3206, ptr noundef %3209, ptr noundef %3212, i32 noundef %3214) #11
  br label %3216

3216:                                             ; preds = %3199, %3182
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

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

3219:                                             ; No predecessors!
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220, %3159
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = call i32 @s2n_hmac_copy(ptr noundef %16, ptr noundef %15)
  %3228 = icmp eq i32 %3227, -1
  br i1 %3228, label %3229, label %3282

3229:                                             ; preds = %3224
  br label %3230

3230:                                             ; preds = %3229
  br label %3231

3231:                                             ; preds = %3230
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3232 = call ptr @__errno_location() #12
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  store i32 %3233, ptr %81, align 4, !tbaa !5
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = call i32 @s2n_print_stacktrace(ptr noundef %3234)
  %3236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3237 = trunc i8 %3236 to i1
  br i1 %3237, label %3238, label %3260

3238:                                             ; preds = %3231
  %3239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3240 = call i32 @fileno(ptr noundef %3239) #11
  %3241 = call i32 @isatty(i32 noundef %3240) #11
  %3242 = icmp ne i32 %3241, 0
  br i1 %3242, label %3243, label %3260

3243:                                             ; preds = %3238
  %3244 = load i32, ptr %81, align 4, !tbaa !5
  %3245 = call ptr @__errno_location() #12
  store i32 %3244, ptr %3245, align 4, !tbaa !5
  %3246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3247 = load i32, ptr @test_count, align 4, !tbaa !5
  %3248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror(i32 noundef %3249, ptr noundef @.str.3)
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror_debug(i32 noundef %3252, ptr noundef @.str.3)
  %3254 = call ptr @__errno_location() #12
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @strerror(i32 noundef %3255) #11
  %3257 = call ptr @__errno_location() #12
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3246, ptr noundef @.str, i32 noundef %3247, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3250, ptr noundef %3253, ptr noundef %3256, i32 noundef %3258) #11
  br label %3277

3260:                                             ; preds = %3238, %3231
  %3261 = load i32, ptr %81, align 4, !tbaa !5
  %3262 = call ptr @__errno_location() #12
  store i32 %3261, ptr %3262, align 4, !tbaa !5
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = load i32, ptr @test_count, align 4, !tbaa !5
  %3265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3266 = load i32, ptr %3265, align 4, !tbaa !5
  %3267 = call ptr @s2n_strerror(i32 noundef %3266, ptr noundef @.str.3)
  %3268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror_debug(i32 noundef %3269, ptr noundef @.str.3)
  %3271 = call ptr @__errno_location() #12
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @strerror(i32 noundef %3272) #11
  %3274 = call ptr @__errno_location() #12
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3263, ptr noundef @.str.4, i32 noundef %3264, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3267, ptr noundef %3270, ptr noundef %3273, i32 noundef %3275) #11
  br label %3277

3277:                                             ; preds = %3260, %3243
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3278

3278:                                             ; preds = %3277
  br label %3279

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

3280:                                             ; No predecessors!
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

3282:                                             ; preds = %3281, %3224
  br label %3283

3283:                                             ; preds = %3282
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = add nsw i32 %3286, 1
  store i32 %3287, ptr @test_count, align 4, !tbaa !5
  %3288 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %3289 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %3288, i32 noundef 20)
  %3290 = icmp eq i32 %3289, -1
  br i1 %3290, label %3291, label %3344

3291:                                             ; preds = %3285
  br label %3292

3292:                                             ; preds = %3291
  br label %3293

3293:                                             ; preds = %3292
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %3294 = call ptr @__errno_location() #12
  %3295 = load i32, ptr %3294, align 4, !tbaa !5
  store i32 %3295, ptr %82, align 4, !tbaa !5
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = call i32 @s2n_print_stacktrace(ptr noundef %3296)
  %3298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3299 = trunc i8 %3298 to i1
  br i1 %3299, label %3300, label %3322

3300:                                             ; preds = %3293
  %3301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3302 = call i32 @fileno(ptr noundef %3301) #11
  %3303 = call i32 @isatty(i32 noundef %3302) #11
  %3304 = icmp ne i32 %3303, 0
  br i1 %3304, label %3305, label %3322

3305:                                             ; preds = %3300
  %3306 = load i32, ptr %82, align 4, !tbaa !5
  %3307 = call ptr @__errno_location() #12
  store i32 %3306, ptr %3307, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = load i32, ptr @test_count, align 4, !tbaa !5
  %3310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror(i32 noundef %3311, ptr noundef @.str.3)
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror_debug(i32 noundef %3314, ptr noundef @.str.3)
  %3316 = call ptr @__errno_location() #12
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @strerror(i32 noundef %3317) #11
  %3319 = call ptr @__errno_location() #12
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3308, ptr noundef @.str, i32 noundef %3309, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 143, ptr noundef %3312, ptr noundef %3315, ptr noundef %3318, i32 noundef %3320) #11
  br label %3339

3322:                                             ; preds = %3300, %3293
  %3323 = load i32, ptr %82, align 4, !tbaa !5
  %3324 = call ptr @__errno_location() #12
  store i32 %3323, ptr %3324, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call ptr @s2n_strerror(i32 noundef %3328, ptr noundef @.str.3)
  %3330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror_debug(i32 noundef %3331, ptr noundef @.str.3)
  %3333 = call ptr @__errno_location() #12
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @strerror(i32 noundef %3334) #11
  %3336 = call ptr @__errno_location() #12
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3325, ptr noundef @.str.4, i32 noundef %3326, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 143, ptr noundef %3329, ptr noundef %3332, ptr noundef %3335, i32 noundef %3337) #11
  br label %3339

3339:                                             ; preds = %3322, %3305
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

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

3342:                                             ; No predecessors!
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

3344:                                             ; preds = %3343, %3285
  br label %3345

3345:                                             ; preds = %3344
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346
  %3348 = load i32, ptr @test_count, align 4, !tbaa !5
  %3349 = add nsw i32 %3348, 1
  store i32 %3349, ptr @test_count, align 4, !tbaa !5
  %3350 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %3351 = icmp eq i32 %3350, -1
  br i1 %3351, label %3352, label %3405

3352:                                             ; preds = %3347
  br label %3353

3353:                                             ; preds = %3352
  br label %3354

3354:                                             ; preds = %3353
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3355 = call ptr @__errno_location() #12
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  store i32 %3356, ptr %83, align 4, !tbaa !5
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = call i32 @s2n_print_stacktrace(ptr noundef %3357)
  %3359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3360 = trunc i8 %3359 to i1
  br i1 %3360, label %3361, label %3383

3361:                                             ; preds = %3354
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @fileno(ptr noundef %3362) #11
  %3364 = call i32 @isatty(i32 noundef %3363) #11
  %3365 = icmp ne i32 %3364, 0
  br i1 %3365, label %3366, label %3383

3366:                                             ; preds = %3361
  %3367 = load i32, ptr %83, align 4, !tbaa !5
  %3368 = call ptr @__errno_location() #12
  store i32 %3367, ptr %3368, align 4, !tbaa !5
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = load i32, ptr @test_count, align 4, !tbaa !5
  %3371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @s2n_strerror(i32 noundef %3372, ptr noundef @.str.3)
  %3374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror_debug(i32 noundef %3375, ptr noundef @.str.3)
  %3377 = call ptr @__errno_location() #12
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call ptr @strerror(i32 noundef %3378) #11
  %3380 = call ptr @__errno_location() #12
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3369, ptr noundef @.str, i32 noundef %3370, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 145, ptr noundef %3373, ptr noundef %3376, ptr noundef %3379, i32 noundef %3381) #11
  br label %3400

3383:                                             ; preds = %3361, %3354
  %3384 = load i32, ptr %83, align 4, !tbaa !5
  %3385 = call ptr @__errno_location() #12
  store i32 %3384, ptr %3385, align 4, !tbaa !5
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror(i32 noundef %3389, ptr noundef @.str.3)
  %3391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror_debug(i32 noundef %3392, ptr noundef @.str.3)
  %3394 = call ptr @__errno_location() #12
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @strerror(i32 noundef %3395) #11
  %3397 = call ptr @__errno_location() #12
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3386, ptr noundef @.str.4, i32 noundef %3387, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 145, ptr noundef %3390, ptr noundef %3393, ptr noundef %3396, i32 noundef %3398) #11
  br label %3400

3400:                                             ; preds = %3383, %3366
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

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

3403:                                             ; No predecessors!
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404, %3347
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

3407:                                             ; preds = %3406
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  store i32 0, ptr %84, align 4, !tbaa !5
  br label %3408

3408:                                             ; preds = %3481, %3407
  %3409 = load i32, ptr %84, align 4, !tbaa !5
  %3410 = icmp slt i32 %3409, 20
  br i1 %3410, label %3412, label %3411

3411:                                             ; preds = %3408
  store i32 329, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3484

3412:                                             ; preds = %3408
  br label %3413

3413:                                             ; preds = %3412
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = add nsw i32 %3414, 1
  store i32 %3415, ptr @test_count, align 4, !tbaa !5
  %3416 = load i32, ptr %84, align 4, !tbaa !5
  %3417 = sext i32 %3416 to i64
  %3418 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %3417
  %3419 = load i8, ptr %3418, align 1, !tbaa !15
  %3420 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %3419)
  %3421 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %3420, ptr %3421, align 4
  %3422 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %3423 = load i32, ptr %3422, align 4
  %3424 = call zeroext i1 @s2n_result_is_ok(i32 %3423)
  br i1 %3424, label %3478, label %3425

3425:                                             ; preds = %3413
  br label %3426

3426:                                             ; preds = %3425
  br label %3427

3427:                                             ; preds = %3426
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3428 = call ptr @__errno_location() #12
  %3429 = load i32, ptr %3428, align 4, !tbaa !5
  store i32 %3429, ptr %86, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @s2n_print_stacktrace(ptr noundef %3430)
  %3432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3433 = trunc i8 %3432 to i1
  br i1 %3433, label %3434, label %3456

3434:                                             ; preds = %3427
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = call i32 @fileno(ptr noundef %3435) #11
  %3437 = call i32 @isatty(i32 noundef %3436) #11
  %3438 = icmp ne i32 %3437, 0
  br i1 %3438, label %3439, label %3456

3439:                                             ; preds = %3434
  %3440 = load i32, ptr %86, align 4, !tbaa !5
  %3441 = call ptr @__errno_location() #12
  store i32 %3440, ptr %3441, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = load i32, ptr @test_count, align 4, !tbaa !5
  %3444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call ptr @s2n_strerror(i32 noundef %3445, ptr noundef @.str.3)
  %3447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror_debug(i32 noundef %3448, ptr noundef @.str.3)
  %3450 = call ptr @__errno_location() #12
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = call ptr @strerror(i32 noundef %3451) #11
  %3453 = call ptr @__errno_location() #12
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3442, ptr noundef @.str, i32 noundef %3443, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 147, ptr noundef %3446, ptr noundef %3449, ptr noundef %3452, i32 noundef %3454) #11
  br label %3473

3456:                                             ; preds = %3434, %3427
  %3457 = load i32, ptr %86, align 4, !tbaa !5
  %3458 = call ptr @__errno_location() #12
  store i32 %3457, ptr %3458, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = load i32, ptr @test_count, align 4, !tbaa !5
  %3461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @s2n_strerror(i32 noundef %3462, ptr noundef @.str.3)
  %3464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror_debug(i32 noundef %3465, ptr noundef @.str.3)
  %3467 = call ptr @__errno_location() #12
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call ptr @strerror(i32 noundef %3468) #11
  %3470 = call ptr @__errno_location() #12
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3459, ptr noundef @.str.4, i32 noundef %3460, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 147, ptr noundef %3463, ptr noundef %3466, ptr noundef %3469, i32 noundef %3471) #11
  br label %3473

3473:                                             ; preds = %3456, %3439
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3474

3474:                                             ; preds = %3473
  br label %3475

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

3476:                                             ; No predecessors!
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477, %3413
  br label %3479

3479:                                             ; preds = %3478
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

3481:                                             ; preds = %3480
  %3482 = load i32, ptr %84, align 4, !tbaa !5
  %3483 = add nsw i32 %3482, 1
  store i32 %3483, ptr %84, align 4, !tbaa !5
  br label %3408, !llvm.loop !22

3484:                                             ; preds = %3411
  br label %3485

3485:                                             ; preds = %3484
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = add nsw i32 %3486, 1
  store i32 %3487, ptr @test_count, align 4, !tbaa !5
  %3488 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %3489 = call i32 @memcmp(ptr noundef %3488, ptr noundef @.str.34, i64 noundef 40) #14
  %3490 = icmp eq i32 %3489, 0
  br i1 %3490, label %3544, label %3491

3491:                                             ; preds = %3485
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3494 = call ptr @__errno_location() #12
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  store i32 %3495, ptr %87, align 4, !tbaa !5
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = call i32 @s2n_print_stacktrace(ptr noundef %3496)
  %3498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3499 = trunc i8 %3498 to i1
  br i1 %3499, label %3500, label %3522

3500:                                             ; preds = %3493
  %3501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3502 = call i32 @fileno(ptr noundef %3501) #11
  %3503 = call i32 @isatty(i32 noundef %3502) #11
  %3504 = icmp ne i32 %3503, 0
  br i1 %3504, label %3505, label %3522

3505:                                             ; preds = %3500
  %3506 = load i32, ptr %87, align 4, !tbaa !5
  %3507 = call ptr @__errno_location() #12
  store i32 %3506, ptr %3507, align 4, !tbaa !5
  %3508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3509 = load i32, ptr @test_count, align 4, !tbaa !5
  %3510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  %3512 = call ptr @s2n_strerror(i32 noundef %3511, ptr noundef @.str.3)
  %3513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3514 = load i32, ptr %3513, align 4, !tbaa !5
  %3515 = call ptr @s2n_strerror_debug(i32 noundef %3514, ptr noundef @.str.3)
  %3516 = call ptr @__errno_location() #12
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @strerror(i32 noundef %3517) #11
  %3519 = call ptr @__errno_location() #12
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3508, ptr noundef @.str, i32 noundef %3509, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 151, ptr noundef %3512, ptr noundef %3515, ptr noundef %3518, i32 noundef %3520) #11
  br label %3539

3522:                                             ; preds = %3500, %3493
  %3523 = load i32, ptr %87, align 4, !tbaa !5
  %3524 = call ptr @__errno_location() #12
  store i32 %3523, ptr %3524, align 4, !tbaa !5
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = load i32, ptr @test_count, align 4, !tbaa !5
  %3527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  %3529 = call ptr @s2n_strerror(i32 noundef %3528, ptr noundef @.str.3)
  %3530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror_debug(i32 noundef %3531, ptr noundef @.str.3)
  %3533 = call ptr @__errno_location() #12
  %3534 = load i32, ptr %3533, align 4, !tbaa !5
  %3535 = call ptr @strerror(i32 noundef %3534) #11
  %3536 = call ptr @__errno_location() #12
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3525, ptr noundef @.str.4, i32 noundef %3526, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 151, ptr noundef %3529, ptr noundef %3532, ptr noundef %3535, i32 noundef %3537) #11
  br label %3539

3539:                                             ; preds = %3522, %3505
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

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

3542:                                             ; No predecessors!
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

3544:                                             ; preds = %3543, %3485
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

3546:                                             ; preds = %3545
  br label %3547

3547:                                             ; preds = %3546
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = add nsw i32 %3548, 1
  store i32 %3549, ptr @test_count, align 4, !tbaa !5
  %3550 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %3551 = call i32 @s2n_hmac_digest(ptr noundef %16, ptr noundef %3550, i32 noundef 20)
  %3552 = icmp eq i32 %3551, -1
  br i1 %3552, label %3553, label %3606

3553:                                             ; preds = %3547
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3556 = call ptr @__errno_location() #12
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  store i32 %3557, ptr %88, align 4, !tbaa !5
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = call i32 @s2n_print_stacktrace(ptr noundef %3558)
  %3560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3561 = trunc i8 %3560 to i1
  br i1 %3561, label %3562, label %3584

3562:                                             ; preds = %3555
  %3563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3564 = call i32 @fileno(ptr noundef %3563) #11
  %3565 = call i32 @isatty(i32 noundef %3564) #11
  %3566 = icmp ne i32 %3565, 0
  br i1 %3566, label %3567, label %3584

3567:                                             ; preds = %3562
  %3568 = load i32, ptr %88, align 4, !tbaa !5
  %3569 = call ptr @__errno_location() #12
  store i32 %3568, ptr %3569, align 4, !tbaa !5
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = load i32, ptr @test_count, align 4, !tbaa !5
  %3572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call ptr @s2n_strerror(i32 noundef %3573, ptr noundef @.str.3)
  %3575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror_debug(i32 noundef %3576, ptr noundef @.str.3)
  %3578 = call ptr @__errno_location() #12
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @strerror(i32 noundef %3579) #11
  %3581 = call ptr @__errno_location() #12
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3570, ptr noundef @.str, i32 noundef %3571, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 154, ptr noundef %3574, ptr noundef %3577, ptr noundef %3580, i32 noundef %3582) #11
  br label %3601

3584:                                             ; preds = %3562, %3555
  %3585 = load i32, ptr %88, align 4, !tbaa !5
  %3586 = call ptr @__errno_location() #12
  store i32 %3585, ptr %3586, align 4, !tbaa !5
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3588 = load i32, ptr @test_count, align 4, !tbaa !5
  %3589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3590 = load i32, ptr %3589, align 4, !tbaa !5
  %3591 = call ptr @s2n_strerror(i32 noundef %3590, ptr noundef @.str.3)
  %3592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror_debug(i32 noundef %3593, ptr noundef @.str.3)
  %3595 = call ptr @__errno_location() #12
  %3596 = load i32, ptr %3595, align 4, !tbaa !5
  %3597 = call ptr @strerror(i32 noundef %3596) #11
  %3598 = call ptr @__errno_location() #12
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3587, ptr noundef @.str.4, i32 noundef %3588, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 154, ptr noundef %3591, ptr noundef %3594, ptr noundef %3597, i32 noundef %3599) #11
  br label %3601

3601:                                             ; preds = %3584, %3567
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

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

3604:                                             ; No predecessors!
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

3606:                                             ; preds = %3605, %3547
  br label %3607

3607:                                             ; preds = %3606
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = add nsw i32 %3610, 1
  store i32 %3611, ptr @test_count, align 4, !tbaa !5
  %3612 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %3613 = icmp eq i32 %3612, -1
  br i1 %3613, label %3614, label %3667

3614:                                             ; preds = %3609
  br label %3615

3615:                                             ; preds = %3614
  br label %3616

3616:                                             ; preds = %3615
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3617 = call ptr @__errno_location() #12
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  store i32 %3618, ptr %89, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = call i32 @s2n_print_stacktrace(ptr noundef %3619)
  %3621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3622 = trunc i8 %3621 to i1
  br i1 %3622, label %3623, label %3645

3623:                                             ; preds = %3616
  %3624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3625 = call i32 @fileno(ptr noundef %3624) #11
  %3626 = call i32 @isatty(i32 noundef %3625) #11
  %3627 = icmp ne i32 %3626, 0
  br i1 %3627, label %3628, label %3645

3628:                                             ; preds = %3623
  %3629 = load i32, ptr %89, align 4, !tbaa !5
  %3630 = call ptr @__errno_location() #12
  store i32 %3629, ptr %3630, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call ptr @s2n_strerror(i32 noundef %3634, ptr noundef @.str.3)
  %3636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = call ptr @s2n_strerror_debug(i32 noundef %3637, ptr noundef @.str.3)
  %3639 = call ptr @__errno_location() #12
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  %3641 = call ptr @strerror(i32 noundef %3640) #11
  %3642 = call ptr @__errno_location() #12
  %3643 = load i32, ptr %3642, align 4, !tbaa !5
  %3644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3631, ptr noundef @.str, i32 noundef %3632, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 156, ptr noundef %3635, ptr noundef %3638, ptr noundef %3641, i32 noundef %3643) #11
  br label %3662

3645:                                             ; preds = %3623, %3616
  %3646 = load i32, ptr %89, align 4, !tbaa !5
  %3647 = call ptr @__errno_location() #12
  store i32 %3646, ptr %3647, align 4, !tbaa !5
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = load i32, ptr @test_count, align 4, !tbaa !5
  %3650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror(i32 noundef %3651, ptr noundef @.str.3)
  %3653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  %3655 = call ptr @s2n_strerror_debug(i32 noundef %3654, ptr noundef @.str.3)
  %3656 = call ptr @__errno_location() #12
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @strerror(i32 noundef %3657) #11
  %3659 = call ptr @__errno_location() #12
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3648, ptr noundef @.str.4, i32 noundef %3649, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 156, ptr noundef %3652, ptr noundef %3655, ptr noundef %3658, i32 noundef %3660) #11
  br label %3662

3662:                                             ; preds = %3645, %3628
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

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

3665:                                             ; No predecessors!
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666, %3609
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  store i32 0, ptr %90, align 4, !tbaa !5
  br label %3670

3670:                                             ; preds = %3743, %3669
  %3671 = load i32, ptr %90, align 4, !tbaa !5
  %3672 = icmp slt i32 %3671, 20
  br i1 %3672, label %3674, label %3673

3673:                                             ; preds = %3670
  store i32 356, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3746

3674:                                             ; preds = %3670
  br label %3675

3675:                                             ; preds = %3674
  %3676 = load i32, ptr @test_count, align 4, !tbaa !5
  %3677 = add nsw i32 %3676, 1
  store i32 %3677, ptr @test_count, align 4, !tbaa !5
  %3678 = load i32, ptr %90, align 4, !tbaa !5
  %3679 = sext i32 %3678 to i64
  %3680 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %3679
  %3681 = load i8, ptr %3680, align 1, !tbaa !15
  %3682 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %3681)
  %3683 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  store i32 %3682, ptr %3683, align 4
  %3684 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  %3685 = load i32, ptr %3684, align 4
  %3686 = call zeroext i1 @s2n_result_is_ok(i32 %3685)
  br i1 %3686, label %3740, label %3687

3687:                                             ; preds = %3675
  br label %3688

3688:                                             ; preds = %3687
  br label %3689

3689:                                             ; preds = %3688
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3690 = call ptr @__errno_location() #12
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  store i32 %3691, ptr %92, align 4, !tbaa !5
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @s2n_print_stacktrace(ptr noundef %3692)
  %3694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3695 = trunc i8 %3694 to i1
  br i1 %3695, label %3696, label %3718

3696:                                             ; preds = %3689
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = call i32 @fileno(ptr noundef %3697) #11
  %3699 = call i32 @isatty(i32 noundef %3698) #11
  %3700 = icmp ne i32 %3699, 0
  br i1 %3700, label %3701, label %3718

3701:                                             ; preds = %3696
  %3702 = load i32, ptr %92, align 4, !tbaa !5
  %3703 = call ptr @__errno_location() #12
  store i32 %3702, ptr %3703, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror(i32 noundef %3707, ptr noundef @.str.3)
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror_debug(i32 noundef %3710, ptr noundef @.str.3)
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @strerror(i32 noundef %3713) #11
  %3715 = call ptr @__errno_location() #12
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef @.str, i32 noundef %3705, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 158, ptr noundef %3708, ptr noundef %3711, ptr noundef %3714, i32 noundef %3716) #11
  br label %3735

3718:                                             ; preds = %3696, %3689
  %3719 = load i32, ptr %92, align 4, !tbaa !5
  %3720 = call ptr @__errno_location() #12
  store i32 %3719, ptr %3720, align 4, !tbaa !5
  %3721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3722 = load i32, ptr @test_count, align 4, !tbaa !5
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror(i32 noundef %3724, ptr noundef @.str.3)
  %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_debug(i32 noundef %3727, ptr noundef @.str.3)
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #11
  %3732 = call ptr @__errno_location() #12
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3721, ptr noundef @.str.4, i32 noundef %3722, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 158, ptr noundef %3725, ptr noundef %3728, ptr noundef %3731, i32 noundef %3733) #11
  br label %3735

3735:                                             ; preds = %3718, %3701
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

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

3738:                                             ; No predecessors!
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739, %3675
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

3742:                                             ; preds = %3741
  br label %3743

3743:                                             ; preds = %3742
  %3744 = load i32, ptr %90, align 4, !tbaa !5
  %3745 = add nsw i32 %3744, 1
  store i32 %3745, ptr %90, align 4, !tbaa !5
  br label %3670, !llvm.loop !23

3746:                                             ; preds = %3673
  br label %3747

3747:                                             ; preds = %3746
  %3748 = load i32, ptr @test_count, align 4, !tbaa !5
  %3749 = add nsw i32 %3748, 1
  store i32 %3749, ptr @test_count, align 4, !tbaa !5
  %3750 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %3751 = call i32 @memcmp(ptr noundef %3750, ptr noundef @.str.34, i64 noundef 40) #14
  %3752 = icmp eq i32 %3751, 0
  br i1 %3752, label %3806, label %3753

3753:                                             ; preds = %3747
  br label %3754

3754:                                             ; preds = %3753
  br label %3755

3755:                                             ; preds = %3754
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %3756 = call ptr @__errno_location() #12
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  store i32 %3757, ptr %93, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = call i32 @s2n_print_stacktrace(ptr noundef %3758)
  %3760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3761 = trunc i8 %3760 to i1
  br i1 %3761, label %3762, label %3784

3762:                                             ; preds = %3755
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = call i32 @fileno(ptr noundef %3763) #11
  %3765 = call i32 @isatty(i32 noundef %3764) #11
  %3766 = icmp ne i32 %3765, 0
  br i1 %3766, label %3767, label %3784

3767:                                             ; preds = %3762
  %3768 = load i32, ptr %93, align 4, !tbaa !5
  %3769 = call ptr @__errno_location() #12
  store i32 %3768, ptr %3769, align 4, !tbaa !5
  %3770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3771 = load i32, ptr @test_count, align 4, !tbaa !5
  %3772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call ptr @s2n_strerror(i32 noundef %3773, ptr noundef @.str.3)
  %3775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  %3777 = call ptr @s2n_strerror_debug(i32 noundef %3776, ptr noundef @.str.3)
  %3778 = call ptr @__errno_location() #12
  %3779 = load i32, ptr %3778, align 4, !tbaa !5
  %3780 = call ptr @strerror(i32 noundef %3779) #11
  %3781 = call ptr @__errno_location() #12
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3770, ptr noundef @.str, i32 noundef %3771, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 162, ptr noundef %3774, ptr noundef %3777, ptr noundef %3780, i32 noundef %3782) #11
  br label %3801

3784:                                             ; preds = %3762, %3755
  %3785 = load i32, ptr %93, align 4, !tbaa !5
  %3786 = call ptr @__errno_location() #12
  store i32 %3785, ptr %3786, align 4, !tbaa !5
  %3787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3788 = load i32, ptr @test_count, align 4, !tbaa !5
  %3789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call ptr @s2n_strerror(i32 noundef %3790, ptr noundef @.str.3)
  %3792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call ptr @s2n_strerror_debug(i32 noundef %3793, ptr noundef @.str.3)
  %3795 = call ptr @__errno_location() #12
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @strerror(i32 noundef %3796) #11
  %3798 = call ptr @__errno_location() #12
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3787, ptr noundef @.str.4, i32 noundef %3788, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 162, ptr noundef %3791, ptr noundef %3794, ptr noundef %3797, i32 noundef %3799) #11
  br label %3801

3801:                                             ; preds = %3784, %3767
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

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

3804:                                             ; No predecessors!
  br label %3805

3805:                                             ; preds = %3804
  br label %3806

3806:                                             ; preds = %3805, %3747
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

3808:                                             ; preds = %3807
  br label %3809

3809:                                             ; preds = %3808
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = add nsw i32 %3810, 1
  store i32 %3811, ptr @test_count, align 4, !tbaa !5
  %3812 = call i32 @s2n_hmac_reset(ptr noundef %15)
  %3813 = icmp eq i32 %3812, -1
  br i1 %3813, label %3814, label %3867

3814:                                             ; preds = %3809
  br label %3815

3815:                                             ; preds = %3814
  br label %3816

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

3823:                                             ; preds = %3816
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @fileno(ptr noundef %3824) #11
  %3826 = call i32 @isatty(i32 noundef %3825) #11
  %3827 = icmp ne i32 %3826, 0
  br i1 %3827, label %3828, label %3845

3828:                                             ; preds = %3823
  %3829 = load i32, ptr %94, align 4, !tbaa !5
  %3830 = call ptr @__errno_location() #12
  store i32 %3829, ptr %3830, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = load i32, ptr @test_count, align 4, !tbaa !5
  %3833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @s2n_strerror(i32 noundef %3834, ptr noundef @.str.3)
  %3836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call ptr @s2n_strerror_debug(i32 noundef %3837, ptr noundef @.str.3)
  %3839 = call ptr @__errno_location() #12
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #11
  %3842 = call ptr @__errno_location() #12
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3831, ptr noundef @.str, i32 noundef %3832, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 165, ptr noundef %3835, ptr noundef %3838, ptr noundef %3841, i32 noundef %3843) #11
  br label %3862

3845:                                             ; preds = %3823, %3816
  %3846 = load i32, ptr %94, align 4, !tbaa !5
  %3847 = call ptr @__errno_location() #12
  store i32 %3846, ptr %3847, align 4, !tbaa !5
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef @.str.3)
  %3853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror_debug(i32 noundef %3854, ptr noundef @.str.3)
  %3856 = call ptr @__errno_location() #12
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call ptr @strerror(i32 noundef %3857) #11
  %3859 = call ptr @__errno_location() #12
  %3860 = load i32, ptr %3859, align 4, !tbaa !5
  %3861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3848, ptr noundef @.str.4, i32 noundef %3849, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 165, ptr noundef %3852, ptr noundef %3855, ptr noundef %3858, i32 noundef %3860) #11
  br label %3862

3862:                                             ; preds = %3845, %3828
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

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

3865:                                             ; No predecessors!
  br label %3866

3866:                                             ; preds = %3865
  br label %3867

3867:                                             ; preds = %3866, %3809
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

3869:                                             ; preds = %3868
  br label %3870

3870:                                             ; preds = %3869
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = add nsw i32 %3871, 1
  store i32 %3872, ptr @test_count, align 4, !tbaa !5
  %3873 = call i32 @s2n_hmac_reset(ptr noundef %16)
  %3874 = icmp eq i32 %3873, -1
  br i1 %3874, label %3875, label %3928

3875:                                             ; preds = %3870
  br label %3876

3876:                                             ; preds = %3875
  br label %3877

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

3884:                                             ; preds = %3877
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @fileno(ptr noundef %3885) #11
  %3887 = call i32 @isatty(i32 noundef %3886) #11
  %3888 = icmp ne i32 %3887, 0
  br i1 %3888, label %3889, label %3906

3889:                                             ; preds = %3884
  %3890 = load i32, ptr %95, align 4, !tbaa !5
  %3891 = call ptr @__errno_location() #12
  store i32 %3890, ptr %3891, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = load i32, ptr @test_count, align 4, !tbaa !5
  %3894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3895 = load i32, ptr %3894, align 4, !tbaa !5
  %3896 = call ptr @s2n_strerror(i32 noundef %3895, ptr noundef @.str.3)
  %3897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  %3899 = call ptr @s2n_strerror_debug(i32 noundef %3898, ptr noundef @.str.3)
  %3900 = call ptr @__errno_location() #12
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  %3902 = call ptr @strerror(i32 noundef %3901) #11
  %3903 = call ptr @__errno_location() #12
  %3904 = load i32, ptr %3903, align 4, !tbaa !5
  %3905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3892, ptr noundef @.str, i32 noundef %3893, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 166, ptr noundef %3896, ptr noundef %3899, ptr noundef %3902, i32 noundef %3904) #11
  br label %3923

3906:                                             ; preds = %3884, %3877
  %3907 = load i32, ptr %95, align 4, !tbaa !5
  %3908 = call ptr @__errno_location() #12
  store i32 %3907, ptr %3908, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %3911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror(i32 noundef %3912, ptr noundef @.str.3)
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror_debug(i32 noundef %3915, ptr noundef @.str.3)
  %3917 = call ptr @__errno_location() #12
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @strerror(i32 noundef %3918) #11
  %3920 = call ptr @__errno_location() #12
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3909, ptr noundef @.str.4, i32 noundef %3910, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 166, ptr noundef %3913, ptr noundef %3916, ptr noundef %3919, i32 noundef %3921) #11
  br label %3923

3923:                                             ; preds = %3906, %3889
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3924

3924:                                             ; preds = %3923
  br label %3925

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

3926:                                             ; No predecessors!
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927, %3870
  br label %3929

3929:                                             ; preds = %3928
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930
  %3932 = load i32, ptr @test_count, align 4, !tbaa !5
  %3933 = add nsw i32 %3932, 1
  store i32 %3933, ptr @test_count, align 4, !tbaa !5
  %3934 = getelementptr inbounds [9 x i8], ptr %13, i64 0, i64 0
  %3935 = getelementptr inbounds [9 x i8], ptr %13, i64 0, i64 0
  %3936 = call i64 @strlen(ptr noundef %3935) #14
  %3937 = trunc i64 %3936 to i32
  %3938 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %3934, i32 noundef %3937)
  %3939 = icmp eq i32 %3938, -1
  br i1 %3939, label %3940, label %3993

3940:                                             ; preds = %3931
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

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

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

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

3971:                                             ; preds = %3949, %3942
  %3972 = load i32, ptr %96, align 4, !tbaa !5
  %3973 = call ptr @__errno_location() #12
  store i32 %3972, ptr %3973, align 4, !tbaa !5
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = load i32, ptr @test_count, align 4, !tbaa !5
  %3976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @s2n_strerror(i32 noundef %3977, ptr noundef @.str.3)
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror_debug(i32 noundef %3980, ptr noundef @.str.3)
  %3982 = call ptr @__errno_location() #12
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @strerror(i32 noundef %3983) #11
  %3985 = call ptr @__errno_location() #12
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3974, ptr noundef @.str.4, i32 noundef %3975, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 167, ptr noundef %3978, ptr noundef %3981, ptr noundef %3984, i32 noundef %3986) #11
  br label %3988

3988:                                             ; preds = %3971, %3954
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

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

3991:                                             ; No predecessors!
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

3993:                                             ; preds = %3992, %3931
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  %3997 = load i32, ptr @test_count, align 4, !tbaa !5
  %3998 = add nsw i32 %3997, 1
  store i32 %3998, ptr @test_count, align 4, !tbaa !5
  %3999 = call i32 @s2n_hmac_copy(ptr noundef %16, ptr noundef %15)
  %4000 = icmp eq i32 %3999, -1
  br i1 %4000, label %4001, label %4054

4001:                                             ; preds = %3996
  br label %4002

4002:                                             ; preds = %4001
  br label %4003

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

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

4015:                                             ; preds = %4010
  %4016 = load i32, ptr %97, align 4, !tbaa !5
  %4017 = call ptr @__errno_location() #12
  store i32 %4016, ptr %4017, align 4, !tbaa !5
  %4018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4019 = load i32, ptr @test_count, align 4, !tbaa !5
  %4020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror(i32 noundef %4021, ptr noundef @.str.3)
  %4023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror_debug(i32 noundef %4024, ptr noundef @.str.3)
  %4026 = call ptr @__errno_location() #12
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call ptr @strerror(i32 noundef %4027) #11
  %4029 = call ptr @__errno_location() #12
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4018, ptr noundef @.str, i32 noundef %4019, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 168, ptr noundef %4022, ptr noundef %4025, ptr noundef %4028, i32 noundef %4030) #11
  br label %4049

4032:                                             ; preds = %4010, %4003
  %4033 = load i32, ptr %97, align 4, !tbaa !5
  %4034 = call ptr @__errno_location() #12
  store i32 %4033, ptr %4034, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = load i32, ptr @test_count, align 4, !tbaa !5
  %4037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef @.str.3)
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror_debug(i32 noundef %4041, ptr noundef @.str.3)
  %4043 = call ptr @__errno_location() #12
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @strerror(i32 noundef %4044) #11
  %4046 = call ptr @__errno_location() #12
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4035, ptr noundef @.str.4, i32 noundef %4036, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 168, ptr noundef %4039, ptr noundef %4042, ptr noundef %4045, i32 noundef %4047) #11
  br label %4049

4049:                                             ; preds = %4032, %4015
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

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

4052:                                             ; No predecessors!
  br label %4053

4053:                                             ; preds = %4052
  br label %4054

4054:                                             ; preds = %4053, %3996
  br label %4055

4055:                                             ; preds = %4054
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

4057:                                             ; preds = %4056
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = add nsw i32 %4058, 1
  store i32 %4059, ptr @test_count, align 4, !tbaa !5
  %4060 = getelementptr inbounds [13 x i8], ptr %14, i64 0, i64 0
  %4061 = getelementptr inbounds [13 x i8], ptr %14, i64 0, i64 0
  %4062 = call i64 @strlen(ptr noundef %4061) #14
  %4063 = trunc i64 %4062 to i32
  %4064 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %4060, i32 noundef %4063)
  %4065 = icmp eq i32 %4064, -1
  br i1 %4065, label %4066, label %4119

4066:                                             ; preds = %4057
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %4069 = call ptr @__errno_location() #12
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  store i32 %4070, ptr %98, 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 %98, 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.3)
  %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.3)
  %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, i32 noundef %4084, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 169, ptr noundef %4087, ptr noundef %4090, ptr noundef %4093, i32 noundef %4095) #11
  br label %4114

4097:                                             ; preds = %4075, %4068
  %4098 = load i32, ptr %98, 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.3)
  %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.3)
  %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.4, i32 noundef %4101, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 169, 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 %98) #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, %4057
  br label %4120

4120:                                             ; preds = %4119
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  %4123 = load i32, ptr @test_count, align 4, !tbaa !5
  %4124 = add nsw i32 %4123, 1
  store i32 %4124, ptr @test_count, align 4, !tbaa !5
  %4125 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %4126 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %4125, i32 noundef 20)
  %4127 = icmp eq i32 %4126, -1
  br i1 %4127, label %4128, label %4181

4128:                                             ; preds = %4122
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %4131 = call ptr @__errno_location() #12
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  store i32 %4132, ptr %99, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @s2n_print_stacktrace(ptr noundef %4133)
  %4135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4136 = trunc i8 %4135 to i1
  br i1 %4136, label %4137, label %4159

4137:                                             ; preds = %4130
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @fileno(ptr noundef %4138) #11
  %4140 = call i32 @isatty(i32 noundef %4139) #11
  %4141 = icmp ne i32 %4140, 0
  br i1 %4141, label %4142, label %4159

4142:                                             ; preds = %4137
  %4143 = load i32, ptr %99, align 4, !tbaa !5
  %4144 = call ptr @__errno_location() #12
  store i32 %4143, ptr %4144, align 4, !tbaa !5
  %4145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4146 = load i32, ptr @test_count, align 4, !tbaa !5
  %4147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror(i32 noundef %4148, ptr noundef @.str.3)
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror_debug(i32 noundef %4151, ptr noundef @.str.3)
  %4153 = call ptr @__errno_location() #12
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #11
  %4156 = call ptr @__errno_location() #12
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4145, ptr noundef @.str, i32 noundef %4146, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 170, ptr noundef %4149, ptr noundef %4152, ptr noundef %4155, i32 noundef %4157) #11
  br label %4176

4159:                                             ; preds = %4137, %4130
  %4160 = load i32, ptr %99, align 4, !tbaa !5
  %4161 = call ptr @__errno_location() #12
  store i32 %4160, ptr %4161, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @s2n_strerror(i32 noundef %4165, ptr noundef @.str.3)
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror_debug(i32 noundef %4168, ptr noundef @.str.3)
  %4170 = call ptr @__errno_location() #12
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @strerror(i32 noundef %4171) #11
  %4173 = call ptr @__errno_location() #12
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4162, ptr noundef @.str.4, i32 noundef %4163, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 170, ptr noundef %4166, ptr noundef %4169, ptr noundef %4172, i32 noundef %4174) #11
  br label %4176

4176:                                             ; preds = %4159, %4142
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

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

4179:                                             ; No predecessors!
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180, %4122
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

4183:                                             ; preds = %4182
  br label %4184

4184:                                             ; preds = %4183
  %4185 = load i32, ptr @test_count, align 4, !tbaa !5
  %4186 = add nsw i32 %4185, 1
  store i32 %4186, ptr @test_count, align 4, !tbaa !5
  %4187 = call i32 @s2n_hmac_free(ptr noundef %15)
  %4188 = icmp eq i32 %4187, -1
  br i1 %4188, label %4189, label %4242

4189:                                             ; preds = %4184
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4192 = call ptr @__errno_location() #12
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  store i32 %4193, ptr %100, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = call i32 @s2n_print_stacktrace(ptr noundef %4194)
  %4196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4197 = trunc i8 %4196 to i1
  br i1 %4197, label %4198, label %4220

4198:                                             ; preds = %4191
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = call i32 @fileno(ptr noundef %4199) #11
  %4201 = call i32 @isatty(i32 noundef %4200) #11
  %4202 = icmp ne i32 %4201, 0
  br i1 %4202, label %4203, label %4220

4203:                                             ; preds = %4198
  %4204 = load i32, ptr %100, align 4, !tbaa !5
  %4205 = call ptr @__errno_location() #12
  store i32 %4204, ptr %4205, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror(i32 noundef %4209, ptr noundef @.str.3)
  %4211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef @.str.3)
  %4214 = call ptr @__errno_location() #12
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @strerror(i32 noundef %4215) #11
  %4217 = call ptr @__errno_location() #12
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4206, ptr noundef @.str, i32 noundef %4207, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 171, ptr noundef %4210, ptr noundef %4213, ptr noundef %4216, i32 noundef %4218) #11
  br label %4237

4220:                                             ; preds = %4198, %4191
  %4221 = load i32, ptr %100, align 4, !tbaa !5
  %4222 = call ptr @__errno_location() #12
  store i32 %4221, ptr %4222, align 4, !tbaa !5
  %4223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror(i32 noundef %4226, ptr noundef @.str.3)
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror_debug(i32 noundef %4229, ptr noundef @.str.3)
  %4231 = call ptr @__errno_location() #12
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @strerror(i32 noundef %4232) #11
  %4234 = call ptr @__errno_location() #12
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4223, ptr noundef @.str.4, i32 noundef %4224, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 171, ptr noundef %4227, ptr noundef %4230, ptr noundef %4233, i32 noundef %4235) #11
  br label %4237

4237:                                             ; preds = %4220, %4203
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4238

4238:                                             ; preds = %4237
  br label %4239

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

4240:                                             ; No predecessors!
  br label %4241

4241:                                             ; preds = %4240
  br label %4242

4242:                                             ; preds = %4241, %4184
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

4245:                                             ; preds = %4244
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = add nsw i32 %4246, 1
  store i32 %4247, ptr @test_count, align 4, !tbaa !5
  %4248 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %4249 = icmp eq i32 %4248, -1
  br i1 %4249, label %4250, label %4303

4250:                                             ; preds = %4245
  br label %4251

4251:                                             ; preds = %4250
  br label %4252

4252:                                             ; preds = %4251
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4253 = call ptr @__errno_location() #12
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  store i32 %4254, ptr %101, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = call i32 @s2n_print_stacktrace(ptr noundef %4255)
  %4257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4258 = trunc i8 %4257 to i1
  br i1 %4258, label %4259, label %4281

4259:                                             ; preds = %4252
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = call i32 @fileno(ptr noundef %4260) #11
  %4262 = call i32 @isatty(i32 noundef %4261) #11
  %4263 = icmp ne i32 %4262, 0
  br i1 %4263, label %4264, label %4281

4264:                                             ; preds = %4259
  %4265 = load i32, ptr %101, align 4, !tbaa !5
  %4266 = call ptr @__errno_location() #12
  store i32 %4265, ptr %4266, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @s2n_strerror(i32 noundef %4270, ptr noundef @.str.3)
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror_debug(i32 noundef %4273, ptr noundef @.str.3)
  %4275 = call ptr @__errno_location() #12
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @strerror(i32 noundef %4276) #11
  %4278 = call ptr @__errno_location() #12
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4267, ptr noundef @.str, i32 noundef %4268, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 173, ptr noundef %4271, ptr noundef %4274, ptr noundef %4277, i32 noundef %4279) #11
  br label %4298

4281:                                             ; preds = %4259, %4252
  %4282 = load i32, ptr %101, align 4, !tbaa !5
  %4283 = call ptr @__errno_location() #12
  store i32 %4282, ptr %4283, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = load i32, ptr @test_count, align 4, !tbaa !5
  %4286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @s2n_strerror(i32 noundef %4287, ptr noundef @.str.3)
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror_debug(i32 noundef %4290, ptr noundef @.str.3)
  %4292 = call ptr @__errno_location() #12
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @strerror(i32 noundef %4293) #11
  %4295 = call ptr @__errno_location() #12
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4284, ptr noundef @.str.4, i32 noundef %4285, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 173, ptr noundef %4288, ptr noundef %4291, ptr noundef %4294, i32 noundef %4296) #11
  br label %4298

4298:                                             ; preds = %4281, %4264
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

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

4301:                                             ; No predecessors!
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

4303:                                             ; preds = %4302, %4245
  br label %4304

4304:                                             ; preds = %4303
  br label %4305

4305:                                             ; preds = %4304
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  store i32 0, ptr %102, align 4, !tbaa !5
  br label %4306

4306:                                             ; preds = %4379, %4305
  %4307 = load i32, ptr %102, align 4, !tbaa !5
  %4308 = icmp slt i32 %4307, 20
  br i1 %4308, label %4310, label %4309

4309:                                             ; preds = %4306
  store i32 419, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4382

4310:                                             ; preds = %4306
  br label %4311

4311:                                             ; preds = %4310
  %4312 = load i32, ptr @test_count, align 4, !tbaa !5
  %4313 = add nsw i32 %4312, 1
  store i32 %4313, ptr @test_count, align 4, !tbaa !5
  %4314 = load i32, ptr %102, align 4, !tbaa !5
  %4315 = sext i32 %4314 to i64
  %4316 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %4315
  %4317 = load i8, ptr %4316, align 1, !tbaa !15
  %4318 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %4317)
  %4319 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %4318, ptr %4319, align 4
  %4320 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  %4321 = load i32, ptr %4320, align 4
  %4322 = call zeroext i1 @s2n_result_is_ok(i32 %4321)
  br i1 %4322, label %4376, label %4323

4323:                                             ; preds = %4311
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %4326 = call ptr @__errno_location() #12
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  store i32 %4327, ptr %104, align 4, !tbaa !5
  %4328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4329 = call i32 @s2n_print_stacktrace(ptr noundef %4328)
  %4330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4331 = trunc i8 %4330 to i1
  br i1 %4331, label %4332, label %4354

4332:                                             ; preds = %4325
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = call i32 @fileno(ptr noundef %4333) #11
  %4335 = call i32 @isatty(i32 noundef %4334) #11
  %4336 = icmp ne i32 %4335, 0
  br i1 %4336, label %4337, label %4354

4337:                                             ; preds = %4332
  %4338 = load i32, ptr %104, align 4, !tbaa !5
  %4339 = call ptr @__errno_location() #12
  store i32 %4338, ptr %4339, align 4, !tbaa !5
  %4340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4341 = load i32, ptr @test_count, align 4, !tbaa !5
  %4342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4343 = load i32, ptr %4342, align 4, !tbaa !5
  %4344 = call ptr @s2n_strerror(i32 noundef %4343, ptr noundef @.str.3)
  %4345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4346 = load i32, ptr %4345, align 4, !tbaa !5
  %4347 = call ptr @s2n_strerror_debug(i32 noundef %4346, ptr noundef @.str.3)
  %4348 = call ptr @__errno_location() #12
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = call ptr @strerror(i32 noundef %4349) #11
  %4351 = call ptr @__errno_location() #12
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4340, ptr noundef @.str, i32 noundef %4341, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 175, ptr noundef %4344, ptr noundef %4347, ptr noundef %4350, i32 noundef %4352) #11
  br label %4371

4354:                                             ; preds = %4332, %4325
  %4355 = load i32, ptr %104, align 4, !tbaa !5
  %4356 = call ptr @__errno_location() #12
  store i32 %4355, ptr %4356, align 4, !tbaa !5
  %4357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4358 = load i32, ptr @test_count, align 4, !tbaa !5
  %4359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror(i32 noundef %4360, ptr noundef @.str.3)
  %4362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror_debug(i32 noundef %4363, ptr noundef @.str.3)
  %4365 = call ptr @__errno_location() #12
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @strerror(i32 noundef %4366) #11
  %4368 = call ptr @__errno_location() #12
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4357, ptr noundef @.str.4, i32 noundef %4358, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 175, ptr noundef %4361, ptr noundef %4364, ptr noundef %4367, i32 noundef %4369) #11
  br label %4371

4371:                                             ; preds = %4354, %4337
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %4372

4372:                                             ; preds = %4371
  br label %4373

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

4374:                                             ; No predecessors!
  br label %4375

4375:                                             ; preds = %4374
  br label %4376

4376:                                             ; preds = %4375, %4311
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  %4380 = load i32, ptr %102, align 4, !tbaa !5
  %4381 = add nsw i32 %4380, 1
  store i32 %4381, ptr %102, align 4, !tbaa !5
  br label %4306, !llvm.loop !24

4382:                                             ; preds = %4309
  br label %4383

4383:                                             ; preds = %4382
  %4384 = load i32, ptr @test_count, align 4, !tbaa !5
  %4385 = add nsw i32 %4384, 1
  store i32 %4385, ptr @test_count, align 4, !tbaa !5
  %4386 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %4387 = call i32 @memcmp(ptr noundef %4386, ptr noundef @.str.41, i64 noundef 40) #14
  %4388 = icmp eq i32 %4387, 0
  br i1 %4388, label %4442, label %4389

4389:                                             ; preds = %4383
  br label %4390

4390:                                             ; preds = %4389
  br label %4391

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

4398:                                             ; preds = %4391
  %4399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4400 = call i32 @fileno(ptr noundef %4399) #11
  %4401 = call i32 @isatty(i32 noundef %4400) #11
  %4402 = icmp ne i32 %4401, 0
  br i1 %4402, label %4403, label %4420

4403:                                             ; preds = %4398
  %4404 = load i32, ptr %105, align 4, !tbaa !5
  %4405 = call ptr @__errno_location() #12
  store i32 %4404, ptr %4405, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = load i32, ptr @test_count, align 4, !tbaa !5
  %4408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  %4410 = call ptr @s2n_strerror(i32 noundef %4409, ptr noundef @.str.3)
  %4411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call ptr @s2n_strerror_debug(i32 noundef %4412, ptr noundef @.str.3)
  %4414 = call ptr @__errno_location() #12
  %4415 = load i32, ptr %4414, align 4, !tbaa !5
  %4416 = call ptr @strerror(i32 noundef %4415) #11
  %4417 = call ptr @__errno_location() #12
  %4418 = load i32, ptr %4417, align 4, !tbaa !5
  %4419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4406, ptr noundef @.str, i32 noundef %4407, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 179, ptr noundef %4410, ptr noundef %4413, ptr noundef %4416, i32 noundef %4418) #11
  br label %4437

4420:                                             ; preds = %4398, %4391
  %4421 = load i32, ptr %105, align 4, !tbaa !5
  %4422 = call ptr @__errno_location() #12
  store i32 %4421, ptr %4422, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = load i32, ptr @test_count, align 4, !tbaa !5
  %4425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror(i32 noundef %4426, ptr noundef @.str.3)
  %4428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  %4430 = call ptr @s2n_strerror_debug(i32 noundef %4429, ptr noundef @.str.3)
  %4431 = call ptr @__errno_location() #12
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call ptr @strerror(i32 noundef %4432) #11
  %4434 = call ptr @__errno_location() #12
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4423, ptr noundef @.str.4, i32 noundef %4424, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 179, ptr noundef %4427, ptr noundef %4430, ptr noundef %4433, i32 noundef %4435) #11
  br label %4437

4437:                                             ; preds = %4420, %4403
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %4438

4438:                                             ; preds = %4437
  br label %4439

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

4440:                                             ; No predecessors!
  br label %4441

4441:                                             ; preds = %4440
  br label %4442

4442:                                             ; preds = %4441, %4383
  br label %4443

4443:                                             ; preds = %4442
  br label %4444

4444:                                             ; preds = %4443
  br label %4445

4445:                                             ; preds = %4444
  %4446 = load i32, ptr @test_count, align 4, !tbaa !5
  %4447 = add nsw i32 %4446, 1
  store i32 %4447, ptr @test_count, align 4, !tbaa !5
  %4448 = getelementptr inbounds [13 x i8], ptr %14, i64 0, i64 0
  %4449 = getelementptr inbounds [13 x i8], ptr %14, i64 0, i64 0
  %4450 = call i64 @strlen(ptr noundef %4449) #14
  %4451 = trunc i64 %4450 to i32
  %4452 = call i32 @s2n_hmac_update(ptr noundef %16, ptr noundef %4448, i32 noundef %4451)
  %4453 = icmp eq i32 %4452, -1
  br i1 %4453, label %4454, label %4507

4454:                                             ; preds = %4445
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %4457 = call ptr @__errno_location() #12
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  store i32 %4458, ptr %106, 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 %106, 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.3)
  %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.3)
  %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, i32 noundef %4472, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 182, ptr noundef %4475, ptr noundef %4478, ptr noundef %4481, i32 noundef %4483) #11
  br label %4502

4485:                                             ; preds = %4463, %4456
  %4486 = load i32, ptr %106, 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.3)
  %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.3)
  %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.4, i32 noundef %4489, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 182, 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 %106) #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, %4445
  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 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %4514 = call i32 @s2n_hmac_digest(ptr noundef %16, ptr noundef %4513, i32 noundef 20)
  %4515 = icmp eq i32 %4514, -1
  br i1 %4515, label %4516, label %4569

4516:                                             ; preds = %4510
  br label %4517

4517:                                             ; preds = %4516
  br label %4518

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

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

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

4547:                                             ; preds = %4525, %4518
  %4548 = load i32, ptr %107, align 4, !tbaa !5
  %4549 = call ptr @__errno_location() #12
  store i32 %4548, ptr %4549, align 4, !tbaa !5
  %4550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4551 = load i32, ptr @test_count, align 4, !tbaa !5
  %4552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4553 = load i32, ptr %4552, align 4, !tbaa !5
  %4554 = call ptr @s2n_strerror(i32 noundef %4553, ptr noundef @.str.3)
  %4555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  %4557 = call ptr @s2n_strerror_debug(i32 noundef %4556, ptr noundef @.str.3)
  %4558 = call ptr @__errno_location() #12
  %4559 = load i32, ptr %4558, align 4, !tbaa !5
  %4560 = call ptr @strerror(i32 noundef %4559) #11
  %4561 = call ptr @__errno_location() #12
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4550, ptr noundef @.str.4, i32 noundef %4551, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 183, ptr noundef %4554, ptr noundef %4557, ptr noundef %4560, i32 noundef %4562) #11
  br label %4564

4564:                                             ; preds = %4547, %4530
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %4565

4565:                                             ; preds = %4564
  br label %4566

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

4567:                                             ; No predecessors!
  br label %4568

4568:                                             ; preds = %4567
  br label %4569

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

4570:                                             ; preds = %4569
  br label %4571

4571:                                             ; preds = %4570
  br label %4572

4572:                                             ; preds = %4571
  %4573 = load i32, ptr @test_count, align 4, !tbaa !5
  %4574 = add nsw i32 %4573, 1
  store i32 %4574, ptr @test_count, align 4, !tbaa !5
  %4575 = call i32 @s2n_hmac_free(ptr noundef %16)
  %4576 = icmp eq i32 %4575, -1
  br i1 %4576, label %4577, label %4630

4577:                                             ; preds = %4572
  br label %4578

4578:                                             ; preds = %4577
  br label %4579

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

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

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

4608:                                             ; preds = %4586, %4579
  %4609 = load i32, ptr %108, align 4, !tbaa !5
  %4610 = call ptr @__errno_location() #12
  store i32 %4609, ptr %4610, align 4, !tbaa !5
  %4611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4612 = load i32, ptr @test_count, align 4, !tbaa !5
  %4613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4614 = load i32, ptr %4613, align 4, !tbaa !5
  %4615 = call ptr @s2n_strerror(i32 noundef %4614, ptr noundef @.str.3)
  %4616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4617 = load i32, ptr %4616, align 4, !tbaa !5
  %4618 = call ptr @s2n_strerror_debug(i32 noundef %4617, ptr noundef @.str.3)
  %4619 = call ptr @__errno_location() #12
  %4620 = load i32, ptr %4619, align 4, !tbaa !5
  %4621 = call ptr @strerror(i32 noundef %4620) #11
  %4622 = call ptr @__errno_location() #12
  %4623 = load i32, ptr %4622, align 4, !tbaa !5
  %4624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4611, ptr noundef @.str.4, i32 noundef %4612, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 184, ptr noundef %4615, ptr noundef %4618, ptr noundef %4621, i32 noundef %4623) #11
  br label %4625

4625:                                             ; preds = %4608, %4591
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %4626

4626:                                             ; preds = %4625
  br label %4627

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

4628:                                             ; No predecessors!
  br label %4629

4629:                                             ; preds = %4628
  br label %4630

4630:                                             ; preds = %4629, %4572
  br label %4631

4631:                                             ; preds = %4630
  br label %4632

4632:                                             ; preds = %4631
  br label %4633

4633:                                             ; preds = %4632
  %4634 = load i32, ptr @test_count, align 4, !tbaa !5
  %4635 = add nsw i32 %4634, 1
  store i32 %4635, ptr @test_count, align 4, !tbaa !5
  %4636 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %4637 = icmp eq i32 %4636, -1
  br i1 %4637, label %4638, label %4691

4638:                                             ; preds = %4633
  br label %4639

4639:                                             ; preds = %4638
  br label %4640

4640:                                             ; preds = %4639
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4641 = call ptr @__errno_location() #12
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  store i32 %4642, ptr %109, 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 %109, 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.3)
  %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.3)
  %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, i32 noundef %4656, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 186, ptr noundef %4659, ptr noundef %4662, ptr noundef %4665, i32 noundef %4667) #11
  br label %4686

4669:                                             ; preds = %4647, %4640
  %4670 = load i32, ptr %109, 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.3)
  %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.3)
  %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.4, i32 noundef %4673, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 186, 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 %109) #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, %4633
  br label %4692

4692:                                             ; preds = %4691
  br label %4693

4693:                                             ; preds = %4692
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  store i32 0, ptr %110, align 4, !tbaa !5
  br label %4694

4694:                                             ; preds = %4767, %4693
  %4695 = load i32, ptr %110, align 4, !tbaa !5
  %4696 = icmp slt i32 %4695, 20
  br i1 %4696, label %4698, label %4697

4697:                                             ; preds = %4694
  store i32 458, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %4770

4698:                                             ; preds = %4694
  br label %4699

4699:                                             ; preds = %4698
  %4700 = load i32, ptr @test_count, align 4, !tbaa !5
  %4701 = add nsw i32 %4700, 1
  store i32 %4701, ptr @test_count, align 4, !tbaa !5
  %4702 = load i32, ptr %110, align 4, !tbaa !5
  %4703 = sext i32 %4702 to i64
  %4704 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %4703
  %4705 = load i8, ptr %4704, align 1, !tbaa !15
  %4706 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %4705)
  %4707 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %4706, ptr %4707, align 4
  %4708 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %4709 = load i32, ptr %4708, align 4
  %4710 = call zeroext i1 @s2n_result_is_ok(i32 %4709)
  br i1 %4710, label %4764, label %4711

4711:                                             ; preds = %4699
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

4713:                                             ; preds = %4712
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4714 = call ptr @__errno_location() #12
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  store i32 %4715, ptr %112, align 4, !tbaa !5
  %4716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4717 = call i32 @s2n_print_stacktrace(ptr noundef %4716)
  %4718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4719 = trunc i8 %4718 to i1
  br i1 %4719, label %4720, label %4742

4720:                                             ; preds = %4713
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = call i32 @fileno(ptr noundef %4721) #11
  %4723 = call i32 @isatty(i32 noundef %4722) #11
  %4724 = icmp ne i32 %4723, 0
  br i1 %4724, label %4725, label %4742

4725:                                             ; preds = %4720
  %4726 = load i32, ptr %112, align 4, !tbaa !5
  %4727 = call ptr @__errno_location() #12
  store i32 %4726, ptr %4727, align 4, !tbaa !5
  %4728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4729 = load i32, ptr @test_count, align 4, !tbaa !5
  %4730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = call ptr @s2n_strerror(i32 noundef %4731, ptr noundef @.str.3)
  %4733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call ptr @s2n_strerror_debug(i32 noundef %4734, ptr noundef @.str.3)
  %4736 = call ptr @__errno_location() #12
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call ptr @strerror(i32 noundef %4737) #11
  %4739 = call ptr @__errno_location() #12
  %4740 = load i32, ptr %4739, align 4, !tbaa !5
  %4741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4728, ptr noundef @.str, i32 noundef %4729, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 188, ptr noundef %4732, ptr noundef %4735, ptr noundef %4738, i32 noundef %4740) #11
  br label %4759

4742:                                             ; preds = %4720, %4713
  %4743 = load i32, ptr %112, align 4, !tbaa !5
  %4744 = call ptr @__errno_location() #12
  store i32 %4743, ptr %4744, align 4, !tbaa !5
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = load i32, ptr @test_count, align 4, !tbaa !5
  %4747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4748 = load i32, ptr %4747, align 4, !tbaa !5
  %4749 = call ptr @s2n_strerror(i32 noundef %4748, ptr noundef @.str.3)
  %4750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  %4752 = call ptr @s2n_strerror_debug(i32 noundef %4751, ptr noundef @.str.3)
  %4753 = call ptr @__errno_location() #12
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  %4755 = call ptr @strerror(i32 noundef %4754) #11
  %4756 = call ptr @__errno_location() #12
  %4757 = load i32, ptr %4756, align 4, !tbaa !5
  %4758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4745, ptr noundef @.str.4, i32 noundef %4746, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 188, ptr noundef %4749, ptr noundef %4752, ptr noundef %4755, i32 noundef %4757) #11
  br label %4759

4759:                                             ; preds = %4742, %4725
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

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

4762:                                             ; No predecessors!
  br label %4763

4763:                                             ; preds = %4762
  br label %4764

4764:                                             ; preds = %4763, %4699
  br label %4765

4765:                                             ; preds = %4764
  br label %4766

4766:                                             ; preds = %4765
  br label %4767

4767:                                             ; preds = %4766
  %4768 = load i32, ptr %110, align 4, !tbaa !5
  %4769 = add nsw i32 %4768, 1
  store i32 %4769, ptr %110, align 4, !tbaa !5
  br label %4694, !llvm.loop !25

4770:                                             ; preds = %4697
  br label %4771

4771:                                             ; preds = %4770
  %4772 = load i32, ptr @test_count, align 4, !tbaa !5
  %4773 = add nsw i32 %4772, 1
  store i32 %4773, ptr @test_count, align 4, !tbaa !5
  %4774 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %4775 = call i32 @memcmp(ptr noundef %4774, ptr noundef @.str.41, i64 noundef 40) #14
  %4776 = icmp eq i32 %4775, 0
  br i1 %4776, label %4830, label %4777

4777:                                             ; preds = %4771
  br label %4778

4778:                                             ; preds = %4777
  br label %4779

4779:                                             ; preds = %4778
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4780 = call ptr @__errno_location() #12
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  store i32 %4781, ptr %113, align 4, !tbaa !5
  %4782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4783 = call i32 @s2n_print_stacktrace(ptr noundef %4782)
  %4784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4785 = trunc i8 %4784 to i1
  br i1 %4785, label %4786, label %4808

4786:                                             ; preds = %4779
  %4787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4788 = call i32 @fileno(ptr noundef %4787) #11
  %4789 = call i32 @isatty(i32 noundef %4788) #11
  %4790 = icmp ne i32 %4789, 0
  br i1 %4790, label %4791, label %4808

4791:                                             ; preds = %4786
  %4792 = load i32, ptr %113, align 4, !tbaa !5
  %4793 = call ptr @__errno_location() #12
  store i32 %4792, ptr %4793, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = load i32, ptr @test_count, align 4, !tbaa !5
  %4796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @s2n_strerror(i32 noundef %4797, ptr noundef @.str.3)
  %4799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call ptr @s2n_strerror_debug(i32 noundef %4800, ptr noundef @.str.3)
  %4802 = call ptr @__errno_location() #12
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call ptr @strerror(i32 noundef %4803) #11
  %4805 = call ptr @__errno_location() #12
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  %4807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4794, ptr noundef @.str, i32 noundef %4795, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 192, ptr noundef %4798, ptr noundef %4801, ptr noundef %4804, i32 noundef %4806) #11
  br label %4825

4808:                                             ; preds = %4786, %4779
  %4809 = load i32, ptr %113, align 4, !tbaa !5
  %4810 = call ptr @__errno_location() #12
  store i32 %4809, ptr %4810, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = load i32, ptr @test_count, align 4, !tbaa !5
  %4813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @s2n_strerror(i32 noundef %4814, ptr noundef @.str.3)
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror_debug(i32 noundef %4817, ptr noundef @.str.3)
  %4819 = call ptr @__errno_location() #12
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #11
  %4822 = call ptr @__errno_location() #12
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4811, ptr noundef @.str.4, i32 noundef %4812, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 192, ptr noundef %4815, ptr noundef %4818, ptr noundef %4821, i32 noundef %4823) #11
  br label %4825

4825:                                             ; preds = %4808, %4791
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4826

4826:                                             ; preds = %4825
  br label %4827

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

4828:                                             ; No predecessors!
  br label %4829

4829:                                             ; preds = %4828
  br label %4830

4830:                                             ; preds = %4829, %4771
  br label %4831

4831:                                             ; preds = %4830
  br label %4832

4832:                                             ; preds = %4831
  br label %4833

4833:                                             ; preds = %4832
  %4834 = load i32, ptr @test_count, align 4, !tbaa !5
  %4835 = add nsw i32 %4834, 1
  store i32 %4835, ptr @test_count, align 4, !tbaa !5
  %4836 = call i32 @s2n_hmac_new(ptr noundef %15)
  %4837 = icmp eq i32 %4836, -1
  br i1 %4837, label %4838, label %4891

4838:                                             ; preds = %4833
  br label %4839

4839:                                             ; preds = %4838
  br label %4840

4840:                                             ; preds = %4839
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %4841 = call ptr @__errno_location() #12
  %4842 = load i32, ptr %4841, align 4, !tbaa !5
  store i32 %4842, ptr %114, align 4, !tbaa !5
  %4843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4844 = call i32 @s2n_print_stacktrace(ptr noundef %4843)
  %4845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4846 = trunc i8 %4845 to i1
  br i1 %4846, label %4847, label %4869

4847:                                             ; preds = %4840
  %4848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4849 = call i32 @fileno(ptr noundef %4848) #11
  %4850 = call i32 @isatty(i32 noundef %4849) #11
  %4851 = icmp ne i32 %4850, 0
  br i1 %4851, label %4852, label %4869

4852:                                             ; preds = %4847
  %4853 = load i32, ptr %114, align 4, !tbaa !5
  %4854 = call ptr @__errno_location() #12
  store i32 %4853, ptr %4854, align 4, !tbaa !5
  %4855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4856 = load i32, ptr @test_count, align 4, !tbaa !5
  %4857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4858 = load i32, ptr %4857, align 4, !tbaa !5
  %4859 = call ptr @s2n_strerror(i32 noundef %4858, ptr noundef @.str.3)
  %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_debug(i32 noundef %4861, ptr noundef @.str.3)
  %4863 = call ptr @__errno_location() #12
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @strerror(i32 noundef %4864) #11
  %4866 = call ptr @__errno_location() #12
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4855, ptr noundef @.str, i32 noundef %4856, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 195, ptr noundef %4859, ptr noundef %4862, ptr noundef %4865, i32 noundef %4867) #11
  br label %4886

4869:                                             ; preds = %4847, %4840
  %4870 = load i32, ptr %114, align 4, !tbaa !5
  %4871 = call ptr @__errno_location() #12
  store i32 %4870, ptr %4871, align 4, !tbaa !5
  %4872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4873 = load i32, ptr @test_count, align 4, !tbaa !5
  %4874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call ptr @s2n_strerror(i32 noundef %4875, ptr noundef @.str.3)
  %4877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = call ptr @s2n_strerror_debug(i32 noundef %4878, ptr noundef @.str.3)
  %4880 = call ptr @__errno_location() #12
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call ptr @strerror(i32 noundef %4881) #11
  %4883 = call ptr @__errno_location() #12
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4872, ptr noundef @.str.4, i32 noundef %4873, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 195, ptr noundef %4876, ptr noundef %4879, ptr noundef %4882, i32 noundef %4884) #11
  br label %4886

4886:                                             ; preds = %4869, %4852
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4887

4887:                                             ; preds = %4886
  br label %4888

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

4889:                                             ; No predecessors!
  br label %4890

4890:                                             ; preds = %4889
  br label %4891

4891:                                             ; preds = %4890, %4833
  br label %4892

4892:                                             ; preds = %4891
  br label %4893

4893:                                             ; preds = %4892
  br label %4894

4894:                                             ; preds = %4893
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = add nsw i32 %4895, 1
  store i32 %4896, ptr @test_count, align 4, !tbaa !5
  %4897 = getelementptr inbounds [101 x i8], ptr %11, i64 0, i64 0
  %4898 = getelementptr inbounds [101 x i8], ptr %11, i64 0, i64 0
  %4899 = call i64 @strlen(ptr noundef %4898) #14
  %4900 = trunc i64 %4899 to i32
  %4901 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 2, ptr noundef %4897, i32 noundef %4900)
  %4902 = icmp eq i32 %4901, -1
  br i1 %4902, label %4903, label %4956

4903:                                             ; preds = %4894
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

4905:                                             ; preds = %4904
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4906 = call ptr @__errno_location() #12
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  store i32 %4907, ptr %115, align 4, !tbaa !5
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = call i32 @s2n_print_stacktrace(ptr noundef %4908)
  %4910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4911 = trunc i8 %4910 to i1
  br i1 %4911, label %4912, label %4934

4912:                                             ; preds = %4905
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = call i32 @fileno(ptr noundef %4913) #11
  %4915 = call i32 @isatty(i32 noundef %4914) #11
  %4916 = icmp ne i32 %4915, 0
  br i1 %4916, label %4917, label %4934

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

4934:                                             ; preds = %4912, %4905
  %4935 = load i32, ptr %115, align 4, !tbaa !5
  %4936 = call ptr @__errno_location() #12
  store i32 %4935, ptr %4936, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = load i32, ptr @test_count, align 4, !tbaa !5
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror(i32 noundef %4940, ptr noundef @.str.3)
  %4942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror_debug(i32 noundef %4943, ptr noundef @.str.3)
  %4945 = call ptr @__errno_location() #12
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call ptr @strerror(i32 noundef %4946) #11
  %4948 = call ptr @__errno_location() #12
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4937, ptr noundef @.str.4, i32 noundef %4938, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 196, ptr noundef %4941, ptr noundef %4944, ptr noundef %4947, i32 noundef %4949) #11
  br label %4951

4951:                                             ; preds = %4934, %4917
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4952

4952:                                             ; preds = %4951
  br label %4953

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

4954:                                             ; No predecessors!
  br label %4955

4955:                                             ; preds = %4954
  br label %4956

4956:                                             ; preds = %4955, %4894
  br label %4957

4957:                                             ; preds = %4956
  br label %4958

4958:                                             ; preds = %4957
  br label %4959

4959:                                             ; preds = %4958
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = add nsw i32 %4960, 1
  store i32 %4961, ptr @test_count, align 4, !tbaa !5
  %4962 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %4963 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %4964 = call i64 @strlen(ptr noundef %4963) #14
  %4965 = trunc i64 %4964 to i32
  %4966 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %4962, i32 noundef %4965)
  %4967 = icmp eq i32 %4966, -1
  br i1 %4967, label %4968, label %5021

4968:                                             ; preds = %4959
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

4970:                                             ; preds = %4969
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4971 = call ptr @__errno_location() #12
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  store i32 %4972, ptr %116, align 4, !tbaa !5
  %4973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4974 = call i32 @s2n_print_stacktrace(ptr noundef %4973)
  %4975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4976 = trunc i8 %4975 to i1
  br i1 %4976, label %4977, label %4999

4977:                                             ; preds = %4970
  %4978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4979 = call i32 @fileno(ptr noundef %4978) #11
  %4980 = call i32 @isatty(i32 noundef %4979) #11
  %4981 = icmp ne i32 %4980, 0
  br i1 %4981, label %4982, label %4999

4982:                                             ; preds = %4977
  %4983 = load i32, ptr %116, align 4, !tbaa !5
  %4984 = call ptr @__errno_location() #12
  store i32 %4983, ptr %4984, align 4, !tbaa !5
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  %4989 = call ptr @s2n_strerror(i32 noundef %4988, ptr noundef @.str.3)
  %4990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4991 = load i32, ptr %4990, align 4, !tbaa !5
  %4992 = call ptr @s2n_strerror_debug(i32 noundef %4991, ptr noundef @.str.3)
  %4993 = call ptr @__errno_location() #12
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  %4995 = call ptr @strerror(i32 noundef %4994) #11
  %4996 = call ptr @__errno_location() #12
  %4997 = load i32, ptr %4996, align 4, !tbaa !5
  %4998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4985, ptr noundef @.str, i32 noundef %4986, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 197, ptr noundef %4989, ptr noundef %4992, ptr noundef %4995, i32 noundef %4997) #11
  br label %5016

4999:                                             ; preds = %4977, %4970
  %5000 = load i32, ptr %116, align 4, !tbaa !5
  %5001 = call ptr @__errno_location() #12
  store i32 %5000, ptr %5001, align 4, !tbaa !5
  %5002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5003 = load i32, ptr @test_count, align 4, !tbaa !5
  %5004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5005 = load i32, ptr %5004, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror(i32 noundef %5005, ptr noundef @.str.3)
  %5007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @s2n_strerror_debug(i32 noundef %5008, ptr noundef @.str.3)
  %5010 = call ptr @__errno_location() #12
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @strerror(i32 noundef %5011) #11
  %5013 = call ptr @__errno_location() #12
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5002, ptr noundef @.str.4, i32 noundef %5003, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 197, ptr noundef %5006, ptr noundef %5009, ptr noundef %5012, i32 noundef %5014) #11
  br label %5016

5016:                                             ; preds = %4999, %4982
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %5017

5017:                                             ; preds = %5016
  br label %5018

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

5019:                                             ; No predecessors!
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

5021:                                             ; preds = %5020, %4959
  br label %5022

5022:                                             ; preds = %5021
  br label %5023

5023:                                             ; preds = %5022
  br label %5024

5024:                                             ; preds = %5023
  %5025 = load i32, ptr @test_count, align 4, !tbaa !5
  %5026 = add nsw i32 %5025, 1
  store i32 %5026, ptr @test_count, align 4, !tbaa !5
  %5027 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %5028 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %5027, i32 noundef 20)
  %5029 = icmp eq i32 %5028, -1
  br i1 %5029, label %5030, label %5083

5030:                                             ; preds = %5024
  br label %5031

5031:                                             ; preds = %5030
  br label %5032

5032:                                             ; preds = %5031
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %5033 = call ptr @__errno_location() #12
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  store i32 %5034, ptr %117, align 4, !tbaa !5
  %5035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5036 = call i32 @s2n_print_stacktrace(ptr noundef %5035)
  %5037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5038 = trunc i8 %5037 to i1
  br i1 %5038, label %5039, label %5061

5039:                                             ; preds = %5032
  %5040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5041 = call i32 @fileno(ptr noundef %5040) #11
  %5042 = call i32 @isatty(i32 noundef %5041) #11
  %5043 = icmp ne i32 %5042, 0
  br i1 %5043, label %5044, label %5061

5044:                                             ; preds = %5039
  %5045 = load i32, ptr %117, align 4, !tbaa !5
  %5046 = call ptr @__errno_location() #12
  store i32 %5045, ptr %5046, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = load i32, ptr @test_count, align 4, !tbaa !5
  %5049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror(i32 noundef %5050, ptr noundef @.str.3)
  %5052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  %5054 = call ptr @s2n_strerror_debug(i32 noundef %5053, ptr noundef @.str.3)
  %5055 = call ptr @__errno_location() #12
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call ptr @strerror(i32 noundef %5056) #11
  %5058 = call ptr @__errno_location() #12
  %5059 = load i32, ptr %5058, align 4, !tbaa !5
  %5060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5047, ptr noundef @.str, i32 noundef %5048, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 198, ptr noundef %5051, ptr noundef %5054, ptr noundef %5057, i32 noundef %5059) #11
  br label %5078

5061:                                             ; preds = %5039, %5032
  %5062 = load i32, ptr %117, align 4, !tbaa !5
  %5063 = call ptr @__errno_location() #12
  store i32 %5062, ptr %5063, align 4, !tbaa !5
  %5064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5065 = load i32, ptr @test_count, align 4, !tbaa !5
  %5066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5067 = load i32, ptr %5066, align 4, !tbaa !5
  %5068 = call ptr @s2n_strerror(i32 noundef %5067, ptr noundef @.str.3)
  %5069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5070 = load i32, ptr %5069, align 4, !tbaa !5
  %5071 = call ptr @s2n_strerror_debug(i32 noundef %5070, ptr noundef @.str.3)
  %5072 = call ptr @__errno_location() #12
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call ptr @strerror(i32 noundef %5073) #11
  %5075 = call ptr @__errno_location() #12
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  %5077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5064, ptr noundef @.str.4, i32 noundef %5065, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 198, ptr noundef %5068, ptr noundef %5071, ptr noundef %5074, i32 noundef %5076) #11
  br label %5078

5078:                                             ; preds = %5061, %5044
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %5079

5079:                                             ; preds = %5078
  br label %5080

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

5081:                                             ; No predecessors!
  br label %5082

5082:                                             ; preds = %5081
  br label %5083

5083:                                             ; preds = %5082, %5024
  br label %5084

5084:                                             ; preds = %5083
  br label %5085

5085:                                             ; preds = %5084
  br label %5086

5086:                                             ; preds = %5085
  %5087 = load i32, ptr @test_count, align 4, !tbaa !5
  %5088 = add nsw i32 %5087, 1
  store i32 %5088, ptr @test_count, align 4, !tbaa !5
  %5089 = call i32 @s2n_hmac_free(ptr noundef %15)
  %5090 = icmp eq i32 %5089, -1
  br i1 %5090, label %5091, label %5144

5091:                                             ; preds = %5086
  br label %5092

5092:                                             ; preds = %5091
  br label %5093

5093:                                             ; preds = %5092
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %5094 = call ptr @__errno_location() #12
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  store i32 %5095, ptr %118, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = call i32 @s2n_print_stacktrace(ptr noundef %5096)
  %5098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5099 = trunc i8 %5098 to i1
  br i1 %5099, label %5100, label %5122

5100:                                             ; preds = %5093
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = call i32 @fileno(ptr noundef %5101) #11
  %5103 = call i32 @isatty(i32 noundef %5102) #11
  %5104 = icmp ne i32 %5103, 0
  br i1 %5104, label %5105, label %5122

5105:                                             ; preds = %5100
  %5106 = load i32, ptr %118, align 4, !tbaa !5
  %5107 = call ptr @__errno_location() #12
  store i32 %5106, ptr %5107, align 4, !tbaa !5
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = load i32, ptr @test_count, align 4, !tbaa !5
  %5110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5111 = load i32, ptr %5110, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror(i32 noundef %5111, ptr noundef @.str.3)
  %5113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror_debug(i32 noundef %5114, ptr noundef @.str.3)
  %5116 = call ptr @__errno_location() #12
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call ptr @strerror(i32 noundef %5117) #11
  %5119 = call ptr @__errno_location() #12
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5108, ptr noundef @.str, i32 noundef %5109, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 199, ptr noundef %5112, ptr noundef %5115, ptr noundef %5118, i32 noundef %5120) #11
  br label %5139

5122:                                             ; preds = %5100, %5093
  %5123 = load i32, ptr %118, align 4, !tbaa !5
  %5124 = call ptr @__errno_location() #12
  store i32 %5123, ptr %5124, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = load i32, ptr @test_count, align 4, !tbaa !5
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror(i32 noundef %5128, ptr noundef @.str.3)
  %5130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @s2n_strerror_debug(i32 noundef %5131, ptr noundef @.str.3)
  %5133 = call ptr @__errno_location() #12
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @strerror(i32 noundef %5134) #11
  %5136 = call ptr @__errno_location() #12
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5125, ptr noundef @.str.4, i32 noundef %5126, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 199, ptr noundef %5129, ptr noundef %5132, ptr noundef %5135, i32 noundef %5137) #11
  br label %5139

5139:                                             ; preds = %5122, %5105
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

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

5142:                                             ; No predecessors!
  br label %5143

5143:                                             ; preds = %5142
  br label %5144

5144:                                             ; preds = %5143, %5086
  br label %5145

5145:                                             ; preds = %5144
  br label %5146

5146:                                             ; preds = %5145
  br label %5147

5147:                                             ; preds = %5146
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = add nsw i32 %5148, 1
  store i32 %5149, ptr @test_count, align 4, !tbaa !5
  %5150 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %5151 = icmp eq i32 %5150, -1
  br i1 %5151, label %5152, label %5205

5152:                                             ; preds = %5147
  br label %5153

5153:                                             ; preds = %5152
  br label %5154

5154:                                             ; preds = %5153
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %5155 = call ptr @__errno_location() #12
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  store i32 %5156, ptr %119, align 4, !tbaa !5
  %5157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5158 = call i32 @s2n_print_stacktrace(ptr noundef %5157)
  %5159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5160 = trunc i8 %5159 to i1
  br i1 %5160, label %5161, label %5183

5161:                                             ; preds = %5154
  %5162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5163 = call i32 @fileno(ptr noundef %5162) #11
  %5164 = call i32 @isatty(i32 noundef %5163) #11
  %5165 = icmp ne i32 %5164, 0
  br i1 %5165, label %5166, label %5183

5166:                                             ; preds = %5161
  %5167 = load i32, ptr %119, 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.3)
  %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.3)
  %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, i32 noundef %5170, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 201, ptr noundef %5173, ptr noundef %5176, ptr noundef %5179, i32 noundef %5181) #11
  br label %5200

5183:                                             ; preds = %5161, %5154
  %5184 = load i32, ptr %119, align 4, !tbaa !5
  %5185 = call ptr @__errno_location() #12
  store i32 %5184, ptr %5185, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = load i32, ptr @test_count, align 4, !tbaa !5
  %5188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5189 = load i32, ptr %5188, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror(i32 noundef %5189, ptr noundef @.str.3)
  %5191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  %5193 = call ptr @s2n_strerror_debug(i32 noundef %5192, ptr noundef @.str.3)
  %5194 = call ptr @__errno_location() #12
  %5195 = load i32, ptr %5194, align 4, !tbaa !5
  %5196 = call ptr @strerror(i32 noundef %5195) #11
  %5197 = call ptr @__errno_location() #12
  %5198 = load i32, ptr %5197, align 4, !tbaa !5
  %5199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5186, ptr noundef @.str.4, i32 noundef %5187, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 201, ptr noundef %5190, ptr noundef %5193, ptr noundef %5196, i32 noundef %5198) #11
  br label %5200

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

5201:                                             ; preds = %5200
  br label %5202

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

5203:                                             ; No predecessors!
  br label %5204

5204:                                             ; preds = %5203
  br label %5205

5205:                                             ; preds = %5204, %5147
  br label %5206

5206:                                             ; preds = %5205
  br label %5207

5207:                                             ; preds = %5206
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  store i32 0, ptr %120, align 4, !tbaa !5
  br label %5208

5208:                                             ; preds = %5281, %5207
  %5209 = load i32, ptr %120, align 4, !tbaa !5
  %5210 = icmp slt i32 %5209, 20
  br i1 %5210, label %5212, label %5211

5211:                                             ; preds = %5208
  store i32 509, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5284

5212:                                             ; preds = %5208
  br label %5213

5213:                                             ; preds = %5212
  %5214 = load i32, ptr @test_count, align 4, !tbaa !5
  %5215 = add nsw i32 %5214, 1
  store i32 %5215, ptr @test_count, align 4, !tbaa !5
  %5216 = load i32, ptr %120, align 4, !tbaa !5
  %5217 = sext i32 %5216 to i64
  %5218 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %5217
  %5219 = load i8, ptr %5218, align 1, !tbaa !15
  %5220 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %5219)
  %5221 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5220, ptr %5221, align 4
  %5222 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %5223 = load i32, ptr %5222, align 4
  %5224 = call zeroext i1 @s2n_result_is_ok(i32 %5223)
  br i1 %5224, label %5278, label %5225

5225:                                             ; preds = %5213
  br label %5226

5226:                                             ; preds = %5225
  br label %5227

5227:                                             ; preds = %5226
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %5228 = call ptr @__errno_location() #12
  %5229 = load i32, ptr %5228, align 4, !tbaa !5
  store i32 %5229, ptr %122, align 4, !tbaa !5
  %5230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5231 = call i32 @s2n_print_stacktrace(ptr noundef %5230)
  %5232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5233 = trunc i8 %5232 to i1
  br i1 %5233, label %5234, label %5256

5234:                                             ; preds = %5227
  %5235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5236 = call i32 @fileno(ptr noundef %5235) #11
  %5237 = call i32 @isatty(i32 noundef %5236) #11
  %5238 = icmp ne i32 %5237, 0
  br i1 %5238, label %5239, label %5256

5239:                                             ; preds = %5234
  %5240 = load i32, ptr %122, align 4, !tbaa !5
  %5241 = call ptr @__errno_location() #12
  store i32 %5240, ptr %5241, align 4, !tbaa !5
  %5242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5243 = load i32, ptr @test_count, align 4, !tbaa !5
  %5244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  %5246 = call ptr @s2n_strerror(i32 noundef %5245, ptr noundef @.str.3)
  %5247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5248 = load i32, ptr %5247, align 4, !tbaa !5
  %5249 = call ptr @s2n_strerror_debug(i32 noundef %5248, ptr noundef @.str.3)
  %5250 = call ptr @__errno_location() #12
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  %5252 = call ptr @strerror(i32 noundef %5251) #11
  %5253 = call ptr @__errno_location() #12
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5242, ptr noundef @.str, i32 noundef %5243, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 203, ptr noundef %5246, ptr noundef %5249, ptr noundef %5252, i32 noundef %5254) #11
  br label %5273

5256:                                             ; preds = %5234, %5227
  %5257 = load i32, ptr %122, align 4, !tbaa !5
  %5258 = call ptr @__errno_location() #12
  store i32 %5257, ptr %5258, align 4, !tbaa !5
  %5259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5260 = load i32, ptr @test_count, align 4, !tbaa !5
  %5261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5262 = load i32, ptr %5261, align 4, !tbaa !5
  %5263 = call ptr @s2n_strerror(i32 noundef %5262, ptr noundef @.str.3)
  %5264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5265 = load i32, ptr %5264, align 4, !tbaa !5
  %5266 = call ptr @s2n_strerror_debug(i32 noundef %5265, ptr noundef @.str.3)
  %5267 = call ptr @__errno_location() #12
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call ptr @strerror(i32 noundef %5268) #11
  %5270 = call ptr @__errno_location() #12
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5259, ptr noundef @.str.4, i32 noundef %5260, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 203, ptr noundef %5263, ptr noundef %5266, ptr noundef %5269, i32 noundef %5271) #11
  br label %5273

5273:                                             ; preds = %5256, %5239
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %5274

5274:                                             ; preds = %5273
  br label %5275

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

5276:                                             ; No predecessors!
  br label %5277

5277:                                             ; preds = %5276
  br label %5278

5278:                                             ; preds = %5277, %5213
  br label %5279

5279:                                             ; preds = %5278
  br label %5280

5280:                                             ; preds = %5279
  br label %5281

5281:                                             ; preds = %5280
  %5282 = load i32, ptr %120, align 4, !tbaa !5
  %5283 = add nsw i32 %5282, 1
  store i32 %5283, ptr %120, align 4, !tbaa !5
  br label %5208, !llvm.loop !26

5284:                                             ; preds = %5211
  br label %5285

5285:                                             ; preds = %5284
  %5286 = load i32, ptr @test_count, align 4, !tbaa !5
  %5287 = add nsw i32 %5286, 1
  store i32 %5287, ptr @test_count, align 4, !tbaa !5
  %5288 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %5289 = call i32 @memcmp(ptr noundef %5288, ptr noundef @.str.46, i64 noundef 40) #14
  %5290 = icmp eq i32 %5289, 0
  br i1 %5290, label %5344, label %5291

5291:                                             ; preds = %5285
  br label %5292

5292:                                             ; preds = %5291
  br label %5293

5293:                                             ; preds = %5292
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %5294 = call ptr @__errno_location() #12
  %5295 = load i32, ptr %5294, align 4, !tbaa !5
  store i32 %5295, ptr %123, align 4, !tbaa !5
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = call i32 @s2n_print_stacktrace(ptr noundef %5296)
  %5298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5299 = trunc i8 %5298 to i1
  br i1 %5299, label %5300, label %5322

5300:                                             ; preds = %5293
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = call i32 @fileno(ptr noundef %5301) #11
  %5303 = call i32 @isatty(i32 noundef %5302) #11
  %5304 = icmp ne i32 %5303, 0
  br i1 %5304, label %5305, label %5322

5305:                                             ; preds = %5300
  %5306 = load i32, ptr %123, align 4, !tbaa !5
  %5307 = call ptr @__errno_location() #12
  store i32 %5306, ptr %5307, align 4, !tbaa !5
  %5308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5309 = load i32, ptr @test_count, align 4, !tbaa !5
  %5310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  %5312 = call ptr @s2n_strerror(i32 noundef %5311, ptr noundef @.str.3)
  %5313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call ptr @s2n_strerror_debug(i32 noundef %5314, ptr noundef @.str.3)
  %5316 = call ptr @__errno_location() #12
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  %5318 = call ptr @strerror(i32 noundef %5317) #11
  %5319 = call ptr @__errno_location() #12
  %5320 = load i32, ptr %5319, align 4, !tbaa !5
  %5321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5308, ptr noundef @.str, i32 noundef %5309, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 207, ptr noundef %5312, ptr noundef %5315, ptr noundef %5318, i32 noundef %5320) #11
  br label %5339

5322:                                             ; preds = %5300, %5293
  %5323 = load i32, ptr %123, align 4, !tbaa !5
  %5324 = call ptr @__errno_location() #12
  store i32 %5323, ptr %5324, align 4, !tbaa !5
  %5325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5326 = load i32, ptr @test_count, align 4, !tbaa !5
  %5327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror(i32 noundef %5328, ptr noundef @.str.3)
  %5330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @s2n_strerror_debug(i32 noundef %5331, ptr noundef @.str.3)
  %5333 = call ptr @__errno_location() #12
  %5334 = load i32, ptr %5333, align 4, !tbaa !5
  %5335 = call ptr @strerror(i32 noundef %5334) #11
  %5336 = call ptr @__errno_location() #12
  %5337 = load i32, ptr %5336, align 4, !tbaa !5
  %5338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5325, ptr noundef @.str.4, i32 noundef %5326, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 207, ptr noundef %5329, ptr noundef %5332, ptr noundef %5335, i32 noundef %5337) #11
  br label %5339

5339:                                             ; preds = %5322, %5305
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5340

5340:                                             ; preds = %5339
  br label %5341

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

5342:                                             ; No predecessors!
  br label %5343

5343:                                             ; preds = %5342
  br label %5344

5344:                                             ; preds = %5343, %5285
  br label %5345

5345:                                             ; preds = %5344
  br label %5346

5346:                                             ; preds = %5345
  br label %5347

5347:                                             ; preds = %5346
  %5348 = load i32, ptr @test_count, align 4, !tbaa !5
  %5349 = add nsw i32 %5348, 1
  store i32 %5349, ptr @test_count, align 4, !tbaa !5
  %5350 = getelementptr inbounds [101 x i8], ptr %11, i64 0, i64 0
  %5351 = getelementptr inbounds [101 x i8], ptr %11, i64 0, i64 0
  %5352 = call i64 @strlen(ptr noundef %5351) #14
  %5353 = trunc i64 %5352 to i32
  %5354 = call i32 @s2n_hmac_init(ptr noundef %17, i32 noundef 2, ptr noundef %5350, i32 noundef %5353)
  %5355 = icmp eq i32 %5354, -1
  br i1 %5355, label %5356, label %5409

5356:                                             ; preds = %5347
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

5358:                                             ; preds = %5357
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5359 = call ptr @__errno_location() #12
  %5360 = load i32, ptr %5359, align 4, !tbaa !5
  store i32 %5360, ptr %124, align 4, !tbaa !5
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = call i32 @s2n_print_stacktrace(ptr noundef %5361)
  %5363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5364 = trunc i8 %5363 to i1
  br i1 %5364, label %5365, label %5387

5365:                                             ; preds = %5358
  %5366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5367 = call i32 @fileno(ptr noundef %5366) #11
  %5368 = call i32 @isatty(i32 noundef %5367) #11
  %5369 = icmp ne i32 %5368, 0
  br i1 %5369, label %5370, label %5387

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

5387:                                             ; preds = %5365, %5358
  %5388 = load i32, ptr %124, align 4, !tbaa !5
  %5389 = call ptr @__errno_location() #12
  store i32 %5388, ptr %5389, align 4, !tbaa !5
  %5390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5391 = load i32, ptr @test_count, align 4, !tbaa !5
  %5392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call ptr @s2n_strerror(i32 noundef %5393, ptr noundef @.str.3)
  %5395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5396 = load i32, ptr %5395, align 4, !tbaa !5
  %5397 = call ptr @s2n_strerror_debug(i32 noundef %5396, ptr noundef @.str.3)
  %5398 = call ptr @__errno_location() #12
  %5399 = load i32, ptr %5398, align 4, !tbaa !5
  %5400 = call ptr @strerror(i32 noundef %5399) #11
  %5401 = call ptr @__errno_location() #12
  %5402 = load i32, ptr %5401, align 4, !tbaa !5
  %5403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5390, ptr noundef @.str.4, i32 noundef %5391, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 210, ptr noundef %5394, ptr noundef %5397, ptr noundef %5400, i32 noundef %5402) #11
  br label %5404

5404:                                             ; preds = %5387, %5370
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5405

5405:                                             ; preds = %5404
  br label %5406

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

5407:                                             ; No predecessors!
  br label %5408

5408:                                             ; preds = %5407
  br label %5409

5409:                                             ; preds = %5408, %5347
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

5411:                                             ; preds = %5410
  br label %5412

5412:                                             ; preds = %5411
  %5413 = load i32, ptr @test_count, align 4, !tbaa !5
  %5414 = add nsw i32 %5413, 1
  store i32 %5414, ptr @test_count, align 4, !tbaa !5
  %5415 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %5416 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %5417 = call i64 @strlen(ptr noundef %5416) #14
  %5418 = trunc i64 %5417 to i32
  %5419 = call i32 @s2n_hmac_update(ptr noundef %17, ptr noundef %5415, i32 noundef %5418)
  %5420 = icmp eq i32 %5419, -1
  br i1 %5420, label %5421, label %5474

5421:                                             ; preds = %5412
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

5423:                                             ; preds = %5422
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %5424 = call ptr @__errno_location() #12
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  store i32 %5425, ptr %125, align 4, !tbaa !5
  %5426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5427 = call i32 @s2n_print_stacktrace(ptr noundef %5426)
  %5428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5429 = trunc i8 %5428 to i1
  br i1 %5429, label %5430, label %5452

5430:                                             ; preds = %5423
  %5431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5432 = call i32 @fileno(ptr noundef %5431) #11
  %5433 = call i32 @isatty(i32 noundef %5432) #11
  %5434 = icmp ne i32 %5433, 0
  br i1 %5434, label %5435, label %5452

5435:                                             ; preds = %5430
  %5436 = load i32, ptr %125, align 4, !tbaa !5
  %5437 = call ptr @__errno_location() #12
  store i32 %5436, ptr %5437, align 4, !tbaa !5
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = load i32, ptr @test_count, align 4, !tbaa !5
  %5440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5441 = load i32, ptr %5440, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef @.str.3)
  %5443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5444 = load i32, ptr %5443, align 4, !tbaa !5
  %5445 = call ptr @s2n_strerror_debug(i32 noundef %5444, ptr noundef @.str.3)
  %5446 = call ptr @__errno_location() #12
  %5447 = load i32, ptr %5446, align 4, !tbaa !5
  %5448 = call ptr @strerror(i32 noundef %5447) #11
  %5449 = call ptr @__errno_location() #12
  %5450 = load i32, ptr %5449, align 4, !tbaa !5
  %5451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5438, ptr noundef @.str, i32 noundef %5439, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 211, ptr noundef %5442, ptr noundef %5445, ptr noundef %5448, i32 noundef %5450) #11
  br label %5469

5452:                                             ; preds = %5430, %5423
  %5453 = load i32, ptr %125, align 4, !tbaa !5
  %5454 = call ptr @__errno_location() #12
  store i32 %5453, ptr %5454, align 4, !tbaa !5
  %5455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  %5459 = call ptr @s2n_strerror(i32 noundef %5458, ptr noundef @.str.3)
  %5460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5461 = load i32, ptr %5460, align 4, !tbaa !5
  %5462 = call ptr @s2n_strerror_debug(i32 noundef %5461, ptr noundef @.str.3)
  %5463 = call ptr @__errno_location() #12
  %5464 = load i32, ptr %5463, align 4, !tbaa !5
  %5465 = call ptr @strerror(i32 noundef %5464) #11
  %5466 = call ptr @__errno_location() #12
  %5467 = load i32, ptr %5466, align 4, !tbaa !5
  %5468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5455, ptr noundef @.str.4, i32 noundef %5456, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 211, ptr noundef %5459, ptr noundef %5462, ptr noundef %5465, i32 noundef %5467) #11
  br label %5469

5469:                                             ; preds = %5452, %5435
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %5470

5470:                                             ; preds = %5469
  br label %5471

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

5472:                                             ; No predecessors!
  br label %5473

5473:                                             ; preds = %5472
  br label %5474

5474:                                             ; preds = %5473, %5412
  br label %5475

5475:                                             ; preds = %5474
  br label %5476

5476:                                             ; preds = %5475
  br label %5477

5477:                                             ; preds = %5476
  %5478 = load i32, ptr @test_count, align 4, !tbaa !5
  %5479 = add nsw i32 %5478, 1
  store i32 %5479, ptr @test_count, align 4, !tbaa !5
  %5480 = getelementptr inbounds [256 x i8], ptr %7, i64 0, i64 0
  %5481 = call i32 @s2n_hmac_digest(ptr noundef %17, ptr noundef %5480, i32 noundef 20)
  %5482 = icmp eq i32 %5481, -1
  br i1 %5482, label %5483, label %5536

5483:                                             ; preds = %5477
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

5485:                                             ; preds = %5484
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %5486 = call ptr @__errno_location() #12
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  store i32 %5487, ptr %126, align 4, !tbaa !5
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @s2n_print_stacktrace(ptr noundef %5488)
  %5490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5491 = trunc i8 %5490 to i1
  br i1 %5491, label %5492, label %5514

5492:                                             ; preds = %5485
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @fileno(ptr noundef %5493) #11
  %5495 = call i32 @isatty(i32 noundef %5494) #11
  %5496 = icmp ne i32 %5495, 0
  br i1 %5496, label %5497, label %5514

5497:                                             ; preds = %5492
  %5498 = load i32, ptr %126, align 4, !tbaa !5
  %5499 = call ptr @__errno_location() #12
  store i32 %5498, ptr %5499, align 4, !tbaa !5
  %5500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5501 = load i32, ptr @test_count, align 4, !tbaa !5
  %5502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5503 = load i32, ptr %5502, align 4, !tbaa !5
  %5504 = call ptr @s2n_strerror(i32 noundef %5503, ptr noundef @.str.3)
  %5505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5506 = load i32, ptr %5505, align 4, !tbaa !5
  %5507 = call ptr @s2n_strerror_debug(i32 noundef %5506, ptr noundef @.str.3)
  %5508 = call ptr @__errno_location() #12
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call ptr @strerror(i32 noundef %5509) #11
  %5511 = call ptr @__errno_location() #12
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5500, ptr noundef @.str, i32 noundef %5501, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 212, ptr noundef %5504, ptr noundef %5507, ptr noundef %5510, i32 noundef %5512) #11
  br label %5531

5514:                                             ; preds = %5492, %5485
  %5515 = load i32, ptr %126, align 4, !tbaa !5
  %5516 = call ptr @__errno_location() #12
  store i32 %5515, ptr %5516, align 4, !tbaa !5
  %5517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5518 = load i32, ptr @test_count, align 4, !tbaa !5
  %5519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror(i32 noundef %5520, ptr noundef @.str.3)
  %5522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call ptr @s2n_strerror_debug(i32 noundef %5523, ptr noundef @.str.3)
  %5525 = call ptr @__errno_location() #12
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call ptr @strerror(i32 noundef %5526) #11
  %5528 = call ptr @__errno_location() #12
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5517, ptr noundef @.str.4, i32 noundef %5518, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 212, ptr noundef %5521, ptr noundef %5524, ptr noundef %5527, i32 noundef %5529) #11
  br label %5531

5531:                                             ; preds = %5514, %5497
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %5532

5532:                                             ; preds = %5531
  br label %5533

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

5534:                                             ; No predecessors!
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

5536:                                             ; preds = %5535, %5477
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

5538:                                             ; preds = %5537
  br label %5539

5539:                                             ; preds = %5538
  %5540 = load i32, ptr @test_count, align 4, !tbaa !5
  %5541 = add nsw i32 %5540, 1
  store i32 %5541, ptr @test_count, align 4, !tbaa !5
  %5542 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %5543 = getelementptr inbounds [256 x i8], ptr %7, i64 0, i64 0
  %5544 = call i32 @s2n_hmac_digest_verify(ptr noundef %5542, ptr noundef %5543, i32 noundef 20)
  %5545 = icmp eq i32 %5544, -1
  br i1 %5545, label %5546, label %5599

5546:                                             ; preds = %5539
  br label %5547

5547:                                             ; preds = %5546
  br label %5548

5548:                                             ; preds = %5547
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %5549 = call ptr @__errno_location() #12
  %5550 = load i32, ptr %5549, align 4, !tbaa !5
  store i32 %5550, ptr %127, align 4, !tbaa !5
  %5551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5552 = call i32 @s2n_print_stacktrace(ptr noundef %5551)
  %5553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5554 = trunc i8 %5553 to i1
  br i1 %5554, label %5555, label %5577

5555:                                             ; preds = %5548
  %5556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5557 = call i32 @fileno(ptr noundef %5556) #11
  %5558 = call i32 @isatty(i32 noundef %5557) #11
  %5559 = icmp ne i32 %5558, 0
  br i1 %5559, label %5560, label %5577

5560:                                             ; preds = %5555
  %5561 = load i32, ptr %127, align 4, !tbaa !5
  %5562 = call ptr @__errno_location() #12
  store i32 %5561, ptr %5562, align 4, !tbaa !5
  %5563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5564 = load i32, ptr @test_count, align 4, !tbaa !5
  %5565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call ptr @s2n_strerror(i32 noundef %5566, ptr noundef @.str.3)
  %5568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5569 = load i32, ptr %5568, align 4, !tbaa !5
  %5570 = call ptr @s2n_strerror_debug(i32 noundef %5569, ptr noundef @.str.3)
  %5571 = call ptr @__errno_location() #12
  %5572 = load i32, ptr %5571, align 4, !tbaa !5
  %5573 = call ptr @strerror(i32 noundef %5572) #11
  %5574 = call ptr @__errno_location() #12
  %5575 = load i32, ptr %5574, align 4, !tbaa !5
  %5576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5563, ptr noundef @.str, i32 noundef %5564, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 213, ptr noundef %5567, ptr noundef %5570, ptr noundef %5573, i32 noundef %5575) #11
  br label %5594

5577:                                             ; preds = %5555, %5548
  %5578 = load i32, ptr %127, align 4, !tbaa !5
  %5579 = call ptr @__errno_location() #12
  store i32 %5578, ptr %5579, align 4, !tbaa !5
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = load i32, ptr @test_count, align 4, !tbaa !5
  %5582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @s2n_strerror(i32 noundef %5583, ptr noundef @.str.3)
  %5585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call ptr @s2n_strerror_debug(i32 noundef %5586, ptr noundef @.str.3)
  %5588 = call ptr @__errno_location() #12
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call ptr @strerror(i32 noundef %5589) #11
  %5591 = call ptr @__errno_location() #12
  %5592 = load i32, ptr %5591, align 4, !tbaa !5
  %5593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5580, ptr noundef @.str.4, i32 noundef %5581, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 213, ptr noundef %5584, ptr noundef %5587, ptr noundef %5590, i32 noundef %5592) #11
  br label %5594

5594:                                             ; preds = %5577, %5560
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5595

5595:                                             ; preds = %5594
  br label %5596

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

5597:                                             ; No predecessors!
  br label %5598

5598:                                             ; preds = %5597
  br label %5599

5599:                                             ; preds = %5598, %5539
  br label %5600

5600:                                             ; preds = %5599
  br label %5601

5601:                                             ; preds = %5600
  br label %5602

5602:                                             ; preds = %5601
  %5603 = load i32, ptr @test_count, align 4, !tbaa !5
  %5604 = add nsw i32 %5603, 1
  store i32 %5604, ptr @test_count, align 4, !tbaa !5
  %5605 = call i32 @s2n_hmac_free(ptr noundef %17)
  %5606 = icmp eq i32 %5605, -1
  br i1 %5606, label %5607, label %5660

5607:                                             ; preds = %5602
  br label %5608

5608:                                             ; preds = %5607
  br label %5609

5609:                                             ; preds = %5608
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %5610 = call ptr @__errno_location() #12
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  store i32 %5611, ptr %128, align 4, !tbaa !5
  %5612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5613 = call i32 @s2n_print_stacktrace(ptr noundef %5612)
  %5614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5615 = trunc i8 %5614 to i1
  br i1 %5615, label %5616, label %5638

5616:                                             ; preds = %5609
  %5617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5618 = call i32 @fileno(ptr noundef %5617) #11
  %5619 = call i32 @isatty(i32 noundef %5618) #11
  %5620 = icmp ne i32 %5619, 0
  br i1 %5620, label %5621, label %5638

5621:                                             ; preds = %5616
  %5622 = load i32, ptr %128, align 4, !tbaa !5
  %5623 = call ptr @__errno_location() #12
  store i32 %5622, ptr %5623, align 4, !tbaa !5
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = load i32, ptr @test_count, align 4, !tbaa !5
  %5626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5627 = load i32, ptr %5626, align 4, !tbaa !5
  %5628 = call ptr @s2n_strerror(i32 noundef %5627, ptr noundef @.str.3)
  %5629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5630 = load i32, ptr %5629, align 4, !tbaa !5
  %5631 = call ptr @s2n_strerror_debug(i32 noundef %5630, ptr noundef @.str.3)
  %5632 = call ptr @__errno_location() #12
  %5633 = load i32, ptr %5632, align 4, !tbaa !5
  %5634 = call ptr @strerror(i32 noundef %5633) #11
  %5635 = call ptr @__errno_location() #12
  %5636 = load i32, ptr %5635, align 4, !tbaa !5
  %5637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5624, ptr noundef @.str, i32 noundef %5625, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 214, ptr noundef %5628, ptr noundef %5631, ptr noundef %5634, i32 noundef %5636) #11
  br label %5655

5638:                                             ; preds = %5616, %5609
  %5639 = load i32, ptr %128, align 4, !tbaa !5
  %5640 = call ptr @__errno_location() #12
  store i32 %5639, ptr %5640, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = load i32, ptr @test_count, align 4, !tbaa !5
  %5643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror(i32 noundef %5644, ptr noundef @.str.3)
  %5646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call ptr @s2n_strerror_debug(i32 noundef %5647, ptr noundef @.str.3)
  %5649 = call ptr @__errno_location() #12
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @strerror(i32 noundef %5650) #11
  %5652 = call ptr @__errno_location() #12
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5641, ptr noundef @.str.4, i32 noundef %5642, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 214, ptr noundef %5645, ptr noundef %5648, ptr noundef %5651, i32 noundef %5653) #11
  br label %5655

5655:                                             ; preds = %5638, %5621
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %5656

5656:                                             ; preds = %5655
  br label %5657

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

5658:                                             ; No predecessors!
  br label %5659

5659:                                             ; preds = %5658
  br label %5660

5660:                                             ; preds = %5659, %5602
  br label %5661

5661:                                             ; preds = %5660
  br label %5662

5662:                                             ; preds = %5661
  br label %5663

5663:                                             ; preds = %5662
  %5664 = load i32, ptr @test_count, align 4, !tbaa !5
  %5665 = add nsw i32 %5664, 1
  store i32 %5665, ptr @test_count, align 4, !tbaa !5
  %5666 = call i32 @s2n_hmac_new(ptr noundef %15)
  %5667 = icmp eq i32 %5666, -1
  br i1 %5667, label %5668, label %5721

5668:                                             ; preds = %5663
  br label %5669

5669:                                             ; preds = %5668
  br label %5670

5670:                                             ; preds = %5669
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5671 = call ptr @__errno_location() #12
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  store i32 %5672, ptr %129, align 4, !tbaa !5
  %5673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5674 = call i32 @s2n_print_stacktrace(ptr noundef %5673)
  %5675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5676 = trunc i8 %5675 to i1
  br i1 %5676, label %5677, label %5699

5677:                                             ; preds = %5670
  %5678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5679 = call i32 @fileno(ptr noundef %5678) #11
  %5680 = call i32 @isatty(i32 noundef %5679) #11
  %5681 = icmp ne i32 %5680, 0
  br i1 %5681, label %5682, label %5699

5682:                                             ; preds = %5677
  %5683 = load i32, ptr %129, align 4, !tbaa !5
  %5684 = call ptr @__errno_location() #12
  store i32 %5683, ptr %5684, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = load i32, ptr @test_count, align 4, !tbaa !5
  %5687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5688 = load i32, ptr %5687, align 4, !tbaa !5
  %5689 = call ptr @s2n_strerror(i32 noundef %5688, ptr noundef @.str.3)
  %5690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5691 = load i32, ptr %5690, align 4, !tbaa !5
  %5692 = call ptr @s2n_strerror_debug(i32 noundef %5691, ptr noundef @.str.3)
  %5693 = call ptr @__errno_location() #12
  %5694 = load i32, ptr %5693, align 4, !tbaa !5
  %5695 = call ptr @strerror(i32 noundef %5694) #11
  %5696 = call ptr @__errno_location() #12
  %5697 = load i32, ptr %5696, align 4, !tbaa !5
  %5698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5685, ptr noundef @.str, i32 noundef %5686, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 217, ptr noundef %5689, ptr noundef %5692, ptr noundef %5695, i32 noundef %5697) #11
  br label %5716

5699:                                             ; preds = %5677, %5670
  %5700 = load i32, ptr %129, align 4, !tbaa !5
  %5701 = call ptr @__errno_location() #12
  store i32 %5700, ptr %5701, align 4, !tbaa !5
  %5702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5703 = load i32, ptr @test_count, align 4, !tbaa !5
  %5704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call ptr @s2n_strerror(i32 noundef %5705, ptr noundef @.str.3)
  %5707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call ptr @s2n_strerror_debug(i32 noundef %5708, ptr noundef @.str.3)
  %5710 = call ptr @__errno_location() #12
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @strerror(i32 noundef %5711) #11
  %5713 = call ptr @__errno_location() #12
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5702, ptr noundef @.str.4, i32 noundef %5703, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 217, ptr noundef %5706, ptr noundef %5709, ptr noundef %5712, i32 noundef %5714) #11
  br label %5716

5716:                                             ; preds = %5699, %5682
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

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

5719:                                             ; No predecessors!
  br label %5720

5720:                                             ; preds = %5719
  br label %5721

5721:                                             ; preds = %5720, %5663
  br label %5722

5722:                                             ; preds = %5721
  br label %5723

5723:                                             ; preds = %5722
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #11
  store i8 0, ptr %130, align 1, !tbaa !15
  br label %5724

5724:                                             ; preds = %5723
  %5725 = call i32 @s2n_hmac_digest_size(i32 noundef 3, ptr noundef %130)
  %5726 = icmp sgt i32 %5725, -1
  br i1 %5726, label %5728, label %5727

5727:                                             ; preds = %5724
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %8152

5728:                                             ; preds = %5724
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  %5732 = load i32, ptr @test_count, align 4, !tbaa !5
  %5733 = add nsw i32 %5732, 1
  store i32 %5733, ptr @test_count, align 4, !tbaa !5
  %5734 = load i8, ptr %130, align 1, !tbaa !15
  %5735 = zext i8 %5734 to i32
  %5736 = icmp eq i32 %5735, 28
  br i1 %5736, label %5790, label %5737

5737:                                             ; preds = %5731
  br label %5738

5738:                                             ; preds = %5737
  br label %5739

5739:                                             ; preds = %5738
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %5740 = call ptr @__errno_location() #12
  %5741 = load i32, ptr %5740, align 4, !tbaa !5
  store i32 %5741, ptr %131, align 4, !tbaa !5
  %5742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5743 = call i32 @s2n_print_stacktrace(ptr noundef %5742)
  %5744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5745 = trunc i8 %5744 to i1
  br i1 %5745, label %5746, label %5768

5746:                                             ; preds = %5739
  %5747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5748 = call i32 @fileno(ptr noundef %5747) #11
  %5749 = call i32 @isatty(i32 noundef %5748) #11
  %5750 = icmp ne i32 %5749, 0
  br i1 %5750, label %5751, label %5768

5751:                                             ; preds = %5746
  %5752 = load i32, ptr %131, align 4, !tbaa !5
  %5753 = call ptr @__errno_location() #12
  store i32 %5752, ptr %5753, align 4, !tbaa !5
  %5754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5755 = load i32, ptr @test_count, align 4, !tbaa !5
  %5756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5757 = load i32, ptr %5756, align 4, !tbaa !5
  %5758 = call ptr @s2n_strerror(i32 noundef %5757, ptr noundef @.str.3)
  %5759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call ptr @s2n_strerror_debug(i32 noundef %5760, ptr noundef @.str.3)
  %5762 = call ptr @__errno_location() #12
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  %5764 = call ptr @strerror(i32 noundef %5763) #11
  %5765 = call ptr @__errno_location() #12
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5754, ptr noundef @.str, i32 noundef %5755, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 221, ptr noundef %5758, ptr noundef %5761, ptr noundef %5764, i32 noundef %5766) #11
  br label %5785

5768:                                             ; preds = %5746, %5739
  %5769 = load i32, ptr %131, align 4, !tbaa !5
  %5770 = call ptr @__errno_location() #12
  store i32 %5769, ptr %5770, align 4, !tbaa !5
  %5771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5772 = load i32, ptr @test_count, align 4, !tbaa !5
  %5773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5774 = load i32, ptr %5773, align 4, !tbaa !5
  %5775 = call ptr @s2n_strerror(i32 noundef %5774, ptr noundef @.str.3)
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror_debug(i32 noundef %5777, ptr noundef @.str.3)
  %5779 = call ptr @__errno_location() #12
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call ptr @strerror(i32 noundef %5780) #11
  %5782 = call ptr @__errno_location() #12
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5771, ptr noundef @.str.4, i32 noundef %5772, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 221, ptr noundef %5775, ptr noundef %5778, ptr noundef %5781, i32 noundef %5783) #11
  br label %5785

5785:                                             ; preds = %5768, %5751
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5786

5786:                                             ; preds = %5785
  br label %5787

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

5788:                                             ; No predecessors!
  br label %5789

5789:                                             ; preds = %5788
  br label %5790

5790:                                             ; preds = %5789, %5731
  br label %5791

5791:                                             ; preds = %5790
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792
  %5794 = load i32, ptr @test_count, align 4, !tbaa !5
  %5795 = add nsw i32 %5794, 1
  store i32 %5795, ptr @test_count, align 4, !tbaa !5
  %5796 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %5797 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %5798 = call i64 @strlen(ptr noundef %5797) #14
  %5799 = trunc i64 %5798 to i32
  %5800 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 3, ptr noundef %5796, i32 noundef %5799)
  %5801 = icmp eq i32 %5800, -1
  br i1 %5801, label %5802, label %5855

5802:                                             ; preds = %5793
  br label %5803

5803:                                             ; preds = %5802
  br label %5804

5804:                                             ; preds = %5803
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %5805 = call ptr @__errno_location() #12
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  store i32 %5806, ptr %132, align 4, !tbaa !5
  %5807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5808 = call i32 @s2n_print_stacktrace(ptr noundef %5807)
  %5809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5810 = trunc i8 %5809 to i1
  br i1 %5810, label %5811, label %5833

5811:                                             ; preds = %5804
  %5812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5813 = call i32 @fileno(ptr noundef %5812) #11
  %5814 = call i32 @isatty(i32 noundef %5813) #11
  %5815 = icmp ne i32 %5814, 0
  br i1 %5815, label %5816, label %5833

5816:                                             ; preds = %5811
  %5817 = load i32, ptr %132, 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.3)
  %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.3)
  %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, i32 noundef %5820, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 222, ptr noundef %5823, ptr noundef %5826, ptr noundef %5829, i32 noundef %5831) #11
  br label %5850

5833:                                             ; preds = %5811, %5804
  %5834 = load i32, ptr %132, align 4, !tbaa !5
  %5835 = call ptr @__errno_location() #12
  store i32 %5834, ptr %5835, align 4, !tbaa !5
  %5836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5837 = load i32, ptr @test_count, align 4, !tbaa !5
  %5838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5839 = load i32, ptr %5838, align 4, !tbaa !5
  %5840 = call ptr @s2n_strerror(i32 noundef %5839, ptr noundef @.str.3)
  %5841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5842 = load i32, ptr %5841, align 4, !tbaa !5
  %5843 = call ptr @s2n_strerror_debug(i32 noundef %5842, ptr noundef @.str.3)
  %5844 = call ptr @__errno_location() #12
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @strerror(i32 noundef %5845) #11
  %5847 = call ptr @__errno_location() #12
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5836, ptr noundef @.str.4, i32 noundef %5837, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 222, ptr noundef %5840, ptr noundef %5843, ptr noundef %5846, i32 noundef %5848) #11
  br label %5850

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

5851:                                             ; preds = %5850
  br label %5852

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

5853:                                             ; No predecessors!
  br label %5854

5854:                                             ; preds = %5853
  br label %5855

5855:                                             ; preds = %5854, %5793
  br label %5856

5856:                                             ; preds = %5855
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

5858:                                             ; preds = %5857
  %5859 = load i32, ptr @test_count, align 4, !tbaa !5
  %5860 = add nsw i32 %5859, 1
  store i32 %5860, ptr @test_count, align 4, !tbaa !5
  %5861 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %5862 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %5863 = call i64 @strlen(ptr noundef %5862) #14
  %5864 = trunc i64 %5863 to i32
  %5865 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %5861, i32 noundef %5864)
  %5866 = icmp eq i32 %5865, -1
  br i1 %5866, label %5867, label %5920

5867:                                             ; preds = %5858
  br label %5868

5868:                                             ; preds = %5867
  br label %5869

5869:                                             ; preds = %5868
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %5870 = call ptr @__errno_location() #12
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  store i32 %5871, ptr %133, align 4, !tbaa !5
  %5872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5873 = call i32 @s2n_print_stacktrace(ptr noundef %5872)
  %5874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5875 = trunc i8 %5874 to i1
  br i1 %5875, label %5876, label %5898

5876:                                             ; preds = %5869
  %5877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5878 = call i32 @fileno(ptr noundef %5877) #11
  %5879 = call i32 @isatty(i32 noundef %5878) #11
  %5880 = icmp ne i32 %5879, 0
  br i1 %5880, label %5881, label %5898

5881:                                             ; preds = %5876
  %5882 = load i32, ptr %133, align 4, !tbaa !5
  %5883 = call ptr @__errno_location() #12
  store i32 %5882, ptr %5883, align 4, !tbaa !5
  %5884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5885 = load i32, ptr @test_count, align 4, !tbaa !5
  %5886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5887 = load i32, ptr %5886, align 4, !tbaa !5
  %5888 = call ptr @s2n_strerror(i32 noundef %5887, ptr noundef @.str.3)
  %5889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5890 = load i32, ptr %5889, align 4, !tbaa !5
  %5891 = call ptr @s2n_strerror_debug(i32 noundef %5890, ptr noundef @.str.3)
  %5892 = call ptr @__errno_location() #12
  %5893 = load i32, ptr %5892, align 4, !tbaa !5
  %5894 = call ptr @strerror(i32 noundef %5893) #11
  %5895 = call ptr @__errno_location() #12
  %5896 = load i32, ptr %5895, align 4, !tbaa !5
  %5897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5884, ptr noundef @.str, i32 noundef %5885, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 223, ptr noundef %5888, ptr noundef %5891, ptr noundef %5894, i32 noundef %5896) #11
  br label %5915

5898:                                             ; preds = %5876, %5869
  %5899 = load i32, ptr %133, align 4, !tbaa !5
  %5900 = call ptr @__errno_location() #12
  store i32 %5899, ptr %5900, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = load i32, ptr @test_count, align 4, !tbaa !5
  %5903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  %5905 = call ptr @s2n_strerror(i32 noundef %5904, ptr noundef @.str.3)
  %5906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror_debug(i32 noundef %5907, ptr noundef @.str.3)
  %5909 = call ptr @__errno_location() #12
  %5910 = load i32, ptr %5909, align 4, !tbaa !5
  %5911 = call ptr @strerror(i32 noundef %5910) #11
  %5912 = call ptr @__errno_location() #12
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5901, ptr noundef @.str.4, i32 noundef %5902, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 223, ptr noundef %5905, ptr noundef %5908, ptr noundef %5911, i32 noundef %5913) #11
  br label %5915

5915:                                             ; preds = %5898, %5881
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %5916

5916:                                             ; preds = %5915
  br label %5917

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

5918:                                             ; No predecessors!
  br label %5919

5919:                                             ; preds = %5918
  br label %5920

5920:                                             ; preds = %5919, %5858
  br label %5921

5921:                                             ; preds = %5920
  br label %5922

5922:                                             ; preds = %5921
  br label %5923

5923:                                             ; preds = %5922
  %5924 = load i32, ptr @test_count, align 4, !tbaa !5
  %5925 = add nsw i32 %5924, 1
  store i32 %5925, ptr @test_count, align 4, !tbaa !5
  %5926 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %5927 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %5926, i32 noundef 28)
  %5928 = icmp eq i32 %5927, -1
  br i1 %5928, label %5929, label %5982

5929:                                             ; preds = %5923
  br label %5930

5930:                                             ; preds = %5929
  br label %5931

5931:                                             ; preds = %5930
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %5932 = call ptr @__errno_location() #12
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  store i32 %5933, ptr %134, align 4, !tbaa !5
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = call i32 @s2n_print_stacktrace(ptr noundef %5934)
  %5936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5937 = trunc i8 %5936 to i1
  br i1 %5937, label %5938, label %5960

5938:                                             ; preds = %5931
  %5939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5940 = call i32 @fileno(ptr noundef %5939) #11
  %5941 = call i32 @isatty(i32 noundef %5940) #11
  %5942 = icmp ne i32 %5941, 0
  br i1 %5942, label %5943, label %5960

5943:                                             ; preds = %5938
  %5944 = load i32, ptr %134, align 4, !tbaa !5
  %5945 = call ptr @__errno_location() #12
  store i32 %5944, ptr %5945, align 4, !tbaa !5
  %5946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5947 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5949, ptr noundef @.str.3)
  %5951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @s2n_strerror_debug(i32 noundef %5952, ptr noundef @.str.3)
  %5954 = call ptr @__errno_location() #12
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call ptr @strerror(i32 noundef %5955) #11
  %5957 = call ptr @__errno_location() #12
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  %5959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5946, ptr noundef @.str, i32 noundef %5947, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 224, ptr noundef %5950, ptr noundef %5953, ptr noundef %5956, i32 noundef %5958) #11
  br label %5977

5960:                                             ; preds = %5938, %5931
  %5961 = load i32, ptr %134, align 4, !tbaa !5
  %5962 = call ptr @__errno_location() #12
  store i32 %5961, ptr %5962, align 4, !tbaa !5
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = load i32, ptr @test_count, align 4, !tbaa !5
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror(i32 noundef %5966, ptr noundef @.str.3)
  %5968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @s2n_strerror_debug(i32 noundef %5969, ptr noundef @.str.3)
  %5971 = call ptr @__errno_location() #12
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call ptr @strerror(i32 noundef %5972) #11
  %5974 = call ptr @__errno_location() #12
  %5975 = load i32, ptr %5974, align 4, !tbaa !5
  %5976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5963, ptr noundef @.str.4, i32 noundef %5964, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 224, ptr noundef %5967, ptr noundef %5970, ptr noundef %5973, i32 noundef %5975) #11
  br label %5977

5977:                                             ; preds = %5960, %5943
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %5978

5978:                                             ; preds = %5977
  br label %5979

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

5980:                                             ; No predecessors!
  br label %5981

5981:                                             ; preds = %5980
  br label %5982

5982:                                             ; preds = %5981, %5923
  br label %5983

5983:                                             ; preds = %5982
  br label %5984

5984:                                             ; preds = %5983
  br label %5985

5985:                                             ; preds = %5984
  %5986 = load i32, ptr @test_count, align 4, !tbaa !5
  %5987 = add nsw i32 %5986, 1
  store i32 %5987, ptr @test_count, align 4, !tbaa !5
  %5988 = call i32 @s2n_hmac_free(ptr noundef %15)
  %5989 = icmp eq i32 %5988, -1
  br i1 %5989, label %5990, label %6043

5990:                                             ; preds = %5985
  br label %5991

5991:                                             ; preds = %5990
  br label %5992

5992:                                             ; preds = %5991
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %5993 = call ptr @__errno_location() #12
  %5994 = load i32, ptr %5993, align 4, !tbaa !5
  store i32 %5994, ptr %135, align 4, !tbaa !5
  %5995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5996 = call i32 @s2n_print_stacktrace(ptr noundef %5995)
  %5997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5998 = trunc i8 %5997 to i1
  br i1 %5998, label %5999, label %6021

5999:                                             ; preds = %5992
  %6000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6001 = call i32 @fileno(ptr noundef %6000) #11
  %6002 = call i32 @isatty(i32 noundef %6001) #11
  %6003 = icmp ne i32 %6002, 0
  br i1 %6003, label %6004, label %6021

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

6021:                                             ; preds = %5999, %5992
  %6022 = load i32, ptr %135, align 4, !tbaa !5
  %6023 = call ptr @__errno_location() #12
  store i32 %6022, ptr %6023, align 4, !tbaa !5
  %6024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6025 = load i32, ptr @test_count, align 4, !tbaa !5
  %6026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6027 = load i32, ptr %6026, align 4, !tbaa !5
  %6028 = call ptr @s2n_strerror(i32 noundef %6027, ptr noundef @.str.3)
  %6029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6030 = load i32, ptr %6029, align 4, !tbaa !5
  %6031 = call ptr @s2n_strerror_debug(i32 noundef %6030, ptr noundef @.str.3)
  %6032 = call ptr @__errno_location() #12
  %6033 = load i32, ptr %6032, align 4, !tbaa !5
  %6034 = call ptr @strerror(i32 noundef %6033) #11
  %6035 = call ptr @__errno_location() #12
  %6036 = load i32, ptr %6035, align 4, !tbaa !5
  %6037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6024, ptr noundef @.str.4, i32 noundef %6025, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 225, ptr noundef %6028, ptr noundef %6031, ptr noundef %6034, i32 noundef %6036) #11
  br label %6038

6038:                                             ; preds = %6021, %6004
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %6039

6039:                                             ; preds = %6038
  br label %6040

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

6041:                                             ; No predecessors!
  br label %6042

6042:                                             ; preds = %6041
  br label %6043

6043:                                             ; preds = %6042, %5985
  br label %6044

6044:                                             ; preds = %6043
  br label %6045

6045:                                             ; preds = %6044
  br label %6046

6046:                                             ; preds = %6045
  %6047 = load i32, ptr @test_count, align 4, !tbaa !5
  %6048 = add nsw i32 %6047, 1
  store i32 %6048, ptr @test_count, align 4, !tbaa !5
  %6049 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %6050 = icmp eq i32 %6049, -1
  br i1 %6050, label %6051, label %6104

6051:                                             ; preds = %6046
  br label %6052

6052:                                             ; preds = %6051
  br label %6053

6053:                                             ; preds = %6052
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %6054 = call ptr @__errno_location() #12
  %6055 = load i32, ptr %6054, align 4, !tbaa !5
  store i32 %6055, ptr %136, align 4, !tbaa !5
  %6056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6057 = call i32 @s2n_print_stacktrace(ptr noundef %6056)
  %6058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6059 = trunc i8 %6058 to i1
  br i1 %6059, label %6060, label %6082

6060:                                             ; preds = %6053
  %6061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6062 = call i32 @fileno(ptr noundef %6061) #11
  %6063 = call i32 @isatty(i32 noundef %6062) #11
  %6064 = icmp ne i32 %6063, 0
  br i1 %6064, label %6065, label %6082

6065:                                             ; preds = %6060
  %6066 = load i32, ptr %136, align 4, !tbaa !5
  %6067 = call ptr @__errno_location() #12
  store i32 %6066, ptr %6067, align 4, !tbaa !5
  %6068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6069 = load i32, ptr @test_count, align 4, !tbaa !5
  %6070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6071 = load i32, ptr %6070, align 4, !tbaa !5
  %6072 = call ptr @s2n_strerror(i32 noundef %6071, ptr noundef @.str.3)
  %6073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  %6075 = call ptr @s2n_strerror_debug(i32 noundef %6074, ptr noundef @.str.3)
  %6076 = call ptr @__errno_location() #12
  %6077 = load i32, ptr %6076, align 4, !tbaa !5
  %6078 = call ptr @strerror(i32 noundef %6077) #11
  %6079 = call ptr @__errno_location() #12
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6068, ptr noundef @.str, i32 noundef %6069, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 227, ptr noundef %6072, ptr noundef %6075, ptr noundef %6078, i32 noundef %6080) #11
  br label %6099

6082:                                             ; preds = %6060, %6053
  %6083 = load i32, ptr %136, align 4, !tbaa !5
  %6084 = call ptr @__errno_location() #12
  store i32 %6083, ptr %6084, align 4, !tbaa !5
  %6085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6086 = load i32, ptr @test_count, align 4, !tbaa !5
  %6087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6088 = load i32, ptr %6087, align 4, !tbaa !5
  %6089 = call ptr @s2n_strerror(i32 noundef %6088, ptr noundef @.str.3)
  %6090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6091 = load i32, ptr %6090, align 4, !tbaa !5
  %6092 = call ptr @s2n_strerror_debug(i32 noundef %6091, ptr noundef @.str.3)
  %6093 = call ptr @__errno_location() #12
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  %6095 = call ptr @strerror(i32 noundef %6094) #11
  %6096 = call ptr @__errno_location() #12
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6085, ptr noundef @.str.4, i32 noundef %6086, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 227, ptr noundef %6089, ptr noundef %6092, ptr noundef %6095, i32 noundef %6097) #11
  br label %6099

6099:                                             ; preds = %6082, %6065
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %6100

6100:                                             ; preds = %6099
  br label %6101

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

6102:                                             ; No predecessors!
  br label %6103

6103:                                             ; preds = %6102
  br label %6104

6104:                                             ; preds = %6103, %6046
  br label %6105

6105:                                             ; preds = %6104
  br label %6106

6106:                                             ; preds = %6105
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  store i32 0, ptr %137, align 4, !tbaa !5
  br label %6107

6107:                                             ; preds = %6180, %6106
  %6108 = load i32, ptr %137, align 4, !tbaa !5
  %6109 = icmp slt i32 %6108, 28
  br i1 %6109, label %6111, label %6110

6110:                                             ; preds = %6107
  store i32 598, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %6183

6111:                                             ; preds = %6107
  br label %6112

6112:                                             ; preds = %6111
  %6113 = load i32, ptr @test_count, align 4, !tbaa !5
  %6114 = add nsw i32 %6113, 1
  store i32 %6114, ptr @test_count, align 4, !tbaa !5
  %6115 = load i32, ptr %137, align 4, !tbaa !5
  %6116 = sext i32 %6115 to i64
  %6117 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %6116
  %6118 = load i8, ptr %6117, align 1, !tbaa !15
  %6119 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %6118)
  %6120 = getelementptr inbounds %struct.s2n_result, ptr %138, i32 0, i32 0
  store i32 %6119, ptr %6120, align 4
  %6121 = getelementptr inbounds %struct.s2n_result, ptr %138, i32 0, i32 0
  %6122 = load i32, ptr %6121, align 4
  %6123 = call zeroext i1 @s2n_result_is_ok(i32 %6122)
  br i1 %6123, label %6177, label %6124

6124:                                             ; preds = %6112
  br label %6125

6125:                                             ; preds = %6124
  br label %6126

6126:                                             ; preds = %6125
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %6127 = call ptr @__errno_location() #12
  %6128 = load i32, ptr %6127, align 4, !tbaa !5
  store i32 %6128, ptr %139, align 4, !tbaa !5
  %6129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6130 = call i32 @s2n_print_stacktrace(ptr noundef %6129)
  %6131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6132 = trunc i8 %6131 to i1
  br i1 %6132, label %6133, label %6155

6133:                                             ; preds = %6126
  %6134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6135 = call i32 @fileno(ptr noundef %6134) #11
  %6136 = call i32 @isatty(i32 noundef %6135) #11
  %6137 = icmp ne i32 %6136, 0
  br i1 %6137, label %6138, label %6155

6138:                                             ; preds = %6133
  %6139 = load i32, ptr %139, align 4, !tbaa !5
  %6140 = call ptr @__errno_location() #12
  store i32 %6139, ptr %6140, align 4, !tbaa !5
  %6141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6142 = load i32, ptr @test_count, align 4, !tbaa !5
  %6143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6144 = load i32, ptr %6143, align 4, !tbaa !5
  %6145 = call ptr @s2n_strerror(i32 noundef %6144, ptr noundef @.str.3)
  %6146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6147 = load i32, ptr %6146, align 4, !tbaa !5
  %6148 = call ptr @s2n_strerror_debug(i32 noundef %6147, ptr noundef @.str.3)
  %6149 = call ptr @__errno_location() #12
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  %6151 = call ptr @strerror(i32 noundef %6150) #11
  %6152 = call ptr @__errno_location() #12
  %6153 = load i32, ptr %6152, align 4, !tbaa !5
  %6154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6141, ptr noundef @.str, i32 noundef %6142, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 229, ptr noundef %6145, ptr noundef %6148, ptr noundef %6151, i32 noundef %6153) #11
  br label %6172

6155:                                             ; preds = %6133, %6126
  %6156 = load i32, ptr %139, align 4, !tbaa !5
  %6157 = call ptr @__errno_location() #12
  store i32 %6156, ptr %6157, align 4, !tbaa !5
  %6158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6159 = load i32, ptr @test_count, align 4, !tbaa !5
  %6160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call ptr @s2n_strerror(i32 noundef %6161, ptr noundef @.str.3)
  %6163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @s2n_strerror_debug(i32 noundef %6164, ptr noundef @.str.3)
  %6166 = call ptr @__errno_location() #12
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call ptr @strerror(i32 noundef %6167) #11
  %6169 = call ptr @__errno_location() #12
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  %6171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6158, ptr noundef @.str.4, i32 noundef %6159, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 229, ptr noundef %6162, ptr noundef %6165, ptr noundef %6168, i32 noundef %6170) #11
  br label %6172

6172:                                             ; preds = %6155, %6138
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6173

6173:                                             ; preds = %6172
  br label %6174

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

6175:                                             ; No predecessors!
  br label %6176

6176:                                             ; preds = %6175
  br label %6177

6177:                                             ; preds = %6176, %6112
  br label %6178

6178:                                             ; preds = %6177
  br label %6179

6179:                                             ; preds = %6178
  br label %6180

6180:                                             ; preds = %6179
  %6181 = load i32, ptr %137, align 4, !tbaa !5
  %6182 = add nsw i32 %6181, 1
  store i32 %6182, ptr %137, align 4, !tbaa !5
  br label %6107, !llvm.loop !27

6183:                                             ; preds = %6110
  br label %6184

6184:                                             ; preds = %6183
  %6185 = load i32, ptr @test_count, align 4, !tbaa !5
  %6186 = add nsw i32 %6185, 1
  store i32 %6186, ptr @test_count, align 4, !tbaa !5
  %6187 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %6188 = call i32 @memcmp(ptr noundef %6187, ptr noundef @.str.56, i64 noundef 56) #14
  %6189 = icmp eq i32 %6188, 0
  br i1 %6189, label %6243, label %6190

6190:                                             ; preds = %6184
  br label %6191

6191:                                             ; preds = %6190
  br label %6192

6192:                                             ; preds = %6191
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %6193 = call ptr @__errno_location() #12
  %6194 = load i32, ptr %6193, align 4, !tbaa !5
  store i32 %6194, ptr %140, align 4, !tbaa !5
  %6195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6196 = call i32 @s2n_print_stacktrace(ptr noundef %6195)
  %6197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6198 = trunc i8 %6197 to i1
  br i1 %6198, label %6199, label %6221

6199:                                             ; preds = %6192
  %6200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6201 = call i32 @fileno(ptr noundef %6200) #11
  %6202 = call i32 @isatty(i32 noundef %6201) #11
  %6203 = icmp ne i32 %6202, 0
  br i1 %6203, label %6204, label %6221

6204:                                             ; preds = %6199
  %6205 = load i32, ptr %140, align 4, !tbaa !5
  %6206 = call ptr @__errno_location() #12
  store i32 %6205, ptr %6206, align 4, !tbaa !5
  %6207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6208 = load i32, ptr @test_count, align 4, !tbaa !5
  %6209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6210 = load i32, ptr %6209, align 4, !tbaa !5
  %6211 = call ptr @s2n_strerror(i32 noundef %6210, ptr noundef @.str.3)
  %6212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6213 = load i32, ptr %6212, align 4, !tbaa !5
  %6214 = call ptr @s2n_strerror_debug(i32 noundef %6213, ptr noundef @.str.3)
  %6215 = call ptr @__errno_location() #12
  %6216 = load i32, ptr %6215, align 4, !tbaa !5
  %6217 = call ptr @strerror(i32 noundef %6216) #11
  %6218 = call ptr @__errno_location() #12
  %6219 = load i32, ptr %6218, align 4, !tbaa !5
  %6220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6207, ptr noundef @.str, i32 noundef %6208, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 233, ptr noundef %6211, ptr noundef %6214, ptr noundef %6217, i32 noundef %6219) #11
  br label %6238

6221:                                             ; preds = %6199, %6192
  %6222 = load i32, ptr %140, 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.3)
  %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.3)
  %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.4, i32 noundef %6225, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 233, ptr noundef %6228, ptr noundef %6231, ptr noundef %6234, i32 noundef %6236) #11
  br label %6238

6238:                                             ; preds = %6221, %6204
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6239

6239:                                             ; preds = %6238
  br label %6240

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

6241:                                             ; No predecessors!
  br label %6242

6242:                                             ; preds = %6241
  br label %6243

6243:                                             ; preds = %6242, %6184
  br label %6244

6244:                                             ; preds = %6243
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245
  %6247 = load i32, ptr @test_count, align 4, !tbaa !5
  %6248 = add nsw i32 %6247, 1
  store i32 %6248, ptr @test_count, align 4, !tbaa !5
  %6249 = call i32 @s2n_hmac_new(ptr noundef %15)
  %6250 = icmp eq i32 %6249, -1
  br i1 %6250, label %6251, label %6304

6251:                                             ; preds = %6246
  br label %6252

6252:                                             ; preds = %6251
  br label %6253

6253:                                             ; preds = %6252
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %6254 = call ptr @__errno_location() #12
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  store i32 %6255, ptr %141, align 4, !tbaa !5
  %6256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6257 = call i32 @s2n_print_stacktrace(ptr noundef %6256)
  %6258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6259 = trunc i8 %6258 to i1
  br i1 %6259, label %6260, label %6282

6260:                                             ; preds = %6253
  %6261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6262 = call i32 @fileno(ptr noundef %6261) #11
  %6263 = call i32 @isatty(i32 noundef %6262) #11
  %6264 = icmp ne i32 %6263, 0
  br i1 %6264, label %6265, label %6282

6265:                                             ; preds = %6260
  %6266 = load i32, ptr %141, align 4, !tbaa !5
  %6267 = call ptr @__errno_location() #12
  store i32 %6266, ptr %6267, align 4, !tbaa !5
  %6268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6269 = load i32, ptr @test_count, align 4, !tbaa !5
  %6270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call ptr @s2n_strerror(i32 noundef %6271, ptr noundef @.str.3)
  %6273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6274 = load i32, ptr %6273, align 4, !tbaa !5
  %6275 = call ptr @s2n_strerror_debug(i32 noundef %6274, ptr noundef @.str.3)
  %6276 = call ptr @__errno_location() #12
  %6277 = load i32, ptr %6276, align 4, !tbaa !5
  %6278 = call ptr @strerror(i32 noundef %6277) #11
  %6279 = call ptr @__errno_location() #12
  %6280 = load i32, ptr %6279, align 4, !tbaa !5
  %6281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6268, ptr noundef @.str, i32 noundef %6269, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 236, ptr noundef %6272, ptr noundef %6275, ptr noundef %6278, i32 noundef %6280) #11
  br label %6299

6282:                                             ; preds = %6260, %6253
  %6283 = load i32, ptr %141, align 4, !tbaa !5
  %6284 = call ptr @__errno_location() #12
  store i32 %6283, ptr %6284, align 4, !tbaa !5
  %6285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6286 = load i32, ptr @test_count, align 4, !tbaa !5
  %6287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @s2n_strerror(i32 noundef %6288, ptr noundef @.str.3)
  %6290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call ptr @s2n_strerror_debug(i32 noundef %6291, ptr noundef @.str.3)
  %6293 = call ptr @__errno_location() #12
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call ptr @strerror(i32 noundef %6294) #11
  %6296 = call ptr @__errno_location() #12
  %6297 = load i32, ptr %6296, align 4, !tbaa !5
  %6298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6285, ptr noundef @.str.4, i32 noundef %6286, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 236, ptr noundef %6289, ptr noundef %6292, ptr noundef %6295, i32 noundef %6297) #11
  br label %6299

6299:                                             ; preds = %6282, %6265
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6300

6300:                                             ; preds = %6299
  br label %6301

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

6302:                                             ; No predecessors!
  br label %6303

6303:                                             ; preds = %6302
  br label %6304

6304:                                             ; preds = %6303, %6246
  br label %6305

6305:                                             ; preds = %6304
  br label %6306

6306:                                             ; preds = %6305
  call void @llvm.lifetime.start.p0(i64 1, ptr %142) #11
  store i8 0, ptr %142, align 1, !tbaa !15
  br label %6307

6307:                                             ; preds = %6306
  %6308 = call i32 @s2n_hmac_digest_size(i32 noundef 4, ptr noundef %142)
  %6309 = icmp sgt i32 %6308, -1
  br i1 %6309, label %6311, label %6310

6310:                                             ; preds = %6307
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %8151

6311:                                             ; preds = %6307
  br label %6312

6312:                                             ; preds = %6311
  br label %6313

6313:                                             ; preds = %6312
  br label %6314

6314:                                             ; preds = %6313
  %6315 = load i32, ptr @test_count, align 4, !tbaa !5
  %6316 = add nsw i32 %6315, 1
  store i32 %6316, ptr @test_count, align 4, !tbaa !5
  %6317 = load i8, ptr %142, align 1, !tbaa !15
  %6318 = zext i8 %6317 to i32
  %6319 = icmp eq i32 %6318, 32
  br i1 %6319, label %6373, label %6320

6320:                                             ; preds = %6314
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

6322:                                             ; preds = %6321
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6323 = call ptr @__errno_location() #12
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  store i32 %6324, ptr %143, align 4, !tbaa !5
  %6325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6326 = call i32 @s2n_print_stacktrace(ptr noundef %6325)
  %6327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6328 = trunc i8 %6327 to i1
  br i1 %6328, label %6329, label %6351

6329:                                             ; preds = %6322
  %6330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6331 = call i32 @fileno(ptr noundef %6330) #11
  %6332 = call i32 @isatty(i32 noundef %6331) #11
  %6333 = icmp ne i32 %6332, 0
  br i1 %6333, label %6334, label %6351

6334:                                             ; preds = %6329
  %6335 = load i32, ptr %143, align 4, !tbaa !5
  %6336 = call ptr @__errno_location() #12
  store i32 %6335, ptr %6336, align 4, !tbaa !5
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = load i32, ptr @test_count, align 4, !tbaa !5
  %6339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call ptr @s2n_strerror(i32 noundef %6340, ptr noundef @.str.3)
  %6342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call ptr @s2n_strerror_debug(i32 noundef %6343, ptr noundef @.str.3)
  %6345 = call ptr @__errno_location() #12
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @strerror(i32 noundef %6346) #11
  %6348 = call ptr @__errno_location() #12
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6337, ptr noundef @.str, i32 noundef %6338, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 240, ptr noundef %6341, ptr noundef %6344, ptr noundef %6347, i32 noundef %6349) #11
  br label %6368

6351:                                             ; preds = %6329, %6322
  %6352 = load i32, ptr %143, align 4, !tbaa !5
  %6353 = call ptr @__errno_location() #12
  store i32 %6352, ptr %6353, align 4, !tbaa !5
  %6354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6355 = load i32, ptr @test_count, align 4, !tbaa !5
  %6356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call ptr @s2n_strerror(i32 noundef %6357, ptr noundef @.str.3)
  %6359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = call ptr @s2n_strerror_debug(i32 noundef %6360, ptr noundef @.str.3)
  %6362 = call ptr @__errno_location() #12
  %6363 = load i32, ptr %6362, align 4, !tbaa !5
  %6364 = call ptr @strerror(i32 noundef %6363) #11
  %6365 = call ptr @__errno_location() #12
  %6366 = load i32, ptr %6365, align 4, !tbaa !5
  %6367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6354, ptr noundef @.str.4, i32 noundef %6355, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 240, ptr noundef %6358, ptr noundef %6361, ptr noundef %6364, i32 noundef %6366) #11
  br label %6368

6368:                                             ; preds = %6351, %6334
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6369

6369:                                             ; preds = %6368
  br label %6370

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

6371:                                             ; No predecessors!
  br label %6372

6372:                                             ; preds = %6371
  br label %6373

6373:                                             ; preds = %6372, %6314
  br label %6374

6374:                                             ; preds = %6373
  br label %6375

6375:                                             ; preds = %6374
  br label %6376

6376:                                             ; preds = %6375
  %6377 = load i32, ptr @test_count, align 4, !tbaa !5
  %6378 = add nsw i32 %6377, 1
  store i32 %6378, ptr @test_count, align 4, !tbaa !5
  %6379 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %6380 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %6381 = call i64 @strlen(ptr noundef %6380) #14
  %6382 = trunc i64 %6381 to i32
  %6383 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 4, ptr noundef %6379, i32 noundef %6382)
  %6384 = icmp eq i32 %6383, -1
  br i1 %6384, label %6385, label %6438

6385:                                             ; preds = %6376
  br label %6386

6386:                                             ; preds = %6385
  br label %6387

6387:                                             ; preds = %6386
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %6388 = call ptr @__errno_location() #12
  %6389 = load i32, ptr %6388, align 4, !tbaa !5
  store i32 %6389, ptr %144, align 4, !tbaa !5
  %6390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6391 = call i32 @s2n_print_stacktrace(ptr noundef %6390)
  %6392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6393 = trunc i8 %6392 to i1
  br i1 %6393, label %6394, label %6416

6394:                                             ; preds = %6387
  %6395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6396 = call i32 @fileno(ptr noundef %6395) #11
  %6397 = call i32 @isatty(i32 noundef %6396) #11
  %6398 = icmp ne i32 %6397, 0
  br i1 %6398, label %6399, label %6416

6399:                                             ; preds = %6394
  %6400 = load i32, ptr %144, align 4, !tbaa !5
  %6401 = call ptr @__errno_location() #12
  store i32 %6400, ptr %6401, align 4, !tbaa !5
  %6402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6403 = load i32, ptr @test_count, align 4, !tbaa !5
  %6404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6405 = load i32, ptr %6404, align 4, !tbaa !5
  %6406 = call ptr @s2n_strerror(i32 noundef %6405, ptr noundef @.str.3)
  %6407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @s2n_strerror_debug(i32 noundef %6408, ptr noundef @.str.3)
  %6410 = call ptr @__errno_location() #12
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @strerror(i32 noundef %6411) #11
  %6413 = call ptr @__errno_location() #12
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6402, ptr noundef @.str, i32 noundef %6403, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 241, ptr noundef %6406, ptr noundef %6409, ptr noundef %6412, i32 noundef %6414) #11
  br label %6433

6416:                                             ; preds = %6394, %6387
  %6417 = load i32, ptr %144, align 4, !tbaa !5
  %6418 = call ptr @__errno_location() #12
  store i32 %6417, ptr %6418, align 4, !tbaa !5
  %6419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6420 = load i32, ptr @test_count, align 4, !tbaa !5
  %6421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6422 = load i32, ptr %6421, align 4, !tbaa !5
  %6423 = call ptr @s2n_strerror(i32 noundef %6422, ptr noundef @.str.3)
  %6424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = call ptr @s2n_strerror_debug(i32 noundef %6425, ptr noundef @.str.3)
  %6427 = call ptr @__errno_location() #12
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call ptr @strerror(i32 noundef %6428) #11
  %6430 = call ptr @__errno_location() #12
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6419, ptr noundef @.str.4, i32 noundef %6420, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 241, ptr noundef %6423, ptr noundef %6426, ptr noundef %6429, i32 noundef %6431) #11
  br label %6433

6433:                                             ; preds = %6416, %6399
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %6434

6434:                                             ; preds = %6433
  br label %6435

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

6436:                                             ; No predecessors!
  br label %6437

6437:                                             ; preds = %6436
  br label %6438

6438:                                             ; preds = %6437, %6376
  br label %6439

6439:                                             ; preds = %6438
  br label %6440

6440:                                             ; preds = %6439
  br label %6441

6441:                                             ; preds = %6440
  %6442 = load i32, ptr @test_count, align 4, !tbaa !5
  %6443 = add nsw i32 %6442, 1
  store i32 %6443, ptr @test_count, align 4, !tbaa !5
  %6444 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %6445 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %6446 = call i64 @strlen(ptr noundef %6445) #14
  %6447 = trunc i64 %6446 to i32
  %6448 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %6444, i32 noundef %6447)
  %6449 = icmp eq i32 %6448, -1
  br i1 %6449, label %6450, label %6503

6450:                                             ; preds = %6441
  br label %6451

6451:                                             ; preds = %6450
  br label %6452

6452:                                             ; preds = %6451
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %6453 = call ptr @__errno_location() #12
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  store i32 %6454, ptr %145, align 4, !tbaa !5
  %6455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6456 = call i32 @s2n_print_stacktrace(ptr noundef %6455)
  %6457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6458 = trunc i8 %6457 to i1
  br i1 %6458, label %6459, label %6481

6459:                                             ; preds = %6452
  %6460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6461 = call i32 @fileno(ptr noundef %6460) #11
  %6462 = call i32 @isatty(i32 noundef %6461) #11
  %6463 = icmp ne i32 %6462, 0
  br i1 %6463, label %6464, label %6481

6464:                                             ; preds = %6459
  %6465 = load i32, ptr %145, align 4, !tbaa !5
  %6466 = call ptr @__errno_location() #12
  store i32 %6465, ptr %6466, align 4, !tbaa !5
  %6467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6468 = load i32, ptr @test_count, align 4, !tbaa !5
  %6469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6470 = load i32, ptr %6469, align 4, !tbaa !5
  %6471 = call ptr @s2n_strerror(i32 noundef %6470, ptr noundef @.str.3)
  %6472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call ptr @s2n_strerror_debug(i32 noundef %6473, ptr noundef @.str.3)
  %6475 = call ptr @__errno_location() #12
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  %6477 = call ptr @strerror(i32 noundef %6476) #11
  %6478 = call ptr @__errno_location() #12
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6467, ptr noundef @.str, i32 noundef %6468, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 242, ptr noundef %6471, ptr noundef %6474, ptr noundef %6477, i32 noundef %6479) #11
  br label %6498

6481:                                             ; preds = %6459, %6452
  %6482 = load i32, ptr %145, align 4, !tbaa !5
  %6483 = call ptr @__errno_location() #12
  store i32 %6482, ptr %6483, align 4, !tbaa !5
  %6484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6485 = load i32, ptr @test_count, align 4, !tbaa !5
  %6486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  %6488 = call ptr @s2n_strerror(i32 noundef %6487, ptr noundef @.str.3)
  %6489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6490 = load i32, ptr %6489, align 4, !tbaa !5
  %6491 = call ptr @s2n_strerror_debug(i32 noundef %6490, ptr noundef @.str.3)
  %6492 = call ptr @__errno_location() #12
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @strerror(i32 noundef %6493) #11
  %6495 = call ptr @__errno_location() #12
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6484, ptr noundef @.str.4, i32 noundef %6485, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 242, ptr noundef %6488, ptr noundef %6491, ptr noundef %6494, i32 noundef %6496) #11
  br label %6498

6498:                                             ; preds = %6481, %6464
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %6499

6499:                                             ; preds = %6498
  br label %6500

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

6501:                                             ; No predecessors!
  br label %6502

6502:                                             ; preds = %6501
  br label %6503

6503:                                             ; preds = %6502, %6441
  br label %6504

6504:                                             ; preds = %6503
  br label %6505

6505:                                             ; preds = %6504
  br label %6506

6506:                                             ; preds = %6505
  %6507 = load i32, ptr @test_count, align 4, !tbaa !5
  %6508 = add nsw i32 %6507, 1
  store i32 %6508, ptr @test_count, align 4, !tbaa !5
  %6509 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %6510 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %6509, i32 noundef 32)
  %6511 = icmp eq i32 %6510, -1
  br i1 %6511, label %6512, label %6565

6512:                                             ; preds = %6506
  br label %6513

6513:                                             ; preds = %6512
  br label %6514

6514:                                             ; preds = %6513
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %6515 = call ptr @__errno_location() #12
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  store i32 %6516, ptr %146, align 4, !tbaa !5
  %6517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6518 = call i32 @s2n_print_stacktrace(ptr noundef %6517)
  %6519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6520 = trunc i8 %6519 to i1
  br i1 %6520, label %6521, label %6543

6521:                                             ; preds = %6514
  %6522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6523 = call i32 @fileno(ptr noundef %6522) #11
  %6524 = call i32 @isatty(i32 noundef %6523) #11
  %6525 = icmp ne i32 %6524, 0
  br i1 %6525, label %6526, label %6543

6526:                                             ; preds = %6521
  %6527 = load i32, ptr %146, align 4, !tbaa !5
  %6528 = call ptr @__errno_location() #12
  store i32 %6527, ptr %6528, align 4, !tbaa !5
  %6529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6530 = load i32, ptr @test_count, align 4, !tbaa !5
  %6531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  %6533 = call ptr @s2n_strerror(i32 noundef %6532, ptr noundef @.str.3)
  %6534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6535 = load i32, ptr %6534, align 4, !tbaa !5
  %6536 = call ptr @s2n_strerror_debug(i32 noundef %6535, ptr noundef @.str.3)
  %6537 = call ptr @__errno_location() #12
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  %6539 = call ptr @strerror(i32 noundef %6538) #11
  %6540 = call ptr @__errno_location() #12
  %6541 = load i32, ptr %6540, align 4, !tbaa !5
  %6542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6529, ptr noundef @.str, i32 noundef %6530, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 243, ptr noundef %6533, ptr noundef %6536, ptr noundef %6539, i32 noundef %6541) #11
  br label %6560

6543:                                             ; preds = %6521, %6514
  %6544 = load i32, ptr %146, align 4, !tbaa !5
  %6545 = call ptr @__errno_location() #12
  store i32 %6544, ptr %6545, align 4, !tbaa !5
  %6546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6547 = load i32, ptr @test_count, align 4, !tbaa !5
  %6548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  %6550 = call ptr @s2n_strerror(i32 noundef %6549, ptr noundef @.str.3)
  %6551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6552 = load i32, ptr %6551, align 4, !tbaa !5
  %6553 = call ptr @s2n_strerror_debug(i32 noundef %6552, ptr noundef @.str.3)
  %6554 = call ptr @__errno_location() #12
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call ptr @strerror(i32 noundef %6555) #11
  %6557 = call ptr @__errno_location() #12
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6546, ptr noundef @.str.4, i32 noundef %6547, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 243, ptr noundef %6550, ptr noundef %6553, ptr noundef %6556, i32 noundef %6558) #11
  br label %6560

6560:                                             ; preds = %6543, %6526
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6561

6561:                                             ; preds = %6560
  br label %6562

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

6563:                                             ; No predecessors!
  br label %6564

6564:                                             ; preds = %6563
  br label %6565

6565:                                             ; preds = %6564, %6506
  br label %6566

6566:                                             ; preds = %6565
  br label %6567

6567:                                             ; preds = %6566
  br label %6568

6568:                                             ; preds = %6567
  %6569 = load i32, ptr @test_count, align 4, !tbaa !5
  %6570 = add nsw i32 %6569, 1
  store i32 %6570, ptr @test_count, align 4, !tbaa !5
  %6571 = call i32 @s2n_hmac_free(ptr noundef %15)
  %6572 = icmp eq i32 %6571, -1
  br i1 %6572, label %6573, label %6626

6573:                                             ; preds = %6568
  br label %6574

6574:                                             ; preds = %6573
  br label %6575

6575:                                             ; preds = %6574
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %6576 = call ptr @__errno_location() #12
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  store i32 %6577, ptr %147, align 4, !tbaa !5
  %6578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6579 = call i32 @s2n_print_stacktrace(ptr noundef %6578)
  %6580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6581 = trunc i8 %6580 to i1
  br i1 %6581, label %6582, label %6604

6582:                                             ; preds = %6575
  %6583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6584 = call i32 @fileno(ptr noundef %6583) #11
  %6585 = call i32 @isatty(i32 noundef %6584) #11
  %6586 = icmp ne i32 %6585, 0
  br i1 %6586, label %6587, label %6604

6587:                                             ; preds = %6582
  %6588 = load i32, ptr %147, align 4, !tbaa !5
  %6589 = call ptr @__errno_location() #12
  store i32 %6588, ptr %6589, align 4, !tbaa !5
  %6590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6591 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6593, ptr noundef @.str.3)
  %6595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror_debug(i32 noundef %6596, ptr noundef @.str.3)
  %6598 = call ptr @__errno_location() #12
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call ptr @strerror(i32 noundef %6599) #11
  %6601 = call ptr @__errno_location() #12
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6590, ptr noundef @.str, i32 noundef %6591, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 244, ptr noundef %6594, ptr noundef %6597, ptr noundef %6600, i32 noundef %6602) #11
  br label %6621

6604:                                             ; preds = %6582, %6575
  %6605 = load i32, ptr %147, align 4, !tbaa !5
  %6606 = call ptr @__errno_location() #12
  store i32 %6605, ptr %6606, align 4, !tbaa !5
  %6607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6608 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6610, ptr noundef @.str.3)
  %6612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror_debug(i32 noundef %6613, ptr noundef @.str.3)
  %6615 = call ptr @__errno_location() #12
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call ptr @strerror(i32 noundef %6616) #11
  %6618 = call ptr @__errno_location() #12
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6607, ptr noundef @.str.4, i32 noundef %6608, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 244, ptr noundef %6611, ptr noundef %6614, ptr noundef %6617, i32 noundef %6619) #11
  br label %6621

6621:                                             ; preds = %6604, %6587
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %6622

6622:                                             ; preds = %6621
  br label %6623

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

6624:                                             ; No predecessors!
  br label %6625

6625:                                             ; preds = %6624
  br label %6626

6626:                                             ; preds = %6625, %6568
  br label %6627

6627:                                             ; preds = %6626
  br label %6628

6628:                                             ; preds = %6627
  br label %6629

6629:                                             ; preds = %6628
  %6630 = load i32, ptr @test_count, align 4, !tbaa !5
  %6631 = add nsw i32 %6630, 1
  store i32 %6631, ptr @test_count, align 4, !tbaa !5
  %6632 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %6633 = icmp eq i32 %6632, -1
  br i1 %6633, label %6634, label %6687

6634:                                             ; preds = %6629
  br label %6635

6635:                                             ; preds = %6634
  br label %6636

6636:                                             ; preds = %6635
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6637 = call ptr @__errno_location() #12
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  store i32 %6638, ptr %148, align 4, !tbaa !5
  %6639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6640 = call i32 @s2n_print_stacktrace(ptr noundef %6639)
  %6641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6642 = trunc i8 %6641 to i1
  br i1 %6642, label %6643, label %6665

6643:                                             ; preds = %6636
  %6644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6645 = call i32 @fileno(ptr noundef %6644) #11
  %6646 = call i32 @isatty(i32 noundef %6645) #11
  %6647 = icmp ne i32 %6646, 0
  br i1 %6647, label %6648, label %6665

6648:                                             ; preds = %6643
  %6649 = load i32, ptr %148, align 4, !tbaa !5
  %6650 = call ptr @__errno_location() #12
  store i32 %6649, ptr %6650, align 4, !tbaa !5
  %6651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6652 = load i32, ptr @test_count, align 4, !tbaa !5
  %6653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6654 = load i32, ptr %6653, align 4, !tbaa !5
  %6655 = call ptr @s2n_strerror(i32 noundef %6654, ptr noundef @.str.3)
  %6656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  %6658 = call ptr @s2n_strerror_debug(i32 noundef %6657, ptr noundef @.str.3)
  %6659 = call ptr @__errno_location() #12
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  %6661 = call ptr @strerror(i32 noundef %6660) #11
  %6662 = call ptr @__errno_location() #12
  %6663 = load i32, ptr %6662, align 4, !tbaa !5
  %6664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6651, ptr noundef @.str, i32 noundef %6652, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 246, ptr noundef %6655, ptr noundef %6658, ptr noundef %6661, i32 noundef %6663) #11
  br label %6682

6665:                                             ; preds = %6643, %6636
  %6666 = load i32, ptr %148, align 4, !tbaa !5
  %6667 = call ptr @__errno_location() #12
  store i32 %6666, ptr %6667, align 4, !tbaa !5
  %6668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6669 = load i32, ptr @test_count, align 4, !tbaa !5
  %6670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6671 = load i32, ptr %6670, align 4, !tbaa !5
  %6672 = call ptr @s2n_strerror(i32 noundef %6671, ptr noundef @.str.3)
  %6673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6674 = load i32, ptr %6673, align 4, !tbaa !5
  %6675 = call ptr @s2n_strerror_debug(i32 noundef %6674, ptr noundef @.str.3)
  %6676 = call ptr @__errno_location() #12
  %6677 = load i32, ptr %6676, align 4, !tbaa !5
  %6678 = call ptr @strerror(i32 noundef %6677) #11
  %6679 = call ptr @__errno_location() #12
  %6680 = load i32, ptr %6679, align 4, !tbaa !5
  %6681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6668, ptr noundef @.str.4, i32 noundef %6669, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 246, ptr noundef %6672, ptr noundef %6675, ptr noundef %6678, i32 noundef %6680) #11
  br label %6682

6682:                                             ; preds = %6665, %6648
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6683

6683:                                             ; preds = %6682
  br label %6684

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

6685:                                             ; No predecessors!
  br label %6686

6686:                                             ; preds = %6685
  br label %6687

6687:                                             ; preds = %6686, %6629
  br label %6688

6688:                                             ; preds = %6687
  br label %6689

6689:                                             ; preds = %6688
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  store i32 0, ptr %149, align 4, !tbaa !5
  br label %6690

6690:                                             ; preds = %6763, %6689
  %6691 = load i32, ptr %149, align 4, !tbaa !5
  %6692 = icmp slt i32 %6691, 32
  br i1 %6692, label %6694, label %6693

6693:                                             ; preds = %6690
  store i32 657, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %6766

6694:                                             ; preds = %6690
  br label %6695

6695:                                             ; preds = %6694
  %6696 = load i32, ptr @test_count, align 4, !tbaa !5
  %6697 = add nsw i32 %6696, 1
  store i32 %6697, ptr @test_count, align 4, !tbaa !5
  %6698 = load i32, ptr %149, align 4, !tbaa !5
  %6699 = sext i32 %6698 to i64
  %6700 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %6699
  %6701 = load i8, ptr %6700, align 1, !tbaa !15
  %6702 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %6701)
  %6703 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  store i32 %6702, ptr %6703, align 4
  %6704 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  %6705 = load i32, ptr %6704, align 4
  %6706 = call zeroext i1 @s2n_result_is_ok(i32 %6705)
  br i1 %6706, label %6760, label %6707

6707:                                             ; preds = %6695
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %6710 = call ptr @__errno_location() #12
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  store i32 %6711, ptr %151, align 4, !tbaa !5
  %6712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6713 = call i32 @s2n_print_stacktrace(ptr noundef %6712)
  %6714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6715 = trunc i8 %6714 to i1
  br i1 %6715, label %6716, label %6738

6716:                                             ; preds = %6709
  %6717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6718 = call i32 @fileno(ptr noundef %6717) #11
  %6719 = call i32 @isatty(i32 noundef %6718) #11
  %6720 = icmp ne i32 %6719, 0
  br i1 %6720, label %6721, label %6738

6721:                                             ; preds = %6716
  %6722 = load i32, ptr %151, align 4, !tbaa !5
  %6723 = call ptr @__errno_location() #12
  store i32 %6722, ptr %6723, align 4, !tbaa !5
  %6724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6725 = load i32, ptr @test_count, align 4, !tbaa !5
  %6726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6727 = load i32, ptr %6726, align 4, !tbaa !5
  %6728 = call ptr @s2n_strerror(i32 noundef %6727, ptr noundef @.str.3)
  %6729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6730 = load i32, ptr %6729, align 4, !tbaa !5
  %6731 = call ptr @s2n_strerror_debug(i32 noundef %6730, ptr noundef @.str.3)
  %6732 = call ptr @__errno_location() #12
  %6733 = load i32, ptr %6732, align 4, !tbaa !5
  %6734 = call ptr @strerror(i32 noundef %6733) #11
  %6735 = call ptr @__errno_location() #12
  %6736 = load i32, ptr %6735, align 4, !tbaa !5
  %6737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6724, ptr noundef @.str, i32 noundef %6725, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 248, ptr noundef %6728, ptr noundef %6731, ptr noundef %6734, i32 noundef %6736) #11
  br label %6755

6738:                                             ; preds = %6716, %6709
  %6739 = load i32, ptr %151, align 4, !tbaa !5
  %6740 = call ptr @__errno_location() #12
  store i32 %6739, ptr %6740, align 4, !tbaa !5
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = load i32, ptr @test_count, align 4, !tbaa !5
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror(i32 noundef %6744, ptr noundef @.str.3)
  %6746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @s2n_strerror_debug(i32 noundef %6747, ptr noundef @.str.3)
  %6749 = call ptr @__errno_location() #12
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call ptr @strerror(i32 noundef %6750) #11
  %6752 = call ptr @__errno_location() #12
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6741, ptr noundef @.str.4, i32 noundef %6742, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 248, ptr noundef %6745, ptr noundef %6748, ptr noundef %6751, i32 noundef %6753) #11
  br label %6755

6755:                                             ; preds = %6738, %6721
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %6756

6756:                                             ; preds = %6755
  br label %6757

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

6758:                                             ; No predecessors!
  br label %6759

6759:                                             ; preds = %6758
  br label %6760

6760:                                             ; preds = %6759, %6695
  br label %6761

6761:                                             ; preds = %6760
  br label %6762

6762:                                             ; preds = %6761
  br label %6763

6763:                                             ; preds = %6762
  %6764 = load i32, ptr %149, align 4, !tbaa !5
  %6765 = add nsw i32 %6764, 1
  store i32 %6765, ptr %149, align 4, !tbaa !5
  br label %6690, !llvm.loop !28

6766:                                             ; preds = %6693
  br label %6767

6767:                                             ; preds = %6766
  %6768 = load i32, ptr @test_count, align 4, !tbaa !5
  %6769 = add nsw i32 %6768, 1
  store i32 %6769, ptr @test_count, align 4, !tbaa !5
  %6770 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %6771 = call i32 @memcmp(ptr noundef %6770, ptr noundef @.str.61, i64 noundef 64) #14
  %6772 = icmp eq i32 %6771, 0
  br i1 %6772, label %6826, label %6773

6773:                                             ; preds = %6767
  br label %6774

6774:                                             ; preds = %6773
  br label %6775

6775:                                             ; preds = %6774
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %6776 = call ptr @__errno_location() #12
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  store i32 %6777, ptr %152, align 4, !tbaa !5
  %6778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6779 = call i32 @s2n_print_stacktrace(ptr noundef %6778)
  %6780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6781 = trunc i8 %6780 to i1
  br i1 %6781, label %6782, label %6804

6782:                                             ; preds = %6775
  %6783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6784 = call i32 @fileno(ptr noundef %6783) #11
  %6785 = call i32 @isatty(i32 noundef %6784) #11
  %6786 = icmp ne i32 %6785, 0
  br i1 %6786, label %6787, label %6804

6787:                                             ; preds = %6782
  %6788 = load i32, ptr %152, align 4, !tbaa !5
  %6789 = call ptr @__errno_location() #12
  store i32 %6788, ptr %6789, align 4, !tbaa !5
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = load i32, ptr @test_count, align 4, !tbaa !5
  %6792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6793 = load i32, ptr %6792, align 4, !tbaa !5
  %6794 = call ptr @s2n_strerror(i32 noundef %6793, ptr noundef @.str.3)
  %6795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6796 = load i32, ptr %6795, align 4, !tbaa !5
  %6797 = call ptr @s2n_strerror_debug(i32 noundef %6796, ptr noundef @.str.3)
  %6798 = call ptr @__errno_location() #12
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  %6800 = call ptr @strerror(i32 noundef %6799) #11
  %6801 = call ptr @__errno_location() #12
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  %6803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6790, ptr noundef @.str, i32 noundef %6791, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 252, ptr noundef %6794, ptr noundef %6797, ptr noundef %6800, i32 noundef %6802) #11
  br label %6821

6804:                                             ; preds = %6782, %6775
  %6805 = load i32, ptr %152, align 4, !tbaa !5
  %6806 = call ptr @__errno_location() #12
  store i32 %6805, ptr %6806, align 4, !tbaa !5
  %6807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6808 = load i32, ptr @test_count, align 4, !tbaa !5
  %6809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6810 = load i32, ptr %6809, align 4, !tbaa !5
  %6811 = call ptr @s2n_strerror(i32 noundef %6810, ptr noundef @.str.3)
  %6812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  %6814 = call ptr @s2n_strerror_debug(i32 noundef %6813, ptr noundef @.str.3)
  %6815 = call ptr @__errno_location() #12
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call ptr @strerror(i32 noundef %6816) #11
  %6818 = call ptr @__errno_location() #12
  %6819 = load i32, ptr %6818, align 4, !tbaa !5
  %6820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6807, ptr noundef @.str.4, i32 noundef %6808, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 252, ptr noundef %6811, ptr noundef %6814, ptr noundef %6817, i32 noundef %6819) #11
  br label %6821

6821:                                             ; preds = %6804, %6787
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %6822

6822:                                             ; preds = %6821
  br label %6823

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

6824:                                             ; No predecessors!
  br label %6825

6825:                                             ; preds = %6824
  br label %6826

6826:                                             ; preds = %6825, %6767
  br label %6827

6827:                                             ; preds = %6826
  br label %6828

6828:                                             ; preds = %6827
  br label %6829

6829:                                             ; preds = %6828
  %6830 = load i32, ptr @test_count, align 4, !tbaa !5
  %6831 = add nsw i32 %6830, 1
  store i32 %6831, ptr @test_count, align 4, !tbaa !5
  %6832 = call i32 @s2n_hmac_new(ptr noundef %15)
  %6833 = icmp eq i32 %6832, -1
  br i1 %6833, label %6834, label %6887

6834:                                             ; preds = %6829
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

6836:                                             ; preds = %6835
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %6837 = call ptr @__errno_location() #12
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  store i32 %6838, ptr %153, 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 %153, 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.3)
  %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.3)
  %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, i32 noundef %6852, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 255, ptr noundef %6855, ptr noundef %6858, ptr noundef %6861, i32 noundef %6863) #11
  br label %6882

6865:                                             ; preds = %6843, %6836
  %6866 = load i32, ptr %153, 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.3)
  %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.3)
  %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.4, i32 noundef %6869, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 255, 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 %153) #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, %6829
  br label %6888

6888:                                             ; preds = %6887
  br label %6889

6889:                                             ; preds = %6888
  call void @llvm.lifetime.start.p0(i64 1, ptr %154) #11
  store i8 0, ptr %154, align 1, !tbaa !15
  br label %6890

6890:                                             ; preds = %6889
  %6891 = call i32 @s2n_hmac_digest_size(i32 noundef 5, ptr noundef %154)
  %6892 = icmp sgt i32 %6891, -1
  br i1 %6892, label %6894, label %6893

6893:                                             ; preds = %6890
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %8150

6894:                                             ; preds = %6890
  br label %6895

6895:                                             ; preds = %6894
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896
  %6898 = load i32, ptr @test_count, align 4, !tbaa !5
  %6899 = add nsw i32 %6898, 1
  store i32 %6899, ptr @test_count, align 4, !tbaa !5
  %6900 = load i8, ptr %154, align 1, !tbaa !15
  %6901 = zext i8 %6900 to i32
  %6902 = icmp eq i32 %6901, 48
  br i1 %6902, label %6956, label %6903

6903:                                             ; preds = %6897
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %6906 = call ptr @__errno_location() #12
  %6907 = load i32, ptr %6906, align 4, !tbaa !5
  store i32 %6907, ptr %155, align 4, !tbaa !5
  %6908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6909 = call i32 @s2n_print_stacktrace(ptr noundef %6908)
  %6910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6911 = trunc i8 %6910 to i1
  br i1 %6911, label %6912, label %6934

6912:                                             ; preds = %6905
  %6913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6914 = call i32 @fileno(ptr noundef %6913) #11
  %6915 = call i32 @isatty(i32 noundef %6914) #11
  %6916 = icmp ne i32 %6915, 0
  br i1 %6916, label %6917, label %6934

6917:                                             ; preds = %6912
  %6918 = load i32, ptr %155, align 4, !tbaa !5
  %6919 = call ptr @__errno_location() #12
  store i32 %6918, ptr %6919, align 4, !tbaa !5
  %6920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6921 = load i32, ptr @test_count, align 4, !tbaa !5
  %6922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6923 = load i32, ptr %6922, align 4, !tbaa !5
  %6924 = call ptr @s2n_strerror(i32 noundef %6923, ptr noundef @.str.3)
  %6925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6926 = load i32, ptr %6925, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror_debug(i32 noundef %6926, ptr noundef @.str.3)
  %6928 = call ptr @__errno_location() #12
  %6929 = load i32, ptr %6928, align 4, !tbaa !5
  %6930 = call ptr @strerror(i32 noundef %6929) #11
  %6931 = call ptr @__errno_location() #12
  %6932 = load i32, ptr %6931, align 4, !tbaa !5
  %6933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6920, ptr noundef @.str, i32 noundef %6921, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 259, ptr noundef %6924, ptr noundef %6927, ptr noundef %6930, i32 noundef %6932) #11
  br label %6951

6934:                                             ; preds = %6912, %6905
  %6935 = load i32, ptr %155, align 4, !tbaa !5
  %6936 = call ptr @__errno_location() #12
  store i32 %6935, ptr %6936, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = load i32, ptr @test_count, align 4, !tbaa !5
  %6939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror(i32 noundef %6940, ptr noundef @.str.3)
  %6942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @s2n_strerror_debug(i32 noundef %6943, ptr noundef @.str.3)
  %6945 = call ptr @__errno_location() #12
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call ptr @strerror(i32 noundef %6946) #11
  %6948 = call ptr @__errno_location() #12
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6937, ptr noundef @.str.4, i32 noundef %6938, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 259, ptr noundef %6941, ptr noundef %6944, ptr noundef %6947, i32 noundef %6949) #11
  br label %6951

6951:                                             ; preds = %6934, %6917
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %6952

6952:                                             ; preds = %6951
  br label %6953

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

6954:                                             ; No predecessors!
  br label %6955

6955:                                             ; preds = %6954
  br label %6956

6956:                                             ; preds = %6955, %6897
  br label %6957

6957:                                             ; preds = %6956
  br label %6958

6958:                                             ; preds = %6957
  br label %6959

6959:                                             ; preds = %6958
  %6960 = load i32, ptr @test_count, align 4, !tbaa !5
  %6961 = add nsw i32 %6960, 1
  store i32 %6961, ptr @test_count, align 4, !tbaa !5
  %6962 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %6963 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %6964 = call i64 @strlen(ptr noundef %6963) #14
  %6965 = trunc i64 %6964 to i32
  %6966 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 5, ptr noundef %6962, i32 noundef %6965)
  %6967 = icmp eq i32 %6966, -1
  br i1 %6967, label %6968, label %7021

6968:                                             ; preds = %6959
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %6971 = call ptr @__errno_location() #12
  %6972 = load i32, ptr %6971, align 4, !tbaa !5
  store i32 %6972, ptr %156, align 4, !tbaa !5
  %6973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6974 = call i32 @s2n_print_stacktrace(ptr noundef %6973)
  %6975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6976 = trunc i8 %6975 to i1
  br i1 %6976, label %6977, label %6999

6977:                                             ; preds = %6970
  %6978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6979 = call i32 @fileno(ptr noundef %6978) #11
  %6980 = call i32 @isatty(i32 noundef %6979) #11
  %6981 = icmp ne i32 %6980, 0
  br i1 %6981, label %6982, label %6999

6982:                                             ; preds = %6977
  %6983 = load i32, ptr %156, align 4, !tbaa !5
  %6984 = call ptr @__errno_location() #12
  store i32 %6983, ptr %6984, align 4, !tbaa !5
  %6985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6986 = load i32, ptr @test_count, align 4, !tbaa !5
  %6987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6988 = load i32, ptr %6987, align 4, !tbaa !5
  %6989 = call ptr @s2n_strerror(i32 noundef %6988, ptr noundef @.str.3)
  %6990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6991 = load i32, ptr %6990, align 4, !tbaa !5
  %6992 = call ptr @s2n_strerror_debug(i32 noundef %6991, ptr noundef @.str.3)
  %6993 = call ptr @__errno_location() #12
  %6994 = load i32, ptr %6993, align 4, !tbaa !5
  %6995 = call ptr @strerror(i32 noundef %6994) #11
  %6996 = call ptr @__errno_location() #12
  %6997 = load i32, ptr %6996, align 4, !tbaa !5
  %6998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6985, ptr noundef @.str, i32 noundef %6986, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 260, ptr noundef %6989, ptr noundef %6992, ptr noundef %6995, i32 noundef %6997) #11
  br label %7016

6999:                                             ; preds = %6977, %6970
  %7000 = load i32, ptr %156, align 4, !tbaa !5
  %7001 = call ptr @__errno_location() #12
  store i32 %7000, ptr %7001, align 4, !tbaa !5
  %7002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7003 = load i32, ptr @test_count, align 4, !tbaa !5
  %7004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @s2n_strerror(i32 noundef %7005, ptr noundef @.str.3)
  %7007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @s2n_strerror_debug(i32 noundef %7008, ptr noundef @.str.3)
  %7010 = call ptr @__errno_location() #12
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call ptr @strerror(i32 noundef %7011) #11
  %7013 = call ptr @__errno_location() #12
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7002, ptr noundef @.str.4, i32 noundef %7003, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 260, ptr noundef %7006, ptr noundef %7009, ptr noundef %7012, i32 noundef %7014) #11
  br label %7016

7016:                                             ; preds = %6999, %6982
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %7017

7017:                                             ; preds = %7016
  br label %7018

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

7019:                                             ; No predecessors!
  br label %7020

7020:                                             ; preds = %7019
  br label %7021

7021:                                             ; preds = %7020, %6959
  br label %7022

7022:                                             ; preds = %7021
  br label %7023

7023:                                             ; preds = %7022
  br label %7024

7024:                                             ; preds = %7023
  %7025 = load i32, ptr @test_count, align 4, !tbaa !5
  %7026 = add nsw i32 %7025, 1
  store i32 %7026, ptr @test_count, align 4, !tbaa !5
  %7027 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %7028 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %7029 = call i64 @strlen(ptr noundef %7028) #14
  %7030 = trunc i64 %7029 to i32
  %7031 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %7027, i32 noundef %7030)
  %7032 = icmp eq i32 %7031, -1
  br i1 %7032, label %7033, label %7086

7033:                                             ; preds = %7024
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %7036 = call ptr @__errno_location() #12
  %7037 = load i32, ptr %7036, align 4, !tbaa !5
  store i32 %7037, ptr %157, align 4, !tbaa !5
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = call i32 @s2n_print_stacktrace(ptr noundef %7038)
  %7040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7041 = trunc i8 %7040 to i1
  br i1 %7041, label %7042, label %7064

7042:                                             ; preds = %7035
  %7043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7044 = call i32 @fileno(ptr noundef %7043) #11
  %7045 = call i32 @isatty(i32 noundef %7044) #11
  %7046 = icmp ne i32 %7045, 0
  br i1 %7046, label %7047, label %7064

7047:                                             ; preds = %7042
  %7048 = load i32, ptr %157, align 4, !tbaa !5
  %7049 = call ptr @__errno_location() #12
  store i32 %7048, ptr %7049, align 4, !tbaa !5
  %7050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7051 = load i32, ptr @test_count, align 4, !tbaa !5
  %7052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7053 = load i32, ptr %7052, align 4, !tbaa !5
  %7054 = call ptr @s2n_strerror(i32 noundef %7053, ptr noundef @.str.3)
  %7055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7056 = load i32, ptr %7055, align 4, !tbaa !5
  %7057 = call ptr @s2n_strerror_debug(i32 noundef %7056, ptr noundef @.str.3)
  %7058 = call ptr @__errno_location() #12
  %7059 = load i32, ptr %7058, align 4, !tbaa !5
  %7060 = call ptr @strerror(i32 noundef %7059) #11
  %7061 = call ptr @__errno_location() #12
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7050, ptr noundef @.str, i32 noundef %7051, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 261, ptr noundef %7054, ptr noundef %7057, ptr noundef %7060, i32 noundef %7062) #11
  br label %7081

7064:                                             ; preds = %7042, %7035
  %7065 = load i32, ptr %157, align 4, !tbaa !5
  %7066 = call ptr @__errno_location() #12
  store i32 %7065, ptr %7066, align 4, !tbaa !5
  %7067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7068 = load i32, ptr @test_count, align 4, !tbaa !5
  %7069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror(i32 noundef %7070, ptr noundef @.str.3)
  %7072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @s2n_strerror_debug(i32 noundef %7073, ptr noundef @.str.3)
  %7075 = call ptr @__errno_location() #12
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call ptr @strerror(i32 noundef %7076) #11
  %7078 = call ptr @__errno_location() #12
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7067, ptr noundef @.str.4, i32 noundef %7068, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 261, ptr noundef %7071, ptr noundef %7074, ptr noundef %7077, i32 noundef %7079) #11
  br label %7081

7081:                                             ; preds = %7064, %7047
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %7082

7082:                                             ; preds = %7081
  br label %7083

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

7084:                                             ; No predecessors!
  br label %7085

7085:                                             ; preds = %7084
  br label %7086

7086:                                             ; preds = %7085, %7024
  br label %7087

7087:                                             ; preds = %7086
  br label %7088

7088:                                             ; preds = %7087
  br label %7089

7089:                                             ; preds = %7088
  %7090 = load i32, ptr @test_count, align 4, !tbaa !5
  %7091 = add nsw i32 %7090, 1
  store i32 %7091, ptr @test_count, align 4, !tbaa !5
  %7092 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %7093 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %7092, i32 noundef 48)
  %7094 = icmp eq i32 %7093, -1
  br i1 %7094, label %7095, label %7148

7095:                                             ; preds = %7089
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %7098 = call ptr @__errno_location() #12
  %7099 = load i32, ptr %7098, align 4, !tbaa !5
  store i32 %7099, ptr %158, align 4, !tbaa !5
  %7100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7101 = call i32 @s2n_print_stacktrace(ptr noundef %7100)
  %7102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7103 = trunc i8 %7102 to i1
  br i1 %7103, label %7104, label %7126

7104:                                             ; preds = %7097
  %7105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7106 = call i32 @fileno(ptr noundef %7105) #11
  %7107 = call i32 @isatty(i32 noundef %7106) #11
  %7108 = icmp ne i32 %7107, 0
  br i1 %7108, label %7109, label %7126

7109:                                             ; preds = %7104
  %7110 = load i32, ptr %158, align 4, !tbaa !5
  %7111 = call ptr @__errno_location() #12
  store i32 %7110, ptr %7111, align 4, !tbaa !5
  %7112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7113 = load i32, ptr @test_count, align 4, !tbaa !5
  %7114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  %7116 = call ptr @s2n_strerror(i32 noundef %7115, ptr noundef @.str.3)
  %7117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7118 = load i32, ptr %7117, align 4, !tbaa !5
  %7119 = call ptr @s2n_strerror_debug(i32 noundef %7118, ptr noundef @.str.3)
  %7120 = call ptr @__errno_location() #12
  %7121 = load i32, ptr %7120, align 4, !tbaa !5
  %7122 = call ptr @strerror(i32 noundef %7121) #11
  %7123 = call ptr @__errno_location() #12
  %7124 = load i32, ptr %7123, align 4, !tbaa !5
  %7125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7112, ptr noundef @.str, i32 noundef %7113, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 262, ptr noundef %7116, ptr noundef %7119, ptr noundef %7122, i32 noundef %7124) #11
  br label %7143

7126:                                             ; preds = %7104, %7097
  %7127 = load i32, ptr %158, align 4, !tbaa !5
  %7128 = call ptr @__errno_location() #12
  store i32 %7127, ptr %7128, align 4, !tbaa !5
  %7129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7130 = load i32, ptr @test_count, align 4, !tbaa !5
  %7131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @s2n_strerror(i32 noundef %7132, ptr noundef @.str.3)
  %7134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call ptr @s2n_strerror_debug(i32 noundef %7135, ptr noundef @.str.3)
  %7137 = call ptr @__errno_location() #12
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call ptr @strerror(i32 noundef %7138) #11
  %7140 = call ptr @__errno_location() #12
  %7141 = load i32, ptr %7140, align 4, !tbaa !5
  %7142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7129, ptr noundef @.str.4, i32 noundef %7130, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 262, ptr noundef %7133, ptr noundef %7136, ptr noundef %7139, i32 noundef %7141) #11
  br label %7143

7143:                                             ; preds = %7126, %7109
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %7144

7144:                                             ; preds = %7143
  br label %7145

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

7146:                                             ; No predecessors!
  br label %7147

7147:                                             ; preds = %7146
  br label %7148

7148:                                             ; preds = %7147, %7089
  br label %7149

7149:                                             ; preds = %7148
  br label %7150

7150:                                             ; preds = %7149
  br label %7151

7151:                                             ; preds = %7150
  %7152 = load i32, ptr @test_count, align 4, !tbaa !5
  %7153 = add nsw i32 %7152, 1
  store i32 %7153, ptr @test_count, align 4, !tbaa !5
  %7154 = call i32 @s2n_hmac_free(ptr noundef %15)
  %7155 = icmp eq i32 %7154, -1
  br i1 %7155, label %7156, label %7209

7156:                                             ; preds = %7151
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %7159 = call ptr @__errno_location() #12
  %7160 = load i32, ptr %7159, align 4, !tbaa !5
  store i32 %7160, ptr %159, align 4, !tbaa !5
  %7161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7162 = call i32 @s2n_print_stacktrace(ptr noundef %7161)
  %7163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7164 = trunc i8 %7163 to i1
  br i1 %7164, label %7165, label %7187

7165:                                             ; preds = %7158
  %7166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7167 = call i32 @fileno(ptr noundef %7166) #11
  %7168 = call i32 @isatty(i32 noundef %7167) #11
  %7169 = icmp ne i32 %7168, 0
  br i1 %7169, label %7170, label %7187

7170:                                             ; preds = %7165
  %7171 = load i32, ptr %159, align 4, !tbaa !5
  %7172 = call ptr @__errno_location() #12
  store i32 %7171, ptr %7172, align 4, !tbaa !5
  %7173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7174 = load i32, ptr @test_count, align 4, !tbaa !5
  %7175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7176 = load i32, ptr %7175, align 4, !tbaa !5
  %7177 = call ptr @s2n_strerror(i32 noundef %7176, ptr noundef @.str.3)
  %7178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7179 = load i32, ptr %7178, align 4, !tbaa !5
  %7180 = call ptr @s2n_strerror_debug(i32 noundef %7179, ptr noundef @.str.3)
  %7181 = call ptr @__errno_location() #12
  %7182 = load i32, ptr %7181, align 4, !tbaa !5
  %7183 = call ptr @strerror(i32 noundef %7182) #11
  %7184 = call ptr @__errno_location() #12
  %7185 = load i32, ptr %7184, align 4, !tbaa !5
  %7186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7173, ptr noundef @.str, i32 noundef %7174, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 263, ptr noundef %7177, ptr noundef %7180, ptr noundef %7183, i32 noundef %7185) #11
  br label %7204

7187:                                             ; preds = %7165, %7158
  %7188 = load i32, ptr %159, align 4, !tbaa !5
  %7189 = call ptr @__errno_location() #12
  store i32 %7188, ptr %7189, align 4, !tbaa !5
  %7190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7191 = load i32, ptr @test_count, align 4, !tbaa !5
  %7192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call ptr @s2n_strerror(i32 noundef %7193, ptr noundef @.str.3)
  %7195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7196 = load i32, ptr %7195, align 4, !tbaa !5
  %7197 = call ptr @s2n_strerror_debug(i32 noundef %7196, ptr noundef @.str.3)
  %7198 = call ptr @__errno_location() #12
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = call ptr @strerror(i32 noundef %7199) #11
  %7201 = call ptr @__errno_location() #12
  %7202 = load i32, ptr %7201, align 4, !tbaa !5
  %7203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7190, ptr noundef @.str.4, i32 noundef %7191, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 263, ptr noundef %7194, ptr noundef %7197, ptr noundef %7200, i32 noundef %7202) #11
  br label %7204

7204:                                             ; preds = %7187, %7170
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %7205

7205:                                             ; preds = %7204
  br label %7206

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

7207:                                             ; No predecessors!
  br label %7208

7208:                                             ; preds = %7207
  br label %7209

7209:                                             ; preds = %7208, %7151
  br label %7210

7210:                                             ; preds = %7209
  br label %7211

7211:                                             ; preds = %7210
  br label %7212

7212:                                             ; preds = %7211
  %7213 = load i32, ptr @test_count, align 4, !tbaa !5
  %7214 = add nsw i32 %7213, 1
  store i32 %7214, ptr @test_count, align 4, !tbaa !5
  %7215 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %7216 = icmp eq i32 %7215, -1
  br i1 %7216, label %7217, label %7270

7217:                                             ; preds = %7212
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

7219:                                             ; preds = %7218
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %7220 = call ptr @__errno_location() #12
  %7221 = load i32, ptr %7220, align 4, !tbaa !5
  store i32 %7221, ptr %160, align 4, !tbaa !5
  %7222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7223 = call i32 @s2n_print_stacktrace(ptr noundef %7222)
  %7224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7225 = trunc i8 %7224 to i1
  br i1 %7225, label %7226, label %7248

7226:                                             ; preds = %7219
  %7227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7228 = call i32 @fileno(ptr noundef %7227) #11
  %7229 = call i32 @isatty(i32 noundef %7228) #11
  %7230 = icmp ne i32 %7229, 0
  br i1 %7230, label %7231, label %7248

7231:                                             ; preds = %7226
  %7232 = load i32, ptr %160, align 4, !tbaa !5
  %7233 = call ptr @__errno_location() #12
  store i32 %7232, ptr %7233, align 4, !tbaa !5
  %7234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7235 = load i32, ptr @test_count, align 4, !tbaa !5
  %7236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7237 = load i32, ptr %7236, align 4, !tbaa !5
  %7238 = call ptr @s2n_strerror(i32 noundef %7237, ptr noundef @.str.3)
  %7239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7240 = load i32, ptr %7239, align 4, !tbaa !5
  %7241 = call ptr @s2n_strerror_debug(i32 noundef %7240, ptr noundef @.str.3)
  %7242 = call ptr @__errno_location() #12
  %7243 = load i32, ptr %7242, align 4, !tbaa !5
  %7244 = call ptr @strerror(i32 noundef %7243) #11
  %7245 = call ptr @__errno_location() #12
  %7246 = load i32, ptr %7245, align 4, !tbaa !5
  %7247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7234, ptr noundef @.str, i32 noundef %7235, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 265, ptr noundef %7238, ptr noundef %7241, ptr noundef %7244, i32 noundef %7246) #11
  br label %7265

7248:                                             ; preds = %7226, %7219
  %7249 = load i32, ptr %160, align 4, !tbaa !5
  %7250 = call ptr @__errno_location() #12
  store i32 %7249, ptr %7250, align 4, !tbaa !5
  %7251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7252 = load i32, ptr @test_count, align 4, !tbaa !5
  %7253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call ptr @s2n_strerror(i32 noundef %7254, ptr noundef @.str.3)
  %7256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7257 = load i32, ptr %7256, align 4, !tbaa !5
  %7258 = call ptr @s2n_strerror_debug(i32 noundef %7257, ptr noundef @.str.3)
  %7259 = call ptr @__errno_location() #12
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call ptr @strerror(i32 noundef %7260) #11
  %7262 = call ptr @__errno_location() #12
  %7263 = load i32, ptr %7262, align 4, !tbaa !5
  %7264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7251, ptr noundef @.str.4, i32 noundef %7252, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 265, ptr noundef %7255, ptr noundef %7258, ptr noundef %7261, i32 noundef %7263) #11
  br label %7265

7265:                                             ; preds = %7248, %7231
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %7266

7266:                                             ; preds = %7265
  br label %7267

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

7268:                                             ; No predecessors!
  br label %7269

7269:                                             ; preds = %7268
  br label %7270

7270:                                             ; preds = %7269, %7212
  br label %7271

7271:                                             ; preds = %7270
  br label %7272

7272:                                             ; preds = %7271
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  store i32 0, ptr %161, align 4, !tbaa !5
  br label %7273

7273:                                             ; preds = %7346, %7272
  %7274 = load i32, ptr %161, align 4, !tbaa !5
  %7275 = icmp slt i32 %7274, 48
  br i1 %7275, label %7277, label %7276

7276:                                             ; preds = %7273
  store i32 716, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %7349

7277:                                             ; preds = %7273
  br label %7278

7278:                                             ; preds = %7277
  %7279 = load i32, ptr @test_count, align 4, !tbaa !5
  %7280 = add nsw i32 %7279, 1
  store i32 %7280, ptr @test_count, align 4, !tbaa !5
  %7281 = load i32, ptr %161, align 4, !tbaa !5
  %7282 = sext i32 %7281 to i64
  %7283 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %7282
  %7284 = load i8, ptr %7283, align 1, !tbaa !15
  %7285 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %7284)
  %7286 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %7285, ptr %7286, align 4
  %7287 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  %7288 = load i32, ptr %7287, align 4
  %7289 = call zeroext i1 @s2n_result_is_ok(i32 %7288)
  br i1 %7289, label %7343, label %7290

7290:                                             ; preds = %7278
  br label %7291

7291:                                             ; preds = %7290
  br label %7292

7292:                                             ; preds = %7291
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %7293 = call ptr @__errno_location() #12
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  store i32 %7294, ptr %163, align 4, !tbaa !5
  %7295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7296 = call i32 @s2n_print_stacktrace(ptr noundef %7295)
  %7297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7298 = trunc i8 %7297 to i1
  br i1 %7298, label %7299, label %7321

7299:                                             ; preds = %7292
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = call i32 @fileno(ptr noundef %7300) #11
  %7302 = call i32 @isatty(i32 noundef %7301) #11
  %7303 = icmp ne i32 %7302, 0
  br i1 %7303, label %7304, label %7321

7304:                                             ; preds = %7299
  %7305 = load i32, ptr %163, align 4, !tbaa !5
  %7306 = call ptr @__errno_location() #12
  store i32 %7305, ptr %7306, align 4, !tbaa !5
  %7307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7308 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7310, ptr noundef @.str.3)
  %7312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror_debug(i32 noundef %7313, ptr noundef @.str.3)
  %7315 = call ptr @__errno_location() #12
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @strerror(i32 noundef %7316) #11
  %7318 = call ptr @__errno_location() #12
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7307, ptr noundef @.str, i32 noundef %7308, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 267, ptr noundef %7311, ptr noundef %7314, ptr noundef %7317, i32 noundef %7319) #11
  br label %7338

7321:                                             ; preds = %7299, %7292
  %7322 = load i32, ptr %163, align 4, !tbaa !5
  %7323 = call ptr @__errno_location() #12
  store i32 %7322, ptr %7323, align 4, !tbaa !5
  %7324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7325 = load i32, ptr @test_count, align 4, !tbaa !5
  %7326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror(i32 noundef %7327, ptr noundef @.str.3)
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror_debug(i32 noundef %7330, ptr noundef @.str.3)
  %7332 = call ptr @__errno_location() #12
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @strerror(i32 noundef %7333) #11
  %7335 = call ptr @__errno_location() #12
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7324, ptr noundef @.str.4, i32 noundef %7325, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 267, ptr noundef %7328, ptr noundef %7331, ptr noundef %7334, i32 noundef %7336) #11
  br label %7338

7338:                                             ; preds = %7321, %7304
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %7339

7339:                                             ; preds = %7338
  br label %7340

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

7341:                                             ; No predecessors!
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

7343:                                             ; preds = %7342, %7278
  br label %7344

7344:                                             ; preds = %7343
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

7346:                                             ; preds = %7345
  %7347 = load i32, ptr %161, align 4, !tbaa !5
  %7348 = add nsw i32 %7347, 1
  store i32 %7348, ptr %161, align 4, !tbaa !5
  br label %7273, !llvm.loop !29

7349:                                             ; preds = %7276
  br label %7350

7350:                                             ; preds = %7349
  %7351 = load i32, ptr @test_count, align 4, !tbaa !5
  %7352 = add nsw i32 %7351, 1
  store i32 %7352, ptr @test_count, align 4, !tbaa !5
  %7353 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %7354 = call i32 @memcmp(ptr noundef %7353, ptr noundef @.str.66, i64 noundef 96) #14
  %7355 = icmp eq i32 %7354, 0
  br i1 %7355, label %7409, label %7356

7356:                                             ; preds = %7350
  br label %7357

7357:                                             ; preds = %7356
  br label %7358

7358:                                             ; preds = %7357
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7359 = call ptr @__errno_location() #12
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  store i32 %7360, ptr %164, align 4, !tbaa !5
  %7361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7362 = call i32 @s2n_print_stacktrace(ptr noundef %7361)
  %7363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7364 = trunc i8 %7363 to i1
  br i1 %7364, label %7365, label %7387

7365:                                             ; preds = %7358
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = call i32 @fileno(ptr noundef %7366) #11
  %7368 = call i32 @isatty(i32 noundef %7367) #11
  %7369 = icmp ne i32 %7368, 0
  br i1 %7369, label %7370, label %7387

7370:                                             ; preds = %7365
  %7371 = load i32, ptr %164, align 4, !tbaa !5
  %7372 = call ptr @__errno_location() #12
  store i32 %7371, ptr %7372, align 4, !tbaa !5
  %7373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7374 = load i32, ptr @test_count, align 4, !tbaa !5
  %7375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @s2n_strerror(i32 noundef %7376, ptr noundef @.str.3)
  %7378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call ptr @s2n_strerror_debug(i32 noundef %7379, ptr noundef @.str.3)
  %7381 = call ptr @__errno_location() #12
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  %7383 = call ptr @strerror(i32 noundef %7382) #11
  %7384 = call ptr @__errno_location() #12
  %7385 = load i32, ptr %7384, align 4, !tbaa !5
  %7386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7373, ptr noundef @.str, i32 noundef %7374, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 271, ptr noundef %7377, ptr noundef %7380, ptr noundef %7383, i32 noundef %7385) #11
  br label %7404

7387:                                             ; preds = %7365, %7358
  %7388 = load i32, ptr %164, align 4, !tbaa !5
  %7389 = call ptr @__errno_location() #12
  store i32 %7388, ptr %7389, align 4, !tbaa !5
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = load i32, ptr @test_count, align 4, !tbaa !5
  %7392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call ptr @s2n_strerror(i32 noundef %7393, ptr noundef @.str.3)
  %7395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call ptr @s2n_strerror_debug(i32 noundef %7396, ptr noundef @.str.3)
  %7398 = call ptr @__errno_location() #12
  %7399 = load i32, ptr %7398, align 4, !tbaa !5
  %7400 = call ptr @strerror(i32 noundef %7399) #11
  %7401 = call ptr @__errno_location() #12
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  %7403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7390, ptr noundef @.str.4, i32 noundef %7391, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 271, ptr noundef %7394, ptr noundef %7397, ptr noundef %7400, i32 noundef %7402) #11
  br label %7404

7404:                                             ; preds = %7387, %7370
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

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

7407:                                             ; No predecessors!
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

7409:                                             ; preds = %7408, %7350
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411
  %7413 = load i32, ptr @test_count, align 4, !tbaa !5
  %7414 = add nsw i32 %7413, 1
  store i32 %7414, ptr @test_count, align 4, !tbaa !5
  %7415 = call i32 @s2n_hmac_new(ptr noundef %15)
  %7416 = icmp eq i32 %7415, -1
  br i1 %7416, label %7417, label %7470

7417:                                             ; preds = %7412
  br label %7418

7418:                                             ; preds = %7417
  br label %7419

7419:                                             ; preds = %7418
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %7420 = call ptr @__errno_location() #12
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  store i32 %7421, ptr %165, align 4, !tbaa !5
  %7422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7423 = call i32 @s2n_print_stacktrace(ptr noundef %7422)
  %7424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7425 = trunc i8 %7424 to i1
  br i1 %7425, label %7426, label %7448

7426:                                             ; preds = %7419
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = call i32 @fileno(ptr noundef %7427) #11
  %7429 = call i32 @isatty(i32 noundef %7428) #11
  %7430 = icmp ne i32 %7429, 0
  br i1 %7430, label %7431, label %7448

7431:                                             ; preds = %7426
  %7432 = load i32, ptr %165, align 4, !tbaa !5
  %7433 = call ptr @__errno_location() #12
  store i32 %7432, ptr %7433, align 4, !tbaa !5
  %7434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7435 = load i32, ptr @test_count, align 4, !tbaa !5
  %7436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7437 = load i32, ptr %7436, align 4, !tbaa !5
  %7438 = call ptr @s2n_strerror(i32 noundef %7437, ptr noundef @.str.3)
  %7439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  %7441 = call ptr @s2n_strerror_debug(i32 noundef %7440, ptr noundef @.str.3)
  %7442 = call ptr @__errno_location() #12
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  %7444 = call ptr @strerror(i32 noundef %7443) #11
  %7445 = call ptr @__errno_location() #12
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7434, ptr noundef @.str, i32 noundef %7435, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 274, ptr noundef %7438, ptr noundef %7441, ptr noundef %7444, i32 noundef %7446) #11
  br label %7465

7448:                                             ; preds = %7426, %7419
  %7449 = load i32, ptr %165, align 4, !tbaa !5
  %7450 = call ptr @__errno_location() #12
  store i32 %7449, ptr %7450, align 4, !tbaa !5
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = load i32, ptr @test_count, align 4, !tbaa !5
  %7453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7454 = load i32, ptr %7453, align 4, !tbaa !5
  %7455 = call ptr @s2n_strerror(i32 noundef %7454, ptr noundef @.str.3)
  %7456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7457 = load i32, ptr %7456, align 4, !tbaa !5
  %7458 = call ptr @s2n_strerror_debug(i32 noundef %7457, ptr noundef @.str.3)
  %7459 = call ptr @__errno_location() #12
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @strerror(i32 noundef %7460) #11
  %7462 = call ptr @__errno_location() #12
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7451, ptr noundef @.str.4, i32 noundef %7452, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 274, ptr noundef %7455, ptr noundef %7458, ptr noundef %7461, i32 noundef %7463) #11
  br label %7465

7465:                                             ; preds = %7448, %7431
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

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

7468:                                             ; No predecessors!
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469, %7412
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471
  call void @llvm.lifetime.start.p0(i64 1, ptr %166) #11
  store i8 0, ptr %166, align 1, !tbaa !15
  br label %7473

7473:                                             ; preds = %7472
  %7474 = call i32 @s2n_hmac_digest_size(i32 noundef 6, ptr noundef %166)
  %7475 = icmp sgt i32 %7474, -1
  br i1 %7475, label %7477, label %7476

7476:                                             ; preds = %7473
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %8149

7477:                                             ; preds = %7473
  br label %7478

7478:                                             ; preds = %7477
  br label %7479

7479:                                             ; preds = %7478
  br label %7480

7480:                                             ; preds = %7479
  %7481 = load i32, ptr @test_count, align 4, !tbaa !5
  %7482 = add nsw i32 %7481, 1
  store i32 %7482, ptr @test_count, align 4, !tbaa !5
  %7483 = load i8, ptr %166, align 1, !tbaa !15
  %7484 = zext i8 %7483 to i32
  %7485 = icmp eq i32 %7484, 64
  br i1 %7485, label %7539, label %7486

7486:                                             ; preds = %7480
  br label %7487

7487:                                             ; preds = %7486
  br label %7488

7488:                                             ; preds = %7487
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %7489 = call ptr @__errno_location() #12
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  store i32 %7490, ptr %167, align 4, !tbaa !5
  %7491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7492 = call i32 @s2n_print_stacktrace(ptr noundef %7491)
  %7493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7494 = trunc i8 %7493 to i1
  br i1 %7494, label %7495, label %7517

7495:                                             ; preds = %7488
  %7496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7497 = call i32 @fileno(ptr noundef %7496) #11
  %7498 = call i32 @isatty(i32 noundef %7497) #11
  %7499 = icmp ne i32 %7498, 0
  br i1 %7499, label %7500, label %7517

7500:                                             ; preds = %7495
  %7501 = load i32, ptr %167, align 4, !tbaa !5
  %7502 = call ptr @__errno_location() #12
  store i32 %7501, ptr %7502, align 4, !tbaa !5
  %7503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7504 = load i32, ptr @test_count, align 4, !tbaa !5
  %7505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call ptr @s2n_strerror(i32 noundef %7506, ptr noundef @.str.3)
  %7508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call ptr @s2n_strerror_debug(i32 noundef %7509, ptr noundef @.str.3)
  %7511 = call ptr @__errno_location() #12
  %7512 = load i32, ptr %7511, align 4, !tbaa !5
  %7513 = call ptr @strerror(i32 noundef %7512) #11
  %7514 = call ptr @__errno_location() #12
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7503, ptr noundef @.str, i32 noundef %7504, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 278, ptr noundef %7507, ptr noundef %7510, ptr noundef %7513, i32 noundef %7515) #11
  br label %7534

7517:                                             ; preds = %7495, %7488
  %7518 = load i32, ptr %167, align 4, !tbaa !5
  %7519 = call ptr @__errno_location() #12
  store i32 %7518, ptr %7519, align 4, !tbaa !5
  %7520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7521 = load i32, ptr @test_count, align 4, !tbaa !5
  %7522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @s2n_strerror(i32 noundef %7523, ptr noundef @.str.3)
  %7525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call ptr @s2n_strerror_debug(i32 noundef %7526, ptr noundef @.str.3)
  %7528 = call ptr @__errno_location() #12
  %7529 = load i32, ptr %7528, align 4, !tbaa !5
  %7530 = call ptr @strerror(i32 noundef %7529) #11
  %7531 = call ptr @__errno_location() #12
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  %7533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7520, ptr noundef @.str.4, i32 noundef %7521, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 278, ptr noundef %7524, ptr noundef %7527, ptr noundef %7530, i32 noundef %7532) #11
  br label %7534

7534:                                             ; preds = %7517, %7500
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

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

7537:                                             ; No predecessors!
  br label %7538

7538:                                             ; preds = %7537
  br label %7539

7539:                                             ; preds = %7538, %7480
  br label %7540

7540:                                             ; preds = %7539
  br label %7541

7541:                                             ; preds = %7540
  br label %7542

7542:                                             ; preds = %7541
  %7543 = load i32, ptr @test_count, align 4, !tbaa !5
  %7544 = add nsw i32 %7543, 1
  store i32 %7544, ptr @test_count, align 4, !tbaa !5
  %7545 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %7546 = getelementptr inbounds [7 x i8], ptr %10, i64 0, i64 0
  %7547 = call i64 @strlen(ptr noundef %7546) #14
  %7548 = trunc i64 %7547 to i32
  %7549 = call i32 @s2n_hmac_init(ptr noundef %15, i32 noundef 6, ptr noundef %7545, i32 noundef %7548)
  %7550 = icmp eq i32 %7549, -1
  br i1 %7550, label %7551, label %7604

7551:                                             ; preds = %7542
  br label %7552

7552:                                             ; preds = %7551
  br label %7553

7553:                                             ; preds = %7552
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %7554 = call ptr @__errno_location() #12
  %7555 = load i32, ptr %7554, align 4, !tbaa !5
  store i32 %7555, ptr %168, align 4, !tbaa !5
  %7556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7557 = call i32 @s2n_print_stacktrace(ptr noundef %7556)
  %7558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7559 = trunc i8 %7558 to i1
  br i1 %7559, label %7560, label %7582

7560:                                             ; preds = %7553
  %7561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7562 = call i32 @fileno(ptr noundef %7561) #11
  %7563 = call i32 @isatty(i32 noundef %7562) #11
  %7564 = icmp ne i32 %7563, 0
  br i1 %7564, label %7565, label %7582

7565:                                             ; preds = %7560
  %7566 = load i32, ptr %168, align 4, !tbaa !5
  %7567 = call ptr @__errno_location() #12
  store i32 %7566, ptr %7567, align 4, !tbaa !5
  %7568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7569 = load i32, ptr @test_count, align 4, !tbaa !5
  %7570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call ptr @s2n_strerror(i32 noundef %7571, ptr noundef @.str.3)
  %7573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call ptr @s2n_strerror_debug(i32 noundef %7574, ptr noundef @.str.3)
  %7576 = call ptr @__errno_location() #12
  %7577 = load i32, ptr %7576, align 4, !tbaa !5
  %7578 = call ptr @strerror(i32 noundef %7577) #11
  %7579 = call ptr @__errno_location() #12
  %7580 = load i32, ptr %7579, align 4, !tbaa !5
  %7581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7568, ptr noundef @.str, i32 noundef %7569, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 279, ptr noundef %7572, ptr noundef %7575, ptr noundef %7578, i32 noundef %7580) #11
  br label %7599

7582:                                             ; preds = %7560, %7553
  %7583 = load i32, ptr %168, align 4, !tbaa !5
  %7584 = call ptr @__errno_location() #12
  store i32 %7583, ptr %7584, align 4, !tbaa !5
  %7585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7586 = load i32, ptr @test_count, align 4, !tbaa !5
  %7587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @s2n_strerror(i32 noundef %7588, ptr noundef @.str.3)
  %7590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call ptr @s2n_strerror_debug(i32 noundef %7591, ptr noundef @.str.3)
  %7593 = call ptr @__errno_location() #12
  %7594 = load i32, ptr %7593, align 4, !tbaa !5
  %7595 = call ptr @strerror(i32 noundef %7594) #11
  %7596 = call ptr @__errno_location() #12
  %7597 = load i32, ptr %7596, align 4, !tbaa !5
  %7598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7585, ptr noundef @.str.4, i32 noundef %7586, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 279, ptr noundef %7589, ptr noundef %7592, ptr noundef %7595, i32 noundef %7597) #11
  br label %7599

7599:                                             ; preds = %7582, %7565
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %7600

7600:                                             ; preds = %7599
  br label %7601

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

7602:                                             ; No predecessors!
  br label %7603

7603:                                             ; preds = %7602
  br label %7604

7604:                                             ; preds = %7603, %7542
  br label %7605

7605:                                             ; preds = %7604
  br label %7606

7606:                                             ; preds = %7605
  br label %7607

7607:                                             ; preds = %7606
  %7608 = load i32, ptr @test_count, align 4, !tbaa !5
  %7609 = add nsw i32 %7608, 1
  store i32 %7609, ptr @test_count, align 4, !tbaa !5
  %7610 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %7611 = getelementptr inbounds [13 x i8], ptr %12, i64 0, i64 0
  %7612 = call i64 @strlen(ptr noundef %7611) #14
  %7613 = trunc i64 %7612 to i32
  %7614 = call i32 @s2n_hmac_update(ptr noundef %15, ptr noundef %7610, i32 noundef %7613)
  %7615 = icmp eq i32 %7614, -1
  br i1 %7615, label %7616, label %7669

7616:                                             ; preds = %7607
  br label %7617

7617:                                             ; preds = %7616
  br label %7618

7618:                                             ; preds = %7617
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7619 = call ptr @__errno_location() #12
  %7620 = load i32, ptr %7619, align 4, !tbaa !5
  store i32 %7620, ptr %169, align 4, !tbaa !5
  %7621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7622 = call i32 @s2n_print_stacktrace(ptr noundef %7621)
  %7623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7624 = trunc i8 %7623 to i1
  br i1 %7624, label %7625, label %7647

7625:                                             ; preds = %7618
  %7626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7627 = call i32 @fileno(ptr noundef %7626) #11
  %7628 = call i32 @isatty(i32 noundef %7627) #11
  %7629 = icmp ne i32 %7628, 0
  br i1 %7629, label %7630, label %7647

7630:                                             ; preds = %7625
  %7631 = load i32, ptr %169, align 4, !tbaa !5
  %7632 = call ptr @__errno_location() #12
  store i32 %7631, ptr %7632, align 4, !tbaa !5
  %7633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7634 = load i32, ptr @test_count, align 4, !tbaa !5
  %7635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call ptr @s2n_strerror(i32 noundef %7636, ptr noundef @.str.3)
  %7638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7639 = load i32, ptr %7638, align 4, !tbaa !5
  %7640 = call ptr @s2n_strerror_debug(i32 noundef %7639, ptr noundef @.str.3)
  %7641 = call ptr @__errno_location() #12
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  %7643 = call ptr @strerror(i32 noundef %7642) #11
  %7644 = call ptr @__errno_location() #12
  %7645 = load i32, ptr %7644, align 4, !tbaa !5
  %7646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7633, ptr noundef @.str, i32 noundef %7634, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 280, ptr noundef %7637, ptr noundef %7640, ptr noundef %7643, i32 noundef %7645) #11
  br label %7664

7647:                                             ; preds = %7625, %7618
  %7648 = load i32, ptr %169, align 4, !tbaa !5
  %7649 = call ptr @__errno_location() #12
  store i32 %7648, ptr %7649, align 4, !tbaa !5
  %7650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7651 = load i32, ptr @test_count, align 4, !tbaa !5
  %7652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call ptr @s2n_strerror(i32 noundef %7653, ptr noundef @.str.3)
  %7655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @s2n_strerror_debug(i32 noundef %7656, ptr noundef @.str.3)
  %7658 = call ptr @__errno_location() #12
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call ptr @strerror(i32 noundef %7659) #11
  %7661 = call ptr @__errno_location() #12
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7650, ptr noundef @.str.4, i32 noundef %7651, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 280, ptr noundef %7654, ptr noundef %7657, ptr noundef %7660, i32 noundef %7662) #11
  br label %7664

7664:                                             ; preds = %7647, %7630
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7665

7665:                                             ; preds = %7664
  br label %7666

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

7667:                                             ; No predecessors!
  br label %7668

7668:                                             ; preds = %7667
  br label %7669

7669:                                             ; preds = %7668, %7607
  br label %7670

7670:                                             ; preds = %7669
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671
  %7673 = load i32, ptr @test_count, align 4, !tbaa !5
  %7674 = add nsw i32 %7673, 1
  store i32 %7674, ptr @test_count, align 4, !tbaa !5
  %7675 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 0
  %7676 = call i32 @s2n_hmac_digest(ptr noundef %15, ptr noundef %7675, i32 noundef 64)
  %7677 = icmp eq i32 %7676, -1
  br i1 %7677, label %7678, label %7731

7678:                                             ; preds = %7672
  br label %7679

7679:                                             ; preds = %7678
  br label %7680

7680:                                             ; preds = %7679
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %7681 = call ptr @__errno_location() #12
  %7682 = load i32, ptr %7681, align 4, !tbaa !5
  store i32 %7682, ptr %170, align 4, !tbaa !5
  %7683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7684 = call i32 @s2n_print_stacktrace(ptr noundef %7683)
  %7685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7686 = trunc i8 %7685 to i1
  br i1 %7686, label %7687, label %7709

7687:                                             ; preds = %7680
  %7688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7689 = call i32 @fileno(ptr noundef %7688) #11
  %7690 = call i32 @isatty(i32 noundef %7689) #11
  %7691 = icmp ne i32 %7690, 0
  br i1 %7691, label %7692, label %7709

7692:                                             ; preds = %7687
  %7693 = load i32, ptr %170, align 4, !tbaa !5
  %7694 = call ptr @__errno_location() #12
  store i32 %7693, ptr %7694, align 4, !tbaa !5
  %7695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7696 = load i32, ptr @test_count, align 4, !tbaa !5
  %7697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call ptr @s2n_strerror(i32 noundef %7698, ptr noundef @.str.3)
  %7700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  %7702 = call ptr @s2n_strerror_debug(i32 noundef %7701, ptr noundef @.str.3)
  %7703 = call ptr @__errno_location() #12
  %7704 = load i32, ptr %7703, align 4, !tbaa !5
  %7705 = call ptr @strerror(i32 noundef %7704) #11
  %7706 = call ptr @__errno_location() #12
  %7707 = load i32, ptr %7706, align 4, !tbaa !5
  %7708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7695, ptr noundef @.str, i32 noundef %7696, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 281, ptr noundef %7699, ptr noundef %7702, ptr noundef %7705, i32 noundef %7707) #11
  br label %7726

7709:                                             ; preds = %7687, %7680
  %7710 = load i32, ptr %170, align 4, !tbaa !5
  %7711 = call ptr @__errno_location() #12
  store i32 %7710, ptr %7711, align 4, !tbaa !5
  %7712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7713 = load i32, ptr @test_count, align 4, !tbaa !5
  %7714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7715 = load i32, ptr %7714, align 4, !tbaa !5
  %7716 = call ptr @s2n_strerror(i32 noundef %7715, ptr noundef @.str.3)
  %7717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7718 = load i32, ptr %7717, align 4, !tbaa !5
  %7719 = call ptr @s2n_strerror_debug(i32 noundef %7718, ptr noundef @.str.3)
  %7720 = call ptr @__errno_location() #12
  %7721 = load i32, ptr %7720, align 4, !tbaa !5
  %7722 = call ptr @strerror(i32 noundef %7721) #11
  %7723 = call ptr @__errno_location() #12
  %7724 = load i32, ptr %7723, align 4, !tbaa !5
  %7725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7712, ptr noundef @.str.4, i32 noundef %7713, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 281, ptr noundef %7716, ptr noundef %7719, ptr noundef %7722, i32 noundef %7724) #11
  br label %7726

7726:                                             ; preds = %7709, %7692
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %7727

7727:                                             ; preds = %7726
  br label %7728

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

7729:                                             ; No predecessors!
  br label %7730

7730:                                             ; preds = %7729
  br label %7731

7731:                                             ; preds = %7730, %7672
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

7733:                                             ; preds = %7732
  br label %7734

7734:                                             ; preds = %7733
  %7735 = load i32, ptr @test_count, align 4, !tbaa !5
  %7736 = add nsw i32 %7735, 1
  store i32 %7736, ptr @test_count, align 4, !tbaa !5
  %7737 = call i32 @s2n_hmac_free(ptr noundef %15)
  %7738 = icmp eq i32 %7737, -1
  br i1 %7738, label %7739, label %7792

7739:                                             ; preds = %7734
  br label %7740

7740:                                             ; preds = %7739
  br label %7741

7741:                                             ; preds = %7740
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7742 = call ptr @__errno_location() #12
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  store i32 %7743, ptr %171, align 4, !tbaa !5
  %7744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7745 = call i32 @s2n_print_stacktrace(ptr noundef %7744)
  %7746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7747 = trunc i8 %7746 to i1
  br i1 %7747, label %7748, label %7770

7748:                                             ; preds = %7741
  %7749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7750 = call i32 @fileno(ptr noundef %7749) #11
  %7751 = call i32 @isatty(i32 noundef %7750) #11
  %7752 = icmp ne i32 %7751, 0
  br i1 %7752, label %7753, label %7770

7753:                                             ; preds = %7748
  %7754 = load i32, ptr %171, align 4, !tbaa !5
  %7755 = call ptr @__errno_location() #12
  store i32 %7754, ptr %7755, align 4, !tbaa !5
  %7756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7757 = load i32, ptr @test_count, align 4, !tbaa !5
  %7758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call ptr @s2n_strerror(i32 noundef %7759, ptr noundef @.str.3)
  %7761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @s2n_strerror_debug(i32 noundef %7762, ptr noundef @.str.3)
  %7764 = call ptr @__errno_location() #12
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @strerror(i32 noundef %7765) #11
  %7767 = call ptr @__errno_location() #12
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7756, ptr noundef @.str, i32 noundef %7757, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 282, ptr noundef %7760, ptr noundef %7763, ptr noundef %7766, i32 noundef %7768) #11
  br label %7787

7770:                                             ; preds = %7748, %7741
  %7771 = load i32, ptr %171, align 4, !tbaa !5
  %7772 = call ptr @__errno_location() #12
  store i32 %7771, ptr %7772, align 4, !tbaa !5
  %7773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7774 = load i32, ptr @test_count, align 4, !tbaa !5
  %7775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call ptr @s2n_strerror(i32 noundef %7776, ptr noundef @.str.3)
  %7778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @s2n_strerror_debug(i32 noundef %7779, ptr noundef @.str.3)
  %7781 = call ptr @__errno_location() #12
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @strerror(i32 noundef %7782) #11
  %7784 = call ptr @__errno_location() #12
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7773, ptr noundef @.str.4, i32 noundef %7774, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 282, ptr noundef %7777, ptr noundef %7780, ptr noundef %7783, i32 noundef %7785) #11
  br label %7787

7787:                                             ; preds = %7770, %7753
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %7788

7788:                                             ; preds = %7787
  br label %7789

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

7790:                                             ; No predecessors!
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791, %7734
  br label %7793

7793:                                             ; preds = %7792
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794
  %7796 = load i32, ptr @test_count, align 4, !tbaa !5
  %7797 = add nsw i32 %7796, 1
  store i32 %7797, ptr @test_count, align 4, !tbaa !5
  %7798 = call i32 @s2n_stuffer_init(ptr noundef %9, ptr noundef %18)
  %7799 = icmp eq i32 %7798, -1
  br i1 %7799, label %7800, label %7853

7800:                                             ; preds = %7795
  br label %7801

7801:                                             ; preds = %7800
  br label %7802

7802:                                             ; preds = %7801
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %7803 = call ptr @__errno_location() #12
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  store i32 %7804, ptr %172, align 4, !tbaa !5
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = call i32 @s2n_print_stacktrace(ptr noundef %7805)
  %7807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7808 = trunc i8 %7807 to i1
  br i1 %7808, label %7809, label %7831

7809:                                             ; preds = %7802
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = call i32 @fileno(ptr noundef %7810) #11
  %7812 = call i32 @isatty(i32 noundef %7811) #11
  %7813 = icmp ne i32 %7812, 0
  br i1 %7813, label %7814, label %7831

7814:                                             ; preds = %7809
  %7815 = load i32, ptr %172, align 4, !tbaa !5
  %7816 = call ptr @__errno_location() #12
  store i32 %7815, ptr %7816, align 4, !tbaa !5
  %7817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7818 = load i32, ptr @test_count, align 4, !tbaa !5
  %7819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7820 = load i32, ptr %7819, align 4, !tbaa !5
  %7821 = call ptr @s2n_strerror(i32 noundef %7820, ptr noundef @.str.3)
  %7822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call ptr @s2n_strerror_debug(i32 noundef %7823, ptr noundef @.str.3)
  %7825 = call ptr @__errno_location() #12
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @strerror(i32 noundef %7826) #11
  %7828 = call ptr @__errno_location() #12
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7817, ptr noundef @.str, i32 noundef %7818, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 284, ptr noundef %7821, ptr noundef %7824, ptr noundef %7827, i32 noundef %7829) #11
  br label %7848

7831:                                             ; preds = %7809, %7802
  %7832 = load i32, ptr %172, align 4, !tbaa !5
  %7833 = call ptr @__errno_location() #12
  store i32 %7832, ptr %7833, align 4, !tbaa !5
  %7834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7835 = load i32, ptr @test_count, align 4, !tbaa !5
  %7836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call ptr @s2n_strerror(i32 noundef %7837, ptr noundef @.str.3)
  %7839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7840 = load i32, ptr %7839, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror_debug(i32 noundef %7840, ptr noundef @.str.3)
  %7842 = call ptr @__errno_location() #12
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @strerror(i32 noundef %7843) #11
  %7845 = call ptr @__errno_location() #12
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7834, ptr noundef @.str.4, i32 noundef %7835, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 284, ptr noundef %7838, ptr noundef %7841, ptr noundef %7844, i32 noundef %7846) #11
  br label %7848

7848:                                             ; preds = %7831, %7814
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %7849

7849:                                             ; preds = %7848
  br label %7850

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

7851:                                             ; No predecessors!
  br label %7852

7852:                                             ; preds = %7851
  br label %7853

7853:                                             ; preds = %7852, %7795
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  store i32 0, ptr %173, align 4, !tbaa !5
  br label %7856

7856:                                             ; preds = %7929, %7855
  %7857 = load i32, ptr %173, align 4, !tbaa !5
  %7858 = icmp slt i32 %7857, 64
  br i1 %7858, label %7860, label %7859

7859:                                             ; preds = %7856
  store i32 775, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7932

7860:                                             ; preds = %7856
  br label %7861

7861:                                             ; preds = %7860
  %7862 = load i32, ptr @test_count, align 4, !tbaa !5
  %7863 = add nsw i32 %7862, 1
  store i32 %7863, ptr @test_count, align 4, !tbaa !5
  %7864 = load i32, ptr %173, align 4, !tbaa !5
  %7865 = sext i32 %7864 to i64
  %7866 = getelementptr inbounds [256 x i8], ptr %6, i64 0, i64 %7865
  %7867 = load i8, ptr %7866, align 1, !tbaa !15
  %7868 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef %9, i8 noundef zeroext %7867)
  %7869 = getelementptr inbounds %struct.s2n_result, ptr %174, i32 0, i32 0
  store i32 %7868, ptr %7869, align 4
  %7870 = getelementptr inbounds %struct.s2n_result, ptr %174, i32 0, i32 0
  %7871 = load i32, ptr %7870, align 4
  %7872 = call zeroext i1 @s2n_result_is_ok(i32 %7871)
  br i1 %7872, label %7926, label %7873

7873:                                             ; preds = %7861
  br label %7874

7874:                                             ; preds = %7873
  br label %7875

7875:                                             ; preds = %7874
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %7876 = call ptr @__errno_location() #12
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  store i32 %7877, ptr %175, align 4, !tbaa !5
  %7878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7879 = call i32 @s2n_print_stacktrace(ptr noundef %7878)
  %7880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7881 = trunc i8 %7880 to i1
  br i1 %7881, label %7882, label %7904

7882:                                             ; preds = %7875
  %7883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7884 = call i32 @fileno(ptr noundef %7883) #11
  %7885 = call i32 @isatty(i32 noundef %7884) #11
  %7886 = icmp ne i32 %7885, 0
  br i1 %7886, label %7887, label %7904

7887:                                             ; preds = %7882
  %7888 = load i32, ptr %175, align 4, !tbaa !5
  %7889 = call ptr @__errno_location() #12
  store i32 %7888, ptr %7889, align 4, !tbaa !5
  %7890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7891 = load i32, ptr @test_count, align 4, !tbaa !5
  %7892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7893 = load i32, ptr %7892, align 4, !tbaa !5
  %7894 = call ptr @s2n_strerror(i32 noundef %7893, ptr noundef @.str.3)
  %7895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7896 = load i32, ptr %7895, align 4, !tbaa !5
  %7897 = call ptr @s2n_strerror_debug(i32 noundef %7896, ptr noundef @.str.3)
  %7898 = call ptr @__errno_location() #12
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call ptr @strerror(i32 noundef %7899) #11
  %7901 = call ptr @__errno_location() #12
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7890, ptr noundef @.str, i32 noundef %7891, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 286, ptr noundef %7894, ptr noundef %7897, ptr noundef %7900, i32 noundef %7902) #11
  br label %7921

7904:                                             ; preds = %7882, %7875
  %7905 = load i32, ptr %175, align 4, !tbaa !5
  %7906 = call ptr @__errno_location() #12
  store i32 %7905, ptr %7906, align 4, !tbaa !5
  %7907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7908 = load i32, ptr @test_count, align 4, !tbaa !5
  %7909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call ptr @s2n_strerror(i32 noundef %7910, ptr noundef @.str.3)
  %7912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7913 = load i32, ptr %7912, align 4, !tbaa !5
  %7914 = call ptr @s2n_strerror_debug(i32 noundef %7913, ptr noundef @.str.3)
  %7915 = call ptr @__errno_location() #12
  %7916 = load i32, ptr %7915, align 4, !tbaa !5
  %7917 = call ptr @strerror(i32 noundef %7916) #11
  %7918 = call ptr @__errno_location() #12
  %7919 = load i32, ptr %7918, align 4, !tbaa !5
  %7920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7907, ptr noundef @.str.4, i32 noundef %7908, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 286, ptr noundef %7911, ptr noundef %7914, ptr noundef %7917, i32 noundef %7919) #11
  br label %7921

7921:                                             ; preds = %7904, %7887
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %7922

7922:                                             ; preds = %7921
  br label %7923

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

7924:                                             ; No predecessors!
  br label %7925

7925:                                             ; preds = %7924
  br label %7926

7926:                                             ; preds = %7925, %7861
  br label %7927

7927:                                             ; preds = %7926
  br label %7928

7928:                                             ; preds = %7927
  br label %7929

7929:                                             ; preds = %7928
  %7930 = load i32, ptr %173, align 4, !tbaa !5
  %7931 = add nsw i32 %7930, 1
  store i32 %7931, ptr %173, align 4, !tbaa !5
  br label %7856, !llvm.loop !30

7932:                                             ; preds = %7859
  br label %7933

7933:                                             ; preds = %7932
  %7934 = load i32, ptr @test_count, align 4, !tbaa !5
  %7935 = add nsw i32 %7934, 1
  store i32 %7935, ptr @test_count, align 4, !tbaa !5
  %7936 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %7937 = call i32 @memcmp(ptr noundef %7936, ptr noundef @.str.71, i64 noundef 128) #14
  %7938 = icmp eq i32 %7937, 0
  br i1 %7938, label %7992, label %7939

7939:                                             ; preds = %7933
  br label %7940

7940:                                             ; preds = %7939
  br label %7941

7941:                                             ; preds = %7940
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %7942 = call ptr @__errno_location() #12
  %7943 = load i32, ptr %7942, align 4, !tbaa !5
  store i32 %7943, ptr %176, align 4, !tbaa !5
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = call i32 @s2n_print_stacktrace(ptr noundef %7944)
  %7946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7947 = trunc i8 %7946 to i1
  br i1 %7947, label %7948, label %7970

7948:                                             ; preds = %7941
  %7949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7950 = call i32 @fileno(ptr noundef %7949) #11
  %7951 = call i32 @isatty(i32 noundef %7950) #11
  %7952 = icmp ne i32 %7951, 0
  br i1 %7952, label %7953, label %7970

7953:                                             ; preds = %7948
  %7954 = load i32, ptr %176, align 4, !tbaa !5
  %7955 = call ptr @__errno_location() #12
  store i32 %7954, ptr %7955, align 4, !tbaa !5
  %7956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7957 = load i32, ptr @test_count, align 4, !tbaa !5
  %7958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call ptr @s2n_strerror(i32 noundef %7959, ptr noundef @.str.3)
  %7961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @s2n_strerror_debug(i32 noundef %7962, ptr noundef @.str.3)
  %7964 = call ptr @__errno_location() #12
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call ptr @strerror(i32 noundef %7965) #11
  %7967 = call ptr @__errno_location() #12
  %7968 = load i32, ptr %7967, align 4, !tbaa !5
  %7969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7956, ptr noundef @.str, i32 noundef %7957, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 290, ptr noundef %7960, ptr noundef %7963, ptr noundef %7966, i32 noundef %7968) #11
  br label %7987

7970:                                             ; preds = %7948, %7941
  %7971 = load i32, ptr %176, align 4, !tbaa !5
  %7972 = call ptr @__errno_location() #12
  store i32 %7971, ptr %7972, align 4, !tbaa !5
  %7973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7974 = load i32, ptr @test_count, align 4, !tbaa !5
  %7975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7976 = load i32, ptr %7975, align 4, !tbaa !5
  %7977 = call ptr @s2n_strerror(i32 noundef %7976, ptr noundef @.str.3)
  %7978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror_debug(i32 noundef %7979, ptr noundef @.str.3)
  %7981 = call ptr @__errno_location() #12
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call ptr @strerror(i32 noundef %7982) #11
  %7984 = call ptr @__errno_location() #12
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  %7986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7973, ptr noundef @.str.4, i32 noundef %7974, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 290, ptr noundef %7977, ptr noundef %7980, ptr noundef %7983, i32 noundef %7985) #11
  br label %7987

7987:                                             ; preds = %7970, %7953
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %7988

7988:                                             ; preds = %7987
  br label %7989

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

7990:                                             ; No predecessors!
  br label %7991

7991:                                             ; preds = %7990
  br label %7992

7992:                                             ; preds = %7991, %7933
  br label %7993

7993:                                             ; preds = %7992
  br label %7994

7994:                                             ; preds = %7993
  br label %7995

7995:                                             ; preds = %7994
  br label %7996

7996:                                             ; preds = %7995
  %7997 = call i32 @s2n_cleanup()
  %7998 = icmp eq i32 %7997, -1
  br i1 %7998, label %7999, label %8052

7999:                                             ; preds = %7996
  br label %8000

8000:                                             ; preds = %7999
  br label %8001

8001:                                             ; preds = %8000
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %8002 = call ptr @__errno_location() #12
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  store i32 %8003, ptr %177, align 4, !tbaa !5
  %8004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8005 = call i32 @s2n_print_stacktrace(ptr noundef %8004)
  %8006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8007 = trunc i8 %8006 to i1
  br i1 %8007, label %8008, label %8030

8008:                                             ; preds = %8001
  %8009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8010 = call i32 @fileno(ptr noundef %8009) #11
  %8011 = call i32 @isatty(i32 noundef %8010) #11
  %8012 = icmp ne i32 %8011, 0
  br i1 %8012, label %8013, label %8030

8013:                                             ; preds = %8008
  %8014 = load i32, ptr %177, align 4, !tbaa !5
  %8015 = call ptr @__errno_location() #12
  store i32 %8014, ptr %8015, align 4, !tbaa !5
  %8016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8017 = load i32, ptr @test_count, align 4, !tbaa !5
  %8018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  %8020 = call ptr @s2n_strerror(i32 noundef %8019, ptr noundef @.str.3)
  %8021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8022 = load i32, ptr %8021, align 4, !tbaa !5
  %8023 = call ptr @s2n_strerror_debug(i32 noundef %8022, ptr noundef @.str.3)
  %8024 = call ptr @__errno_location() #12
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  %8026 = call ptr @strerror(i32 noundef %8025) #11
  %8027 = call ptr @__errno_location() #12
  %8028 = load i32, ptr %8027, align 4, !tbaa !5
  %8029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8016, ptr noundef @.str, i32 noundef %8017, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 292, ptr noundef %8020, ptr noundef %8023, ptr noundef %8026, i32 noundef %8028) #11
  br label %8047

8030:                                             ; preds = %8008, %8001
  %8031 = load i32, ptr %177, align 4, !tbaa !5
  %8032 = call ptr @__errno_location() #12
  store i32 %8031, ptr %8032, align 4, !tbaa !5
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = load i32, ptr @test_count, align 4, !tbaa !5
  %8035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8036 = load i32, ptr %8035, align 4, !tbaa !5
  %8037 = call ptr @s2n_strerror(i32 noundef %8036, ptr noundef @.str.3)
  %8038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8039 = load i32, ptr %8038, align 4, !tbaa !5
  %8040 = call ptr @s2n_strerror_debug(i32 noundef %8039, ptr noundef @.str.3)
  %8041 = call ptr @__errno_location() #12
  %8042 = load i32, ptr %8041, align 4, !tbaa !5
  %8043 = call ptr @strerror(i32 noundef %8042) #11
  %8044 = call ptr @__errno_location() #12
  %8045 = load i32, ptr %8044, align 4, !tbaa !5
  %8046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8033, ptr noundef @.str.4, i32 noundef %8034, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 292, ptr noundef %8037, ptr noundef %8040, ptr noundef %8043, i32 noundef %8045) #11
  br label %8047

8047:                                             ; preds = %8030, %8013
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %8048

8048:                                             ; preds = %8047
  br label %8049

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

8050:                                             ; No predecessors!
  br label %8051

8051:                                             ; preds = %8050
  br label %8052

8052:                                             ; preds = %8051, %7996
  br label %8053

8053:                                             ; preds = %8052
  br label %8054

8054:                                             ; preds = %8053
  br label %8055

8055:                                             ; preds = %8054
  br label %8056

8056:                                             ; preds = %8055
  %8057 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %8058 = icmp eq i32 %8057, -1
  br i1 %8058, label %8059, label %8112

8059:                                             ; preds = %8056
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %8062 = call ptr @__errno_location() #12
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  store i32 %8063, ptr %178, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = call i32 @s2n_print_stacktrace(ptr noundef %8064)
  %8066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8067 = trunc i8 %8066 to i1
  br i1 %8067, label %8068, label %8090

8068:                                             ; preds = %8061
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = call i32 @fileno(ptr noundef %8069) #11
  %8071 = call i32 @isatty(i32 noundef %8070) #11
  %8072 = icmp ne i32 %8071, 0
  br i1 %8072, label %8073, label %8090

8073:                                             ; preds = %8068
  %8074 = load i32, ptr %178, align 4, !tbaa !5
  %8075 = call ptr @__errno_location() #12
  store i32 %8074, ptr %8075, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = load i32, ptr @test_count, align 4, !tbaa !5
  %8078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call ptr @s2n_strerror(i32 noundef %8079, ptr noundef @.str.3)
  %8081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @s2n_strerror_debug(i32 noundef %8082, ptr noundef @.str.3)
  %8084 = call ptr @__errno_location() #12
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @strerror(i32 noundef %8085) #11
  %8087 = call ptr @__errno_location() #12
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8076, ptr noundef @.str, i32 noundef %8077, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 292, ptr noundef %8080, ptr noundef %8083, ptr noundef %8086, i32 noundef %8088) #11
  br label %8107

8090:                                             ; preds = %8068, %8061
  %8091 = load i32, ptr %178, align 4, !tbaa !5
  %8092 = call ptr @__errno_location() #12
  store i32 %8091, ptr %8092, align 4, !tbaa !5
  %8093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8094 = load i32, ptr @test_count, align 4, !tbaa !5
  %8095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call ptr @s2n_strerror(i32 noundef %8096, ptr noundef @.str.3)
  %8098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef @.str.3)
  %8101 = call ptr @__errno_location() #12
  %8102 = load i32, ptr %8101, align 4, !tbaa !5
  %8103 = call ptr @strerror(i32 noundef %8102) #11
  %8104 = call ptr @__errno_location() #12
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8093, ptr noundef @.str.4, i32 noundef %8094, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 292, ptr noundef %8097, ptr noundef %8100, ptr noundef %8103, i32 noundef %8105) #11
  br label %8107

8107:                                             ; preds = %8090, %8073
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

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

8110:                                             ; No predecessors!
  br label %8111

8111:                                             ; preds = %8110
  br label %8112

8112:                                             ; preds = %8111, %8056
  br label %8113

8113:                                             ; preds = %8112
  br label %8114

8114:                                             ; preds = %8113
  %8115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8116 = trunc i8 %8115 to i1
  br i1 %8116, label %8117, label %8133

8117:                                             ; preds = %8114
  %8118 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8119 = call i32 @fileno(ptr noundef %8118) #11
  %8120 = call i32 @isatty(i32 noundef %8119) #11
  %8121 = icmp ne i32 %8120, 0
  br i1 %8121, label %8122, label %8133

8122:                                             ; preds = %8117
  %8123 = load i32, ptr @test_count, align 4, !tbaa !5
  %8124 = icmp ne i32 %8123, 0
  br i1 %8124, label %8125, label %8129

8125:                                             ; preds = %8122
  %8126 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8127 = load i32, ptr @test_count, align 4, !tbaa !5
  %8128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8126, ptr noundef @.str.75, i32 noundef %8127) #11
  br label %8132

8129:                                             ; preds = %8122
  %8130 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8130, ptr noundef @.str.76) #11
  br label %8132

8132:                                             ; preds = %8129, %8125
  br label %8144

8133:                                             ; preds = %8117, %8114
  %8134 = load i32, ptr @test_count, align 4, !tbaa !5
  %8135 = icmp ne i32 %8134, 0
  br i1 %8135, label %8136, label %8140

8136:                                             ; preds = %8133
  %8137 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8138 = load i32, ptr @test_count, align 4, !tbaa !5
  %8139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8137, ptr noundef @.str.77, i32 noundef %8138) #11
  br label %8143

8140:                                             ; preds = %8133
  %8141 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8141, ptr noundef @.str.78) #11
  br label %8143

8143:                                             ; preds = %8140, %8136
  br label %8144

8144:                                             ; preds = %8143, %8132
  store i32 0, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %8149

8145:                                             ; No predecessors!
  br label %8146

8146:                                             ; preds = %8145
  br label %8147

8147:                                             ; preds = %8146
  br label %8148

8148:                                             ; preds = %8147
  store i32 0, ptr %28, align 4
  br label %8149

8149:                                             ; preds = %8148, %8144, %7476
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #11
  br label %8150

8150:                                             ; preds = %8149, %6893
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #11
  br label %8151

8151:                                             ; preds = %8150, %6310
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #11
  br label %8152

8152:                                             ; preds = %8151, %5727
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #11
  br label %8153

8153:                                             ; preds = %8152, %3028
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #11
  br label %8154

8154:                                             ; preds = %8153, %3022, %2497, %1584
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 432, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 432, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 432, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 13, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 9, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 13, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 101, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 7, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %6) #11
  %8155 = load i32, ptr %28, align 4
  switch i32 %8155, label %8158 [
    i32 0, label %8156
    i32 1, label %8156
  ]

8156:                                             ; preds = %8154, %8154
  %8157 = load i32, ptr %3, align 4
  ret i32 %8157

8158:                                             ; preds = %8154
  unreachable
}

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

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

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

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #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) #6

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

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

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

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

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

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

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

declare i32 @fflush(ptr noundef) #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #4

declare i32 @s2n_enable_atexit() #4

declare i32 @s2n_init() #4

declare i32 @s2n_disable_tls13_in_test(...) #4

declare i32 @s2n_hmac_new(ptr noundef) #4

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #9

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

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

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

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

declare i32 @s2n_stuffer_write_uint8_hex(ptr noundef, i8 noundef zeroext) #4

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

declare i32 @s2n_hmac_reset(ptr noundef) #4

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

declare i32 @s2n_hmac_free(ptr noundef) #4

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

declare i32 @s2n_cleanup() #4

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

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

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


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

%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x 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 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@__const.main.sekrit = external hidden unnamed_addr constant [7 x i8], align 1
@__const.main.longsekrit = external hidden unnamed_addr constant [101 x i8], align 16
@__const.main.hello = external hidden unnamed_addr constant [13 x i8], align 1
@__const.main.string1 = external hidden unnamed_addr constant [9 x i8], align 1
@__const.main.string2 = external hidden unnamed_addr constant [13 x i8], align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [181 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [256 x i8], align 16
  %4 = alloca [256 x i8], align 16
  %5 = alloca [256 x i8], align 16
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca [7 x i8], align 1
  %8 = alloca [101 x i8], align 16
  %9 = alloca [13 x i8], align 1
  %10 = alloca [9 x i8], align 1
  %11 = alloca [13 x i8], align 1
  %12 = alloca %struct.s2n_hmac_state, align 8
  %13 = alloca %struct.s2n_hmac_state, align 8
  %14 = alloca %struct.s2n_hmac_state, align 8
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %3) #13
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %5) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %7) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %7, ptr noundef nonnull align 1 dereferenceable(7) @__const.main.sekrit, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 101, ptr nonnull %8) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(101) %8, ptr noundef nonnull align 16 dereferenceable(101) @__const.main.longsekrit, i64 101, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %9) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %9, ptr noundef nonnull align 1 dereferenceable(13) @__const.main.hello, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %10) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %10, ptr noundef nonnull align 1 dereferenceable(9) @__const.main.string1, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %11) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %11, ptr noundef nonnull align 1 dereferenceable(13) @__const.main.string2, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %12) #13
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %13) #13
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %14) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %24 = load i32, ptr @test_count, align 4, !tbaa !5
  %25 = add nsw i32 %24, 1
  store i32 %25, ptr @test_count, align 4, !tbaa !5
  %26 = call i32 @s2n_blob_init(ptr noundef nonnull %15, ptr noundef nonnull %5, i32 noundef 256) #13
  %27 = icmp eq i32 %26, -1
  br i1 %27, label %28, label %52

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

35:                                               ; preds = %28
  %36 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37 = call i32 @fileno(ptr noundef %36) #13
  %38 = call i32 @isatty(i32 noundef %37) #13
  %.not463 = icmp eq i32 %38, 0
  br i1 %.not463, label %39, label %40

39:                                               ; preds = %35, %28
  br label %40

40:                                               ; preds = %35, %39
  %.str.4.sink = phi ptr [ @.str.4, %39 ], [ @.str, %35 ]
  store i32 %30, ptr %29, align 4, !tbaa !5
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = load i32, ptr @test_count, align 4, !tbaa !5
  %43 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %44 = load i32, ptr %43, align 4, !tbaa !5
  %45 = call ptr @s2n_strerror(i32 noundef %44, ptr noundef nonnull @.str.3) #13
  %46 = load i32, ptr %43, align 4, !tbaa !5
  %47 = call ptr @s2n_strerror_debug(i32 noundef %46, ptr noundef nonnull @.str.3) #13
  %48 = load i32, ptr %29, align 4, !tbaa !5
  %49 = call ptr @strerror(i32 noundef %48) #13
  %50 = load i32, ptr %29, align 4, !tbaa !5
  %51 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %41, ptr noundef nonnull %.str.4.sink, i32 noundef %42, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 41, ptr noundef %45, ptr noundef %47, ptr noundef %49, i32 noundef %50) #15
  call void @exit(i32 noundef 1) #16
  unreachable

52:                                               ; preds = %2
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %53 = load ptr, ptr @stdout, align 8, !tbaa !9
  %54 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %53, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2) #13
  %55 = load ptr, ptr @stdout, align 8, !tbaa !9
  %56 = call i32 @fflush(ptr noundef %55)
  %57 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %58 = icmp eq i32 %57, -1
  br i1 %58, label %59, label %83

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

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

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

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

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

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

95:                                               ; preds = %88
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = call i32 @fileno(ptr noundef %96) #13
  %98 = call i32 @isatty(i32 noundef %97) #13
  %.not461 = icmp eq i32 %98, 0
  br i1 %.not461, label %99, label %100

99:                                               ; preds = %95, %88
  br label %100

100:                                              ; preds = %95, %99
  %.str.4.sink540 = phi ptr [ @.str.4, %99 ], [ @.str, %95 ]
  store i32 %90, ptr %89, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = call ptr @s2n_strerror(i32 noundef %104, ptr noundef nonnull @.str.3) #13
  %106 = load i32, ptr %103, align 4, !tbaa !5
  %107 = call ptr @s2n_strerror_debug(i32 noundef %106, ptr noundef nonnull @.str.3) #13
  %108 = load i32, ptr %89, align 4, !tbaa !5
  %109 = call ptr @strerror(i32 noundef %108) #13
  %110 = load i32, ptr %89, align 4, !tbaa !5
  %111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %101, ptr noundef nonnull %.str.4.sink540, i32 noundef %102, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2, i32 noundef 43, ptr noundef %105, ptr noundef %107, ptr noundef %109, i32 noundef %110) #15
  call void @exit(i32 noundef 1) #16
  unreachable

112:                                              ; preds = %83
  %113 = call i32 @s2n_init() #13
  %114 = icmp eq i32 %113, -1
  br i1 %114, label %115, label %139

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

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

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

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

139:                                              ; preds = %112
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr @test_count, align 4, !tbaa !5
  %142 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %143 = icmp eq i32 %142, -1
  br i1 %143, label %144, label %168

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

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

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

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

168:                                              ; preds = %139
  %169 = load i32, ptr @test_count, align 4, !tbaa !5
  %170 = add nsw i32 %169, 1
  store i32 %170, ptr @test_count, align 4, !tbaa !5
  %171 = call i32 @s2n_hmac_new(ptr noundef nonnull %12) #13
  %172 = icmp eq i32 %171, -1
  br i1 %172, label %173, label %197

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

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = call i32 @fileno(ptr noundef %181) #13
  %183 = call i32 @isatty(i32 noundef %182) #13
  %.not458 = icmp eq i32 %183, 0
  br i1 %.not458, label %184, label %185

184:                                              ; preds = %180, %173
  br label %185

185:                                              ; preds = %180, %184
  %.str.4.sink573 = phi ptr [ @.str.4, %184 ], [ @.str, %180 ]
  store i32 %175, ptr %174, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call ptr @s2n_strerror(i32 noundef %189, ptr noundef nonnull @.str.3) #13
  %191 = load i32, ptr %188, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror_debug(i32 noundef %191, ptr noundef nonnull @.str.3) #13
  %193 = load i32, ptr %174, align 4, !tbaa !5
  %194 = call ptr @strerror(i32 noundef %193) #13
  %195 = load i32, ptr %174, align 4, !tbaa !5
  %196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull %.str.4.sink573, i32 noundef %187, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 46, ptr noundef %190, ptr noundef %192, ptr noundef %194, i32 noundef %195) #15
  call void @exit(i32 noundef 1) #16
  unreachable

197:                                              ; preds = %168
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr @test_count, align 4, !tbaa !5
  %200 = call i32 @s2n_hmac_new(ptr noundef nonnull %13) #13
  %201 = icmp eq i32 %200, -1
  br i1 %201, label %202, label %226

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

209:                                              ; preds = %202
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = call i32 @fileno(ptr noundef %210) #13
  %212 = call i32 @isatty(i32 noundef %211) #13
  %.not457 = icmp eq i32 %212, 0
  br i1 %.not457, label %213, label %214

213:                                              ; preds = %209, %202
  br label %214

214:                                              ; preds = %209, %213
  %.str.4.sink584 = phi ptr [ @.str.4, %213 ], [ @.str, %209 ]
  store i32 %204, ptr %203, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror(i32 noundef %218, ptr noundef nonnull @.str.3) #13
  %220 = load i32, ptr %217, align 4, !tbaa !5
  %221 = call ptr @s2n_strerror_debug(i32 noundef %220, ptr noundef nonnull @.str.3) #13
  %222 = load i32, ptr %203, align 4, !tbaa !5
  %223 = call ptr @strerror(i32 noundef %222) #13
  %224 = load i32, ptr %203, align 4, !tbaa !5
  %225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef nonnull %.str.4.sink584, i32 noundef %216, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 47, ptr noundef %219, ptr noundef %221, ptr noundef %223, i32 noundef %224) #15
  call void @exit(i32 noundef 1) #16
  unreachable

226:                                              ; preds = %197
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr @test_count, align 4, !tbaa !5
  %229 = call i32 @s2n_hmac_new(ptr noundef nonnull %14) #13
  %230 = icmp eq i32 %229, -1
  br i1 %230, label %231, label %255

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

238:                                              ; preds = %231
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = call i32 @fileno(ptr noundef %239) #13
  %241 = call i32 @isatty(i32 noundef %240) #13
  %.not456 = icmp eq i32 %241, 0
  br i1 %.not456, label %242, label %243

242:                                              ; preds = %238, %231
  br label %243

243:                                              ; preds = %238, %242
  %.str.4.sink595 = phi ptr [ @.str.4, %242 ], [ @.str, %238 ]
  store i32 %233, ptr %232, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %247, ptr noundef nonnull @.str.3) #13
  %249 = load i32, ptr %246, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef nonnull @.str.3) #13
  %251 = load i32, ptr %232, align 4, !tbaa !5
  %252 = call ptr @strerror(i32 noundef %251) #13
  %253 = load i32, ptr %232, align 4, !tbaa !5
  %254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef nonnull %.str.4.sink595, i32 noundef %245, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 48, ptr noundef %248, ptr noundef %250, ptr noundef %252, i32 noundef %253) #15
  call void @exit(i32 noundef 1) #16
  unreachable

255:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #13
  store i8 0, ptr %16, align 1, !tbaa !15
  %256 = call i32 @s2n_hmac_digest_size(i32 noundef 7, ptr noundef nonnull %16) #13
  %257 = icmp sgt i32 %256, -1
  br i1 %257, label %258, label %.thread

.thread:                                          ; preds = %255
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #13
  br label %4568

258:                                              ; preds = %255
  %259 = load i32, ptr @test_count, align 4, !tbaa !5
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr @test_count, align 4, !tbaa !5
  %261 = load i8, ptr %16, align 1, !tbaa !15
  %262 = icmp eq i8 %261, 16
  br i1 %262, label %287, label %263

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

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

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

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

287:                                              ; preds = %258
  %288 = add nsw i32 %259, 2
  store i32 %288, ptr @test_count, align 4, !tbaa !5
  %289 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %290 = trunc i64 %289 to i32
  %291 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 7, ptr noundef nonnull %7, i32 noundef %290) #13
  %292 = icmp eq i32 %291, -1
  br i1 %292, label %293, label %317

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

300:                                              ; preds = %293
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @fileno(ptr noundef %301) #13
  %303 = call i32 @isatty(i32 noundef %302) #13
  %.not455 = icmp eq i32 %303, 0
  br i1 %.not455, label %304, label %305

304:                                              ; preds = %300, %293
  br label %305

305:                                              ; preds = %300, %304
  %.str.4.sink617 = phi ptr [ @.str.4, %304 ], [ @.str, %300 ]
  store i32 %295, ptr %294, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror(i32 noundef %309, ptr noundef nonnull @.str.3) #13
  %311 = load i32, ptr %308, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror_debug(i32 noundef %311, ptr noundef nonnull @.str.3) #13
  %313 = load i32, ptr %294, align 4, !tbaa !5
  %314 = call ptr @strerror(i32 noundef %313) #13
  %315 = load i32, ptr %294, align 4, !tbaa !5
  %316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %306, ptr noundef nonnull %.str.4.sink617, i32 noundef %307, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 55, ptr noundef %310, ptr noundef %312, ptr noundef %314, i32 noundef %315) #15
  call void @exit(i32 noundef 1) #16
  unreachable

317:                                              ; preds = %287
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = add nsw i32 %318, 1
  store i32 %319, ptr @test_count, align 4, !tbaa !5
  %320 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %321 = trunc i64 %320 to i32
  %322 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %321) #13
  %323 = icmp eq i32 %322, -1
  br i1 %323, label %324, label %348

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

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

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

336:                                              ; preds = %331, %335
  %.str.4.sink628 = phi ptr [ @.str.4, %335 ], [ @.str, %331 ]
  store i32 %326, ptr %325, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror(i32 noundef %340, ptr noundef nonnull @.str.3) #13
  %342 = load i32, ptr %339, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror_debug(i32 noundef %342, ptr noundef nonnull @.str.3) #13
  %344 = load i32, ptr %325, align 4, !tbaa !5
  %345 = call ptr @strerror(i32 noundef %344) #13
  %346 = load i32, ptr %325, align 4, !tbaa !5
  %347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef nonnull %.str.4.sink628, i32 noundef %338, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 56, ptr noundef %341, ptr noundef %343, ptr noundef %345, i32 noundef %346) #15
  call void @exit(i32 noundef 1) #16
  unreachable

348:                                              ; preds = %317
  %349 = load i32, ptr @test_count, align 4, !tbaa !5
  %350 = add nsw i32 %349, 1
  store i32 %350, ptr @test_count, align 4, !tbaa !5
  %351 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 16) #13
  %352 = icmp eq i32 %351, -1
  br i1 %352, label %353, label %377

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

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

364:                                              ; preds = %360, %353
  br label %365

365:                                              ; preds = %360, %364
  %.str.4.sink639 = phi ptr [ @.str.4, %364 ], [ @.str, %360 ]
  store i32 %355, ptr %354, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror(i32 noundef %369, ptr noundef nonnull @.str.3) #13
  %371 = load i32, ptr %368, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef nonnull @.str.3) #13
  %373 = load i32, ptr %354, align 4, !tbaa !5
  %374 = call ptr @strerror(i32 noundef %373) #13
  %375 = load i32, ptr %354, align 4, !tbaa !5
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.4.sink639, i32 noundef %367, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 57, ptr noundef %370, ptr noundef %372, ptr noundef %374, i32 noundef %375) #15
  call void @exit(i32 noundef 1) #16
  unreachable

377:                                              ; preds = %348
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr @test_count, align 4, !tbaa !5
  %380 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %387, label %.preheader481.preheader

.preheader481.preheader:                          ; preds = %377
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = load i8, ptr %3, align 16, !tbaa !15
  %385 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %384) #13
  %386 = call zeroext i1 @s2n_result_is_ok(i32 %385)
  br i1 %386, label %.preheader481.1, label %505

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

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #13
  %397 = call i32 @isatty(i32 noundef %396) #13
  %.not452 = icmp eq i32 %397, 0
  br i1 %.not452, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

399:                                              ; preds = %394, %398
  %.str.4.sink650 = phi ptr [ @.str.4, %398 ], [ @.str, %394 ]
  store i32 %389, ptr %388, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.3) #13
  %405 = load i32, ptr %402, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.3) #13
  %407 = load i32, ptr %388, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #13
  %409 = load i32, ptr %388, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.4.sink650, i32 noundef %401, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 59, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader481.1:                                  ; preds = %.preheader481.preheader
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr @test_count, align 4, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %3, i64 1
  %414 = load i8, ptr %413, align 1, !tbaa !15
  %415 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %414) #13
  %416 = call zeroext i1 @s2n_result_is_ok(i32 %415)
  br i1 %416, label %.preheader481.2, label %505

.preheader481.2:                                  ; preds = %.preheader481.1
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr @test_count, align 4, !tbaa !5
  %419 = getelementptr inbounds i8, ptr %3, i64 2
  %420 = load i8, ptr %419, align 2, !tbaa !15
  %421 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %420) #13
  %422 = call zeroext i1 @s2n_result_is_ok(i32 %421)
  br i1 %422, label %.preheader481.3, label %505

.preheader481.3:                                  ; preds = %.preheader481.2
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %3, i64 3
  %426 = load i8, ptr %425, align 1, !tbaa !15
  %427 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %426) #13
  %428 = call zeroext i1 @s2n_result_is_ok(i32 %427)
  br i1 %428, label %.preheader481.4, label %505

.preheader481.4:                                  ; preds = %.preheader481.3
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @test_count, align 4, !tbaa !5
  %431 = getelementptr inbounds i8, ptr %3, i64 4
  %432 = load i8, ptr %431, align 4, !tbaa !15
  %433 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %432) #13
  %434 = call zeroext i1 @s2n_result_is_ok(i32 %433)
  br i1 %434, label %.preheader481.5, label %505

.preheader481.5:                                  ; preds = %.preheader481.4
  %435 = load i32, ptr @test_count, align 4, !tbaa !5
  %436 = add nsw i32 %435, 1
  store i32 %436, ptr @test_count, align 4, !tbaa !5
  %437 = getelementptr inbounds i8, ptr %3, i64 5
  %438 = load i8, ptr %437, align 1, !tbaa !15
  %439 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %438) #13
  %440 = call zeroext i1 @s2n_result_is_ok(i32 %439)
  br i1 %440, label %.preheader481.6, label %505

.preheader481.6:                                  ; preds = %.preheader481.5
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = add nsw i32 %441, 1
  store i32 %442, ptr @test_count, align 4, !tbaa !5
  %443 = getelementptr inbounds i8, ptr %3, i64 6
  %444 = load i8, ptr %443, align 2, !tbaa !15
  %445 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %444) #13
  %446 = call zeroext i1 @s2n_result_is_ok(i32 %445)
  br i1 %446, label %.preheader481.7, label %505

.preheader481.7:                                  ; preds = %.preheader481.6
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = add nsw i32 %447, 1
  store i32 %448, ptr @test_count, align 4, !tbaa !5
  %449 = getelementptr inbounds i8, ptr %3, i64 7
  %450 = load i8, ptr %449, align 1, !tbaa !15
  %451 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %450) #13
  %452 = call zeroext i1 @s2n_result_is_ok(i32 %451)
  br i1 %452, label %.preheader481.8, label %505

.preheader481.8:                                  ; preds = %.preheader481.7
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = getelementptr inbounds i8, ptr %3, i64 8
  %456 = load i8, ptr %455, align 8, !tbaa !15
  %457 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %456) #13
  %458 = call zeroext i1 @s2n_result_is_ok(i32 %457)
  br i1 %458, label %.preheader481.9, label %505

.preheader481.9:                                  ; preds = %.preheader481.8
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr @test_count, align 4, !tbaa !5
  %461 = getelementptr inbounds i8, ptr %3, i64 9
  %462 = load i8, ptr %461, align 1, !tbaa !15
  %463 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %462) #13
  %464 = call zeroext i1 @s2n_result_is_ok(i32 %463)
  br i1 %464, label %.preheader481.10, label %505

.preheader481.10:                                 ; preds = %.preheader481.9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = add nsw i32 %465, 1
  store i32 %466, ptr @test_count, align 4, !tbaa !5
  %467 = getelementptr inbounds i8, ptr %3, i64 10
  %468 = load i8, ptr %467, align 2, !tbaa !15
  %469 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %468) #13
  %470 = call zeroext i1 @s2n_result_is_ok(i32 %469)
  br i1 %470, label %.preheader481.11, label %505

.preheader481.11:                                 ; preds = %.preheader481.10
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr @test_count, align 4, !tbaa !5
  %473 = getelementptr inbounds i8, ptr %3, i64 11
  %474 = load i8, ptr %473, align 1, !tbaa !15
  %475 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %474) #13
  %476 = call zeroext i1 @s2n_result_is_ok(i32 %475)
  br i1 %476, label %.preheader481.12, label %505

.preheader481.12:                                 ; preds = %.preheader481.11
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr @test_count, align 4, !tbaa !5
  %479 = getelementptr inbounds i8, ptr %3, i64 12
  %480 = load i8, ptr %479, align 4, !tbaa !15
  %481 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %480) #13
  %482 = call zeroext i1 @s2n_result_is_ok(i32 %481)
  br i1 %482, label %.preheader481.13, label %505

.preheader481.13:                                 ; preds = %.preheader481.12
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  %485 = getelementptr inbounds i8, ptr %3, i64 13
  %486 = load i8, ptr %485, align 1, !tbaa !15
  %487 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %486) #13
  %488 = call zeroext i1 @s2n_result_is_ok(i32 %487)
  br i1 %488, label %.preheader481.14, label %505

.preheader481.14:                                 ; preds = %.preheader481.13
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr @test_count, align 4, !tbaa !5
  %491 = getelementptr inbounds i8, ptr %3, i64 14
  %492 = load i8, ptr %491, align 2, !tbaa !15
  %493 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %492) #13
  %494 = call zeroext i1 @s2n_result_is_ok(i32 %493)
  br i1 %494, label %.preheader481.15, label %505

.preheader481.15:                                 ; preds = %.preheader481.14
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = add nsw i32 %495, 1
  store i32 %496, ptr @test_count, align 4, !tbaa !5
  %497 = getelementptr inbounds i8, ptr %3, i64 15
  %498 = load i8, ptr %497, align 1, !tbaa !15
  %499 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %498) #13
  %500 = call zeroext i1 @s2n_result_is_ok(i32 %499)
  br i1 %500, label %501, label %505

501:                                              ; preds = %.preheader481.15
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %5, ptr noundef nonnull dereferenceable(32) @.str.19, i64 32)
  %504 = icmp eq i32 %bcmp, 0
  br i1 %504, label %553, label %529

505:                                              ; preds = %.preheader481.15, %.preheader481.14, %.preheader481.13, %.preheader481.12, %.preheader481.11, %.preheader481.10, %.preheader481.9, %.preheader481.8, %.preheader481.7, %.preheader481.6, %.preheader481.5, %.preheader481.4, %.preheader481.3, %.preheader481.2, %.preheader481.1, %.preheader481.preheader
  %506 = tail call ptr @__errno_location() #14
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508) #13
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %512, label %516

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #13
  %515 = call i32 @isatty(i32 noundef %514) #13
  %.not451 = icmp eq i32 %515, 0
  br i1 %.not451, label %516, label %517

516:                                              ; preds = %512, %505
  br label %517

517:                                              ; preds = %512, %516
  %.str.4.sink661 = phi ptr [ @.str.4, %516 ], [ @.str, %512 ]
  store i32 %507, ptr %506, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef nonnull @.str.3) #13
  %523 = load i32, ptr %520, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef nonnull @.str.3) #13
  %525 = load i32, ptr %506, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #13
  %527 = load i32, ptr %506, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.4.sink661, i32 noundef %519, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 61, ptr noundef %522, ptr noundef %524, ptr noundef %526, i32 noundef %527) #15
  call void @exit(i32 noundef 1) #16
  unreachable

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

536:                                              ; preds = %529
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = call i32 @fileno(ptr noundef %537) #13
  %539 = call i32 @isatty(i32 noundef %538) #13
  %.not326 = icmp eq i32 %539, 0
  br i1 %.not326, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.4.sink672 = phi ptr [ @.str.4, %540 ], [ @.str, %536 ]
  store i32 %531, ptr %530, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @s2n_strerror(i32 noundef %545, ptr noundef nonnull @.str.3) #13
  %547 = load i32, ptr %544, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror_debug(i32 noundef %547, ptr noundef nonnull @.str.3) #13
  %549 = load i32, ptr %530, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #13
  %551 = load i32, ptr %530, align 4, !tbaa !5
  %552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.4.sink672, i32 noundef %543, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 65, ptr noundef %546, ptr noundef %548, ptr noundef %550, i32 noundef %551) #15
  call void @exit(i32 noundef 1) #16
  unreachable

553:                                              ; preds = %501
  %554 = add nsw i32 %502, 2
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = call i32 @s2n_hmac_reset(ptr noundef nonnull %12) #13
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %581

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

564:                                              ; preds = %557
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @fileno(ptr noundef %565) #13
  %567 = call i32 @isatty(i32 noundef %566) #13
  %.not450 = icmp eq i32 %567, 0
  br i1 %.not450, label %568, label %569

568:                                              ; preds = %564, %557
  br label %569

569:                                              ; preds = %564, %568
  %.str.4.sink683 = phi ptr [ @.str.4, %568 ], [ @.str, %564 ]
  store i32 %559, ptr %558, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef nonnull @.str.3) #13
  %575 = load i32, ptr %572, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef nonnull @.str.3) #13
  %577 = load i32, ptr %558, align 4, !tbaa !5
  %578 = call ptr @strerror(i32 noundef %577) #13
  %579 = load i32, ptr %558, align 4, !tbaa !5
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef nonnull %.str.4.sink683, i32 noundef %571, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 68, ptr noundef %574, ptr noundef %576, ptr noundef %578, i32 noundef %579) #15
  call void @exit(i32 noundef 1) #16
  unreachable

581:                                              ; preds = %553
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %585 = trunc i64 %584 to i32
  %586 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %585) #13
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %612

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

595:                                              ; preds = %588
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @fileno(ptr noundef %596) #13
  %598 = call i32 @isatty(i32 noundef %597) #13
  %.not449 = icmp eq i32 %598, 0
  br i1 %.not449, label %599, label %600

599:                                              ; preds = %595, %588
  br label %600

600:                                              ; preds = %595, %599
  %.str.4.sink694 = phi ptr [ @.str.4, %599 ], [ @.str, %595 ]
  store i32 %590, ptr %589, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror(i32 noundef %604, ptr noundef nonnull @.str.3) #13
  %606 = load i32, ptr %603, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror_debug(i32 noundef %606, ptr noundef nonnull @.str.3) #13
  %608 = load i32, ptr %589, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #13
  %610 = load i32, ptr %589, align 4, !tbaa !5
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.4.sink694, i32 noundef %602, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 69, ptr noundef %605, ptr noundef %607, ptr noundef %609, i32 noundef %610) #15
  call void @exit(i32 noundef 1) #16
  unreachable

612:                                              ; preds = %581
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 16) #13
  %616 = icmp eq i32 %615, -1
  br i1 %616, label %617, label %641

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

624:                                              ; preds = %617
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @fileno(ptr noundef %625) #13
  %627 = call i32 @isatty(i32 noundef %626) #13
  %.not448 = icmp eq i32 %627, 0
  br i1 %.not448, label %628, label %629

628:                                              ; preds = %624, %617
  br label %629

629:                                              ; preds = %624, %628
  %.str.4.sink705 = phi ptr [ @.str.4, %628 ], [ @.str, %624 ]
  store i32 %619, ptr %618, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror(i32 noundef %633, ptr noundef nonnull @.str.3) #13
  %635 = load i32, ptr %632, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror_debug(i32 noundef %635, ptr noundef nonnull @.str.3) #13
  %637 = load i32, ptr %618, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #13
  %639 = load i32, ptr %618, align 4, !tbaa !5
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.4.sink705, i32 noundef %631, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 70, ptr noundef %634, ptr noundef %636, ptr noundef %638, i32 noundef %639) #15
  call void @exit(i32 noundef 1) #16
  unreachable

641:                                              ; preds = %612
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = add nsw i32 %642, 1
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %645 = icmp eq i32 %644, -1
  br i1 %645, label %651, label %.preheader480.preheader

.preheader480.preheader:                          ; preds = %641
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr @test_count, align 4, !tbaa !5
  %648 = load i8, ptr %3, align 16, !tbaa !15
  %649 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %648) #13
  %650 = call zeroext i1 @s2n_result_is_ok(i32 %649)
  br i1 %650, label %.preheader480.1, label %754

651:                                              ; preds = %641
  %652 = tail call ptr @__errno_location() #14
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = call i32 @s2n_print_stacktrace(ptr noundef %654) #13
  %656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %657 = trunc nuw i8 %656 to i1
  br i1 %657, label %658, label %662

658:                                              ; preds = %651
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @fileno(ptr noundef %659) #13
  %661 = call i32 @isatty(i32 noundef %660) #13
  %.not447 = icmp eq i32 %661, 0
  br i1 %.not447, label %662, label %663

662:                                              ; preds = %658, %651
  br label %663

663:                                              ; preds = %658, %662
  %.str.4.sink716 = phi ptr [ @.str.4, %662 ], [ @.str, %658 ]
  store i32 %653, ptr %652, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.3) #13
  %669 = load i32, ptr %666, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.3) #13
  %671 = load i32, ptr %652, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #13
  %673 = load i32, ptr %652, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef nonnull %.str.4.sink716, i32 noundef %665, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 72, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader480.1:                                  ; preds = %.preheader480.preheader
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = load i8, ptr %413, align 1, !tbaa !15
  %678 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %677) #13
  %679 = call zeroext i1 @s2n_result_is_ok(i32 %678)
  br i1 %679, label %.preheader480.2, label %754

.preheader480.2:                                  ; preds = %.preheader480.1
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = load i8, ptr %419, align 2, !tbaa !15
  %683 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %682) #13
  %684 = call zeroext i1 @s2n_result_is_ok(i32 %683)
  br i1 %684, label %.preheader480.3, label %754

.preheader480.3:                                  ; preds = %.preheader480.2
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr @test_count, align 4, !tbaa !5
  %687 = load i8, ptr %425, align 1, !tbaa !15
  %688 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %687) #13
  %689 = call zeroext i1 @s2n_result_is_ok(i32 %688)
  br i1 %689, label %.preheader480.4, label %754

.preheader480.4:                                  ; preds = %.preheader480.3
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr @test_count, align 4, !tbaa !5
  %692 = load i8, ptr %431, align 4, !tbaa !15
  %693 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %692) #13
  %694 = call zeroext i1 @s2n_result_is_ok(i32 %693)
  br i1 %694, label %.preheader480.5, label %754

.preheader480.5:                                  ; preds = %.preheader480.4
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr @test_count, align 4, !tbaa !5
  %697 = load i8, ptr %437, align 1, !tbaa !15
  %698 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %697) #13
  %699 = call zeroext i1 @s2n_result_is_ok(i32 %698)
  br i1 %699, label %.preheader480.6, label %754

.preheader480.6:                                  ; preds = %.preheader480.5
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr @test_count, align 4, !tbaa !5
  %702 = load i8, ptr %443, align 2, !tbaa !15
  %703 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %702) #13
  %704 = call zeroext i1 @s2n_result_is_ok(i32 %703)
  br i1 %704, label %.preheader480.7, label %754

.preheader480.7:                                  ; preds = %.preheader480.6
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = load i8, ptr %449, align 1, !tbaa !15
  %708 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %707) #13
  %709 = call zeroext i1 @s2n_result_is_ok(i32 %708)
  br i1 %709, label %.preheader480.8, label %754

.preheader480.8:                                  ; preds = %.preheader480.7
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = load i8, ptr %455, align 8, !tbaa !15
  %713 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %712) #13
  %714 = call zeroext i1 @s2n_result_is_ok(i32 %713)
  br i1 %714, label %.preheader480.9, label %754

.preheader480.9:                                  ; preds = %.preheader480.8
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = load i8, ptr %461, align 1, !tbaa !15
  %718 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %717) #13
  %719 = call zeroext i1 @s2n_result_is_ok(i32 %718)
  br i1 %719, label %.preheader480.10, label %754

.preheader480.10:                                 ; preds = %.preheader480.9
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = add nsw i32 %720, 1
  store i32 %721, ptr @test_count, align 4, !tbaa !5
  %722 = load i8, ptr %467, align 2, !tbaa !15
  %723 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %722) #13
  %724 = call zeroext i1 @s2n_result_is_ok(i32 %723)
  br i1 %724, label %.preheader480.11, label %754

.preheader480.11:                                 ; preds = %.preheader480.10
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = add nsw i32 %725, 1
  store i32 %726, ptr @test_count, align 4, !tbaa !5
  %727 = load i8, ptr %473, align 1, !tbaa !15
  %728 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %727) #13
  %729 = call zeroext i1 @s2n_result_is_ok(i32 %728)
  br i1 %729, label %.preheader480.12, label %754

.preheader480.12:                                 ; preds = %.preheader480.11
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = add nsw i32 %730, 1
  store i32 %731, ptr @test_count, align 4, !tbaa !5
  %732 = load i8, ptr %479, align 4, !tbaa !15
  %733 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %732) #13
  %734 = call zeroext i1 @s2n_result_is_ok(i32 %733)
  br i1 %734, label %.preheader480.13, label %754

.preheader480.13:                                 ; preds = %.preheader480.12
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr @test_count, align 4, !tbaa !5
  %737 = load i8, ptr %485, align 1, !tbaa !15
  %738 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %737) #13
  %739 = call zeroext i1 @s2n_result_is_ok(i32 %738)
  br i1 %739, label %.preheader480.14, label %754

.preheader480.14:                                 ; preds = %.preheader480.13
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = load i8, ptr %491, align 2, !tbaa !15
  %743 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %742) #13
  %744 = call zeroext i1 @s2n_result_is_ok(i32 %743)
  br i1 %744, label %.preheader480.15, label %754

.preheader480.15:                                 ; preds = %.preheader480.14
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load i8, ptr %497, align 1, !tbaa !15
  %748 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %747) #13
  %749 = call zeroext i1 @s2n_result_is_ok(i32 %748)
  br i1 %749, label %750, label %754

750:                                              ; preds = %.preheader480.15
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %bcmp327 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %5, ptr noundef nonnull dereferenceable(32) @.str.19, i64 32)
  %753 = icmp eq i32 %bcmp327, 0
  br i1 %753, label %802, label %778

754:                                              ; preds = %.preheader480.15, %.preheader480.14, %.preheader480.13, %.preheader480.12, %.preheader480.11, %.preheader480.10, %.preheader480.9, %.preheader480.8, %.preheader480.7, %.preheader480.6, %.preheader480.5, %.preheader480.4, %.preheader480.3, %.preheader480.2, %.preheader480.1, %.preheader480.preheader
  %755 = tail call ptr @__errno_location() #14
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @s2n_print_stacktrace(ptr noundef %757) #13
  %759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %760 = trunc nuw i8 %759 to i1
  br i1 %760, label %761, label %765

761:                                              ; preds = %754
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @fileno(ptr noundef %762) #13
  %764 = call i32 @isatty(i32 noundef %763) #13
  %.not446 = icmp eq i32 %764, 0
  br i1 %.not446, label %765, label %766

765:                                              ; preds = %761, %754
  br label %766

766:                                              ; preds = %761, %765
  %.str.4.sink727 = phi ptr [ @.str.4, %765 ], [ @.str, %761 ]
  store i32 %756, ptr %755, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef nonnull @.str.3) #13
  %772 = load i32, ptr %769, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef nonnull @.str.3) #13
  %774 = load i32, ptr %755, align 4, !tbaa !5
  %775 = call ptr @strerror(i32 noundef %774) #13
  %776 = load i32, ptr %755, align 4, !tbaa !5
  %777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %767, ptr noundef nonnull %.str.4.sink727, i32 noundef %768, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 74, ptr noundef %771, ptr noundef %773, ptr noundef %775, i32 noundef %776) #15
  call void @exit(i32 noundef 1) #16
  unreachable

778:                                              ; preds = %750
  %779 = tail call ptr @__errno_location() #14
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = call i32 @s2n_print_stacktrace(ptr noundef %781) #13
  %783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %784 = trunc nuw i8 %783 to i1
  br i1 %784, label %785, label %789

785:                                              ; preds = %778
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @fileno(ptr noundef %786) #13
  %788 = call i32 @isatty(i32 noundef %787) #13
  %.not328 = icmp eq i32 %788, 0
  br i1 %.not328, label %789, label %790

789:                                              ; preds = %785, %778
  br label %790

790:                                              ; preds = %785, %789
  %.str.4.sink738 = phi ptr [ @.str.4, %789 ], [ @.str, %785 ]
  store i32 %780, ptr %779, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef nonnull @.str.3) #13
  %796 = load i32, ptr %793, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror_debug(i32 noundef %796, ptr noundef nonnull @.str.3) #13
  %798 = load i32, ptr %779, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #13
  %800 = load i32, ptr %779, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef nonnull %.str.4.sink738, i32 noundef %792, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 78, ptr noundef %795, ptr noundef %797, ptr noundef %799, i32 noundef %800) #15
  call void @exit(i32 noundef 1) #16
  unreachable

802:                                              ; preds = %750
  %803 = add nsw i32 %751, 2
  store i32 %803, ptr @test_count, align 4, !tbaa !5
  %804 = call i32 @s2n_hmac_reset(ptr noundef nonnull %12) #13
  %805 = icmp eq i32 %804, -1
  br i1 %805, label %806, label %830

806:                                              ; preds = %802
  %807 = tail call ptr @__errno_location() #14
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @s2n_print_stacktrace(ptr noundef %809) #13
  %811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %812 = trunc nuw i8 %811 to i1
  br i1 %812, label %813, label %817

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

817:                                              ; preds = %813, %806
  br label %818

818:                                              ; preds = %813, %817
  %.str.4.sink749 = phi ptr [ @.str.4, %817 ], [ @.str, %813 ]
  store i32 %808, ptr %807, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.3) #13
  %824 = load i32, ptr %821, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.3) #13
  %826 = load i32, ptr %807, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #13
  %828 = load i32, ptr %807, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %819, ptr noundef nonnull %.str.4.sink749, i32 noundef %820, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 80, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #15
  call void @exit(i32 noundef 1) #16
  unreachable

830:                                              ; preds = %802
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #13
  store i8 0, ptr %17, align 1, !tbaa !15
  %831 = call i32 @s2n_hmac_digest_size(i32 noundef 8, ptr noundef nonnull %17) #13
  %832 = icmp sgt i32 %831, -1
  br i1 %832, label %833, label %.thread465

.thread465:                                       ; preds = %830
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #13
  br label %4568

833:                                              ; preds = %830
  %834 = load i32, ptr @test_count, align 4, !tbaa !5
  %835 = add nsw i32 %834, 1
  store i32 %835, ptr @test_count, align 4, !tbaa !5
  %836 = load i8, ptr %17, align 1, !tbaa !15
  %837 = icmp eq i8 %836, 20
  br i1 %837, label %862, label %838

838:                                              ; preds = %833
  %839 = tail call ptr @__errno_location() #14
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @s2n_print_stacktrace(ptr noundef %841) #13
  %843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %844 = trunc nuw i8 %843 to i1
  br i1 %844, label %845, label %849

845:                                              ; preds = %838
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @fileno(ptr noundef %846) #13
  %848 = call i32 @isatty(i32 noundef %847) #13
  %.not329 = icmp eq i32 %848, 0
  br i1 %.not329, label %849, label %850

849:                                              ; preds = %845, %838
  br label %850

850:                                              ; preds = %845, %849
  %.str.4.sink760 = phi ptr [ @.str.4, %849 ], [ @.str, %845 ]
  store i32 %840, ptr %839, 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 nonnull @.str.3) #13
  %856 = load i32, ptr %853, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror_debug(i32 noundef %856, ptr noundef nonnull @.str.3) #13
  %858 = load i32, ptr %839, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #13
  %860 = load i32, ptr %839, align 4, !tbaa !5
  %861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef nonnull %.str.4.sink760, i32 noundef %852, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 87, ptr noundef %855, ptr noundef %857, ptr noundef %859, i32 noundef %860) #15
  call void @exit(i32 noundef 1) #16
  unreachable

862:                                              ; preds = %833
  %863 = add nsw i32 %834, 2
  store i32 %863, ptr @test_count, align 4, !tbaa !5
  %864 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %865 = trunc i64 %864 to i32
  %866 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 8, ptr noundef nonnull %7, i32 noundef %865) #13
  %867 = icmp eq i32 %866, -1
  br i1 %867, label %868, label %892

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

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

879:                                              ; preds = %875, %868
  br label %880

880:                                              ; preds = %875, %879
  %.str.4.sink771 = phi ptr [ @.str.4, %879 ], [ @.str, %875 ]
  store i32 %870, ptr %869, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef nonnull @.str.3) #13
  %886 = load i32, ptr %883, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef nonnull @.str.3) #13
  %888 = load i32, ptr %869, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #13
  %890 = load i32, ptr %869, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %881, ptr noundef nonnull %.str.4.sink771, i32 noundef %882, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 88, ptr noundef %885, ptr noundef %887, ptr noundef %889, i32 noundef %890) #15
  call void @exit(i32 noundef 1) #16
  unreachable

892:                                              ; preds = %862
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr @test_count, align 4, !tbaa !5
  %895 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %896 = trunc i64 %895 to i32
  %897 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %896) #13
  %898 = icmp eq i32 %897, -1
  br i1 %898, label %899, label %923

899:                                              ; preds = %892
  %900 = tail call ptr @__errno_location() #14
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = call i32 @s2n_print_stacktrace(ptr noundef %902) #13
  %904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %905 = trunc nuw i8 %904 to i1
  br i1 %905, label %906, label %910

906:                                              ; preds = %899
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @fileno(ptr noundef %907) #13
  %909 = call i32 @isatty(i32 noundef %908) #13
  %.not443 = icmp eq i32 %909, 0
  br i1 %.not443, label %910, label %911

910:                                              ; preds = %906, %899
  br label %911

911:                                              ; preds = %906, %910
  %.str.4.sink782 = phi ptr [ @.str.4, %910 ], [ @.str, %906 ]
  store i32 %901, ptr %900, 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 nonnull @.str.3) #13
  %917 = load i32, ptr %914, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef nonnull @.str.3) #13
  %919 = load i32, ptr %900, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #13
  %921 = load i32, ptr %900, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef nonnull %.str.4.sink782, i32 noundef %913, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 89, ptr noundef %916, ptr noundef %918, ptr noundef %920, i32 noundef %921) #15
  call void @exit(i32 noundef 1) #16
  unreachable

923:                                              ; preds = %892
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 20) #13
  %927 = icmp eq i32 %926, -1
  br i1 %927, label %928, label %952

928:                                              ; preds = %923
  %929 = tail call ptr @__errno_location() #14
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @s2n_print_stacktrace(ptr noundef %931) #13
  %933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %934 = trunc nuw i8 %933 to i1
  br i1 %934, label %935, label %939

935:                                              ; preds = %928
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @fileno(ptr noundef %936) #13
  %938 = call i32 @isatty(i32 noundef %937) #13
  %.not442 = icmp eq i32 %938, 0
  br i1 %.not442, label %939, label %940

939:                                              ; preds = %935, %928
  br label %940

940:                                              ; preds = %935, %939
  %.str.4.sink793 = phi ptr [ @.str.4, %939 ], [ @.str, %935 ]
  store i32 %930, ptr %929, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef nonnull @.str.3) #13
  %946 = load i32, ptr %943, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef nonnull @.str.3) #13
  %948 = load i32, ptr %929, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #13
  %950 = load i32, ptr %929, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.4.sink793, i32 noundef %942, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 90, ptr noundef %945, ptr noundef %947, ptr noundef %949, i32 noundef %950) #15
  call void @exit(i32 noundef 1) #16
  unreachable

952:                                              ; preds = %923
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %956 = icmp eq i32 %955, -1
  br i1 %956, label %962, label %.preheader479.preheader

.preheader479.preheader:                          ; preds = %952
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = load i8, ptr %3, align 16, !tbaa !15
  %960 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %959) #13
  %961 = call zeroext i1 @s2n_result_is_ok(i32 %960)
  br i1 %961, label %.preheader479.1, label %1089

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

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

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

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

.preheader479.1:                                  ; preds = %.preheader479.preheader
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = add nsw i32 %986, 1
  store i32 %987, ptr @test_count, align 4, !tbaa !5
  %988 = load i8, ptr %413, align 1, !tbaa !15
  %989 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %988) #13
  %990 = call zeroext i1 @s2n_result_is_ok(i32 %989)
  br i1 %990, label %.preheader479.2, label %1089

.preheader479.2:                                  ; preds = %.preheader479.1
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %993 = load i8, ptr %419, align 2, !tbaa !15
  %994 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %993) #13
  %995 = call zeroext i1 @s2n_result_is_ok(i32 %994)
  br i1 %995, label %.preheader479.3, label %1089

.preheader479.3:                                  ; preds = %.preheader479.2
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr @test_count, align 4, !tbaa !5
  %998 = load i8, ptr %425, align 1, !tbaa !15
  %999 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %998) #13
  %1000 = call zeroext i1 @s2n_result_is_ok(i32 %999)
  br i1 %1000, label %.preheader479.4, label %1089

.preheader479.4:                                  ; preds = %.preheader479.3
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr @test_count, align 4, !tbaa !5
  %1003 = load i8, ptr %431, align 4, !tbaa !15
  %1004 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1003) #13
  %1005 = call zeroext i1 @s2n_result_is_ok(i32 %1004)
  br i1 %1005, label %.preheader479.5, label %1089

.preheader479.5:                                  ; preds = %.preheader479.4
  %1006 = load i32, ptr @test_count, align 4, !tbaa !5
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr @test_count, align 4, !tbaa !5
  %1008 = load i8, ptr %437, align 1, !tbaa !15
  %1009 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1008) #13
  %1010 = call zeroext i1 @s2n_result_is_ok(i32 %1009)
  br i1 %1010, label %.preheader479.6, label %1089

.preheader479.6:                                  ; preds = %.preheader479.5
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = add nsw i32 %1011, 1
  store i32 %1012, ptr @test_count, align 4, !tbaa !5
  %1013 = load i8, ptr %443, align 2, !tbaa !15
  %1014 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1013) #13
  %1015 = call zeroext i1 @s2n_result_is_ok(i32 %1014)
  br i1 %1015, label %.preheader479.7, label %1089

.preheader479.7:                                  ; preds = %.preheader479.6
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = add nsw i32 %1016, 1
  store i32 %1017, ptr @test_count, align 4, !tbaa !5
  %1018 = load i8, ptr %449, align 1, !tbaa !15
  %1019 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1018) #13
  %1020 = call zeroext i1 @s2n_result_is_ok(i32 %1019)
  br i1 %1020, label %.preheader479.8, label %1089

.preheader479.8:                                  ; preds = %.preheader479.7
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = load i8, ptr %455, align 8, !tbaa !15
  %1024 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1023) #13
  %1025 = call zeroext i1 @s2n_result_is_ok(i32 %1024)
  br i1 %1025, label %.preheader479.9, label %1089

.preheader479.9:                                  ; preds = %.preheader479.8
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = load i8, ptr %461, align 1, !tbaa !15
  %1029 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1028) #13
  %1030 = call zeroext i1 @s2n_result_is_ok(i32 %1029)
  br i1 %1030, label %.preheader479.10, label %1089

.preheader479.10:                                 ; preds = %.preheader479.9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr @test_count, align 4, !tbaa !5
  %1033 = load i8, ptr %467, align 2, !tbaa !15
  %1034 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1033) #13
  %1035 = call zeroext i1 @s2n_result_is_ok(i32 %1034)
  br i1 %1035, label %.preheader479.11, label %1089

.preheader479.11:                                 ; preds = %.preheader479.10
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr @test_count, align 4, !tbaa !5
  %1038 = load i8, ptr %473, align 1, !tbaa !15
  %1039 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1038) #13
  %1040 = call zeroext i1 @s2n_result_is_ok(i32 %1039)
  br i1 %1040, label %.preheader479.12, label %1089

.preheader479.12:                                 ; preds = %.preheader479.11
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr @test_count, align 4, !tbaa !5
  %1043 = load i8, ptr %479, align 4, !tbaa !15
  %1044 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1043) #13
  %1045 = call zeroext i1 @s2n_result_is_ok(i32 %1044)
  br i1 %1045, label %.preheader479.13, label %1089

.preheader479.13:                                 ; preds = %.preheader479.12
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr @test_count, align 4, !tbaa !5
  %1048 = load i8, ptr %485, align 1, !tbaa !15
  %1049 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1048) #13
  %1050 = call zeroext i1 @s2n_result_is_ok(i32 %1049)
  br i1 %1050, label %.preheader479.14, label %1089

.preheader479.14:                                 ; preds = %.preheader479.13
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = add nsw i32 %1051, 1
  store i32 %1052, ptr @test_count, align 4, !tbaa !5
  %1053 = load i8, ptr %491, align 2, !tbaa !15
  %1054 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1053) #13
  %1055 = call zeroext i1 @s2n_result_is_ok(i32 %1054)
  br i1 %1055, label %.preheader479.15, label %1089

.preheader479.15:                                 ; preds = %.preheader479.14
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = load i8, ptr %497, align 1, !tbaa !15
  %1059 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1058) #13
  %1060 = call zeroext i1 @s2n_result_is_ok(i32 %1059)
  br i1 %1060, label %.preheader479.16, label %1089

.preheader479.16:                                 ; preds = %.preheader479.15
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = add nsw i32 %1061, 1
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = getelementptr inbounds i8, ptr %3, i64 16
  %1064 = load i8, ptr %1063, align 16, !tbaa !15
  %1065 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1064) #13
  %1066 = call zeroext i1 @s2n_result_is_ok(i32 %1065)
  br i1 %1066, label %.preheader479.17, label %1089

.preheader479.17:                                 ; preds = %.preheader479.16
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = getelementptr inbounds i8, ptr %3, i64 17
  %1070 = load i8, ptr %1069, align 1, !tbaa !15
  %1071 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1070) #13
  %1072 = call zeroext i1 @s2n_result_is_ok(i32 %1071)
  br i1 %1072, label %.preheader479.18, label %1089

.preheader479.18:                                 ; preds = %.preheader479.17
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = add nsw i32 %1073, 1
  store i32 %1074, ptr @test_count, align 4, !tbaa !5
  %1075 = getelementptr inbounds i8, ptr %3, i64 18
  %1076 = load i8, ptr %1075, align 2, !tbaa !15
  %1077 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1076) #13
  %1078 = call zeroext i1 @s2n_result_is_ok(i32 %1077)
  br i1 %1078, label %.preheader479.19, label %1089

.preheader479.19:                                 ; preds = %.preheader479.18
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = add nsw i32 %1079, 1
  store i32 %1080, ptr @test_count, align 4, !tbaa !5
  %1081 = getelementptr inbounds i8, ptr %3, i64 19
  %1082 = load i8, ptr %1081, align 1, !tbaa !15
  %1083 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1082) #13
  %1084 = call zeroext i1 @s2n_result_is_ok(i32 %1083)
  br i1 %1084, label %1085, label %1089

1085:                                             ; preds = %.preheader479.19
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %bcmp330 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.25, i64 40)
  %1088 = icmp eq i32 %bcmp330, 0
  br i1 %1088, label %1137, label %1113

1089:                                             ; preds = %.preheader479.19, %.preheader479.18, %.preheader479.17, %.preheader479.16, %.preheader479.15, %.preheader479.14, %.preheader479.13, %.preheader479.12, %.preheader479.11, %.preheader479.10, %.preheader479.9, %.preheader479.8, %.preheader479.7, %.preheader479.6, %.preheader479.5, %.preheader479.4, %.preheader479.3, %.preheader479.2, %.preheader479.1, %.preheader479.preheader
  %1090 = tail call ptr @__errno_location() #14
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #13
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

1096:                                             ; preds = %1089
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @fileno(ptr noundef %1097) #13
  %1099 = call i32 @isatty(i32 noundef %1098) #13
  %.not440 = icmp eq i32 %1099, 0
  br i1 %.not440, label %1100, label %1101

1100:                                             ; preds = %1096, %1089
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.4.sink815 = phi ptr [ @.str.4, %1100 ], [ @.str, %1096 ]
  store i32 %1091, ptr %1090, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror(i32 noundef %1105, ptr noundef nonnull @.str.3) #13
  %1107 = load i32, ptr %1104, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror_debug(i32 noundef %1107, ptr noundef nonnull @.str.3) #13
  %1109 = load i32, ptr %1090, align 4, !tbaa !5
  %1110 = call ptr @strerror(i32 noundef %1109) #13
  %1111 = load i32, ptr %1090, align 4, !tbaa !5
  %1112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.4.sink815, i32 noundef %1103, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 94, ptr noundef %1106, ptr noundef %1108, ptr noundef %1110, i32 noundef %1111) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1113:                                             ; preds = %1085
  %1114 = tail call ptr @__errno_location() #14
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @s2n_print_stacktrace(ptr noundef %1116) #13
  %1118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1119 = trunc nuw i8 %1118 to i1
  br i1 %1119, label %1120, label %1124

1120:                                             ; preds = %1113
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @fileno(ptr noundef %1121) #13
  %1123 = call i32 @isatty(i32 noundef %1122) #13
  %.not331 = icmp eq i32 %1123, 0
  br i1 %.not331, label %1124, label %1125

1124:                                             ; preds = %1120, %1113
  br label %1125

1125:                                             ; preds = %1120, %1124
  %.str.4.sink826 = phi ptr [ @.str.4, %1124 ], [ @.str, %1120 ]
  store i32 %1115, ptr %1114, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror(i32 noundef %1129, ptr noundef nonnull @.str.3) #13
  %1131 = load i32, ptr %1128, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror_debug(i32 noundef %1131, ptr noundef nonnull @.str.3) #13
  %1133 = load i32, ptr %1114, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #13
  %1135 = load i32, ptr %1114, align 4, !tbaa !5
  %1136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1126, ptr noundef nonnull %.str.4.sink826, i32 noundef %1127, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 98, ptr noundef %1130, ptr noundef %1132, ptr noundef %1134, i32 noundef %1135) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1137:                                             ; preds = %1085
  %1138 = add nsw i32 %1086, 2
  store i32 %1138, ptr @test_count, align 4, !tbaa !5
  %1139 = call i32 @s2n_hmac_reset(ptr noundef nonnull %12) #13
  %1140 = icmp eq i32 %1139, -1
  br i1 %1140, label %1141, label %1165

1141:                                             ; preds = %1137
  %1142 = tail call ptr @__errno_location() #14
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @s2n_print_stacktrace(ptr noundef %1144) #13
  %1146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1147 = trunc nuw i8 %1146 to i1
  br i1 %1147, label %1148, label %1152

1148:                                             ; preds = %1141
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @fileno(ptr noundef %1149) #13
  %1151 = call i32 @isatty(i32 noundef %1150) #13
  %.not439 = icmp eq i32 %1151, 0
  br i1 %.not439, label %1152, label %1153

1152:                                             ; preds = %1148, %1141
  br label %1153

1153:                                             ; preds = %1148, %1152
  %.str.4.sink837 = phi ptr [ @.str.4, %1152 ], [ @.str, %1148 ]
  store i32 %1143, ptr %1142, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef nonnull @.str.3) #13
  %1159 = load i32, ptr %1156, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror_debug(i32 noundef %1159, ptr noundef nonnull @.str.3) #13
  %1161 = load i32, ptr %1142, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #13
  %1163 = load i32, ptr %1142, align 4, !tbaa !5
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef nonnull %.str.4.sink837, i32 noundef %1155, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 101, ptr noundef %1158, ptr noundef %1160, ptr noundef %1162, i32 noundef %1163) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1165:                                             ; preds = %1137
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = add nsw i32 %1166, 1
  store i32 %1167, ptr @test_count, align 4, !tbaa !5
  %1168 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %1169 = trunc i64 %1168 to i32
  %1170 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %1169) #13
  %1171 = icmp eq i32 %1170, -1
  br i1 %1171, label %1172, label %1196

1172:                                             ; preds = %1165
  %1173 = tail call ptr @__errno_location() #14
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @s2n_print_stacktrace(ptr noundef %1175) #13
  %1177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1178 = trunc nuw i8 %1177 to i1
  br i1 %1178, label %1179, label %1183

1179:                                             ; preds = %1172
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @fileno(ptr noundef %1180) #13
  %1182 = call i32 @isatty(i32 noundef %1181) #13
  %.not438 = icmp eq i32 %1182, 0
  br i1 %.not438, label %1183, label %1184

1183:                                             ; preds = %1179, %1172
  br label %1184

1184:                                             ; preds = %1179, %1183
  %.str.4.sink848 = phi ptr [ @.str.4, %1183 ], [ @.str, %1179 ]
  store i32 %1174, ptr %1173, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror(i32 noundef %1188, ptr noundef nonnull @.str.3) #13
  %1190 = load i32, ptr %1187, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror_debug(i32 noundef %1190, ptr noundef nonnull @.str.3) #13
  %1192 = load i32, ptr %1173, align 4, !tbaa !5
  %1193 = call ptr @strerror(i32 noundef %1192) #13
  %1194 = load i32, ptr %1173, align 4, !tbaa !5
  %1195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef nonnull %.str.4.sink848, i32 noundef %1186, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 102, ptr noundef %1189, ptr noundef %1191, ptr noundef %1193, i32 noundef %1194) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1196:                                             ; preds = %1165
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  %1199 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 20) #13
  %1200 = icmp eq i32 %1199, -1
  br i1 %1200, label %1201, label %1225

1201:                                             ; preds = %1196
  %1202 = tail call ptr @__errno_location() #14
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @s2n_print_stacktrace(ptr noundef %1204) #13
  %1206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1207 = trunc nuw i8 %1206 to i1
  br i1 %1207, label %1208, label %1212

1208:                                             ; preds = %1201
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @fileno(ptr noundef %1209) #13
  %1211 = call i32 @isatty(i32 noundef %1210) #13
  %.not437 = icmp eq i32 %1211, 0
  br i1 %.not437, label %1212, label %1213

1212:                                             ; preds = %1208, %1201
  br label %1213

1213:                                             ; preds = %1208, %1212
  %.str.4.sink859 = phi ptr [ @.str.4, %1212 ], [ @.str, %1208 ]
  store i32 %1203, ptr %1202, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror(i32 noundef %1217, ptr noundef nonnull @.str.3) #13
  %1219 = load i32, ptr %1216, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef nonnull @.str.3) #13
  %1221 = load i32, ptr %1202, align 4, !tbaa !5
  %1222 = call ptr @strerror(i32 noundef %1221) #13
  %1223 = load i32, ptr %1202, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef nonnull %.str.4.sink859, i32 noundef %1215, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 103, ptr noundef %1218, ptr noundef %1220, ptr noundef %1222, i32 noundef %1223) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1225:                                             ; preds = %1196
  %1226 = load i32, ptr @test_count, align 4, !tbaa !5
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr @test_count, align 4, !tbaa !5
  %1228 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %1229 = icmp eq i32 %1228, -1
  br i1 %1229, label %1235, label %.preheader478.preheader

.preheader478.preheader:                          ; preds = %1225
  %1230 = load i32, ptr @test_count, align 4, !tbaa !5
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr @test_count, align 4, !tbaa !5
  %1232 = load i8, ptr %3, align 16, !tbaa !15
  %1233 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1232) #13
  %1234 = call zeroext i1 @s2n_result_is_ok(i32 %1233)
  br i1 %1234, label %.preheader478.1, label %1358

1235:                                             ; preds = %1225
  %1236 = tail call ptr @__errno_location() #14
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @s2n_print_stacktrace(ptr noundef %1238) #13
  %1240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1241 = trunc nuw i8 %1240 to i1
  br i1 %1241, label %1242, label %1246

1242:                                             ; preds = %1235
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = call i32 @fileno(ptr noundef %1243) #13
  %1245 = call i32 @isatty(i32 noundef %1244) #13
  %.not436 = icmp eq i32 %1245, 0
  br i1 %.not436, label %1246, label %1247

1246:                                             ; preds = %1242, %1235
  br label %1247

1247:                                             ; preds = %1242, %1246
  %.str.4.sink870 = phi ptr [ @.str.4, %1246 ], [ @.str, %1242 ]
  store i32 %1237, ptr %1236, 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 nonnull @.str.3) #13
  %1253 = load i32, ptr %1250, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef nonnull @.str.3) #13
  %1255 = load i32, ptr %1236, align 4, !tbaa !5
  %1256 = call ptr @strerror(i32 noundef %1255) #13
  %1257 = load i32, ptr %1236, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef nonnull %.str.4.sink870, i32 noundef %1249, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 105, ptr noundef %1252, ptr noundef %1254, ptr noundef %1256, i32 noundef %1257) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader478.1:                                  ; preds = %.preheader478.preheader
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = add nsw i32 %1259, 1
  store i32 %1260, ptr @test_count, align 4, !tbaa !5
  %1261 = load i8, ptr %413, align 1, !tbaa !15
  %1262 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1261) #13
  %1263 = call zeroext i1 @s2n_result_is_ok(i32 %1262)
  br i1 %1263, label %.preheader478.2, label %1358

.preheader478.2:                                  ; preds = %.preheader478.1
  %1264 = load i32, ptr @test_count, align 4, !tbaa !5
  %1265 = add nsw i32 %1264, 1
  store i32 %1265, ptr @test_count, align 4, !tbaa !5
  %1266 = load i8, ptr %419, align 2, !tbaa !15
  %1267 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1266) #13
  %1268 = call zeroext i1 @s2n_result_is_ok(i32 %1267)
  br i1 %1268, label %.preheader478.3, label %1358

.preheader478.3:                                  ; preds = %.preheader478.2
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = add nsw i32 %1269, 1
  store i32 %1270, ptr @test_count, align 4, !tbaa !5
  %1271 = load i8, ptr %425, align 1, !tbaa !15
  %1272 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1271) #13
  %1273 = call zeroext i1 @s2n_result_is_ok(i32 %1272)
  br i1 %1273, label %.preheader478.4, label %1358

.preheader478.4:                                  ; preds = %.preheader478.3
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = add nsw i32 %1274, 1
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = load i8, ptr %431, align 4, !tbaa !15
  %1277 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1276) #13
  %1278 = call zeroext i1 @s2n_result_is_ok(i32 %1277)
  br i1 %1278, label %.preheader478.5, label %1358

.preheader478.5:                                  ; preds = %.preheader478.4
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr @test_count, align 4, !tbaa !5
  %1281 = load i8, ptr %437, align 1, !tbaa !15
  %1282 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1281) #13
  %1283 = call zeroext i1 @s2n_result_is_ok(i32 %1282)
  br i1 %1283, label %.preheader478.6, label %1358

.preheader478.6:                                  ; preds = %.preheader478.5
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = add nsw i32 %1284, 1
  store i32 %1285, ptr @test_count, align 4, !tbaa !5
  %1286 = load i8, ptr %443, align 2, !tbaa !15
  %1287 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1286) #13
  %1288 = call zeroext i1 @s2n_result_is_ok(i32 %1287)
  br i1 %1288, label %.preheader478.7, label %1358

.preheader478.7:                                  ; preds = %.preheader478.6
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = load i8, ptr %449, align 1, !tbaa !15
  %1292 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1291) #13
  %1293 = call zeroext i1 @s2n_result_is_ok(i32 %1292)
  br i1 %1293, label %.preheader478.8, label %1358

.preheader478.8:                                  ; preds = %.preheader478.7
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = add nsw i32 %1294, 1
  store i32 %1295, ptr @test_count, align 4, !tbaa !5
  %1296 = load i8, ptr %455, align 8, !tbaa !15
  %1297 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1296) #13
  %1298 = call zeroext i1 @s2n_result_is_ok(i32 %1297)
  br i1 %1298, label %.preheader478.9, label %1358

.preheader478.9:                                  ; preds = %.preheader478.8
  %1299 = load i32, ptr @test_count, align 4, !tbaa !5
  %1300 = add nsw i32 %1299, 1
  store i32 %1300, ptr @test_count, align 4, !tbaa !5
  %1301 = load i8, ptr %461, align 1, !tbaa !15
  %1302 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1301) #13
  %1303 = call zeroext i1 @s2n_result_is_ok(i32 %1302)
  br i1 %1303, label %.preheader478.10, label %1358

.preheader478.10:                                 ; preds = %.preheader478.9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = add nsw i32 %1304, 1
  store i32 %1305, ptr @test_count, align 4, !tbaa !5
  %1306 = load i8, ptr %467, align 2, !tbaa !15
  %1307 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1306) #13
  %1308 = call zeroext i1 @s2n_result_is_ok(i32 %1307)
  br i1 %1308, label %.preheader478.11, label %1358

.preheader478.11:                                 ; preds = %.preheader478.10
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = add nsw i32 %1309, 1
  store i32 %1310, ptr @test_count, align 4, !tbaa !5
  %1311 = load i8, ptr %473, align 1, !tbaa !15
  %1312 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1311) #13
  %1313 = call zeroext i1 @s2n_result_is_ok(i32 %1312)
  br i1 %1313, label %.preheader478.12, label %1358

.preheader478.12:                                 ; preds = %.preheader478.11
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = add nsw i32 %1314, 1
  store i32 %1315, ptr @test_count, align 4, !tbaa !5
  %1316 = load i8, ptr %479, align 4, !tbaa !15
  %1317 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1316) #13
  %1318 = call zeroext i1 @s2n_result_is_ok(i32 %1317)
  br i1 %1318, label %.preheader478.13, label %1358

.preheader478.13:                                 ; preds = %.preheader478.12
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = load i8, ptr %485, align 1, !tbaa !15
  %1322 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1321) #13
  %1323 = call zeroext i1 @s2n_result_is_ok(i32 %1322)
  br i1 %1323, label %.preheader478.14, label %1358

.preheader478.14:                                 ; preds = %.preheader478.13
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = load i8, ptr %491, align 2, !tbaa !15
  %1327 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1326) #13
  %1328 = call zeroext i1 @s2n_result_is_ok(i32 %1327)
  br i1 %1328, label %.preheader478.15, label %1358

.preheader478.15:                                 ; preds = %.preheader478.14
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr @test_count, align 4, !tbaa !5
  %1331 = load i8, ptr %497, align 1, !tbaa !15
  %1332 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1331) #13
  %1333 = call zeroext i1 @s2n_result_is_ok(i32 %1332)
  br i1 %1333, label %.preheader478.16, label %1358

.preheader478.16:                                 ; preds = %.preheader478.15
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = load i8, ptr %1063, align 16, !tbaa !15
  %1337 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1336) #13
  %1338 = call zeroext i1 @s2n_result_is_ok(i32 %1337)
  br i1 %1338, label %.preheader478.17, label %1358

.preheader478.17:                                 ; preds = %.preheader478.16
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr @test_count, align 4, !tbaa !5
  %1341 = load i8, ptr %1069, align 1, !tbaa !15
  %1342 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1341) #13
  %1343 = call zeroext i1 @s2n_result_is_ok(i32 %1342)
  br i1 %1343, label %.preheader478.18, label %1358

.preheader478.18:                                 ; preds = %.preheader478.17
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = add nsw i32 %1344, 1
  store i32 %1345, ptr @test_count, align 4, !tbaa !5
  %1346 = load i8, ptr %1075, align 2, !tbaa !15
  %1347 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1346) #13
  %1348 = call zeroext i1 @s2n_result_is_ok(i32 %1347)
  br i1 %1348, label %.preheader478.19, label %1358

.preheader478.19:                                 ; preds = %.preheader478.18
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = load i8, ptr %1081, align 1, !tbaa !15
  %1352 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1351) #13
  %1353 = call zeroext i1 @s2n_result_is_ok(i32 %1352)
  br i1 %1353, label %1354, label %1358

1354:                                             ; preds = %.preheader478.19
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr @test_count, align 4, !tbaa !5
  %bcmp332 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.25, i64 40)
  %1357 = icmp eq i32 %bcmp332, 0
  br i1 %1357, label %1406, label %1382

1358:                                             ; preds = %.preheader478.19, %.preheader478.18, %.preheader478.17, %.preheader478.16, %.preheader478.15, %.preheader478.14, %.preheader478.13, %.preheader478.12, %.preheader478.11, %.preheader478.10, %.preheader478.9, %.preheader478.8, %.preheader478.7, %.preheader478.6, %.preheader478.5, %.preheader478.4, %.preheader478.3, %.preheader478.2, %.preheader478.1, %.preheader478.preheader
  %1359 = tail call ptr @__errno_location() #14
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = call i32 @s2n_print_stacktrace(ptr noundef %1361) #13
  %1363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1364 = trunc nuw i8 %1363 to i1
  br i1 %1364, label %1365, label %1369

1365:                                             ; preds = %1358
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @fileno(ptr noundef %1366) #13
  %1368 = call i32 @isatty(i32 noundef %1367) #13
  %.not435 = icmp eq i32 %1368, 0
  br i1 %.not435, label %1369, label %1370

1369:                                             ; preds = %1365, %1358
  br label %1370

1370:                                             ; preds = %1365, %1369
  %.str.4.sink881 = phi ptr [ @.str.4, %1369 ], [ @.str, %1365 ]
  store i32 %1360, ptr %1359, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror(i32 noundef %1374, ptr noundef nonnull @.str.3) #13
  %1376 = load i32, ptr %1373, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror_debug(i32 noundef %1376, ptr noundef nonnull @.str.3) #13
  %1378 = load i32, ptr %1359, align 4, !tbaa !5
  %1379 = call ptr @strerror(i32 noundef %1378) #13
  %1380 = load i32, ptr %1359, align 4, !tbaa !5
  %1381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1371, ptr noundef nonnull %.str.4.sink881, i32 noundef %1372, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 107, ptr noundef %1375, ptr noundef %1377, ptr noundef %1379, i32 noundef %1380) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1382:                                             ; preds = %1354
  %1383 = tail call ptr @__errno_location() #14
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = call i32 @s2n_print_stacktrace(ptr noundef %1385) #13
  %1387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1388 = trunc nuw i8 %1387 to i1
  br i1 %1388, label %1389, label %1393

1389:                                             ; preds = %1382
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @fileno(ptr noundef %1390) #13
  %1392 = call i32 @isatty(i32 noundef %1391) #13
  %.not333 = icmp eq i32 %1392, 0
  br i1 %.not333, label %1393, label %1394

1393:                                             ; preds = %1389, %1382
  br label %1394

1394:                                             ; preds = %1389, %1393
  %.str.4.sink892 = phi ptr [ @.str.4, %1393 ], [ @.str, %1389 ]
  store i32 %1384, ptr %1383, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef nonnull @.str.3) #13
  %1400 = load i32, ptr %1397, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror_debug(i32 noundef %1400, ptr noundef nonnull @.str.3) #13
  %1402 = load i32, ptr %1383, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #13
  %1404 = load i32, ptr %1383, align 4, !tbaa !5
  %1405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef nonnull %.str.4.sink892, i32 noundef %1396, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 111, ptr noundef %1399, ptr noundef %1401, ptr noundef %1403, i32 noundef %1404) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1406:                                             ; preds = %1354
  %1407 = add nsw i32 %1355, 2
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call i32 @s2n_hmac_reset(ptr noundef nonnull %12) #13
  %1409 = icmp eq i32 %1408, -1
  br i1 %1409, label %1410, label %1434

1410:                                             ; preds = %1406
  %1411 = tail call ptr @__errno_location() #14
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @s2n_print_stacktrace(ptr noundef %1413) #13
  %1415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1416 = trunc nuw i8 %1415 to i1
  br i1 %1416, label %1417, label %1421

1417:                                             ; preds = %1410
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @fileno(ptr noundef %1418) #13
  %1420 = call i32 @isatty(i32 noundef %1419) #13
  %.not434 = icmp eq i32 %1420, 0
  br i1 %.not434, label %1421, label %1422

1421:                                             ; preds = %1417, %1410
  br label %1422

1422:                                             ; preds = %1417, %1421
  %.str.4.sink903 = phi ptr [ @.str.4, %1421 ], [ @.str, %1417 ]
  store i32 %1412, ptr %1411, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror(i32 noundef %1426, ptr noundef nonnull @.str.3) #13
  %1428 = load i32, ptr %1425, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror_debug(i32 noundef %1428, ptr noundef nonnull @.str.3) #13
  %1430 = load i32, ptr %1411, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #13
  %1432 = load i32, ptr %1411, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1423, ptr noundef nonnull %.str.4.sink903, i32 noundef %1424, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 113, ptr noundef %1427, ptr noundef %1429, ptr noundef %1431, i32 noundef %1432) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1434:                                             ; preds = %1406
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #13
  store i8 0, ptr %18, align 1, !tbaa !15
  %1435 = call i32 @s2n_hmac_digest_size(i32 noundef 1, ptr noundef nonnull %18) #13
  %1436 = icmp sgt i32 %1435, -1
  br i1 %1436, label %1437, label %.thread467

.thread467:                                       ; preds = %1434
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #13
  br label %4568

1437:                                             ; preds = %1434
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = load i8, ptr %18, align 1, !tbaa !15
  %1441 = icmp eq i8 %1440, 16
  br i1 %1441, label %1466, label %1442

1442:                                             ; preds = %1437
  %1443 = tail call ptr @__errno_location() #14
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @s2n_print_stacktrace(ptr noundef %1445) #13
  %1447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1448 = trunc nuw i8 %1447 to i1
  br i1 %1448, label %1449, label %1453

1449:                                             ; preds = %1442
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = call i32 @fileno(ptr noundef %1450) #13
  %1452 = call i32 @isatty(i32 noundef %1451) #13
  %.not334 = icmp eq i32 %1452, 0
  br i1 %.not334, label %1453, label %1454

1453:                                             ; preds = %1449, %1442
  br label %1454

1454:                                             ; preds = %1449, %1453
  %.str.4.sink914 = phi ptr [ @.str.4, %1453 ], [ @.str, %1449 ]
  store i32 %1444, ptr %1443, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef nonnull @.str.3) #13
  %1460 = load i32, ptr %1457, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef nonnull @.str.3) #13
  %1462 = load i32, ptr %1443, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #13
  %1464 = load i32, ptr %1443, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull %.str.4.sink914, i32 noundef %1456, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 120, ptr noundef %1459, ptr noundef %1461, ptr noundef %1463, i32 noundef %1464) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1466:                                             ; preds = %1437
  %1467 = add nsw i32 %1438, 2
  store i32 %1467, ptr @test_count, align 4, !tbaa !5
  %1468 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %1469 = trunc i64 %1468 to i32
  %1470 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 1, ptr noundef nonnull %7, i32 noundef %1469) #13
  %1471 = icmp eq i32 %1470, -1
  br i1 %1471, label %1472, label %1496

1472:                                             ; preds = %1466
  %1473 = tail call ptr @__errno_location() #14
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @s2n_print_stacktrace(ptr noundef %1475) #13
  %1477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1478 = trunc nuw i8 %1477 to i1
  br i1 %1478, label %1479, label %1483

1479:                                             ; preds = %1472
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @fileno(ptr noundef %1480) #13
  %1482 = call i32 @isatty(i32 noundef %1481) #13
  %.not433 = icmp eq i32 %1482, 0
  br i1 %.not433, label %1483, label %1484

1483:                                             ; preds = %1479, %1472
  br label %1484

1484:                                             ; preds = %1479, %1483
  %.str.4.sink925 = phi ptr [ @.str.4, %1483 ], [ @.str, %1479 ]
  store i32 %1474, ptr %1473, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.3) #13
  %1490 = load i32, ptr %1487, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.3) #13
  %1492 = load i32, ptr %1473, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #13
  %1494 = load i32, ptr %1473, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef nonnull %.str.4.sink925, i32 noundef %1486, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 121, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1496:                                             ; preds = %1466
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr @test_count, align 4, !tbaa !5
  %1499 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %1500 = trunc i64 %1499 to i32
  %1501 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %1500) #13
  %1502 = icmp eq i32 %1501, -1
  br i1 %1502, label %1503, label %1527

1503:                                             ; preds = %1496
  %1504 = tail call ptr @__errno_location() #14
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #13
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1514

1510:                                             ; preds = %1503
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #13
  %1513 = call i32 @isatty(i32 noundef %1512) #13
  %.not432 = icmp eq i32 %1513, 0
  br i1 %.not432, label %1514, label %1515

1514:                                             ; preds = %1510, %1503
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.4.sink936 = phi ptr [ @.str.4, %1514 ], [ @.str, %1510 ]
  store i32 %1505, ptr %1504, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.3) #13
  %1521 = load i32, ptr %1518, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.3) #13
  %1523 = load i32, ptr %1504, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #13
  %1525 = load i32, ptr %1504, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.4.sink936, i32 noundef %1517, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 122, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1527:                                             ; preds = %1496
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr @test_count, align 4, !tbaa !5
  %1530 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 16) #13
  %1531 = icmp eq i32 %1530, -1
  br i1 %1531, label %1532, label %1556

1532:                                             ; preds = %1527
  %1533 = tail call ptr @__errno_location() #14
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @s2n_print_stacktrace(ptr noundef %1535) #13
  %1537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1538 = trunc nuw i8 %1537 to i1
  br i1 %1538, label %1539, label %1543

1539:                                             ; preds = %1532
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @fileno(ptr noundef %1540) #13
  %1542 = call i32 @isatty(i32 noundef %1541) #13
  %.not431 = icmp eq i32 %1542, 0
  br i1 %.not431, label %1543, label %1544

1543:                                             ; preds = %1539, %1532
  br label %1544

1544:                                             ; preds = %1539, %1543
  %.str.4.sink947 = phi ptr [ @.str.4, %1543 ], [ @.str, %1539 ]
  store i32 %1534, ptr %1533, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef nonnull @.str.3) #13
  %1550 = load i32, ptr %1547, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef nonnull @.str.3) #13
  %1552 = load i32, ptr %1533, align 4, !tbaa !5
  %1553 = call ptr @strerror(i32 noundef %1552) #13
  %1554 = load i32, ptr %1533, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef nonnull %.str.4.sink947, i32 noundef %1546, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 123, ptr noundef %1549, ptr noundef %1551, ptr noundef %1553, i32 noundef %1554) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1556:                                             ; preds = %1527
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = add nsw i32 %1557, 1
  store i32 %1558, ptr @test_count, align 4, !tbaa !5
  %1559 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %1560 = icmp eq i32 %1559, -1
  br i1 %1560, label %1566, label %.preheader477.preheader

.preheader477.preheader:                          ; preds = %1556
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = add nsw i32 %1561, 1
  store i32 %1562, ptr @test_count, align 4, !tbaa !5
  %1563 = load i8, ptr %3, align 16, !tbaa !15
  %1564 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1563) #13
  %1565 = call zeroext i1 @s2n_result_is_ok(i32 %1564)
  br i1 %1565, label %.preheader477.1, label %1669

1566:                                             ; preds = %1556
  %1567 = tail call ptr @__errno_location() #14
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @s2n_print_stacktrace(ptr noundef %1569) #13
  %1571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1572 = trunc nuw i8 %1571 to i1
  br i1 %1572, label %1573, label %1577

1573:                                             ; preds = %1566
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = call i32 @fileno(ptr noundef %1574) #13
  %1576 = call i32 @isatty(i32 noundef %1575) #13
  %.not430 = icmp eq i32 %1576, 0
  br i1 %.not430, label %1577, label %1578

1577:                                             ; preds = %1573, %1566
  br label %1578

1578:                                             ; preds = %1573, %1577
  %.str.4.sink958 = phi ptr [ @.str.4, %1577 ], [ @.str, %1573 ]
  store i32 %1568, ptr %1567, align 4, !tbaa !5
  %1579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1580 = load i32, ptr @test_count, align 4, !tbaa !5
  %1581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror(i32 noundef %1582, ptr noundef nonnull @.str.3) #13
  %1584 = load i32, ptr %1581, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror_debug(i32 noundef %1584, ptr noundef nonnull @.str.3) #13
  %1586 = load i32, ptr %1567, align 4, !tbaa !5
  %1587 = call ptr @strerror(i32 noundef %1586) #13
  %1588 = load i32, ptr %1567, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1579, ptr noundef nonnull %.str.4.sink958, i32 noundef %1580, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 125, ptr noundef %1583, ptr noundef %1585, ptr noundef %1587, i32 noundef %1588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader477.1:                                  ; preds = %.preheader477.preheader
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = add nsw i32 %1590, 1
  store i32 %1591, ptr @test_count, align 4, !tbaa !5
  %1592 = load i8, ptr %413, align 1, !tbaa !15
  %1593 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1592) #13
  %1594 = call zeroext i1 @s2n_result_is_ok(i32 %1593)
  br i1 %1594, label %.preheader477.2, label %1669

.preheader477.2:                                  ; preds = %.preheader477.1
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = add nsw i32 %1595, 1
  store i32 %1596, ptr @test_count, align 4, !tbaa !5
  %1597 = load i8, ptr %419, align 2, !tbaa !15
  %1598 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1597) #13
  %1599 = call zeroext i1 @s2n_result_is_ok(i32 %1598)
  br i1 %1599, label %.preheader477.3, label %1669

.preheader477.3:                                  ; preds = %.preheader477.2
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = add nsw i32 %1600, 1
  store i32 %1601, ptr @test_count, align 4, !tbaa !5
  %1602 = load i8, ptr %425, align 1, !tbaa !15
  %1603 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1602) #13
  %1604 = call zeroext i1 @s2n_result_is_ok(i32 %1603)
  br i1 %1604, label %.preheader477.4, label %1669

.preheader477.4:                                  ; preds = %.preheader477.3
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  store i32 %1606, ptr @test_count, align 4, !tbaa !5
  %1607 = load i8, ptr %431, align 4, !tbaa !15
  %1608 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1607) #13
  %1609 = call zeroext i1 @s2n_result_is_ok(i32 %1608)
  br i1 %1609, label %.preheader477.5, label %1669

.preheader477.5:                                  ; preds = %.preheader477.4
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr @test_count, align 4, !tbaa !5
  %1612 = load i8, ptr %437, align 1, !tbaa !15
  %1613 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1612) #13
  %1614 = call zeroext i1 @s2n_result_is_ok(i32 %1613)
  br i1 %1614, label %.preheader477.6, label %1669

.preheader477.6:                                  ; preds = %.preheader477.5
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr @test_count, align 4, !tbaa !5
  %1617 = load i8, ptr %443, align 2, !tbaa !15
  %1618 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1617) #13
  %1619 = call zeroext i1 @s2n_result_is_ok(i32 %1618)
  br i1 %1619, label %.preheader477.7, label %1669

.preheader477.7:                                  ; preds = %.preheader477.6
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = add nsw i32 %1620, 1
  store i32 %1621, ptr @test_count, align 4, !tbaa !5
  %1622 = load i8, ptr %449, align 1, !tbaa !15
  %1623 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1622) #13
  %1624 = call zeroext i1 @s2n_result_is_ok(i32 %1623)
  br i1 %1624, label %.preheader477.8, label %1669

.preheader477.8:                                  ; preds = %.preheader477.7
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = add nsw i32 %1625, 1
  store i32 %1626, ptr @test_count, align 4, !tbaa !5
  %1627 = load i8, ptr %455, align 8, !tbaa !15
  %1628 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1627) #13
  %1629 = call zeroext i1 @s2n_result_is_ok(i32 %1628)
  br i1 %1629, label %.preheader477.9, label %1669

.preheader477.9:                                  ; preds = %.preheader477.8
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = add nsw i32 %1630, 1
  store i32 %1631, ptr @test_count, align 4, !tbaa !5
  %1632 = load i8, ptr %461, align 1, !tbaa !15
  %1633 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1632) #13
  %1634 = call zeroext i1 @s2n_result_is_ok(i32 %1633)
  br i1 %1634, label %.preheader477.10, label %1669

.preheader477.10:                                 ; preds = %.preheader477.9
  %1635 = load i32, ptr @test_count, align 4, !tbaa !5
  %1636 = add nsw i32 %1635, 1
  store i32 %1636, ptr @test_count, align 4, !tbaa !5
  %1637 = load i8, ptr %467, align 2, !tbaa !15
  %1638 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1637) #13
  %1639 = call zeroext i1 @s2n_result_is_ok(i32 %1638)
  br i1 %1639, label %.preheader477.11, label %1669

.preheader477.11:                                 ; preds = %.preheader477.10
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = load i8, ptr %473, align 1, !tbaa !15
  %1643 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1642) #13
  %1644 = call zeroext i1 @s2n_result_is_ok(i32 %1643)
  br i1 %1644, label %.preheader477.12, label %1669

.preheader477.12:                                 ; preds = %.preheader477.11
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = add nsw i32 %1645, 1
  store i32 %1646, ptr @test_count, align 4, !tbaa !5
  %1647 = load i8, ptr %479, align 4, !tbaa !15
  %1648 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1647) #13
  %1649 = call zeroext i1 @s2n_result_is_ok(i32 %1648)
  br i1 %1649, label %.preheader477.13, label %1669

.preheader477.13:                                 ; preds = %.preheader477.12
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = add nsw i32 %1650, 1
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = load i8, ptr %485, align 1, !tbaa !15
  %1653 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1652) #13
  %1654 = call zeroext i1 @s2n_result_is_ok(i32 %1653)
  br i1 %1654, label %.preheader477.14, label %1669

.preheader477.14:                                 ; preds = %.preheader477.13
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = add nsw i32 %1655, 1
  store i32 %1656, ptr @test_count, align 4, !tbaa !5
  %1657 = load i8, ptr %491, align 2, !tbaa !15
  %1658 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1657) #13
  %1659 = call zeroext i1 @s2n_result_is_ok(i32 %1658)
  br i1 %1659, label %.preheader477.15, label %1669

.preheader477.15:                                 ; preds = %.preheader477.14
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = add nsw i32 %1660, 1
  store i32 %1661, ptr @test_count, align 4, !tbaa !5
  %1662 = load i8, ptr %497, align 1, !tbaa !15
  %1663 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1662) #13
  %1664 = call zeroext i1 @s2n_result_is_ok(i32 %1663)
  br i1 %1664, label %1665, label %1669

1665:                                             ; preds = %.preheader477.15
  %1666 = load i32, ptr @test_count, align 4, !tbaa !5
  %1667 = add nsw i32 %1666, 1
  store i32 %1667, ptr @test_count, align 4, !tbaa !5
  %bcmp335 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %5, ptr noundef nonnull dereferenceable(32) @.str.29, i64 32)
  %1668 = icmp eq i32 %bcmp335, 0
  br i1 %1668, label %1717, label %1693

1669:                                             ; preds = %.preheader477.15, %.preheader477.14, %.preheader477.13, %.preheader477.12, %.preheader477.11, %.preheader477.10, %.preheader477.9, %.preheader477.8, %.preheader477.7, %.preheader477.6, %.preheader477.5, %.preheader477.4, %.preheader477.3, %.preheader477.2, %.preheader477.1, %.preheader477.preheader
  %1670 = tail call ptr @__errno_location() #14
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @s2n_print_stacktrace(ptr noundef %1672) #13
  %1674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1675 = trunc nuw i8 %1674 to i1
  br i1 %1675, label %1676, label %1680

1676:                                             ; preds = %1669
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = call i32 @fileno(ptr noundef %1677) #13
  %1679 = call i32 @isatty(i32 noundef %1678) #13
  %.not429 = icmp eq i32 %1679, 0
  br i1 %.not429, label %1680, label %1681

1680:                                             ; preds = %1676, %1669
  br label %1681

1681:                                             ; preds = %1676, %1680
  %.str.4.sink969 = phi ptr [ @.str.4, %1680 ], [ @.str, %1676 ]
  store i32 %1671, ptr %1670, 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 nonnull @.str.3) #13
  %1687 = load i32, ptr %1684, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef nonnull @.str.3) #13
  %1689 = load i32, ptr %1670, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #13
  %1691 = load i32, ptr %1670, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef nonnull %.str.4.sink969, i32 noundef %1683, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 127, ptr noundef %1686, ptr noundef %1688, ptr noundef %1690, i32 noundef %1691) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1693:                                             ; preds = %1665
  %1694 = tail call ptr @__errno_location() #14
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696) #13
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc nuw i8 %1698 to i1
  br i1 %1699, label %1700, label %1704

1700:                                             ; preds = %1693
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #13
  %1703 = call i32 @isatty(i32 noundef %1702) #13
  %.not336 = icmp eq i32 %1703, 0
  br i1 %.not336, label %1704, label %1705

1704:                                             ; preds = %1700, %1693
  br label %1705

1705:                                             ; preds = %1700, %1704
  %.str.4.sink980 = phi ptr [ @.str.4, %1704 ], [ @.str, %1700 ]
  store i32 %1695, ptr %1694, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef nonnull @.str.3) #13
  %1711 = load i32, ptr %1708, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror_debug(i32 noundef %1711, ptr noundef nonnull @.str.3) #13
  %1713 = load i32, ptr %1694, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #13
  %1715 = load i32, ptr %1694, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef nonnull %.str.4.sink980, i32 noundef %1707, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 131, ptr noundef %1710, ptr noundef %1712, ptr noundef %1714, i32 noundef %1715) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1717:                                             ; preds = %1665
  %1718 = add nsw i32 %1666, 2
  store i32 %1718, ptr @test_count, align 4, !tbaa !5
  %1719 = call i32 @s2n_hmac_reset(ptr noundef nonnull %12) #13
  %1720 = icmp eq i32 %1719, -1
  br i1 %1720, label %1721, label %1745

1721:                                             ; preds = %1717
  %1722 = tail call ptr @__errno_location() #14
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @s2n_print_stacktrace(ptr noundef %1724) #13
  %1726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1727 = trunc nuw i8 %1726 to i1
  br i1 %1727, label %1728, label %1732

1728:                                             ; preds = %1721
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @fileno(ptr noundef %1729) #13
  %1731 = call i32 @isatty(i32 noundef %1730) #13
  %.not428 = icmp eq i32 %1731, 0
  br i1 %.not428, label %1732, label %1733

1732:                                             ; preds = %1728, %1721
  br label %1733

1733:                                             ; preds = %1728, %1732
  %.str.4.sink991 = phi ptr [ @.str.4, %1732 ], [ @.str, %1728 ]
  store i32 %1723, ptr %1722, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef nonnull @.str.3) #13
  %1739 = load i32, ptr %1736, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror_debug(i32 noundef %1739, ptr noundef nonnull @.str.3) #13
  %1741 = load i32, ptr %1722, align 4, !tbaa !5
  %1742 = call ptr @strerror(i32 noundef %1741) #13
  %1743 = load i32, ptr %1722, align 4, !tbaa !5
  %1744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef nonnull %.str.4.sink991, i32 noundef %1735, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 133, ptr noundef %1738, ptr noundef %1740, ptr noundef %1742, i32 noundef %1743) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1745:                                             ; preds = %1717
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #13
  store i8 0, ptr %19, align 1, !tbaa !15
  %1746 = call i32 @s2n_hmac_digest_size(i32 noundef 2, ptr noundef nonnull %19) #13
  %1747 = icmp sgt i32 %1746, -1
  br i1 %1747, label %1748, label %4567

1748:                                             ; preds = %1745
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = add nsw i32 %1749, 1
  store i32 %1750, ptr @test_count, align 4, !tbaa !5
  %1751 = load i8, ptr %19, align 1, !tbaa !15
  %1752 = icmp eq i8 %1751, 20
  br i1 %1752, label %1777, label %1753

1753:                                             ; preds = %1748
  %1754 = tail call ptr @__errno_location() #14
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @s2n_print_stacktrace(ptr noundef %1756) #13
  %1758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1759 = trunc nuw i8 %1758 to i1
  br i1 %1759, label %1760, label %1764

1760:                                             ; preds = %1753
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @fileno(ptr noundef %1761) #13
  %1763 = call i32 @isatty(i32 noundef %1762) #13
  %.not337 = icmp eq i32 %1763, 0
  br i1 %.not337, label %1764, label %1765

1764:                                             ; preds = %1760, %1753
  br label %1765

1765:                                             ; preds = %1760, %1764
  %.str.4.sink1002 = phi ptr [ @.str.4, %1764 ], [ @.str, %1760 ]
  store i32 %1755, ptr %1754, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror(i32 noundef %1769, ptr noundef nonnull @.str.3) #13
  %1771 = load i32, ptr %1768, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror_debug(i32 noundef %1771, ptr noundef nonnull @.str.3) #13
  %1773 = load i32, ptr %1754, align 4, !tbaa !5
  %1774 = call ptr @strerror(i32 noundef %1773) #13
  %1775 = load i32, ptr %1754, align 4, !tbaa !5
  %1776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef nonnull %.str.4.sink1002, i32 noundef %1767, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 139, ptr noundef %1770, ptr noundef %1772, ptr noundef %1774, i32 noundef %1775) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1777:                                             ; preds = %1748
  %1778 = add nsw i32 %1749, 2
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %1780 = trunc i64 %1779 to i32
  %1781 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 2, ptr noundef nonnull %7, i32 noundef %1780) #13
  %1782 = icmp eq i32 %1781, -1
  br i1 %1782, label %1783, label %1807

1783:                                             ; preds = %1777
  %1784 = tail call ptr @__errno_location() #14
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = call i32 @s2n_print_stacktrace(ptr noundef %1786) #13
  %1788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1789 = trunc nuw i8 %1788 to i1
  br i1 %1789, label %1790, label %1794

1790:                                             ; preds = %1783
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = call i32 @fileno(ptr noundef %1791) #13
  %1793 = call i32 @isatty(i32 noundef %1792) #13
  %.not427 = icmp eq i32 %1793, 0
  br i1 %.not427, label %1794, label %1795

1794:                                             ; preds = %1790, %1783
  br label %1795

1795:                                             ; preds = %1790, %1794
  %.str.4.sink1013 = phi ptr [ @.str.4, %1794 ], [ @.str, %1790 ]
  store i32 %1785, ptr %1784, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = load i32, ptr @test_count, align 4, !tbaa !5
  %1798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror(i32 noundef %1799, ptr noundef nonnull @.str.3) #13
  %1801 = load i32, ptr %1798, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror_debug(i32 noundef %1801, ptr noundef nonnull @.str.3) #13
  %1803 = load i32, ptr %1784, align 4, !tbaa !5
  %1804 = call ptr @strerror(i32 noundef %1803) #13
  %1805 = load i32, ptr %1784, align 4, !tbaa !5
  %1806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1796, ptr noundef nonnull %.str.4.sink1013, i32 noundef %1797, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 140, ptr noundef %1800, ptr noundef %1802, ptr noundef %1804, i32 noundef %1805) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1807:                                             ; preds = %1777
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = add nsw i32 %1808, 1
  store i32 %1809, ptr @test_count, align 4, !tbaa !5
  %1810 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %1811 = trunc i64 %1810 to i32
  %1812 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %1811) #13
  %1813 = icmp eq i32 %1812, -1
  br i1 %1813, label %1814, label %1838

1814:                                             ; preds = %1807
  %1815 = tail call ptr @__errno_location() #14
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = call i32 @s2n_print_stacktrace(ptr noundef %1817) #13
  %1819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1820 = trunc nuw i8 %1819 to i1
  br i1 %1820, label %1821, label %1825

1821:                                             ; preds = %1814
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = call i32 @fileno(ptr noundef %1822) #13
  %1824 = call i32 @isatty(i32 noundef %1823) #13
  %.not426 = icmp eq i32 %1824, 0
  br i1 %.not426, label %1825, label %1826

1825:                                             ; preds = %1821, %1814
  br label %1826

1826:                                             ; preds = %1821, %1825
  %.str.4.sink1024 = phi ptr [ @.str.4, %1825 ], [ @.str, %1821 ]
  store i32 %1816, ptr %1815, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @s2n_strerror(i32 noundef %1830, ptr noundef nonnull @.str.3) #13
  %1832 = load i32, ptr %1829, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror_debug(i32 noundef %1832, ptr noundef nonnull @.str.3) #13
  %1834 = load i32, ptr %1815, align 4, !tbaa !5
  %1835 = call ptr @strerror(i32 noundef %1834) #13
  %1836 = load i32, ptr %1815, align 4, !tbaa !5
  %1837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1827, ptr noundef nonnull %.str.4.sink1024, i32 noundef %1828, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 141, ptr noundef %1831, ptr noundef %1833, ptr noundef %1835, i32 noundef %1836) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1838:                                             ; preds = %1807
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = add nsw i32 %1839, 1
  store i32 %1840, ptr @test_count, align 4, !tbaa !5
  %1841 = call i32 @s2n_hmac_copy(ptr noundef nonnull %13, ptr noundef nonnull %12) #13
  %1842 = icmp eq i32 %1841, -1
  br i1 %1842, label %1843, label %1867

1843:                                             ; preds = %1838
  %1844 = tail call ptr @__errno_location() #14
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = call i32 @s2n_print_stacktrace(ptr noundef %1846) #13
  %1848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1849 = trunc nuw i8 %1848 to i1
  br i1 %1849, label %1850, label %1854

1850:                                             ; preds = %1843
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @fileno(ptr noundef %1851) #13
  %1853 = call i32 @isatty(i32 noundef %1852) #13
  %.not425 = icmp eq i32 %1853, 0
  br i1 %.not425, label %1854, label %1855

1854:                                             ; preds = %1850, %1843
  br label %1855

1855:                                             ; preds = %1850, %1854
  %.str.4.sink1035 = phi ptr [ @.str.4, %1854 ], [ @.str, %1850 ]
  store i32 %1845, ptr %1844, align 4, !tbaa !5
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = call ptr @s2n_strerror(i32 noundef %1859, ptr noundef nonnull @.str.3) #13
  %1861 = load i32, ptr %1858, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror_debug(i32 noundef %1861, ptr noundef nonnull @.str.3) #13
  %1863 = load i32, ptr %1844, align 4, !tbaa !5
  %1864 = call ptr @strerror(i32 noundef %1863) #13
  %1865 = load i32, ptr %1844, align 4, !tbaa !5
  %1866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1856, ptr noundef nonnull %.str.4.sink1035, i32 noundef %1857, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 142, ptr noundef %1860, ptr noundef %1862, ptr noundef %1864, i32 noundef %1865) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1867:                                             ; preds = %1838
  %1868 = load i32, ptr @test_count, align 4, !tbaa !5
  %1869 = add nsw i32 %1868, 1
  store i32 %1869, ptr @test_count, align 4, !tbaa !5
  %1870 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 20) #13
  %1871 = icmp eq i32 %1870, -1
  br i1 %1871, label %1872, label %1896

1872:                                             ; preds = %1867
  %1873 = tail call ptr @__errno_location() #14
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = call i32 @s2n_print_stacktrace(ptr noundef %1875) #13
  %1877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1878 = trunc nuw i8 %1877 to i1
  br i1 %1878, label %1879, label %1883

1879:                                             ; preds = %1872
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @fileno(ptr noundef %1880) #13
  %1882 = call i32 @isatty(i32 noundef %1881) #13
  %.not424 = icmp eq i32 %1882, 0
  br i1 %.not424, label %1883, label %1884

1883:                                             ; preds = %1879, %1872
  br label %1884

1884:                                             ; preds = %1879, %1883
  %.str.4.sink1046 = phi ptr [ @.str.4, %1883 ], [ @.str, %1879 ]
  store i32 %1874, ptr %1873, align 4, !tbaa !5
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @s2n_strerror(i32 noundef %1888, ptr noundef nonnull @.str.3) #13
  %1890 = load i32, ptr %1887, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror_debug(i32 noundef %1890, ptr noundef nonnull @.str.3) #13
  %1892 = load i32, ptr %1873, align 4, !tbaa !5
  %1893 = call ptr @strerror(i32 noundef %1892) #13
  %1894 = load i32, ptr %1873, align 4, !tbaa !5
  %1895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1885, ptr noundef nonnull %.str.4.sink1046, i32 noundef %1886, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 143, ptr noundef %1889, ptr noundef %1891, ptr noundef %1893, i32 noundef %1894) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1896:                                             ; preds = %1867
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr @test_count, align 4, !tbaa !5
  %1899 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %1900 = icmp eq i32 %1899, -1
  br i1 %1900, label %1906, label %.preheader476.preheader

.preheader476.preheader:                          ; preds = %1896
  %1901 = load i32, ptr @test_count, align 4, !tbaa !5
  %1902 = add nsw i32 %1901, 1
  store i32 %1902, ptr @test_count, align 4, !tbaa !5
  %1903 = load i8, ptr %3, align 16, !tbaa !15
  %1904 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1903) #13
  %1905 = call zeroext i1 @s2n_result_is_ok(i32 %1904)
  br i1 %1905, label %.preheader476.1, label %2029

1906:                                             ; preds = %1896
  %1907 = tail call ptr @__errno_location() #14
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = call i32 @s2n_print_stacktrace(ptr noundef %1909) #13
  %1911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1912 = trunc nuw i8 %1911 to i1
  br i1 %1912, label %1913, label %1917

1913:                                             ; preds = %1906
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = call i32 @fileno(ptr noundef %1914) #13
  %1916 = call i32 @isatty(i32 noundef %1915) #13
  %.not423 = icmp eq i32 %1916, 0
  br i1 %.not423, label %1917, label %1918

1917:                                             ; preds = %1913, %1906
  br label %1918

1918:                                             ; preds = %1913, %1917
  %.str.4.sink1057 = phi ptr [ @.str.4, %1917 ], [ @.str, %1913 ]
  store i32 %1908, ptr %1907, align 4, !tbaa !5
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror(i32 noundef %1922, ptr noundef nonnull @.str.3) #13
  %1924 = load i32, ptr %1921, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror_debug(i32 noundef %1924, ptr noundef nonnull @.str.3) #13
  %1926 = load i32, ptr %1907, align 4, !tbaa !5
  %1927 = call ptr @strerror(i32 noundef %1926) #13
  %1928 = load i32, ptr %1907, align 4, !tbaa !5
  %1929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1919, ptr noundef nonnull %.str.4.sink1057, i32 noundef %1920, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 145, ptr noundef %1923, ptr noundef %1925, ptr noundef %1927, i32 noundef %1928) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader476.1:                                  ; preds = %.preheader476.preheader
  %1930 = load i32, ptr @test_count, align 4, !tbaa !5
  %1931 = add nsw i32 %1930, 1
  store i32 %1931, ptr @test_count, align 4, !tbaa !5
  %1932 = load i8, ptr %413, align 1, !tbaa !15
  %1933 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1932) #13
  %1934 = call zeroext i1 @s2n_result_is_ok(i32 %1933)
  br i1 %1934, label %.preheader476.2, label %2029

.preheader476.2:                                  ; preds = %.preheader476.1
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = add nsw i32 %1935, 1
  store i32 %1936, ptr @test_count, align 4, !tbaa !5
  %1937 = load i8, ptr %419, align 2, !tbaa !15
  %1938 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1937) #13
  %1939 = call zeroext i1 @s2n_result_is_ok(i32 %1938)
  br i1 %1939, label %.preheader476.3, label %2029

.preheader476.3:                                  ; preds = %.preheader476.2
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = add nsw i32 %1940, 1
  store i32 %1941, ptr @test_count, align 4, !tbaa !5
  %1942 = load i8, ptr %425, align 1, !tbaa !15
  %1943 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1942) #13
  %1944 = call zeroext i1 @s2n_result_is_ok(i32 %1943)
  br i1 %1944, label %.preheader476.4, label %2029

.preheader476.4:                                  ; preds = %.preheader476.3
  %1945 = load i32, ptr @test_count, align 4, !tbaa !5
  %1946 = add nsw i32 %1945, 1
  store i32 %1946, ptr @test_count, align 4, !tbaa !5
  %1947 = load i8, ptr %431, align 4, !tbaa !15
  %1948 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1947) #13
  %1949 = call zeroext i1 @s2n_result_is_ok(i32 %1948)
  br i1 %1949, label %.preheader476.5, label %2029

.preheader476.5:                                  ; preds = %.preheader476.4
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = add nsw i32 %1950, 1
  store i32 %1951, ptr @test_count, align 4, !tbaa !5
  %1952 = load i8, ptr %437, align 1, !tbaa !15
  %1953 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1952) #13
  %1954 = call zeroext i1 @s2n_result_is_ok(i32 %1953)
  br i1 %1954, label %.preheader476.6, label %2029

.preheader476.6:                                  ; preds = %.preheader476.5
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = add nsw i32 %1955, 1
  store i32 %1956, ptr @test_count, align 4, !tbaa !5
  %1957 = load i8, ptr %443, align 2, !tbaa !15
  %1958 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1957) #13
  %1959 = call zeroext i1 @s2n_result_is_ok(i32 %1958)
  br i1 %1959, label %.preheader476.7, label %2029

.preheader476.7:                                  ; preds = %.preheader476.6
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = add nsw i32 %1960, 1
  store i32 %1961, ptr @test_count, align 4, !tbaa !5
  %1962 = load i8, ptr %449, align 1, !tbaa !15
  %1963 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1962) #13
  %1964 = call zeroext i1 @s2n_result_is_ok(i32 %1963)
  br i1 %1964, label %.preheader476.8, label %2029

.preheader476.8:                                  ; preds = %.preheader476.7
  %1965 = load i32, ptr @test_count, align 4, !tbaa !5
  %1966 = add nsw i32 %1965, 1
  store i32 %1966, ptr @test_count, align 4, !tbaa !5
  %1967 = load i8, ptr %455, align 8, !tbaa !15
  %1968 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1967) #13
  %1969 = call zeroext i1 @s2n_result_is_ok(i32 %1968)
  br i1 %1969, label %.preheader476.9, label %2029

.preheader476.9:                                  ; preds = %.preheader476.8
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = add nsw i32 %1970, 1
  store i32 %1971, ptr @test_count, align 4, !tbaa !5
  %1972 = load i8, ptr %461, align 1, !tbaa !15
  %1973 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1972) #13
  %1974 = call zeroext i1 @s2n_result_is_ok(i32 %1973)
  br i1 %1974, label %.preheader476.10, label %2029

.preheader476.10:                                 ; preds = %.preheader476.9
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load i8, ptr %467, align 2, !tbaa !15
  %1978 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1977) #13
  %1979 = call zeroext i1 @s2n_result_is_ok(i32 %1978)
  br i1 %1979, label %.preheader476.11, label %2029

.preheader476.11:                                 ; preds = %.preheader476.10
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %1981 = add nsw i32 %1980, 1
  store i32 %1981, ptr @test_count, align 4, !tbaa !5
  %1982 = load i8, ptr %473, align 1, !tbaa !15
  %1983 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1982) #13
  %1984 = call zeroext i1 @s2n_result_is_ok(i32 %1983)
  br i1 %1984, label %.preheader476.12, label %2029

.preheader476.12:                                 ; preds = %.preheader476.11
  %1985 = load i32, ptr @test_count, align 4, !tbaa !5
  %1986 = add nsw i32 %1985, 1
  store i32 %1986, ptr @test_count, align 4, !tbaa !5
  %1987 = load i8, ptr %479, align 4, !tbaa !15
  %1988 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1987) #13
  %1989 = call zeroext i1 @s2n_result_is_ok(i32 %1988)
  br i1 %1989, label %.preheader476.13, label %2029

.preheader476.13:                                 ; preds = %.preheader476.12
  %1990 = load i32, ptr @test_count, align 4, !tbaa !5
  %1991 = add nsw i32 %1990, 1
  store i32 %1991, ptr @test_count, align 4, !tbaa !5
  %1992 = load i8, ptr %485, align 1, !tbaa !15
  %1993 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1992) #13
  %1994 = call zeroext i1 @s2n_result_is_ok(i32 %1993)
  br i1 %1994, label %.preheader476.14, label %2029

.preheader476.14:                                 ; preds = %.preheader476.13
  %1995 = load i32, ptr @test_count, align 4, !tbaa !5
  %1996 = add nsw i32 %1995, 1
  store i32 %1996, ptr @test_count, align 4, !tbaa !5
  %1997 = load i8, ptr %491, align 2, !tbaa !15
  %1998 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %1997) #13
  %1999 = call zeroext i1 @s2n_result_is_ok(i32 %1998)
  br i1 %1999, label %.preheader476.15, label %2029

.preheader476.15:                                 ; preds = %.preheader476.14
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = add nsw i32 %2000, 1
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = load i8, ptr %497, align 1, !tbaa !15
  %2003 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2002) #13
  %2004 = call zeroext i1 @s2n_result_is_ok(i32 %2003)
  br i1 %2004, label %.preheader476.16, label %2029

.preheader476.16:                                 ; preds = %.preheader476.15
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr @test_count, align 4, !tbaa !5
  %2007 = load i8, ptr %1063, align 16, !tbaa !15
  %2008 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2007) #13
  %2009 = call zeroext i1 @s2n_result_is_ok(i32 %2008)
  br i1 %2009, label %.preheader476.17, label %2029

.preheader476.17:                                 ; preds = %.preheader476.16
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = add nsw i32 %2010, 1
  store i32 %2011, ptr @test_count, align 4, !tbaa !5
  %2012 = load i8, ptr %1069, align 1, !tbaa !15
  %2013 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2012) #13
  %2014 = call zeroext i1 @s2n_result_is_ok(i32 %2013)
  br i1 %2014, label %.preheader476.18, label %2029

.preheader476.18:                                 ; preds = %.preheader476.17
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = add nsw i32 %2015, 1
  store i32 %2016, ptr @test_count, align 4, !tbaa !5
  %2017 = load i8, ptr %1075, align 2, !tbaa !15
  %2018 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2017) #13
  %2019 = call zeroext i1 @s2n_result_is_ok(i32 %2018)
  br i1 %2019, label %.preheader476.19, label %2029

.preheader476.19:                                 ; preds = %.preheader476.18
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr @test_count, align 4, !tbaa !5
  %2022 = load i8, ptr %1081, align 1, !tbaa !15
  %2023 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2022) #13
  %2024 = call zeroext i1 @s2n_result_is_ok(i32 %2023)
  br i1 %2024, label %2025, label %2029

2025:                                             ; preds = %.preheader476.19
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = add nsw i32 %2026, 1
  store i32 %2027, ptr @test_count, align 4, !tbaa !5
  %bcmp338 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.34, i64 40)
  %2028 = icmp eq i32 %bcmp338, 0
  br i1 %2028, label %2077, label %2053

2029:                                             ; preds = %.preheader476.19, %.preheader476.18, %.preheader476.17, %.preheader476.16, %.preheader476.15, %.preheader476.14, %.preheader476.13, %.preheader476.12, %.preheader476.11, %.preheader476.10, %.preheader476.9, %.preheader476.8, %.preheader476.7, %.preheader476.6, %.preheader476.5, %.preheader476.4, %.preheader476.3, %.preheader476.2, %.preheader476.1, %.preheader476.preheader
  %2030 = tail call ptr @__errno_location() #14
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = call i32 @s2n_print_stacktrace(ptr noundef %2032) #13
  %2034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2035 = trunc nuw i8 %2034 to i1
  br i1 %2035, label %2036, label %2040

2036:                                             ; preds = %2029
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @fileno(ptr noundef %2037) #13
  %2039 = call i32 @isatty(i32 noundef %2038) #13
  %.not422 = icmp eq i32 %2039, 0
  br i1 %.not422, label %2040, label %2041

2040:                                             ; preds = %2036, %2029
  br label %2041

2041:                                             ; preds = %2036, %2040
  %.str.4.sink1068 = phi ptr [ @.str.4, %2040 ], [ @.str, %2036 ]
  store i32 %2031, ptr %2030, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef nonnull @.str.3) #13
  %2047 = load i32, ptr %2044, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef nonnull @.str.3) #13
  %2049 = load i32, ptr %2030, align 4, !tbaa !5
  %2050 = call ptr @strerror(i32 noundef %2049) #13
  %2051 = load i32, ptr %2030, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef nonnull %.str.4.sink1068, i32 noundef %2043, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 147, ptr noundef %2046, ptr noundef %2048, ptr noundef %2050, i32 noundef %2051) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2053:                                             ; preds = %2025
  %2054 = tail call ptr @__errno_location() #14
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = call i32 @s2n_print_stacktrace(ptr noundef %2056) #13
  %2058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2059 = trunc nuw i8 %2058 to i1
  br i1 %2059, label %2060, label %2064

2060:                                             ; preds = %2053
  %2061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2062 = call i32 @fileno(ptr noundef %2061) #13
  %2063 = call i32 @isatty(i32 noundef %2062) #13
  %.not339 = icmp eq i32 %2063, 0
  br i1 %.not339, label %2064, label %2065

2064:                                             ; preds = %2060, %2053
  br label %2065

2065:                                             ; preds = %2060, %2064
  %.str.4.sink1079 = phi ptr [ @.str.4, %2064 ], [ @.str, %2060 ]
  store i32 %2055, ptr %2054, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call ptr @s2n_strerror(i32 noundef %2069, ptr noundef nonnull @.str.3) #13
  %2071 = load i32, ptr %2068, align 4, !tbaa !5
  %2072 = call ptr @s2n_strerror_debug(i32 noundef %2071, ptr noundef nonnull @.str.3) #13
  %2073 = load i32, ptr %2054, align 4, !tbaa !5
  %2074 = call ptr @strerror(i32 noundef %2073) #13
  %2075 = load i32, ptr %2054, align 4, !tbaa !5
  %2076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2066, ptr noundef nonnull %.str.4.sink1079, i32 noundef %2067, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 151, ptr noundef %2070, ptr noundef %2072, ptr noundef %2074, i32 noundef %2075) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2077:                                             ; preds = %2025
  %2078 = add nsw i32 %2026, 2
  store i32 %2078, ptr @test_count, align 4, !tbaa !5
  %2079 = call i32 @s2n_hmac_digest(ptr noundef nonnull %13, ptr noundef nonnull %3, i32 noundef 20) #13
  %2080 = icmp eq i32 %2079, -1
  br i1 %2080, label %2081, label %2105

2081:                                             ; preds = %2077
  %2082 = tail call ptr @__errno_location() #14
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @s2n_print_stacktrace(ptr noundef %2084) #13
  %2086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2087 = trunc nuw i8 %2086 to i1
  br i1 %2087, label %2088, label %2092

2088:                                             ; preds = %2081
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @fileno(ptr noundef %2089) #13
  %2091 = call i32 @isatty(i32 noundef %2090) #13
  %.not421 = icmp eq i32 %2091, 0
  br i1 %.not421, label %2092, label %2093

2092:                                             ; preds = %2088, %2081
  br label %2093

2093:                                             ; preds = %2088, %2092
  %.str.4.sink1090 = phi ptr [ @.str.4, %2092 ], [ @.str, %2088 ]
  store i32 %2083, ptr %2082, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2097 = load i32, ptr %2096, align 4, !tbaa !5
  %2098 = call ptr @s2n_strerror(i32 noundef %2097, ptr noundef nonnull @.str.3) #13
  %2099 = load i32, ptr %2096, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror_debug(i32 noundef %2099, ptr noundef nonnull @.str.3) #13
  %2101 = load i32, ptr %2082, align 4, !tbaa !5
  %2102 = call ptr @strerror(i32 noundef %2101) #13
  %2103 = load i32, ptr %2082, align 4, !tbaa !5
  %2104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef nonnull %.str.4.sink1090, i32 noundef %2095, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 154, ptr noundef %2098, ptr noundef %2100, ptr noundef %2102, i32 noundef %2103) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2105:                                             ; preds = %2077
  %2106 = load i32, ptr @test_count, align 4, !tbaa !5
  %2107 = add nsw i32 %2106, 1
  store i32 %2107, ptr @test_count, align 4, !tbaa !5
  %2108 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %2109 = icmp eq i32 %2108, -1
  br i1 %2109, label %2115, label %.preheader475.preheader

.preheader475.preheader:                          ; preds = %2105
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = add nsw i32 %2110, 1
  store i32 %2111, ptr @test_count, align 4, !tbaa !5
  %2112 = load i8, ptr %3, align 16, !tbaa !15
  %2113 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2112) #13
  %2114 = call zeroext i1 @s2n_result_is_ok(i32 %2113)
  br i1 %2114, label %.preheader475.1, label %2238

2115:                                             ; preds = %2105
  %2116 = tail call ptr @__errno_location() #14
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = call i32 @s2n_print_stacktrace(ptr noundef %2118) #13
  %2120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2121 = trunc nuw i8 %2120 to i1
  br i1 %2121, label %2122, label %2126

2122:                                             ; preds = %2115
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @fileno(ptr noundef %2123) #13
  %2125 = call i32 @isatty(i32 noundef %2124) #13
  %.not420 = icmp eq i32 %2125, 0
  br i1 %.not420, label %2126, label %2127

2126:                                             ; preds = %2122, %2115
  br label %2127

2127:                                             ; preds = %2122, %2126
  %.str.4.sink1101 = phi ptr [ @.str.4, %2126 ], [ @.str, %2122 ]
  store i32 %2117, ptr %2116, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef nonnull @.str.3) #13
  %2133 = load i32, ptr %2130, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror_debug(i32 noundef %2133, ptr noundef nonnull @.str.3) #13
  %2135 = load i32, ptr %2116, align 4, !tbaa !5
  %2136 = call ptr @strerror(i32 noundef %2135) #13
  %2137 = load i32, ptr %2116, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef nonnull %.str.4.sink1101, i32 noundef %2129, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 156, ptr noundef %2132, ptr noundef %2134, ptr noundef %2136, i32 noundef %2137) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader475.1:                                  ; preds = %.preheader475.preheader
  %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 = load i8, ptr %413, align 1, !tbaa !15
  %2142 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2141) #13
  %2143 = call zeroext i1 @s2n_result_is_ok(i32 %2142)
  br i1 %2143, label %.preheader475.2, label %2238

.preheader475.2:                                  ; preds = %.preheader475.1
  %2144 = load i32, ptr @test_count, align 4, !tbaa !5
  %2145 = add nsw i32 %2144, 1
  store i32 %2145, ptr @test_count, align 4, !tbaa !5
  %2146 = load i8, ptr %419, align 2, !tbaa !15
  %2147 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2146) #13
  %2148 = call zeroext i1 @s2n_result_is_ok(i32 %2147)
  br i1 %2148, label %.preheader475.3, label %2238

.preheader475.3:                                  ; preds = %.preheader475.2
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = add nsw i32 %2149, 1
  store i32 %2150, ptr @test_count, align 4, !tbaa !5
  %2151 = load i8, ptr %425, align 1, !tbaa !15
  %2152 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2151) #13
  %2153 = call zeroext i1 @s2n_result_is_ok(i32 %2152)
  br i1 %2153, label %.preheader475.4, label %2238

.preheader475.4:                                  ; preds = %.preheader475.3
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr @test_count, align 4, !tbaa !5
  %2156 = load i8, ptr %431, align 4, !tbaa !15
  %2157 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2156) #13
  %2158 = call zeroext i1 @s2n_result_is_ok(i32 %2157)
  br i1 %2158, label %.preheader475.5, label %2238

.preheader475.5:                                  ; preds = %.preheader475.4
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = load i8, ptr %437, align 1, !tbaa !15
  %2162 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2161) #13
  %2163 = call zeroext i1 @s2n_result_is_ok(i32 %2162)
  br i1 %2163, label %.preheader475.6, label %2238

.preheader475.6:                                  ; preds = %.preheader475.5
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = add nsw i32 %2164, 1
  store i32 %2165, ptr @test_count, align 4, !tbaa !5
  %2166 = load i8, ptr %443, align 2, !tbaa !15
  %2167 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2166) #13
  %2168 = call zeroext i1 @s2n_result_is_ok(i32 %2167)
  br i1 %2168, label %.preheader475.7, label %2238

.preheader475.7:                                  ; preds = %.preheader475.6
  %2169 = load i32, ptr @test_count, align 4, !tbaa !5
  %2170 = add nsw i32 %2169, 1
  store i32 %2170, ptr @test_count, align 4, !tbaa !5
  %2171 = load i8, ptr %449, align 1, !tbaa !15
  %2172 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2171) #13
  %2173 = call zeroext i1 @s2n_result_is_ok(i32 %2172)
  br i1 %2173, label %.preheader475.8, label %2238

.preheader475.8:                                  ; preds = %.preheader475.7
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = add nsw i32 %2174, 1
  store i32 %2175, ptr @test_count, align 4, !tbaa !5
  %2176 = load i8, ptr %455, align 8, !tbaa !15
  %2177 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2176) #13
  %2178 = call zeroext i1 @s2n_result_is_ok(i32 %2177)
  br i1 %2178, label %.preheader475.9, label %2238

.preheader475.9:                                  ; preds = %.preheader475.8
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = load i8, ptr %461, align 1, !tbaa !15
  %2182 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2181) #13
  %2183 = call zeroext i1 @s2n_result_is_ok(i32 %2182)
  br i1 %2183, label %.preheader475.10, label %2238

.preheader475.10:                                 ; preds = %.preheader475.9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = add nsw i32 %2184, 1
  store i32 %2185, ptr @test_count, align 4, !tbaa !5
  %2186 = load i8, ptr %467, align 2, !tbaa !15
  %2187 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2186) #13
  %2188 = call zeroext i1 @s2n_result_is_ok(i32 %2187)
  br i1 %2188, label %.preheader475.11, label %2238

.preheader475.11:                                 ; preds = %.preheader475.10
  %2189 = load i32, ptr @test_count, align 4, !tbaa !5
  %2190 = add nsw i32 %2189, 1
  store i32 %2190, ptr @test_count, align 4, !tbaa !5
  %2191 = load i8, ptr %473, align 1, !tbaa !15
  %2192 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2191) #13
  %2193 = call zeroext i1 @s2n_result_is_ok(i32 %2192)
  br i1 %2193, label %.preheader475.12, label %2238

.preheader475.12:                                 ; preds = %.preheader475.11
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = add nsw i32 %2194, 1
  store i32 %2195, ptr @test_count, align 4, !tbaa !5
  %2196 = load i8, ptr %479, align 4, !tbaa !15
  %2197 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2196) #13
  %2198 = call zeroext i1 @s2n_result_is_ok(i32 %2197)
  br i1 %2198, label %.preheader475.13, label %2238

.preheader475.13:                                 ; preds = %.preheader475.12
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = add nsw i32 %2199, 1
  store i32 %2200, ptr @test_count, align 4, !tbaa !5
  %2201 = load i8, ptr %485, align 1, !tbaa !15
  %2202 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2201) #13
  %2203 = call zeroext i1 @s2n_result_is_ok(i32 %2202)
  br i1 %2203, label %.preheader475.14, label %2238

.preheader475.14:                                 ; preds = %.preheader475.13
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = add nsw i32 %2204, 1
  store i32 %2205, ptr @test_count, align 4, !tbaa !5
  %2206 = load i8, ptr %491, align 2, !tbaa !15
  %2207 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2206) #13
  %2208 = call zeroext i1 @s2n_result_is_ok(i32 %2207)
  br i1 %2208, label %.preheader475.15, label %2238

.preheader475.15:                                 ; preds = %.preheader475.14
  %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 i8, ptr %497, align 1, !tbaa !15
  %2212 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2211) #13
  %2213 = call zeroext i1 @s2n_result_is_ok(i32 %2212)
  br i1 %2213, label %.preheader475.16, label %2238

.preheader475.16:                                 ; preds = %.preheader475.15
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = add nsw i32 %2214, 1
  store i32 %2215, ptr @test_count, align 4, !tbaa !5
  %2216 = load i8, ptr %1063, align 16, !tbaa !15
  %2217 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2216) #13
  %2218 = call zeroext i1 @s2n_result_is_ok(i32 %2217)
  br i1 %2218, label %.preheader475.17, label %2238

.preheader475.17:                                 ; preds = %.preheader475.16
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = add nsw i32 %2219, 1
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = load i8, ptr %1069, align 1, !tbaa !15
  %2222 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2221) #13
  %2223 = call zeroext i1 @s2n_result_is_ok(i32 %2222)
  br i1 %2223, label %.preheader475.18, label %2238

.preheader475.18:                                 ; preds = %.preheader475.17
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = add nsw i32 %2224, 1
  store i32 %2225, ptr @test_count, align 4, !tbaa !5
  %2226 = load i8, ptr %1075, align 2, !tbaa !15
  %2227 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2226) #13
  %2228 = call zeroext i1 @s2n_result_is_ok(i32 %2227)
  br i1 %2228, label %.preheader475.19, label %2238

.preheader475.19:                                 ; preds = %.preheader475.18
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = add nsw i32 %2229, 1
  store i32 %2230, ptr @test_count, align 4, !tbaa !5
  %2231 = load i8, ptr %1081, align 1, !tbaa !15
  %2232 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2231) #13
  %2233 = call zeroext i1 @s2n_result_is_ok(i32 %2232)
  br i1 %2233, label %2234, label %2238

2234:                                             ; preds = %.preheader475.19
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = add nsw i32 %2235, 1
  store i32 %2236, ptr @test_count, align 4, !tbaa !5
  %bcmp340 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.34, i64 40)
  %2237 = icmp eq i32 %bcmp340, 0
  br i1 %2237, label %2286, label %2262

2238:                                             ; preds = %.preheader475.19, %.preheader475.18, %.preheader475.17, %.preheader475.16, %.preheader475.15, %.preheader475.14, %.preheader475.13, %.preheader475.12, %.preheader475.11, %.preheader475.10, %.preheader475.9, %.preheader475.8, %.preheader475.7, %.preheader475.6, %.preheader475.5, %.preheader475.4, %.preheader475.3, %.preheader475.2, %.preheader475.1, %.preheader475.preheader
  %2239 = tail call ptr @__errno_location() #14
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @s2n_print_stacktrace(ptr noundef %2241) #13
  %2243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2244 = trunc nuw i8 %2243 to i1
  br i1 %2244, label %2245, label %2249

2245:                                             ; preds = %2238
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @fileno(ptr noundef %2246) #13
  %2248 = call i32 @isatty(i32 noundef %2247) #13
  %.not419 = icmp eq i32 %2248, 0
  br i1 %.not419, label %2249, label %2250

2249:                                             ; preds = %2245, %2238
  br label %2250

2250:                                             ; preds = %2245, %2249
  %.str.4.sink1112 = phi ptr [ @.str.4, %2249 ], [ @.str, %2245 ]
  store i32 %2240, ptr %2239, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2254, ptr noundef nonnull @.str.3) #13
  %2256 = load i32, ptr %2253, align 4, !tbaa !5
  %2257 = call ptr @s2n_strerror_debug(i32 noundef %2256, ptr noundef nonnull @.str.3) #13
  %2258 = load i32, ptr %2239, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #13
  %2260 = load i32, ptr %2239, align 4, !tbaa !5
  %2261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2251, ptr noundef nonnull %.str.4.sink1112, i32 noundef %2252, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 158, ptr noundef %2255, ptr noundef %2257, ptr noundef %2259, i32 noundef %2260) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2262:                                             ; preds = %2234
  %2263 = tail call ptr @__errno_location() #14
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @s2n_print_stacktrace(ptr noundef %2265) #13
  %2267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2268 = trunc nuw i8 %2267 to i1
  br i1 %2268, label %2269, label %2273

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

2273:                                             ; preds = %2269, %2262
  br label %2274

2274:                                             ; preds = %2269, %2273
  %.str.4.sink1123 = phi ptr [ @.str.4, %2273 ], [ @.str, %2269 ]
  store i32 %2264, ptr %2263, align 4, !tbaa !5
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror(i32 noundef %2278, ptr noundef nonnull @.str.3) #13
  %2280 = load i32, ptr %2277, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror_debug(i32 noundef %2280, ptr noundef nonnull @.str.3) #13
  %2282 = load i32, ptr %2263, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #13
  %2284 = load i32, ptr %2263, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2275, ptr noundef nonnull %.str.4.sink1123, i32 noundef %2276, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 162, ptr noundef %2279, ptr noundef %2281, ptr noundef %2283, i32 noundef %2284) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2286:                                             ; preds = %2234
  %2287 = add nsw i32 %2235, 2
  store i32 %2287, ptr @test_count, align 4, !tbaa !5
  %2288 = call i32 @s2n_hmac_reset(ptr noundef nonnull %12) #13
  %2289 = icmp eq i32 %2288, -1
  br i1 %2289, label %2290, label %2314

2290:                                             ; preds = %2286
  %2291 = tail call ptr @__errno_location() #14
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @s2n_print_stacktrace(ptr noundef %2293) #13
  %2295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2296 = trunc nuw i8 %2295 to i1
  br i1 %2296, label %2297, label %2301

2297:                                             ; preds = %2290
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = call i32 @fileno(ptr noundef %2298) #13
  %2300 = call i32 @isatty(i32 noundef %2299) #13
  %.not418 = icmp eq i32 %2300, 0
  br i1 %.not418, label %2301, label %2302

2301:                                             ; preds = %2297, %2290
  br label %2302

2302:                                             ; preds = %2297, %2301
  %.str.4.sink1134 = phi ptr [ @.str.4, %2301 ], [ @.str, %2297 ]
  store i32 %2292, ptr %2291, align 4, !tbaa !5
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror(i32 noundef %2306, ptr noundef nonnull @.str.3) #13
  %2308 = load i32, ptr %2305, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror_debug(i32 noundef %2308, ptr noundef nonnull @.str.3) #13
  %2310 = load i32, ptr %2291, align 4, !tbaa !5
  %2311 = call ptr @strerror(i32 noundef %2310) #13
  %2312 = load i32, ptr %2291, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2303, ptr noundef nonnull %.str.4.sink1134, i32 noundef %2304, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 165, ptr noundef %2307, ptr noundef %2309, ptr noundef %2311, i32 noundef %2312) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2314:                                             ; preds = %2286
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = add nsw i32 %2315, 1
  store i32 %2316, ptr @test_count, align 4, !tbaa !5
  %2317 = call i32 @s2n_hmac_reset(ptr noundef nonnull %13) #13
  %2318 = icmp eq i32 %2317, -1
  br i1 %2318, label %2319, label %2343

2319:                                             ; preds = %2314
  %2320 = tail call ptr @__errno_location() #14
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @s2n_print_stacktrace(ptr noundef %2322) #13
  %2324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2325 = trunc nuw i8 %2324 to i1
  br i1 %2325, label %2326, label %2330

2326:                                             ; preds = %2319
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @fileno(ptr noundef %2327) #13
  %2329 = call i32 @isatty(i32 noundef %2328) #13
  %.not417 = icmp eq i32 %2329, 0
  br i1 %.not417, label %2330, label %2331

2330:                                             ; preds = %2326, %2319
  br label %2331

2331:                                             ; preds = %2326, %2330
  %.str.4.sink1145 = phi ptr [ @.str.4, %2330 ], [ @.str, %2326 ]
  store i32 %2321, ptr %2320, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef nonnull @.str.3) #13
  %2337 = load i32, ptr %2334, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror_debug(i32 noundef %2337, ptr noundef nonnull @.str.3) #13
  %2339 = load i32, ptr %2320, align 4, !tbaa !5
  %2340 = call ptr @strerror(i32 noundef %2339) #13
  %2341 = load i32, ptr %2320, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef nonnull %.str.4.sink1145, i32 noundef %2333, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 166, ptr noundef %2336, ptr noundef %2338, ptr noundef %2340, i32 noundef %2341) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2343:                                             ; preds = %2314
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = add nsw i32 %2344, 1
  store i32 %2345, ptr @test_count, align 4, !tbaa !5
  %2346 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %10) #17
  %2347 = trunc i64 %2346 to i32
  %2348 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %10, i32 noundef %2347) #13
  %2349 = icmp eq i32 %2348, -1
  br i1 %2349, label %2350, label %2374

2350:                                             ; preds = %2343
  %2351 = tail call ptr @__errno_location() #14
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = call i32 @s2n_print_stacktrace(ptr noundef %2353) #13
  %2355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2356 = trunc nuw i8 %2355 to i1
  br i1 %2356, label %2357, label %2361

2357:                                             ; preds = %2350
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = call i32 @fileno(ptr noundef %2358) #13
  %2360 = call i32 @isatty(i32 noundef %2359) #13
  %.not416 = icmp eq i32 %2360, 0
  br i1 %.not416, label %2361, label %2362

2361:                                             ; preds = %2357, %2350
  br label %2362

2362:                                             ; preds = %2357, %2361
  %.str.4.sink1156 = phi ptr [ @.str.4, %2361 ], [ @.str, %2357 ]
  store i32 %2352, ptr %2351, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror(i32 noundef %2366, ptr noundef nonnull @.str.3) #13
  %2368 = load i32, ptr %2365, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror_debug(i32 noundef %2368, ptr noundef nonnull @.str.3) #13
  %2370 = load i32, ptr %2351, align 4, !tbaa !5
  %2371 = call ptr @strerror(i32 noundef %2370) #13
  %2372 = load i32, ptr %2351, align 4, !tbaa !5
  %2373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef nonnull %.str.4.sink1156, i32 noundef %2364, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 167, ptr noundef %2367, ptr noundef %2369, ptr noundef %2371, i32 noundef %2372) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2374:                                             ; preds = %2343
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = add nsw i32 %2375, 1
  store i32 %2376, ptr @test_count, align 4, !tbaa !5
  %2377 = call i32 @s2n_hmac_copy(ptr noundef nonnull %13, ptr noundef nonnull %12) #13
  %2378 = icmp eq i32 %2377, -1
  br i1 %2378, label %2379, label %2403

2379:                                             ; preds = %2374
  %2380 = tail call ptr @__errno_location() #14
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2383 = call i32 @s2n_print_stacktrace(ptr noundef %2382) #13
  %2384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2385 = trunc nuw i8 %2384 to i1
  br i1 %2385, label %2386, label %2390

2386:                                             ; preds = %2379
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = call i32 @fileno(ptr noundef %2387) #13
  %2389 = call i32 @isatty(i32 noundef %2388) #13
  %.not415 = icmp eq i32 %2389, 0
  br i1 %.not415, label %2390, label %2391

2390:                                             ; preds = %2386, %2379
  br label %2391

2391:                                             ; preds = %2386, %2390
  %.str.4.sink1167 = phi ptr [ @.str.4, %2390 ], [ @.str, %2386 ]
  store i32 %2381, ptr %2380, align 4, !tbaa !5
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = load i32, ptr @test_count, align 4, !tbaa !5
  %2394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2395 = load i32, ptr %2394, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror(i32 noundef %2395, ptr noundef nonnull @.str.3) #13
  %2397 = load i32, ptr %2394, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror_debug(i32 noundef %2397, ptr noundef nonnull @.str.3) #13
  %2399 = load i32, ptr %2380, align 4, !tbaa !5
  %2400 = call ptr @strerror(i32 noundef %2399) #13
  %2401 = load i32, ptr %2380, align 4, !tbaa !5
  %2402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2392, ptr noundef nonnull %.str.4.sink1167, i32 noundef %2393, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 168, ptr noundef %2396, ptr noundef %2398, ptr noundef %2400, i32 noundef %2401) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2403:                                             ; preds = %2374
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = add nsw i32 %2404, 1
  store i32 %2405, ptr @test_count, align 4, !tbaa !5
  %2406 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #17
  %2407 = trunc i64 %2406 to i32
  %2408 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %11, i32 noundef %2407) #13
  %2409 = icmp eq i32 %2408, -1
  br i1 %2409, label %2410, label %2434

2410:                                             ; preds = %2403
  %2411 = tail call ptr @__errno_location() #14
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = call i32 @s2n_print_stacktrace(ptr noundef %2413) #13
  %2415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2416 = trunc nuw i8 %2415 to i1
  br i1 %2416, label %2417, label %2421

2417:                                             ; preds = %2410
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @fileno(ptr noundef %2418) #13
  %2420 = call i32 @isatty(i32 noundef %2419) #13
  %.not414 = icmp eq i32 %2420, 0
  br i1 %.not414, label %2421, label %2422

2421:                                             ; preds = %2417, %2410
  br label %2422

2422:                                             ; preds = %2417, %2421
  %.str.4.sink1178 = phi ptr [ @.str.4, %2421 ], [ @.str, %2417 ]
  store i32 %2412, ptr %2411, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = load i32, ptr @test_count, align 4, !tbaa !5
  %2425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror(i32 noundef %2426, ptr noundef nonnull @.str.3) #13
  %2428 = load i32, ptr %2425, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror_debug(i32 noundef %2428, ptr noundef nonnull @.str.3) #13
  %2430 = load i32, ptr %2411, align 4, !tbaa !5
  %2431 = call ptr @strerror(i32 noundef %2430) #13
  %2432 = load i32, ptr %2411, align 4, !tbaa !5
  %2433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2423, ptr noundef nonnull %.str.4.sink1178, i32 noundef %2424, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 169, ptr noundef %2427, ptr noundef %2429, ptr noundef %2431, i32 noundef %2432) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2434:                                             ; preds = %2403
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = add nsw i32 %2435, 1
  store i32 %2436, ptr @test_count, align 4, !tbaa !5
  %2437 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 20) #13
  %2438 = icmp eq i32 %2437, -1
  br i1 %2438, label %2439, label %2463

2439:                                             ; preds = %2434
  %2440 = tail call ptr @__errno_location() #14
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442) #13
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc nuw i8 %2444 to i1
  br i1 %2445, label %2446, label %2450

2446:                                             ; preds = %2439
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @fileno(ptr noundef %2447) #13
  %2449 = call i32 @isatty(i32 noundef %2448) #13
  %.not413 = icmp eq i32 %2449, 0
  br i1 %.not413, label %2450, label %2451

2450:                                             ; preds = %2446, %2439
  br label %2451

2451:                                             ; preds = %2446, %2450
  %.str.4.sink1189 = phi ptr [ @.str.4, %2450 ], [ @.str, %2446 ]
  store i32 %2441, ptr %2440, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror(i32 noundef %2455, ptr noundef nonnull @.str.3) #13
  %2457 = load i32, ptr %2454, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef nonnull @.str.3) #13
  %2459 = load i32, ptr %2440, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #13
  %2461 = load i32, ptr %2440, align 4, !tbaa !5
  %2462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef nonnull %.str.4.sink1189, i32 noundef %2453, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 170, ptr noundef %2456, ptr noundef %2458, ptr noundef %2460, i32 noundef %2461) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2463:                                             ; preds = %2434
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = add nsw i32 %2464, 1
  store i32 %2465, ptr @test_count, align 4, !tbaa !5
  %2466 = call i32 @s2n_hmac_free(ptr noundef nonnull %12) #13
  %2467 = icmp eq i32 %2466, -1
  br i1 %2467, label %2468, label %2492

2468:                                             ; preds = %2463
  %2469 = tail call ptr @__errno_location() #14
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @s2n_print_stacktrace(ptr noundef %2471) #13
  %2473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2474 = trunc nuw i8 %2473 to i1
  br i1 %2474, label %2475, label %2479

2475:                                             ; preds = %2468
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = call i32 @fileno(ptr noundef %2476) #13
  %2478 = call i32 @isatty(i32 noundef %2477) #13
  %.not412 = icmp eq i32 %2478, 0
  br i1 %.not412, label %2479, label %2480

2479:                                             ; preds = %2475, %2468
  br label %2480

2480:                                             ; preds = %2475, %2479
  %.str.4.sink1200 = phi ptr [ @.str.4, %2479 ], [ @.str, %2475 ]
  store i32 %2470, ptr %2469, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2484, ptr noundef nonnull @.str.3) #13
  %2486 = load i32, ptr %2483, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror_debug(i32 noundef %2486, ptr noundef nonnull @.str.3) #13
  %2488 = load i32, ptr %2469, align 4, !tbaa !5
  %2489 = call ptr @strerror(i32 noundef %2488) #13
  %2490 = load i32, ptr %2469, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2481, ptr noundef nonnull %.str.4.sink1200, i32 noundef %2482, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 171, ptr noundef %2485, ptr noundef %2487, ptr noundef %2489, i32 noundef %2490) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2492:                                             ; preds = %2463
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %2496 = icmp eq i32 %2495, -1
  br i1 %2496, label %2502, label %.preheader474.preheader

.preheader474.preheader:                          ; preds = %2492
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = add nsw i32 %2497, 1
  store i32 %2498, ptr @test_count, align 4, !tbaa !5
  %2499 = load i8, ptr %3, align 16, !tbaa !15
  %2500 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2499) #13
  %2501 = call zeroext i1 @s2n_result_is_ok(i32 %2500)
  br i1 %2501, label %.preheader474.1, label %2625

2502:                                             ; preds = %2492
  %2503 = tail call ptr @__errno_location() #14
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = call i32 @s2n_print_stacktrace(ptr noundef %2505) #13
  %2507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2508 = trunc nuw i8 %2507 to i1
  br i1 %2508, label %2509, label %2513

2509:                                             ; preds = %2502
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = call i32 @fileno(ptr noundef %2510) #13
  %2512 = call i32 @isatty(i32 noundef %2511) #13
  %.not411 = icmp eq i32 %2512, 0
  br i1 %.not411, label %2513, label %2514

2513:                                             ; preds = %2509, %2502
  br label %2514

2514:                                             ; preds = %2509, %2513
  %.str.4.sink1211 = phi ptr [ @.str.4, %2513 ], [ @.str, %2509 ]
  store i32 %2504, ptr %2503, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror(i32 noundef %2518, ptr noundef nonnull @.str.3) #13
  %2520 = load i32, ptr %2517, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror_debug(i32 noundef %2520, ptr noundef nonnull @.str.3) #13
  %2522 = load i32, ptr %2503, align 4, !tbaa !5
  %2523 = call ptr @strerror(i32 noundef %2522) #13
  %2524 = load i32, ptr %2503, align 4, !tbaa !5
  %2525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2515, ptr noundef nonnull %.str.4.sink1211, i32 noundef %2516, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 173, ptr noundef %2519, ptr noundef %2521, ptr noundef %2523, i32 noundef %2524) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader474.1:                                  ; preds = %.preheader474.preheader
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = add nsw i32 %2526, 1
  store i32 %2527, ptr @test_count, align 4, !tbaa !5
  %2528 = load i8, ptr %413, align 1, !tbaa !15
  %2529 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2528) #13
  %2530 = call zeroext i1 @s2n_result_is_ok(i32 %2529)
  br i1 %2530, label %.preheader474.2, label %2625

.preheader474.2:                                  ; preds = %.preheader474.1
  %2531 = load i32, ptr @test_count, align 4, !tbaa !5
  %2532 = add nsw i32 %2531, 1
  store i32 %2532, ptr @test_count, align 4, !tbaa !5
  %2533 = load i8, ptr %419, align 2, !tbaa !15
  %2534 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2533) #13
  %2535 = call zeroext i1 @s2n_result_is_ok(i32 %2534)
  br i1 %2535, label %.preheader474.3, label %2625

.preheader474.3:                                  ; preds = %.preheader474.2
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = add nsw i32 %2536, 1
  store i32 %2537, ptr @test_count, align 4, !tbaa !5
  %2538 = load i8, ptr %425, align 1, !tbaa !15
  %2539 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2538) #13
  %2540 = call zeroext i1 @s2n_result_is_ok(i32 %2539)
  br i1 %2540, label %.preheader474.4, label %2625

.preheader474.4:                                  ; preds = %.preheader474.3
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = add nsw i32 %2541, 1
  store i32 %2542, ptr @test_count, align 4, !tbaa !5
  %2543 = load i8, ptr %431, align 4, !tbaa !15
  %2544 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2543) #13
  %2545 = call zeroext i1 @s2n_result_is_ok(i32 %2544)
  br i1 %2545, label %.preheader474.5, label %2625

.preheader474.5:                                  ; preds = %.preheader474.4
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = add nsw i32 %2546, 1
  store i32 %2547, ptr @test_count, align 4, !tbaa !5
  %2548 = load i8, ptr %437, align 1, !tbaa !15
  %2549 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2548) #13
  %2550 = call zeroext i1 @s2n_result_is_ok(i32 %2549)
  br i1 %2550, label %.preheader474.6, label %2625

.preheader474.6:                                  ; preds = %.preheader474.5
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = add nsw i32 %2551, 1
  store i32 %2552, ptr @test_count, align 4, !tbaa !5
  %2553 = load i8, ptr %443, align 2, !tbaa !15
  %2554 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2553) #13
  %2555 = call zeroext i1 @s2n_result_is_ok(i32 %2554)
  br i1 %2555, label %.preheader474.7, label %2625

.preheader474.7:                                  ; preds = %.preheader474.6
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = load i8, ptr %449, align 1, !tbaa !15
  %2559 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2558) #13
  %2560 = call zeroext i1 @s2n_result_is_ok(i32 %2559)
  br i1 %2560, label %.preheader474.8, label %2625

.preheader474.8:                                  ; preds = %.preheader474.7
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = add nsw i32 %2561, 1
  store i32 %2562, ptr @test_count, align 4, !tbaa !5
  %2563 = load i8, ptr %455, align 8, !tbaa !15
  %2564 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2563) #13
  %2565 = call zeroext i1 @s2n_result_is_ok(i32 %2564)
  br i1 %2565, label %.preheader474.9, label %2625

.preheader474.9:                                  ; preds = %.preheader474.8
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = add nsw i32 %2566, 1
  store i32 %2567, ptr @test_count, align 4, !tbaa !5
  %2568 = load i8, ptr %461, align 1, !tbaa !15
  %2569 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2568) #13
  %2570 = call zeroext i1 @s2n_result_is_ok(i32 %2569)
  br i1 %2570, label %.preheader474.10, label %2625

.preheader474.10:                                 ; preds = %.preheader474.9
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = load i8, ptr %467, align 2, !tbaa !15
  %2574 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2573) #13
  %2575 = call zeroext i1 @s2n_result_is_ok(i32 %2574)
  br i1 %2575, label %.preheader474.11, label %2625

.preheader474.11:                                 ; preds = %.preheader474.10
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = add nsw i32 %2576, 1
  store i32 %2577, ptr @test_count, align 4, !tbaa !5
  %2578 = load i8, ptr %473, align 1, !tbaa !15
  %2579 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2578) #13
  %2580 = call zeroext i1 @s2n_result_is_ok(i32 %2579)
  br i1 %2580, label %.preheader474.12, label %2625

.preheader474.12:                                 ; preds = %.preheader474.11
  %2581 = load i32, ptr @test_count, align 4, !tbaa !5
  %2582 = add nsw i32 %2581, 1
  store i32 %2582, ptr @test_count, align 4, !tbaa !5
  %2583 = load i8, ptr %479, align 4, !tbaa !15
  %2584 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2583) #13
  %2585 = call zeroext i1 @s2n_result_is_ok(i32 %2584)
  br i1 %2585, label %.preheader474.13, label %2625

.preheader474.13:                                 ; preds = %.preheader474.12
  %2586 = load i32, ptr @test_count, align 4, !tbaa !5
  %2587 = add nsw i32 %2586, 1
  store i32 %2587, ptr @test_count, align 4, !tbaa !5
  %2588 = load i8, ptr %485, align 1, !tbaa !15
  %2589 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2588) #13
  %2590 = call zeroext i1 @s2n_result_is_ok(i32 %2589)
  br i1 %2590, label %.preheader474.14, label %2625

.preheader474.14:                                 ; preds = %.preheader474.13
  %2591 = load i32, ptr @test_count, align 4, !tbaa !5
  %2592 = add nsw i32 %2591, 1
  store i32 %2592, ptr @test_count, align 4, !tbaa !5
  %2593 = load i8, ptr %491, align 2, !tbaa !15
  %2594 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2593) #13
  %2595 = call zeroext i1 @s2n_result_is_ok(i32 %2594)
  br i1 %2595, label %.preheader474.15, label %2625

.preheader474.15:                                 ; preds = %.preheader474.14
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = add nsw i32 %2596, 1
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = load i8, ptr %497, align 1, !tbaa !15
  %2599 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2598) #13
  %2600 = call zeroext i1 @s2n_result_is_ok(i32 %2599)
  br i1 %2600, label %.preheader474.16, label %2625

.preheader474.16:                                 ; preds = %.preheader474.15
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = add nsw i32 %2601, 1
  store i32 %2602, ptr @test_count, align 4, !tbaa !5
  %2603 = load i8, ptr %1063, align 16, !tbaa !15
  %2604 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2603) #13
  %2605 = call zeroext i1 @s2n_result_is_ok(i32 %2604)
  br i1 %2605, label %.preheader474.17, label %2625

.preheader474.17:                                 ; preds = %.preheader474.16
  %2606 = load i32, ptr @test_count, align 4, !tbaa !5
  %2607 = add nsw i32 %2606, 1
  store i32 %2607, ptr @test_count, align 4, !tbaa !5
  %2608 = load i8, ptr %1069, align 1, !tbaa !15
  %2609 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2608) #13
  %2610 = call zeroext i1 @s2n_result_is_ok(i32 %2609)
  br i1 %2610, label %.preheader474.18, label %2625

.preheader474.18:                                 ; preds = %.preheader474.17
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = add nsw i32 %2611, 1
  store i32 %2612, ptr @test_count, align 4, !tbaa !5
  %2613 = load i8, ptr %1075, align 2, !tbaa !15
  %2614 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2613) #13
  %2615 = call zeroext i1 @s2n_result_is_ok(i32 %2614)
  br i1 %2615, label %.preheader474.19, label %2625

.preheader474.19:                                 ; preds = %.preheader474.18
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = add nsw i32 %2616, 1
  store i32 %2617, ptr @test_count, align 4, !tbaa !5
  %2618 = load i8, ptr %1081, align 1, !tbaa !15
  %2619 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2618) #13
  %2620 = call zeroext i1 @s2n_result_is_ok(i32 %2619)
  br i1 %2620, label %2621, label %2625

2621:                                             ; preds = %.preheader474.19
  %2622 = load i32, ptr @test_count, align 4, !tbaa !5
  %2623 = add nsw i32 %2622, 1
  store i32 %2623, ptr @test_count, align 4, !tbaa !5
  %bcmp342 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.41, i64 40)
  %2624 = icmp eq i32 %bcmp342, 0
  br i1 %2624, label %2673, label %2649

2625:                                             ; preds = %.preheader474.19, %.preheader474.18, %.preheader474.17, %.preheader474.16, %.preheader474.15, %.preheader474.14, %.preheader474.13, %.preheader474.12, %.preheader474.11, %.preheader474.10, %.preheader474.9, %.preheader474.8, %.preheader474.7, %.preheader474.6, %.preheader474.5, %.preheader474.4, %.preheader474.3, %.preheader474.2, %.preheader474.1, %.preheader474.preheader
  %2626 = tail call ptr @__errno_location() #14
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = call i32 @s2n_print_stacktrace(ptr noundef %2628) #13
  %2630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2631 = trunc nuw i8 %2630 to i1
  br i1 %2631, label %2632, label %2636

2632:                                             ; preds = %2625
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = call i32 @fileno(ptr noundef %2633) #13
  %2635 = call i32 @isatty(i32 noundef %2634) #13
  %.not410 = icmp eq i32 %2635, 0
  br i1 %.not410, label %2636, label %2637

2636:                                             ; preds = %2632, %2625
  br label %2637

2637:                                             ; preds = %2632, %2636
  %.str.4.sink1222 = phi ptr [ @.str.4, %2636 ], [ @.str, %2632 ]
  store i32 %2627, ptr %2626, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = load i32, ptr @test_count, align 4, !tbaa !5
  %2640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  %2642 = call ptr @s2n_strerror(i32 noundef %2641, ptr noundef nonnull @.str.3) #13
  %2643 = load i32, ptr %2640, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror_debug(i32 noundef %2643, ptr noundef nonnull @.str.3) #13
  %2645 = load i32, ptr %2626, align 4, !tbaa !5
  %2646 = call ptr @strerror(i32 noundef %2645) #13
  %2647 = load i32, ptr %2626, align 4, !tbaa !5
  %2648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2638, ptr noundef nonnull %.str.4.sink1222, i32 noundef %2639, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 175, ptr noundef %2642, ptr noundef %2644, ptr noundef %2646, i32 noundef %2647) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2649:                                             ; preds = %2621
  %2650 = tail call ptr @__errno_location() #14
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = call i32 @s2n_print_stacktrace(ptr noundef %2652) #13
  %2654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2655 = trunc nuw i8 %2654 to i1
  br i1 %2655, label %2656, label %2660

2656:                                             ; preds = %2649
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @fileno(ptr noundef %2657) #13
  %2659 = call i32 @isatty(i32 noundef %2658) #13
  %.not343 = icmp eq i32 %2659, 0
  br i1 %.not343, label %2660, label %2661

2660:                                             ; preds = %2656, %2649
  br label %2661

2661:                                             ; preds = %2656, %2660
  %.str.4.sink1233 = phi ptr [ @.str.4, %2660 ], [ @.str, %2656 ]
  store i32 %2651, ptr %2650, align 4, !tbaa !5
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @s2n_strerror(i32 noundef %2665, ptr noundef nonnull @.str.3) #13
  %2667 = load i32, ptr %2664, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror_debug(i32 noundef %2667, ptr noundef nonnull @.str.3) #13
  %2669 = load i32, ptr %2650, align 4, !tbaa !5
  %2670 = call ptr @strerror(i32 noundef %2669) #13
  %2671 = load i32, ptr %2650, align 4, !tbaa !5
  %2672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2662, ptr noundef nonnull %.str.4.sink1233, i32 noundef %2663, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 179, ptr noundef %2666, ptr noundef %2668, ptr noundef %2670, i32 noundef %2671) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2673:                                             ; preds = %2621
  %2674 = add nsw i32 %2622, 2
  store i32 %2674, ptr @test_count, align 4, !tbaa !5
  %2675 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #17
  %2676 = trunc i64 %2675 to i32
  %2677 = call i32 @s2n_hmac_update(ptr noundef nonnull %13, ptr noundef nonnull %11, i32 noundef %2676) #13
  %2678 = icmp eq i32 %2677, -1
  br i1 %2678, label %2679, label %2703

2679:                                             ; preds = %2673
  %2680 = tail call ptr @__errno_location() #14
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @s2n_print_stacktrace(ptr noundef %2682) #13
  %2684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2685 = trunc nuw i8 %2684 to i1
  br i1 %2685, label %2686, label %2690

2686:                                             ; preds = %2679
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = call i32 @fileno(ptr noundef %2687) #13
  %2689 = call i32 @isatty(i32 noundef %2688) #13
  %.not409 = icmp eq i32 %2689, 0
  br i1 %.not409, label %2690, label %2691

2690:                                             ; preds = %2686, %2679
  br label %2691

2691:                                             ; preds = %2686, %2690
  %.str.4.sink1244 = phi ptr [ @.str.4, %2690 ], [ @.str, %2686 ]
  store i32 %2681, ptr %2680, align 4, !tbaa !5
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = load i32, ptr @test_count, align 4, !tbaa !5
  %2694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror(i32 noundef %2695, ptr noundef nonnull @.str.3) #13
  %2697 = load i32, ptr %2694, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror_debug(i32 noundef %2697, ptr noundef nonnull @.str.3) #13
  %2699 = load i32, ptr %2680, align 4, !tbaa !5
  %2700 = call ptr @strerror(i32 noundef %2699) #13
  %2701 = load i32, ptr %2680, align 4, !tbaa !5
  %2702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2692, ptr noundef nonnull %.str.4.sink1244, i32 noundef %2693, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 182, ptr noundef %2696, ptr noundef %2698, ptr noundef %2700, i32 noundef %2701) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2703:                                             ; preds = %2673
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = add nsw i32 %2704, 1
  store i32 %2705, ptr @test_count, align 4, !tbaa !5
  %2706 = call i32 @s2n_hmac_digest(ptr noundef nonnull %13, ptr noundef nonnull %3, i32 noundef 20) #13
  %2707 = icmp eq i32 %2706, -1
  br i1 %2707, label %2708, label %2732

2708:                                             ; preds = %2703
  %2709 = tail call ptr @__errno_location() #14
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @s2n_print_stacktrace(ptr noundef %2711) #13
  %2713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2714 = trunc nuw i8 %2713 to i1
  br i1 %2714, label %2715, label %2719

2715:                                             ; preds = %2708
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @fileno(ptr noundef %2716) #13
  %2718 = call i32 @isatty(i32 noundef %2717) #13
  %.not408 = icmp eq i32 %2718, 0
  br i1 %.not408, label %2719, label %2720

2719:                                             ; preds = %2715, %2708
  br label %2720

2720:                                             ; preds = %2715, %2719
  %.str.4.sink1255 = phi ptr [ @.str.4, %2719 ], [ @.str, %2715 ]
  store i32 %2710, ptr %2709, align 4, !tbaa !5
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = load i32, ptr @test_count, align 4, !tbaa !5
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef nonnull @.str.3) #13
  %2726 = load i32, ptr %2723, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef nonnull @.str.3) #13
  %2728 = load i32, ptr %2709, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #13
  %2730 = load i32, ptr %2709, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2721, ptr noundef nonnull %.str.4.sink1255, i32 noundef %2722, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 183, ptr noundef %2725, ptr noundef %2727, ptr noundef %2729, i32 noundef %2730) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2732:                                             ; preds = %2703
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = add nsw i32 %2733, 1
  store i32 %2734, ptr @test_count, align 4, !tbaa !5
  %2735 = call i32 @s2n_hmac_free(ptr noundef nonnull %13) #13
  %2736 = icmp eq i32 %2735, -1
  br i1 %2736, label %2737, label %2761

2737:                                             ; preds = %2732
  %2738 = tail call ptr @__errno_location() #14
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @s2n_print_stacktrace(ptr noundef %2740) #13
  %2742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2743 = trunc nuw i8 %2742 to i1
  br i1 %2743, label %2744, label %2748

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

2748:                                             ; preds = %2744, %2737
  br label %2749

2749:                                             ; preds = %2744, %2748
  %.str.4.sink1266 = phi ptr [ @.str.4, %2748 ], [ @.str, %2744 ]
  store i32 %2739, ptr %2738, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = load i32, ptr @test_count, align 4, !tbaa !5
  %2752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @s2n_strerror(i32 noundef %2753, ptr noundef nonnull @.str.3) #13
  %2755 = load i32, ptr %2752, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef nonnull @.str.3) #13
  %2757 = load i32, ptr %2738, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #13
  %2759 = load i32, ptr %2738, align 4, !tbaa !5
  %2760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2750, ptr noundef nonnull %.str.4.sink1266, i32 noundef %2751, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 184, ptr noundef %2754, ptr noundef %2756, ptr noundef %2758, i32 noundef %2759) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2761:                                             ; preds = %2732
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = add nsw i32 %2762, 1
  store i32 %2763, ptr @test_count, align 4, !tbaa !5
  %2764 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %2765 = icmp eq i32 %2764, -1
  br i1 %2765, label %2771, label %.preheader473.preheader

.preheader473.preheader:                          ; preds = %2761
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = add nsw i32 %2766, 1
  store i32 %2767, ptr @test_count, align 4, !tbaa !5
  %2768 = load i8, ptr %3, align 16, !tbaa !15
  %2769 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2768) #13
  %2770 = call zeroext i1 @s2n_result_is_ok(i32 %2769)
  br i1 %2770, label %.preheader473.1, label %2894

2771:                                             ; preds = %2761
  %2772 = tail call ptr @__errno_location() #14
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @s2n_print_stacktrace(ptr noundef %2774) #13
  %2776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2777 = trunc nuw i8 %2776 to i1
  br i1 %2777, label %2778, label %2782

2778:                                             ; preds = %2771
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = call i32 @fileno(ptr noundef %2779) #13
  %2781 = call i32 @isatty(i32 noundef %2780) #13
  %.not406 = icmp eq i32 %2781, 0
  br i1 %.not406, label %2782, label %2783

2782:                                             ; preds = %2778, %2771
  br label %2783

2783:                                             ; preds = %2778, %2782
  %.str.4.sink1277 = phi ptr [ @.str.4, %2782 ], [ @.str, %2778 ]
  store i32 %2773, ptr %2772, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = load i32, ptr @test_count, align 4, !tbaa !5
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror(i32 noundef %2787, ptr noundef nonnull @.str.3) #13
  %2789 = load i32, ptr %2786, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef nonnull @.str.3) #13
  %2791 = load i32, ptr %2772, align 4, !tbaa !5
  %2792 = call ptr @strerror(i32 noundef %2791) #13
  %2793 = load i32, ptr %2772, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2784, ptr noundef nonnull %.str.4.sink1277, i32 noundef %2785, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 186, ptr noundef %2788, ptr noundef %2790, ptr noundef %2792, i32 noundef %2793) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader473.1:                                  ; preds = %.preheader473.preheader
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = add nsw i32 %2795, 1
  store i32 %2796, ptr @test_count, align 4, !tbaa !5
  %2797 = load i8, ptr %413, align 1, !tbaa !15
  %2798 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2797) #13
  %2799 = call zeroext i1 @s2n_result_is_ok(i32 %2798)
  br i1 %2799, label %.preheader473.2, label %2894

.preheader473.2:                                  ; preds = %.preheader473.1
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = add nsw i32 %2800, 1
  store i32 %2801, ptr @test_count, align 4, !tbaa !5
  %2802 = load i8, ptr %419, align 2, !tbaa !15
  %2803 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2802) #13
  %2804 = call zeroext i1 @s2n_result_is_ok(i32 %2803)
  br i1 %2804, label %.preheader473.3, label %2894

.preheader473.3:                                  ; preds = %.preheader473.2
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = add nsw i32 %2805, 1
  store i32 %2806, ptr @test_count, align 4, !tbaa !5
  %2807 = load i8, ptr %425, align 1, !tbaa !15
  %2808 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2807) #13
  %2809 = call zeroext i1 @s2n_result_is_ok(i32 %2808)
  br i1 %2809, label %.preheader473.4, label %2894

.preheader473.4:                                  ; preds = %.preheader473.3
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr @test_count, align 4, !tbaa !5
  %2812 = load i8, ptr %431, align 4, !tbaa !15
  %2813 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2812) #13
  %2814 = call zeroext i1 @s2n_result_is_ok(i32 %2813)
  br i1 %2814, label %.preheader473.5, label %2894

.preheader473.5:                                  ; preds = %.preheader473.4
  %2815 = load i32, ptr @test_count, align 4, !tbaa !5
  %2816 = add nsw i32 %2815, 1
  store i32 %2816, ptr @test_count, align 4, !tbaa !5
  %2817 = load i8, ptr %437, align 1, !tbaa !15
  %2818 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2817) #13
  %2819 = call zeroext i1 @s2n_result_is_ok(i32 %2818)
  br i1 %2819, label %.preheader473.6, label %2894

.preheader473.6:                                  ; preds = %.preheader473.5
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = add nsw i32 %2820, 1
  store i32 %2821, ptr @test_count, align 4, !tbaa !5
  %2822 = load i8, ptr %443, align 2, !tbaa !15
  %2823 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2822) #13
  %2824 = call zeroext i1 @s2n_result_is_ok(i32 %2823)
  br i1 %2824, label %.preheader473.7, label %2894

.preheader473.7:                                  ; preds = %.preheader473.6
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = add nsw i32 %2825, 1
  store i32 %2826, ptr @test_count, align 4, !tbaa !5
  %2827 = load i8, ptr %449, align 1, !tbaa !15
  %2828 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2827) #13
  %2829 = call zeroext i1 @s2n_result_is_ok(i32 %2828)
  br i1 %2829, label %.preheader473.8, label %2894

.preheader473.8:                                  ; preds = %.preheader473.7
  %2830 = load i32, ptr @test_count, align 4, !tbaa !5
  %2831 = add nsw i32 %2830, 1
  store i32 %2831, ptr @test_count, align 4, !tbaa !5
  %2832 = load i8, ptr %455, align 8, !tbaa !15
  %2833 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2832) #13
  %2834 = call zeroext i1 @s2n_result_is_ok(i32 %2833)
  br i1 %2834, label %.preheader473.9, label %2894

.preheader473.9:                                  ; preds = %.preheader473.8
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = add nsw i32 %2835, 1
  store i32 %2836, ptr @test_count, align 4, !tbaa !5
  %2837 = load i8, ptr %461, align 1, !tbaa !15
  %2838 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2837) #13
  %2839 = call zeroext i1 @s2n_result_is_ok(i32 %2838)
  br i1 %2839, label %.preheader473.10, label %2894

.preheader473.10:                                 ; preds = %.preheader473.9
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = add nsw i32 %2840, 1
  store i32 %2841, ptr @test_count, align 4, !tbaa !5
  %2842 = load i8, ptr %467, align 2, !tbaa !15
  %2843 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2842) #13
  %2844 = call zeroext i1 @s2n_result_is_ok(i32 %2843)
  br i1 %2844, label %.preheader473.11, label %2894

.preheader473.11:                                 ; preds = %.preheader473.10
  %2845 = load i32, ptr @test_count, align 4, !tbaa !5
  %2846 = add nsw i32 %2845, 1
  store i32 %2846, ptr @test_count, align 4, !tbaa !5
  %2847 = load i8, ptr %473, align 1, !tbaa !15
  %2848 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2847) #13
  %2849 = call zeroext i1 @s2n_result_is_ok(i32 %2848)
  br i1 %2849, label %.preheader473.12, label %2894

.preheader473.12:                                 ; preds = %.preheader473.11
  %2850 = load i32, ptr @test_count, align 4, !tbaa !5
  %2851 = add nsw i32 %2850, 1
  store i32 %2851, ptr @test_count, align 4, !tbaa !5
  %2852 = load i8, ptr %479, align 4, !tbaa !15
  %2853 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2852) #13
  %2854 = call zeroext i1 @s2n_result_is_ok(i32 %2853)
  br i1 %2854, label %.preheader473.13, label %2894

.preheader473.13:                                 ; preds = %.preheader473.12
  %2855 = load i32, ptr @test_count, align 4, !tbaa !5
  %2856 = add nsw i32 %2855, 1
  store i32 %2856, ptr @test_count, align 4, !tbaa !5
  %2857 = load i8, ptr %485, align 1, !tbaa !15
  %2858 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2857) #13
  %2859 = call zeroext i1 @s2n_result_is_ok(i32 %2858)
  br i1 %2859, label %.preheader473.14, label %2894

.preheader473.14:                                 ; preds = %.preheader473.13
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = add nsw i32 %2860, 1
  store i32 %2861, ptr @test_count, align 4, !tbaa !5
  %2862 = load i8, ptr %491, align 2, !tbaa !15
  %2863 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2862) #13
  %2864 = call zeroext i1 @s2n_result_is_ok(i32 %2863)
  br i1 %2864, label %.preheader473.15, label %2894

.preheader473.15:                                 ; preds = %.preheader473.14
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = add nsw i32 %2865, 1
  store i32 %2866, ptr @test_count, align 4, !tbaa !5
  %2867 = load i8, ptr %497, align 1, !tbaa !15
  %2868 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2867) #13
  %2869 = call zeroext i1 @s2n_result_is_ok(i32 %2868)
  br i1 %2869, label %.preheader473.16, label %2894

.preheader473.16:                                 ; preds = %.preheader473.15
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = add nsw i32 %2870, 1
  store i32 %2871, ptr @test_count, align 4, !tbaa !5
  %2872 = load i8, ptr %1063, align 16, !tbaa !15
  %2873 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2872) #13
  %2874 = call zeroext i1 @s2n_result_is_ok(i32 %2873)
  br i1 %2874, label %.preheader473.17, label %2894

.preheader473.17:                                 ; preds = %.preheader473.16
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = load i8, ptr %1069, align 1, !tbaa !15
  %2878 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2877) #13
  %2879 = call zeroext i1 @s2n_result_is_ok(i32 %2878)
  br i1 %2879, label %.preheader473.18, label %2894

.preheader473.18:                                 ; preds = %.preheader473.17
  %2880 = load i32, ptr @test_count, align 4, !tbaa !5
  %2881 = add nsw i32 %2880, 1
  store i32 %2881, ptr @test_count, align 4, !tbaa !5
  %2882 = load i8, ptr %1075, align 2, !tbaa !15
  %2883 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2882) #13
  %2884 = call zeroext i1 @s2n_result_is_ok(i32 %2883)
  br i1 %2884, label %.preheader473.19, label %2894

.preheader473.19:                                 ; preds = %.preheader473.18
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = load i8, ptr %1081, align 1, !tbaa !15
  %2888 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %2887) #13
  %2889 = call zeroext i1 @s2n_result_is_ok(i32 %2888)
  br i1 %2889, label %2890, label %2894

2890:                                             ; preds = %.preheader473.19
  %2891 = load i32, ptr @test_count, align 4, !tbaa !5
  %2892 = add nsw i32 %2891, 1
  store i32 %2892, ptr @test_count, align 4, !tbaa !5
  %bcmp344 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.41, i64 40)
  %2893 = icmp eq i32 %bcmp344, 0
  br i1 %2893, label %2942, label %2918

2894:                                             ; preds = %.preheader473.19, %.preheader473.18, %.preheader473.17, %.preheader473.16, %.preheader473.15, %.preheader473.14, %.preheader473.13, %.preheader473.12, %.preheader473.11, %.preheader473.10, %.preheader473.9, %.preheader473.8, %.preheader473.7, %.preheader473.6, %.preheader473.5, %.preheader473.4, %.preheader473.3, %.preheader473.2, %.preheader473.1, %.preheader473.preheader
  %2895 = tail call ptr @__errno_location() #14
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2898 = call i32 @s2n_print_stacktrace(ptr noundef %2897) #13
  %2899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2900 = trunc nuw i8 %2899 to i1
  br i1 %2900, label %2901, label %2905

2901:                                             ; preds = %2894
  %2902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2903 = call i32 @fileno(ptr noundef %2902) #13
  %2904 = call i32 @isatty(i32 noundef %2903) #13
  %.not405 = icmp eq i32 %2904, 0
  br i1 %.not405, label %2905, label %2906

2905:                                             ; preds = %2901, %2894
  br label %2906

2906:                                             ; preds = %2901, %2905
  %.str.4.sink1288 = phi ptr [ @.str.4, %2905 ], [ @.str, %2901 ]
  store i32 %2896, ptr %2895, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror(i32 noundef %2910, ptr noundef nonnull @.str.3) #13
  %2912 = load i32, ptr %2909, align 4, !tbaa !5
  %2913 = call ptr @s2n_strerror_debug(i32 noundef %2912, ptr noundef nonnull @.str.3) #13
  %2914 = load i32, ptr %2895, align 4, !tbaa !5
  %2915 = call ptr @strerror(i32 noundef %2914) #13
  %2916 = load i32, ptr %2895, align 4, !tbaa !5
  %2917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2907, ptr noundef nonnull %.str.4.sink1288, i32 noundef %2908, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 188, ptr noundef %2911, ptr noundef %2913, ptr noundef %2915, i32 noundef %2916) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2918:                                             ; preds = %2890
  %2919 = tail call ptr @__errno_location() #14
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = call i32 @s2n_print_stacktrace(ptr noundef %2921) #13
  %2923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2924 = trunc nuw i8 %2923 to i1
  br i1 %2924, label %2925, label %2929

2925:                                             ; preds = %2918
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = call i32 @fileno(ptr noundef %2926) #13
  %2928 = call i32 @isatty(i32 noundef %2927) #13
  %.not345 = icmp eq i32 %2928, 0
  br i1 %.not345, label %2929, label %2930

2929:                                             ; preds = %2925, %2918
  br label %2930

2930:                                             ; preds = %2925, %2929
  %.str.4.sink1299 = phi ptr [ @.str.4, %2929 ], [ @.str, %2925 ]
  store i32 %2920, ptr %2919, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror(i32 noundef %2934, ptr noundef nonnull @.str.3) #13
  %2936 = load i32, ptr %2933, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror_debug(i32 noundef %2936, ptr noundef nonnull @.str.3) #13
  %2938 = load i32, ptr %2919, align 4, !tbaa !5
  %2939 = call ptr @strerror(i32 noundef %2938) #13
  %2940 = load i32, ptr %2919, align 4, !tbaa !5
  %2941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2931, ptr noundef nonnull %.str.4.sink1299, i32 noundef %2932, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 192, ptr noundef %2935, ptr noundef %2937, ptr noundef %2939, i32 noundef %2940) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2942:                                             ; preds = %2890
  %2943 = add nsw i32 %2891, 2
  store i32 %2943, ptr @test_count, align 4, !tbaa !5
  %2944 = call i32 @s2n_hmac_new(ptr noundef nonnull %12) #13
  %2945 = icmp eq i32 %2944, -1
  br i1 %2945, label %2946, label %2970

2946:                                             ; preds = %2942
  %2947 = tail call ptr @__errno_location() #14
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = call i32 @s2n_print_stacktrace(ptr noundef %2949) #13
  %2951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2952 = trunc nuw i8 %2951 to i1
  br i1 %2952, label %2953, label %2957

2953:                                             ; preds = %2946
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @fileno(ptr noundef %2954) #13
  %2956 = call i32 @isatty(i32 noundef %2955) #13
  %.not404 = icmp eq i32 %2956, 0
  br i1 %.not404, label %2957, label %2958

2957:                                             ; preds = %2953, %2946
  br label %2958

2958:                                             ; preds = %2953, %2957
  %.str.4.sink1310 = phi ptr [ @.str.4, %2957 ], [ @.str, %2953 ]
  store i32 %2948, ptr %2947, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror(i32 noundef %2962, ptr noundef nonnull @.str.3) #13
  %2964 = load i32, ptr %2961, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror_debug(i32 noundef %2964, ptr noundef nonnull @.str.3) #13
  %2966 = load i32, ptr %2947, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #13
  %2968 = load i32, ptr %2947, align 4, !tbaa !5
  %2969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2959, ptr noundef nonnull %.str.4.sink1310, i32 noundef %2960, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 195, ptr noundef %2963, ptr noundef %2965, ptr noundef %2967, i32 noundef %2968) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2970:                                             ; preds = %2942
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = add nsw i32 %2971, 1
  store i32 %2972, ptr @test_count, align 4, !tbaa !5
  %2973 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #17
  %2974 = trunc i64 %2973 to i32
  %2975 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 2, ptr noundef nonnull %8, i32 noundef %2974) #13
  %2976 = icmp eq i32 %2975, -1
  br i1 %2976, label %2977, label %3001

2977:                                             ; preds = %2970
  %2978 = tail call ptr @__errno_location() #14
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @s2n_print_stacktrace(ptr noundef %2980) #13
  %2982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2983 = trunc nuw i8 %2982 to i1
  br i1 %2983, label %2984, label %2988

2984:                                             ; preds = %2977
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = call i32 @fileno(ptr noundef %2985) #13
  %2987 = call i32 @isatty(i32 noundef %2986) #13
  %.not403 = icmp eq i32 %2987, 0
  br i1 %.not403, label %2988, label %2989

2988:                                             ; preds = %2984, %2977
  br label %2989

2989:                                             ; preds = %2984, %2988
  %.str.4.sink1321 = phi ptr [ @.str.4, %2988 ], [ @.str, %2984 ]
  store i32 %2979, ptr %2978, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror(i32 noundef %2993, ptr noundef nonnull @.str.3) #13
  %2995 = load i32, ptr %2992, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror_debug(i32 noundef %2995, ptr noundef nonnull @.str.3) #13
  %2997 = load i32, ptr %2978, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #13
  %2999 = load i32, ptr %2978, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2990, ptr noundef nonnull %.str.4.sink1321, i32 noundef %2991, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 196, ptr noundef %2994, ptr noundef %2996, ptr noundef %2998, i32 noundef %2999) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3001:                                             ; preds = %2970
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = add nsw i32 %3002, 1
  store i32 %3003, ptr @test_count, align 4, !tbaa !5
  %3004 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %3005 = trunc i64 %3004 to i32
  %3006 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %3005) #13
  %3007 = icmp eq i32 %3006, -1
  br i1 %3007, label %3008, label %3032

3008:                                             ; preds = %3001
  %3009 = tail call ptr @__errno_location() #14
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = call i32 @s2n_print_stacktrace(ptr noundef %3011) #13
  %3013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3014 = trunc nuw i8 %3013 to i1
  br i1 %3014, label %3015, label %3019

3015:                                             ; preds = %3008
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @fileno(ptr noundef %3016) #13
  %3018 = call i32 @isatty(i32 noundef %3017) #13
  %.not402 = icmp eq i32 %3018, 0
  br i1 %.not402, label %3019, label %3020

3019:                                             ; preds = %3015, %3008
  br label %3020

3020:                                             ; preds = %3015, %3019
  %.str.4.sink1332 = phi ptr [ @.str.4, %3019 ], [ @.str, %3015 ]
  store i32 %3010, ptr %3009, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror(i32 noundef %3024, ptr noundef nonnull @.str.3) #13
  %3026 = load i32, ptr %3023, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror_debug(i32 noundef %3026, ptr noundef nonnull @.str.3) #13
  %3028 = load i32, ptr %3009, align 4, !tbaa !5
  %3029 = call ptr @strerror(i32 noundef %3028) #13
  %3030 = load i32, ptr %3009, align 4, !tbaa !5
  %3031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3021, ptr noundef nonnull %.str.4.sink1332, i32 noundef %3022, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 197, ptr noundef %3025, ptr noundef %3027, ptr noundef %3029, i32 noundef %3030) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3032:                                             ; preds = %3001
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = add nsw i32 %3033, 1
  store i32 %3034, ptr @test_count, align 4, !tbaa !5
  %3035 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 20) #13
  %3036 = icmp eq i32 %3035, -1
  br i1 %3036, label %3037, label %3061

3037:                                             ; preds = %3032
  %3038 = tail call ptr @__errno_location() #14
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = call i32 @s2n_print_stacktrace(ptr noundef %3040) #13
  %3042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3043 = trunc nuw i8 %3042 to i1
  br i1 %3043, label %3044, label %3048

3044:                                             ; preds = %3037
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = call i32 @fileno(ptr noundef %3045) #13
  %3047 = call i32 @isatty(i32 noundef %3046) #13
  %.not401 = icmp eq i32 %3047, 0
  br i1 %.not401, label %3048, label %3049

3048:                                             ; preds = %3044, %3037
  br label %3049

3049:                                             ; preds = %3044, %3048
  %.str.4.sink1343 = phi ptr [ @.str.4, %3048 ], [ @.str, %3044 ]
  store i32 %3039, ptr %3038, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef nonnull @.str.3) #13
  %3055 = load i32, ptr %3052, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef nonnull @.str.3) #13
  %3057 = load i32, ptr %3038, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #13
  %3059 = load i32, ptr %3038, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3050, ptr noundef nonnull %.str.4.sink1343, i32 noundef %3051, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 198, ptr noundef %3054, ptr noundef %3056, ptr noundef %3058, i32 noundef %3059) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3061:                                             ; preds = %3032
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = call i32 @s2n_hmac_free(ptr noundef nonnull %12) #13
  %3065 = icmp eq i32 %3064, -1
  br i1 %3065, label %3066, label %3090

3066:                                             ; preds = %3061
  %3067 = tail call ptr @__errno_location() #14
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3070 = call i32 @s2n_print_stacktrace(ptr noundef %3069) #13
  %3071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3072 = trunc nuw i8 %3071 to i1
  br i1 %3072, label %3073, label %3077

3073:                                             ; preds = %3066
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @fileno(ptr noundef %3074) #13
  %3076 = call i32 @isatty(i32 noundef %3075) #13
  %.not400 = icmp eq i32 %3076, 0
  br i1 %.not400, label %3077, label %3078

3077:                                             ; preds = %3073, %3066
  br label %3078

3078:                                             ; preds = %3073, %3077
  %.str.4.sink1354 = phi ptr [ @.str.4, %3077 ], [ @.str, %3073 ]
  store i32 %3068, ptr %3067, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror(i32 noundef %3082, ptr noundef nonnull @.str.3) #13
  %3084 = load i32, ptr %3081, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror_debug(i32 noundef %3084, ptr noundef nonnull @.str.3) #13
  %3086 = load i32, ptr %3067, align 4, !tbaa !5
  %3087 = call ptr @strerror(i32 noundef %3086) #13
  %3088 = load i32, ptr %3067, align 4, !tbaa !5
  %3089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef nonnull %.str.4.sink1354, i32 noundef %3080, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 199, ptr noundef %3083, ptr noundef %3085, ptr noundef %3087, i32 noundef %3088) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3090:                                             ; preds = %3061
  %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 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %3094 = icmp eq i32 %3093, -1
  br i1 %3094, label %3100, label %.preheader472.preheader

.preheader472.preheader:                          ; preds = %3090
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = add nsw i32 %3095, 1
  store i32 %3096, ptr @test_count, align 4, !tbaa !5
  %3097 = load i8, ptr %3, align 16, !tbaa !15
  %3098 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3097) #13
  %3099 = call zeroext i1 @s2n_result_is_ok(i32 %3098)
  br i1 %3099, label %.preheader472.1, label %3223

3100:                                             ; preds = %3090
  %3101 = tail call ptr @__errno_location() #14
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @s2n_print_stacktrace(ptr noundef %3103) #13
  %3105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3106 = trunc nuw i8 %3105 to i1
  br i1 %3106, label %3107, label %3111

3107:                                             ; preds = %3100
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @fileno(ptr noundef %3108) #13
  %3110 = call i32 @isatty(i32 noundef %3109) #13
  %.not399 = icmp eq i32 %3110, 0
  br i1 %.not399, label %3111, label %3112

3111:                                             ; preds = %3107, %3100
  br label %3112

3112:                                             ; preds = %3107, %3111
  %.str.4.sink1365 = phi ptr [ @.str.4, %3111 ], [ @.str, %3107 ]
  store i32 %3102, ptr %3101, 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 nonnull @.str.3) #13
  %3118 = load i32, ptr %3115, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror_debug(i32 noundef %3118, ptr noundef nonnull @.str.3) #13
  %3120 = load i32, ptr %3101, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #13
  %3122 = load i32, ptr %3101, align 4, !tbaa !5
  %3123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3113, ptr noundef nonnull %.str.4.sink1365, i32 noundef %3114, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 201, ptr noundef %3117, ptr noundef %3119, ptr noundef %3121, i32 noundef %3122) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader472.1:                                  ; preds = %.preheader472.preheader
  %3124 = load i32, ptr @test_count, align 4, !tbaa !5
  %3125 = add nsw i32 %3124, 1
  store i32 %3125, ptr @test_count, align 4, !tbaa !5
  %3126 = load i8, ptr %413, align 1, !tbaa !15
  %3127 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3126) #13
  %3128 = call zeroext i1 @s2n_result_is_ok(i32 %3127)
  br i1 %3128, label %.preheader472.2, label %3223

.preheader472.2:                                  ; preds = %.preheader472.1
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = add nsw i32 %3129, 1
  store i32 %3130, ptr @test_count, align 4, !tbaa !5
  %3131 = load i8, ptr %419, align 2, !tbaa !15
  %3132 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3131) #13
  %3133 = call zeroext i1 @s2n_result_is_ok(i32 %3132)
  br i1 %3133, label %.preheader472.3, label %3223

.preheader472.3:                                  ; preds = %.preheader472.2
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = add nsw i32 %3134, 1
  store i32 %3135, ptr @test_count, align 4, !tbaa !5
  %3136 = load i8, ptr %425, align 1, !tbaa !15
  %3137 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3136) #13
  %3138 = call zeroext i1 @s2n_result_is_ok(i32 %3137)
  br i1 %3138, label %.preheader472.4, label %3223

.preheader472.4:                                  ; preds = %.preheader472.3
  %3139 = load i32, ptr @test_count, align 4, !tbaa !5
  %3140 = add nsw i32 %3139, 1
  store i32 %3140, ptr @test_count, align 4, !tbaa !5
  %3141 = load i8, ptr %431, align 4, !tbaa !15
  %3142 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3141) #13
  %3143 = call zeroext i1 @s2n_result_is_ok(i32 %3142)
  br i1 %3143, label %.preheader472.5, label %3223

.preheader472.5:                                  ; preds = %.preheader472.4
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = add nsw i32 %3144, 1
  store i32 %3145, ptr @test_count, align 4, !tbaa !5
  %3146 = load i8, ptr %437, align 1, !tbaa !15
  %3147 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3146) #13
  %3148 = call zeroext i1 @s2n_result_is_ok(i32 %3147)
  br i1 %3148, label %.preheader472.6, label %3223

.preheader472.6:                                  ; preds = %.preheader472.5
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = add nsw i32 %3149, 1
  store i32 %3150, ptr @test_count, align 4, !tbaa !5
  %3151 = load i8, ptr %443, align 2, !tbaa !15
  %3152 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3151) #13
  %3153 = call zeroext i1 @s2n_result_is_ok(i32 %3152)
  br i1 %3153, label %.preheader472.7, label %3223

.preheader472.7:                                  ; preds = %.preheader472.6
  %3154 = load i32, ptr @test_count, align 4, !tbaa !5
  %3155 = add nsw i32 %3154, 1
  store i32 %3155, ptr @test_count, align 4, !tbaa !5
  %3156 = load i8, ptr %449, align 1, !tbaa !15
  %3157 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3156) #13
  %3158 = call zeroext i1 @s2n_result_is_ok(i32 %3157)
  br i1 %3158, label %.preheader472.8, label %3223

.preheader472.8:                                  ; preds = %.preheader472.7
  %3159 = load i32, ptr @test_count, align 4, !tbaa !5
  %3160 = add nsw i32 %3159, 1
  store i32 %3160, ptr @test_count, align 4, !tbaa !5
  %3161 = load i8, ptr %455, align 8, !tbaa !15
  %3162 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3161) #13
  %3163 = call zeroext i1 @s2n_result_is_ok(i32 %3162)
  br i1 %3163, label %.preheader472.9, label %3223

.preheader472.9:                                  ; preds = %.preheader472.8
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr @test_count, align 4, !tbaa !5
  %3166 = load i8, ptr %461, align 1, !tbaa !15
  %3167 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3166) #13
  %3168 = call zeroext i1 @s2n_result_is_ok(i32 %3167)
  br i1 %3168, label %.preheader472.10, label %3223

.preheader472.10:                                 ; preds = %.preheader472.9
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = add nsw i32 %3169, 1
  store i32 %3170, ptr @test_count, align 4, !tbaa !5
  %3171 = load i8, ptr %467, align 2, !tbaa !15
  %3172 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3171) #13
  %3173 = call zeroext i1 @s2n_result_is_ok(i32 %3172)
  br i1 %3173, label %.preheader472.11, label %3223

.preheader472.11:                                 ; preds = %.preheader472.10
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = add nsw i32 %3174, 1
  store i32 %3175, ptr @test_count, align 4, !tbaa !5
  %3176 = load i8, ptr %473, align 1, !tbaa !15
  %3177 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3176) #13
  %3178 = call zeroext i1 @s2n_result_is_ok(i32 %3177)
  br i1 %3178, label %.preheader472.12, label %3223

.preheader472.12:                                 ; preds = %.preheader472.11
  %3179 = load i32, ptr @test_count, align 4, !tbaa !5
  %3180 = add nsw i32 %3179, 1
  store i32 %3180, ptr @test_count, align 4, !tbaa !5
  %3181 = load i8, ptr %479, align 4, !tbaa !15
  %3182 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3181) #13
  %3183 = call zeroext i1 @s2n_result_is_ok(i32 %3182)
  br i1 %3183, label %.preheader472.13, label %3223

.preheader472.13:                                 ; preds = %.preheader472.12
  %3184 = load i32, ptr @test_count, align 4, !tbaa !5
  %3185 = add nsw i32 %3184, 1
  store i32 %3185, ptr @test_count, align 4, !tbaa !5
  %3186 = load i8, ptr %485, align 1, !tbaa !15
  %3187 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3186) #13
  %3188 = call zeroext i1 @s2n_result_is_ok(i32 %3187)
  br i1 %3188, label %.preheader472.14, label %3223

.preheader472.14:                                 ; preds = %.preheader472.13
  %3189 = load i32, ptr @test_count, align 4, !tbaa !5
  %3190 = add nsw i32 %3189, 1
  store i32 %3190, ptr @test_count, align 4, !tbaa !5
  %3191 = load i8, ptr %491, align 2, !tbaa !15
  %3192 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3191) #13
  %3193 = call zeroext i1 @s2n_result_is_ok(i32 %3192)
  br i1 %3193, label %.preheader472.15, label %3223

.preheader472.15:                                 ; preds = %.preheader472.14
  %3194 = load i32, ptr @test_count, align 4, !tbaa !5
  %3195 = add nsw i32 %3194, 1
  store i32 %3195, ptr @test_count, align 4, !tbaa !5
  %3196 = load i8, ptr %497, align 1, !tbaa !15
  %3197 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3196) #13
  %3198 = call zeroext i1 @s2n_result_is_ok(i32 %3197)
  br i1 %3198, label %.preheader472.16, label %3223

.preheader472.16:                                 ; preds = %.preheader472.15
  %3199 = load i32, ptr @test_count, align 4, !tbaa !5
  %3200 = add nsw i32 %3199, 1
  store i32 %3200, ptr @test_count, align 4, !tbaa !5
  %3201 = load i8, ptr %1063, align 16, !tbaa !15
  %3202 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3201) #13
  %3203 = call zeroext i1 @s2n_result_is_ok(i32 %3202)
  br i1 %3203, label %.preheader472.17, label %3223

.preheader472.17:                                 ; preds = %.preheader472.16
  %3204 = load i32, ptr @test_count, align 4, !tbaa !5
  %3205 = add nsw i32 %3204, 1
  store i32 %3205, ptr @test_count, align 4, !tbaa !5
  %3206 = load i8, ptr %1069, align 1, !tbaa !15
  %3207 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3206) #13
  %3208 = call zeroext i1 @s2n_result_is_ok(i32 %3207)
  br i1 %3208, label %.preheader472.18, label %3223

.preheader472.18:                                 ; preds = %.preheader472.17
  %3209 = load i32, ptr @test_count, align 4, !tbaa !5
  %3210 = add nsw i32 %3209, 1
  store i32 %3210, ptr @test_count, align 4, !tbaa !5
  %3211 = load i8, ptr %1075, align 2, !tbaa !15
  %3212 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3211) #13
  %3213 = call zeroext i1 @s2n_result_is_ok(i32 %3212)
  br i1 %3213, label %.preheader472.19, label %3223

.preheader472.19:                                 ; preds = %.preheader472.18
  %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 i8, ptr %1081, align 1, !tbaa !15
  %3217 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3216) #13
  %3218 = call zeroext i1 @s2n_result_is_ok(i32 %3217)
  br i1 %3218, label %3219, label %3223

3219:                                             ; preds = %.preheader472.19
  %3220 = load i32, ptr @test_count, align 4, !tbaa !5
  %3221 = add nsw i32 %3220, 1
  store i32 %3221, ptr @test_count, align 4, !tbaa !5
  %bcmp346 = call i32 @bcmp(ptr noundef nonnull dereferenceable(40) %5, ptr noundef nonnull dereferenceable(40) @.str.46, i64 40)
  %3222 = icmp eq i32 %bcmp346, 0
  br i1 %3222, label %3271, label %3247

3223:                                             ; preds = %.preheader472.19, %.preheader472.18, %.preheader472.17, %.preheader472.16, %.preheader472.15, %.preheader472.14, %.preheader472.13, %.preheader472.12, %.preheader472.11, %.preheader472.10, %.preheader472.9, %.preheader472.8, %.preheader472.7, %.preheader472.6, %.preheader472.5, %.preheader472.4, %.preheader472.3, %.preheader472.2, %.preheader472.1, %.preheader472.preheader
  %3224 = tail call ptr @__errno_location() #14
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3227 = call i32 @s2n_print_stacktrace(ptr noundef %3226) #13
  %3228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3229 = trunc nuw i8 %3228 to i1
  br i1 %3229, label %3230, label %3234

3230:                                             ; preds = %3223
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @fileno(ptr noundef %3231) #13
  %3233 = call i32 @isatty(i32 noundef %3232) #13
  %.not398 = icmp eq i32 %3233, 0
  br i1 %.not398, label %3234, label %3235

3234:                                             ; preds = %3230, %3223
  br label %3235

3235:                                             ; preds = %3230, %3234
  %.str.4.sink1376 = phi ptr [ @.str.4, %3234 ], [ @.str, %3230 ]
  store i32 %3225, ptr %3224, align 4, !tbaa !5
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = load i32, ptr @test_count, align 4, !tbaa !5
  %3238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call ptr @s2n_strerror(i32 noundef %3239, ptr noundef nonnull @.str.3) #13
  %3241 = load i32, ptr %3238, align 4, !tbaa !5
  %3242 = call ptr @s2n_strerror_debug(i32 noundef %3241, ptr noundef nonnull @.str.3) #13
  %3243 = load i32, ptr %3224, align 4, !tbaa !5
  %3244 = call ptr @strerror(i32 noundef %3243) #13
  %3245 = load i32, ptr %3224, align 4, !tbaa !5
  %3246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3236, ptr noundef nonnull %.str.4.sink1376, i32 noundef %3237, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 203, ptr noundef %3240, ptr noundef %3242, ptr noundef %3244, i32 noundef %3245) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3247:                                             ; preds = %3219
  %3248 = tail call ptr @__errno_location() #14
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3251 = call i32 @s2n_print_stacktrace(ptr noundef %3250) #13
  %3252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3253 = trunc nuw i8 %3252 to i1
  br i1 %3253, label %3254, label %3258

3254:                                             ; preds = %3247
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = call i32 @fileno(ptr noundef %3255) #13
  %3257 = call i32 @isatty(i32 noundef %3256) #13
  %.not347 = icmp eq i32 %3257, 0
  br i1 %.not347, label %3258, label %3259

3258:                                             ; preds = %3254, %3247
  br label %3259

3259:                                             ; preds = %3254, %3258
  %.str.4.sink1387 = phi ptr [ @.str.4, %3258 ], [ @.str, %3254 ]
  store i32 %3249, ptr %3248, align 4, !tbaa !5
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror(i32 noundef %3263, ptr noundef nonnull @.str.3) #13
  %3265 = load i32, ptr %3262, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror_debug(i32 noundef %3265, ptr noundef nonnull @.str.3) #13
  %3267 = load i32, ptr %3248, align 4, !tbaa !5
  %3268 = call ptr @strerror(i32 noundef %3267) #13
  %3269 = load i32, ptr %3248, align 4, !tbaa !5
  %3270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3260, ptr noundef nonnull %.str.4.sink1387, i32 noundef %3261, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 207, ptr noundef %3264, ptr noundef %3266, ptr noundef %3268, i32 noundef %3269) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3271:                                             ; preds = %3219
  %3272 = add nsw i32 %3220, 2
  store i32 %3272, ptr @test_count, align 4, !tbaa !5
  %3273 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #17
  %3274 = trunc i64 %3273 to i32
  %3275 = call i32 @s2n_hmac_init(ptr noundef nonnull %14, i32 noundef 2, ptr noundef nonnull %8, i32 noundef %3274) #13
  %3276 = icmp eq i32 %3275, -1
  br i1 %3276, label %3277, label %3301

3277:                                             ; preds = %3271
  %3278 = tail call ptr @__errno_location() #14
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = call i32 @s2n_print_stacktrace(ptr noundef %3280) #13
  %3282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3283 = trunc nuw i8 %3282 to i1
  br i1 %3283, label %3284, label %3288

3284:                                             ; preds = %3277
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @fileno(ptr noundef %3285) #13
  %3287 = call i32 @isatty(i32 noundef %3286) #13
  %.not397 = icmp eq i32 %3287, 0
  br i1 %.not397, label %3288, label %3289

3288:                                             ; preds = %3284, %3277
  br label %3289

3289:                                             ; preds = %3284, %3288
  %.str.4.sink1398 = phi ptr [ @.str.4, %3288 ], [ @.str, %3284 ]
  store i32 %3279, ptr %3278, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = load i32, ptr @test_count, align 4, !tbaa !5
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror(i32 noundef %3293, ptr noundef nonnull @.str.3) #13
  %3295 = load i32, ptr %3292, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror_debug(i32 noundef %3295, ptr noundef nonnull @.str.3) #13
  %3297 = load i32, ptr %3278, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #13
  %3299 = load i32, ptr %3278, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3290, ptr noundef nonnull %.str.4.sink1398, i32 noundef %3291, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 210, ptr noundef %3294, ptr noundef %3296, ptr noundef %3298, i32 noundef %3299) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3301:                                             ; preds = %3271
  %3302 = load i32, ptr @test_count, align 4, !tbaa !5
  %3303 = add nsw i32 %3302, 1
  store i32 %3303, ptr @test_count, align 4, !tbaa !5
  %3304 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %3305 = trunc i64 %3304 to i32
  %3306 = call i32 @s2n_hmac_update(ptr noundef nonnull %14, ptr noundef nonnull %9, i32 noundef %3305) #13
  %3307 = icmp eq i32 %3306, -1
  br i1 %3307, label %3308, label %3332

3308:                                             ; preds = %3301
  %3309 = tail call ptr @__errno_location() #14
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @s2n_print_stacktrace(ptr noundef %3311) #13
  %3313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc nuw i8 %3313 to i1
  br i1 %3314, label %3315, label %3319

3315:                                             ; preds = %3308
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @fileno(ptr noundef %3316) #13
  %3318 = call i32 @isatty(i32 noundef %3317) #13
  %.not396 = icmp eq i32 %3318, 0
  br i1 %.not396, label %3319, label %3320

3319:                                             ; preds = %3315, %3308
  br label %3320

3320:                                             ; preds = %3315, %3319
  %.str.4.sink1409 = phi ptr [ @.str.4, %3319 ], [ @.str, %3315 ]
  store i32 %3310, ptr %3309, align 4, !tbaa !5
  %3321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3322 = load i32, ptr @test_count, align 4, !tbaa !5
  %3323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3324 = load i32, ptr %3323, align 4, !tbaa !5
  %3325 = call ptr @s2n_strerror(i32 noundef %3324, ptr noundef nonnull @.str.3) #13
  %3326 = load i32, ptr %3323, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror_debug(i32 noundef %3326, ptr noundef nonnull @.str.3) #13
  %3328 = load i32, ptr %3309, align 4, !tbaa !5
  %3329 = call ptr @strerror(i32 noundef %3328) #13
  %3330 = load i32, ptr %3309, align 4, !tbaa !5
  %3331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3321, ptr noundef nonnull %.str.4.sink1409, i32 noundef %3322, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 211, ptr noundef %3325, ptr noundef %3327, ptr noundef %3329, i32 noundef %3330) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3332:                                             ; preds = %3301
  %3333 = load i32, ptr @test_count, align 4, !tbaa !5
  %3334 = add nsw i32 %3333, 1
  store i32 %3334, ptr @test_count, align 4, !tbaa !5
  %3335 = call i32 @s2n_hmac_digest(ptr noundef nonnull %14, ptr noundef nonnull %4, i32 noundef 20) #13
  %3336 = icmp eq i32 %3335, -1
  br i1 %3336, label %3337, label %3361

3337:                                             ; preds = %3332
  %3338 = tail call ptr @__errno_location() #14
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = call i32 @s2n_print_stacktrace(ptr noundef %3340) #13
  %3342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3343 = trunc nuw i8 %3342 to i1
  br i1 %3343, label %3344, label %3348

3344:                                             ; preds = %3337
  %3345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3346 = call i32 @fileno(ptr noundef %3345) #13
  %3347 = call i32 @isatty(i32 noundef %3346) #13
  %.not395 = icmp eq i32 %3347, 0
  br i1 %.not395, label %3348, label %3349

3348:                                             ; preds = %3344, %3337
  br label %3349

3349:                                             ; preds = %3344, %3348
  %.str.4.sink1420 = phi ptr [ @.str.4, %3348 ], [ @.str, %3344 ]
  store i32 %3339, ptr %3338, 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 nonnull @.str.3) #13
  %3355 = load i32, ptr %3352, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror_debug(i32 noundef %3355, ptr noundef nonnull @.str.3) #13
  %3357 = load i32, ptr %3338, align 4, !tbaa !5
  %3358 = call ptr @strerror(i32 noundef %3357) #13
  %3359 = load i32, ptr %3338, align 4, !tbaa !5
  %3360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef nonnull %.str.4.sink1420, i32 noundef %3351, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 212, ptr noundef %3354, ptr noundef %3356, ptr noundef %3358, i32 noundef %3359) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3361:                                             ; preds = %3332
  %3362 = load i32, ptr @test_count, align 4, !tbaa !5
  %3363 = add nsw i32 %3362, 1
  store i32 %3363, ptr @test_count, align 4, !tbaa !5
  %3364 = call i32 @s2n_hmac_digest_verify(ptr noundef nonnull %3, ptr noundef nonnull %4, i32 noundef 20) #13
  %3365 = icmp eq i32 %3364, -1
  br i1 %3365, label %3366, label %3390

3366:                                             ; preds = %3361
  %3367 = tail call ptr @__errno_location() #14
  %3368 = load i32, ptr %3367, align 4, !tbaa !5
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = call i32 @s2n_print_stacktrace(ptr noundef %3369) #13
  %3371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3372 = trunc nuw i8 %3371 to i1
  br i1 %3372, label %3373, label %3377

3373:                                             ; preds = %3366
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = call i32 @fileno(ptr noundef %3374) #13
  %3376 = call i32 @isatty(i32 noundef %3375) #13
  %.not394 = icmp eq i32 %3376, 0
  br i1 %.not394, label %3377, label %3378

3377:                                             ; preds = %3373, %3366
  br label %3378

3378:                                             ; preds = %3373, %3377
  %.str.4.sink1431 = phi ptr [ @.str.4, %3377 ], [ @.str, %3373 ]
  store i32 %3368, ptr %3367, align 4, !tbaa !5
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = load i32, ptr @test_count, align 4, !tbaa !5
  %3381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror(i32 noundef %3382, ptr noundef nonnull @.str.3) #13
  %3384 = load i32, ptr %3381, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror_debug(i32 noundef %3384, ptr noundef nonnull @.str.3) #13
  %3386 = load i32, ptr %3367, align 4, !tbaa !5
  %3387 = call ptr @strerror(i32 noundef %3386) #13
  %3388 = load i32, ptr %3367, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3379, ptr noundef nonnull %.str.4.sink1431, i32 noundef %3380, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 213, ptr noundef %3383, ptr noundef %3385, ptr noundef %3387, i32 noundef %3388) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3390:                                             ; preds = %3361
  %3391 = load i32, ptr @test_count, align 4, !tbaa !5
  %3392 = add nsw i32 %3391, 1
  store i32 %3392, ptr @test_count, align 4, !tbaa !5
  %3393 = call i32 @s2n_hmac_free(ptr noundef nonnull %14) #13
  %3394 = icmp eq i32 %3393, -1
  br i1 %3394, label %3395, label %3419

3395:                                             ; preds = %3390
  %3396 = tail call ptr @__errno_location() #14
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = call i32 @s2n_print_stacktrace(ptr noundef %3398) #13
  %3400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3401 = trunc nuw i8 %3400 to i1
  br i1 %3401, label %3402, label %3406

3402:                                             ; preds = %3395
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = call i32 @fileno(ptr noundef %3403) #13
  %3405 = call i32 @isatty(i32 noundef %3404) #13
  %.not393 = icmp eq i32 %3405, 0
  br i1 %.not393, label %3406, label %3407

3406:                                             ; preds = %3402, %3395
  br label %3407

3407:                                             ; preds = %3402, %3406
  %.str.4.sink1442 = phi ptr [ @.str.4, %3406 ], [ @.str, %3402 ]
  store i32 %3397, ptr %3396, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror(i32 noundef %3411, ptr noundef nonnull @.str.3) #13
  %3413 = load i32, ptr %3410, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror_debug(i32 noundef %3413, ptr noundef nonnull @.str.3) #13
  %3415 = load i32, ptr %3396, align 4, !tbaa !5
  %3416 = call ptr @strerror(i32 noundef %3415) #13
  %3417 = load i32, ptr %3396, align 4, !tbaa !5
  %3418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3408, ptr noundef nonnull %.str.4.sink1442, i32 noundef %3409, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 214, ptr noundef %3412, ptr noundef %3414, ptr noundef %3416, i32 noundef %3417) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3419:                                             ; preds = %3390
  %3420 = load i32, ptr @test_count, align 4, !tbaa !5
  %3421 = add nsw i32 %3420, 1
  store i32 %3421, ptr @test_count, align 4, !tbaa !5
  %3422 = call i32 @s2n_hmac_new(ptr noundef nonnull %12) #13
  %3423 = icmp eq i32 %3422, -1
  br i1 %3423, label %3424, label %3448

3424:                                             ; preds = %3419
  %3425 = tail call ptr @__errno_location() #14
  %3426 = load i32, ptr %3425, align 4, !tbaa !5
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @s2n_print_stacktrace(ptr noundef %3427) #13
  %3429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3430 = trunc nuw i8 %3429 to i1
  br i1 %3430, label %3431, label %3435

3431:                                             ; preds = %3424
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @fileno(ptr noundef %3432) #13
  %3434 = call i32 @isatty(i32 noundef %3433) #13
  %.not392 = icmp eq i32 %3434, 0
  br i1 %.not392, label %3435, label %3436

3435:                                             ; preds = %3431, %3424
  br label %3436

3436:                                             ; preds = %3431, %3435
  %.str.4.sink1453 = phi ptr [ @.str.4, %3435 ], [ @.str, %3431 ]
  store i32 %3426, ptr %3425, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = load i32, ptr @test_count, align 4, !tbaa !5
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror(i32 noundef %3440, ptr noundef nonnull @.str.3) #13
  %3442 = load i32, ptr %3439, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror_debug(i32 noundef %3442, ptr noundef nonnull @.str.3) #13
  %3444 = load i32, ptr %3425, align 4, !tbaa !5
  %3445 = call ptr @strerror(i32 noundef %3444) #13
  %3446 = load i32, ptr %3425, align 4, !tbaa !5
  %3447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3437, ptr noundef nonnull %.str.4.sink1453, i32 noundef %3438, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 217, ptr noundef %3441, ptr noundef %3443, ptr noundef %3445, i32 noundef %3446) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3448:                                             ; preds = %3419
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #13
  store i8 0, ptr %20, align 1, !tbaa !15
  %3449 = call i32 @s2n_hmac_digest_size(i32 noundef 3, ptr noundef nonnull %20) #13
  %3450 = icmp sgt i32 %3449, -1
  br i1 %3450, label %3451, label %4566

3451:                                             ; preds = %3448
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = add nsw i32 %3452, 1
  store i32 %3453, ptr @test_count, align 4, !tbaa !5
  %3454 = load i8, ptr %20, align 1, !tbaa !15
  %3455 = icmp eq i8 %3454, 28
  br i1 %3455, label %3480, label %3456

3456:                                             ; preds = %3451
  %3457 = tail call ptr @__errno_location() #14
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @s2n_print_stacktrace(ptr noundef %3459) #13
  %3461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3462 = trunc nuw i8 %3461 to i1
  br i1 %3462, label %3463, label %3467

3463:                                             ; preds = %3456
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @fileno(ptr noundef %3464) #13
  %3466 = call i32 @isatty(i32 noundef %3465) #13
  %.not348 = icmp eq i32 %3466, 0
  br i1 %.not348, label %3467, label %3468

3467:                                             ; preds = %3463, %3456
  br label %3468

3468:                                             ; preds = %3463, %3467
  %.str.4.sink1464 = phi ptr [ @.str.4, %3467 ], [ @.str, %3463 ]
  store i32 %3458, ptr %3457, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = load i32, ptr @test_count, align 4, !tbaa !5
  %3471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call ptr @s2n_strerror(i32 noundef %3472, ptr noundef nonnull @.str.3) #13
  %3474 = load i32, ptr %3471, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror_debug(i32 noundef %3474, ptr noundef nonnull @.str.3) #13
  %3476 = load i32, ptr %3457, align 4, !tbaa !5
  %3477 = call ptr @strerror(i32 noundef %3476) #13
  %3478 = load i32, ptr %3457, align 4, !tbaa !5
  %3479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3469, ptr noundef nonnull %.str.4.sink1464, i32 noundef %3470, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 221, ptr noundef %3473, ptr noundef %3475, ptr noundef %3477, i32 noundef %3478) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3480:                                             ; preds = %3451
  %3481 = add nsw i32 %3452, 2
  store i32 %3481, ptr @test_count, align 4, !tbaa !5
  %3482 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %3483 = trunc i64 %3482 to i32
  %3484 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 3, ptr noundef nonnull %7, i32 noundef %3483) #13
  %3485 = icmp eq i32 %3484, -1
  br i1 %3485, label %3486, label %3510

3486:                                             ; preds = %3480
  %3487 = tail call ptr @__errno_location() #14
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @s2n_print_stacktrace(ptr noundef %3489) #13
  %3491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3492 = trunc nuw i8 %3491 to i1
  br i1 %3492, label %3493, label %3497

3493:                                             ; preds = %3486
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = call i32 @fileno(ptr noundef %3494) #13
  %3496 = call i32 @isatty(i32 noundef %3495) #13
  %.not391 = icmp eq i32 %3496, 0
  br i1 %.not391, label %3497, label %3498

3497:                                             ; preds = %3493, %3486
  br label %3498

3498:                                             ; preds = %3493, %3497
  %.str.4.sink1475 = phi ptr [ @.str.4, %3497 ], [ @.str, %3493 ]
  store i32 %3488, ptr %3487, align 4, !tbaa !5
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = load i32, ptr @test_count, align 4, !tbaa !5
  %3501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror(i32 noundef %3502, ptr noundef nonnull @.str.3) #13
  %3504 = load i32, ptr %3501, align 4, !tbaa !5
  %3505 = call ptr @s2n_strerror_debug(i32 noundef %3504, ptr noundef nonnull @.str.3) #13
  %3506 = load i32, ptr %3487, align 4, !tbaa !5
  %3507 = call ptr @strerror(i32 noundef %3506) #13
  %3508 = load i32, ptr %3487, align 4, !tbaa !5
  %3509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3499, ptr noundef nonnull %.str.4.sink1475, i32 noundef %3500, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 222, ptr noundef %3503, ptr noundef %3505, ptr noundef %3507, i32 noundef %3508) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3510:                                             ; preds = %3480
  %3511 = load i32, ptr @test_count, align 4, !tbaa !5
  %3512 = add nsw i32 %3511, 1
  store i32 %3512, ptr @test_count, align 4, !tbaa !5
  %3513 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %3514 = trunc i64 %3513 to i32
  %3515 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %3514) #13
  %3516 = icmp eq i32 %3515, -1
  br i1 %3516, label %3517, label %3541

3517:                                             ; preds = %3510
  %3518 = tail call ptr @__errno_location() #14
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = call i32 @s2n_print_stacktrace(ptr noundef %3520) #13
  %3522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3523 = trunc nuw i8 %3522 to i1
  br i1 %3523, label %3524, label %3528

3524:                                             ; preds = %3517
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = call i32 @fileno(ptr noundef %3525) #13
  %3527 = call i32 @isatty(i32 noundef %3526) #13
  %.not390 = icmp eq i32 %3527, 0
  br i1 %.not390, label %3528, label %3529

3528:                                             ; preds = %3524, %3517
  br label %3529

3529:                                             ; preds = %3524, %3528
  %.str.4.sink1486 = phi ptr [ @.str.4, %3528 ], [ @.str, %3524 ]
  store i32 %3519, ptr %3518, align 4, !tbaa !5
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = load i32, ptr @test_count, align 4, !tbaa !5
  %3532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror(i32 noundef %3533, ptr noundef nonnull @.str.3) #13
  %3535 = load i32, ptr %3532, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror_debug(i32 noundef %3535, ptr noundef nonnull @.str.3) #13
  %3537 = load i32, ptr %3518, align 4, !tbaa !5
  %3538 = call ptr @strerror(i32 noundef %3537) #13
  %3539 = load i32, ptr %3518, align 4, !tbaa !5
  %3540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3530, ptr noundef nonnull %.str.4.sink1486, i32 noundef %3531, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 223, ptr noundef %3534, ptr noundef %3536, ptr noundef %3538, i32 noundef %3539) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3541:                                             ; preds = %3510
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = add nsw i32 %3542, 1
  store i32 %3543, ptr @test_count, align 4, !tbaa !5
  %3544 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 28) #13
  %3545 = icmp eq i32 %3544, -1
  br i1 %3545, label %3546, label %3570

3546:                                             ; preds = %3541
  %3547 = tail call ptr @__errno_location() #14
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = call i32 @s2n_print_stacktrace(ptr noundef %3549) #13
  %3551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3552 = trunc nuw i8 %3551 to i1
  br i1 %3552, label %3553, label %3557

3553:                                             ; preds = %3546
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @fileno(ptr noundef %3554) #13
  %3556 = call i32 @isatty(i32 noundef %3555) #13
  %.not389 = icmp eq i32 %3556, 0
  br i1 %.not389, label %3557, label %3558

3557:                                             ; preds = %3553, %3546
  br label %3558

3558:                                             ; preds = %3553, %3557
  %.str.4.sink1497 = phi ptr [ @.str.4, %3557 ], [ @.str, %3553 ]
  store i32 %3548, ptr %3547, align 4, !tbaa !5
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = load i32, ptr @test_count, align 4, !tbaa !5
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror(i32 noundef %3562, ptr noundef nonnull @.str.3) #13
  %3564 = load i32, ptr %3561, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror_debug(i32 noundef %3564, ptr noundef nonnull @.str.3) #13
  %3566 = load i32, ptr %3547, align 4, !tbaa !5
  %3567 = call ptr @strerror(i32 noundef %3566) #13
  %3568 = load i32, ptr %3547, align 4, !tbaa !5
  %3569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3559, ptr noundef nonnull %.str.4.sink1497, i32 noundef %3560, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 224, ptr noundef %3563, ptr noundef %3565, ptr noundef %3567, i32 noundef %3568) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3570:                                             ; preds = %3541
  %3571 = load i32, ptr @test_count, align 4, !tbaa !5
  %3572 = add nsw i32 %3571, 1
  store i32 %3572, ptr @test_count, align 4, !tbaa !5
  %3573 = call i32 @s2n_hmac_free(ptr noundef nonnull %12) #13
  %3574 = icmp eq i32 %3573, -1
  br i1 %3574, label %3575, label %3599

3575:                                             ; preds = %3570
  %3576 = tail call ptr @__errno_location() #14
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = call i32 @s2n_print_stacktrace(ptr noundef %3578) #13
  %3580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3581 = trunc nuw i8 %3580 to i1
  br i1 %3581, label %3582, label %3586

3582:                                             ; preds = %3575
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = call i32 @fileno(ptr noundef %3583) #13
  %3585 = call i32 @isatty(i32 noundef %3584) #13
  %.not388 = icmp eq i32 %3585, 0
  br i1 %.not388, label %3586, label %3587

3586:                                             ; preds = %3582, %3575
  br label %3587

3587:                                             ; preds = %3582, %3586
  %.str.4.sink1508 = phi ptr [ @.str.4, %3586 ], [ @.str, %3582 ]
  store i32 %3577, ptr %3576, align 4, !tbaa !5
  %3588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror(i32 noundef %3591, ptr noundef nonnull @.str.3) #13
  %3593 = load i32, ptr %3590, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror_debug(i32 noundef %3593, ptr noundef nonnull @.str.3) #13
  %3595 = load i32, ptr %3576, align 4, !tbaa !5
  %3596 = call ptr @strerror(i32 noundef %3595) #13
  %3597 = load i32, ptr %3576, align 4, !tbaa !5
  %3598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3588, ptr noundef nonnull %.str.4.sink1508, i32 noundef %3589, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 225, ptr noundef %3592, ptr noundef %3594, ptr noundef %3596, i32 noundef %3597) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3599:                                             ; preds = %3570
  %3600 = load i32, ptr @test_count, align 4, !tbaa !5
  %3601 = add nsw i32 %3600, 1
  store i32 %3601, ptr @test_count, align 4, !tbaa !5
  %3602 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %3603 = icmp eq i32 %3602, -1
  br i1 %3603, label %3604, label %.preheader471

3604:                                             ; preds = %3599
  %3605 = tail call ptr @__errno_location() #14
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = call i32 @s2n_print_stacktrace(ptr noundef %3607) #13
  %3609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3610 = trunc nuw i8 %3609 to i1
  br i1 %3610, label %3611, label %3615

3611:                                             ; preds = %3604
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @fileno(ptr noundef %3612) #13
  %3614 = call i32 @isatty(i32 noundef %3613) #13
  %.not387 = icmp eq i32 %3614, 0
  br i1 %.not387, label %3615, label %3616

3615:                                             ; preds = %3611, %3604
  br label %3616

3616:                                             ; preds = %3611, %3615
  %.str.4.sink1519 = phi ptr [ @.str.4, %3615 ], [ @.str, %3611 ]
  store i32 %3606, ptr %3605, align 4, !tbaa !5
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = load i32, ptr @test_count, align 4, !tbaa !5
  %3619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call ptr @s2n_strerror(i32 noundef %3620, ptr noundef nonnull @.str.3) #13
  %3622 = load i32, ptr %3619, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror_debug(i32 noundef %3622, ptr noundef nonnull @.str.3) #13
  %3624 = load i32, ptr %3605, align 4, !tbaa !5
  %3625 = call ptr @strerror(i32 noundef %3624) #13
  %3626 = load i32, ptr %3605, align 4, !tbaa !5
  %3627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3617, ptr noundef nonnull %.str.4.sink1519, i32 noundef %3618, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 227, ptr noundef %3621, ptr noundef %3623, ptr noundef %3625, i32 noundef %3626) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3628:                                             ; preds = %.preheader471
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 28
  br i1 %exitcond.not, label %3629, label %.preheader471, !llvm.loop !16

3629:                                             ; preds = %3628
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = add nsw i32 %3630, 1
  store i32 %3631, ptr @test_count, align 4, !tbaa !5
  %bcmp349 = call i32 @bcmp(ptr noundef nonnull dereferenceable(56) %5, ptr noundef nonnull dereferenceable(56) @.str.56, i64 56)
  %3632 = icmp eq i32 %bcmp349, 0
  br i1 %3632, label %3687, label %3663

.preheader471:                                    ; preds = %3599, %3628
  %indvars.iv = phi i64 [ %indvars.iv.next, %3628 ], [ 0, %3599 ]
  %3633 = load i32, ptr @test_count, align 4, !tbaa !5
  %3634 = add nsw i32 %3633, 1
  store i32 %3634, ptr @test_count, align 4, !tbaa !5
  %3635 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %indvars.iv
  %3636 = load i8, ptr %3635, align 1, !tbaa !15
  %3637 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3636) #13
  %3638 = call zeroext i1 @s2n_result_is_ok(i32 %3637)
  br i1 %3638, label %3628, label %3639

3639:                                             ; preds = %.preheader471
  %3640 = tail call ptr @__errno_location() #14
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @s2n_print_stacktrace(ptr noundef %3642) #13
  %3644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3645 = trunc nuw i8 %3644 to i1
  br i1 %3645, label %3646, label %3650

3646:                                             ; preds = %3639
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @fileno(ptr noundef %3647) #13
  %3649 = call i32 @isatty(i32 noundef %3648) #13
  %.not386 = icmp eq i32 %3649, 0
  br i1 %.not386, label %3650, label %3651

3650:                                             ; preds = %3646, %3639
  br label %3651

3651:                                             ; preds = %3646, %3650
  %.str.4.sink1530 = phi ptr [ @.str.4, %3650 ], [ @.str, %3646 ]
  store i32 %3641, ptr %3640, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = load i32, ptr @test_count, align 4, !tbaa !5
  %3654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror(i32 noundef %3655, ptr noundef nonnull @.str.3) #13
  %3657 = load i32, ptr %3654, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror_debug(i32 noundef %3657, ptr noundef nonnull @.str.3) #13
  %3659 = load i32, ptr %3640, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #13
  %3661 = load i32, ptr %3640, align 4, !tbaa !5
  %3662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3652, ptr noundef nonnull %.str.4.sink1530, i32 noundef %3653, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 229, ptr noundef %3656, ptr noundef %3658, ptr noundef %3660, i32 noundef %3661) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3663:                                             ; preds = %3629
  %3664 = tail call ptr @__errno_location() #14
  %3665 = load i32, ptr %3664, align 4, !tbaa !5
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = call i32 @s2n_print_stacktrace(ptr noundef %3666) #13
  %3668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3669 = trunc nuw i8 %3668 to i1
  br i1 %3669, label %3670, label %3674

3670:                                             ; preds = %3663
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = call i32 @fileno(ptr noundef %3671) #13
  %3673 = call i32 @isatty(i32 noundef %3672) #13
  %.not350 = icmp eq i32 %3673, 0
  br i1 %.not350, label %3674, label %3675

3674:                                             ; preds = %3670, %3663
  br label %3675

3675:                                             ; preds = %3670, %3674
  %.str.4.sink1541 = phi ptr [ @.str.4, %3674 ], [ @.str, %3670 ]
  store i32 %3665, ptr %3664, 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 nonnull @.str.3) #13
  %3681 = load i32, ptr %3678, align 4, !tbaa !5
  %3682 = call ptr @s2n_strerror_debug(i32 noundef %3681, ptr noundef nonnull @.str.3) #13
  %3683 = load i32, ptr %3664, align 4, !tbaa !5
  %3684 = call ptr @strerror(i32 noundef %3683) #13
  %3685 = load i32, ptr %3664, align 4, !tbaa !5
  %3686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3676, ptr noundef nonnull %.str.4.sink1541, i32 noundef %3677, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 233, ptr noundef %3680, ptr noundef %3682, ptr noundef %3684, i32 noundef %3685) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3687:                                             ; preds = %3629
  %3688 = add nsw i32 %3630, 2
  store i32 %3688, ptr @test_count, align 4, !tbaa !5
  %3689 = call i32 @s2n_hmac_new(ptr noundef nonnull %12) #13
  %3690 = icmp eq i32 %3689, -1
  br i1 %3690, label %3691, label %3715

3691:                                             ; preds = %3687
  %3692 = tail call ptr @__errno_location() #14
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = call i32 @s2n_print_stacktrace(ptr noundef %3694) #13
  %3696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3697 = trunc nuw i8 %3696 to i1
  br i1 %3697, label %3698, label %3702

3698:                                             ; preds = %3691
  %3699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3700 = call i32 @fileno(ptr noundef %3699) #13
  %3701 = call i32 @isatty(i32 noundef %3700) #13
  %.not385 = icmp eq i32 %3701, 0
  br i1 %.not385, label %3702, label %3703

3702:                                             ; preds = %3698, %3691
  br label %3703

3703:                                             ; preds = %3698, %3702
  %.str.4.sink1552 = phi ptr [ @.str.4, %3702 ], [ @.str, %3698 ]
  store i32 %3693, ptr %3692, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror(i32 noundef %3707, ptr noundef nonnull @.str.3) #13
  %3709 = load i32, ptr %3706, align 4, !tbaa !5
  %3710 = call ptr @s2n_strerror_debug(i32 noundef %3709, ptr noundef nonnull @.str.3) #13
  %3711 = load i32, ptr %3692, align 4, !tbaa !5
  %3712 = call ptr @strerror(i32 noundef %3711) #13
  %3713 = load i32, ptr %3692, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef nonnull %.str.4.sink1552, i32 noundef %3705, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 236, ptr noundef %3708, ptr noundef %3710, ptr noundef %3712, i32 noundef %3713) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3715:                                             ; preds = %3687
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #13
  store i8 0, ptr %21, align 1, !tbaa !15
  %3716 = call i32 @s2n_hmac_digest_size(i32 noundef 4, ptr noundef nonnull %21) #13
  %3717 = icmp sgt i32 %3716, -1
  br i1 %3717, label %3718, label %4565

3718:                                             ; preds = %3715
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = add nsw i32 %3719, 1
  store i32 %3720, ptr @test_count, align 4, !tbaa !5
  %3721 = load i8, ptr %21, align 1, !tbaa !15
  %3722 = icmp eq i8 %3721, 32
  br i1 %3722, label %3747, label %3723

3723:                                             ; preds = %3718
  %3724 = tail call ptr @__errno_location() #14
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = call i32 @s2n_print_stacktrace(ptr noundef %3726) #13
  %3728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3729 = trunc nuw i8 %3728 to i1
  br i1 %3729, label %3730, label %3734

3730:                                             ; preds = %3723
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @fileno(ptr noundef %3731) #13
  %3733 = call i32 @isatty(i32 noundef %3732) #13
  %.not351 = icmp eq i32 %3733, 0
  br i1 %.not351, label %3734, label %3735

3734:                                             ; preds = %3730, %3723
  br label %3735

3735:                                             ; preds = %3730, %3734
  %.str.4.sink1563 = phi ptr [ @.str.4, %3734 ], [ @.str, %3730 ]
  store i32 %3725, ptr %3724, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call ptr @s2n_strerror(i32 noundef %3739, ptr noundef nonnull @.str.3) #13
  %3741 = load i32, ptr %3738, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror_debug(i32 noundef %3741, ptr noundef nonnull @.str.3) #13
  %3743 = load i32, ptr %3724, align 4, !tbaa !5
  %3744 = call ptr @strerror(i32 noundef %3743) #13
  %3745 = load i32, ptr %3724, align 4, !tbaa !5
  %3746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3736, ptr noundef nonnull %.str.4.sink1563, i32 noundef %3737, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 240, ptr noundef %3740, ptr noundef %3742, ptr noundef %3744, i32 noundef %3745) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3747:                                             ; preds = %3718
  %3748 = add nsw i32 %3719, 2
  store i32 %3748, ptr @test_count, align 4, !tbaa !5
  %3749 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %3750 = trunc i64 %3749 to i32
  %3751 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 4, ptr noundef nonnull %7, i32 noundef %3750) #13
  %3752 = icmp eq i32 %3751, -1
  br i1 %3752, label %3753, label %3777

3753:                                             ; preds = %3747
  %3754 = tail call ptr @__errno_location() #14
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @s2n_print_stacktrace(ptr noundef %3756) #13
  %3758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3759 = trunc nuw i8 %3758 to i1
  br i1 %3759, label %3760, label %3764

3760:                                             ; preds = %3753
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = call i32 @fileno(ptr noundef %3761) #13
  %3763 = call i32 @isatty(i32 noundef %3762) #13
  %.not384 = icmp eq i32 %3763, 0
  br i1 %.not384, label %3764, label %3765

3764:                                             ; preds = %3760, %3753
  br label %3765

3765:                                             ; preds = %3760, %3764
  %.str.4.sink1574 = phi ptr [ @.str.4, %3764 ], [ @.str, %3760 ]
  store i32 %3755, ptr %3754, align 4, !tbaa !5
  %3766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3767 = load i32, ptr @test_count, align 4, !tbaa !5
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror(i32 noundef %3769, ptr noundef nonnull @.str.3) #13
  %3771 = load i32, ptr %3768, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror_debug(i32 noundef %3771, ptr noundef nonnull @.str.3) #13
  %3773 = load i32, ptr %3754, align 4, !tbaa !5
  %3774 = call ptr @strerror(i32 noundef %3773) #13
  %3775 = load i32, ptr %3754, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3766, ptr noundef nonnull %.str.4.sink1574, i32 noundef %3767, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 241, ptr noundef %3770, ptr noundef %3772, ptr noundef %3774, i32 noundef %3775) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3777:                                             ; preds = %3747
  %3778 = load i32, ptr @test_count, align 4, !tbaa !5
  %3779 = add nsw i32 %3778, 1
  store i32 %3779, ptr @test_count, align 4, !tbaa !5
  %3780 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %3781 = trunc i64 %3780 to i32
  %3782 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %3781) #13
  %3783 = icmp eq i32 %3782, -1
  br i1 %3783, label %3784, label %3808

3784:                                             ; preds = %3777
  %3785 = tail call ptr @__errno_location() #14
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3788 = call i32 @s2n_print_stacktrace(ptr noundef %3787) #13
  %3789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3790 = trunc nuw i8 %3789 to i1
  br i1 %3790, label %3791, label %3795

3791:                                             ; preds = %3784
  %3792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3793 = call i32 @fileno(ptr noundef %3792) #13
  %3794 = call i32 @isatty(i32 noundef %3793) #13
  %.not383 = icmp eq i32 %3794, 0
  br i1 %.not383, label %3795, label %3796

3795:                                             ; preds = %3791, %3784
  br label %3796

3796:                                             ; preds = %3791, %3795
  %.str.4.sink1585 = phi ptr [ @.str.4, %3795 ], [ @.str, %3791 ]
  store i32 %3786, ptr %3785, align 4, !tbaa !5
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = load i32, ptr @test_count, align 4, !tbaa !5
  %3799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror(i32 noundef %3800, ptr noundef nonnull @.str.3) #13
  %3802 = load i32, ptr %3799, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror_debug(i32 noundef %3802, ptr noundef nonnull @.str.3) #13
  %3804 = load i32, ptr %3785, align 4, !tbaa !5
  %3805 = call ptr @strerror(i32 noundef %3804) #13
  %3806 = load i32, ptr %3785, align 4, !tbaa !5
  %3807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3797, ptr noundef nonnull %.str.4.sink1585, i32 noundef %3798, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 242, ptr noundef %3801, ptr noundef %3803, ptr noundef %3805, i32 noundef %3806) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3808:                                             ; preds = %3777
  %3809 = load i32, ptr @test_count, align 4, !tbaa !5
  %3810 = add nsw i32 %3809, 1
  store i32 %3810, ptr @test_count, align 4, !tbaa !5
  %3811 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 32) #13
  %3812 = icmp eq i32 %3811, -1
  br i1 %3812, label %3813, label %3837

3813:                                             ; preds = %3808
  %3814 = tail call ptr @__errno_location() #14
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @s2n_print_stacktrace(ptr noundef %3816) #13
  %3818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3819 = trunc nuw i8 %3818 to i1
  br i1 %3819, label %3820, label %3824

3820:                                             ; preds = %3813
  %3821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3822 = call i32 @fileno(ptr noundef %3821) #13
  %3823 = call i32 @isatty(i32 noundef %3822) #13
  %.not382 = icmp eq i32 %3823, 0
  br i1 %.not382, label %3824, label %3825

3824:                                             ; preds = %3820, %3813
  br label %3825

3825:                                             ; preds = %3820, %3824
  %.str.4.sink1596 = phi ptr [ @.str.4, %3824 ], [ @.str, %3820 ]
  store i32 %3815, ptr %3814, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror(i32 noundef %3829, ptr noundef nonnull @.str.3) #13
  %3831 = load i32, ptr %3828, align 4, !tbaa !5
  %3832 = call ptr @s2n_strerror_debug(i32 noundef %3831, ptr noundef nonnull @.str.3) #13
  %3833 = load i32, ptr %3814, align 4, !tbaa !5
  %3834 = call ptr @strerror(i32 noundef %3833) #13
  %3835 = load i32, ptr %3814, align 4, !tbaa !5
  %3836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef nonnull %.str.4.sink1596, i32 noundef %3827, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 243, ptr noundef %3830, ptr noundef %3832, ptr noundef %3834, i32 noundef %3835) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3837:                                             ; preds = %3808
  %3838 = load i32, ptr @test_count, align 4, !tbaa !5
  %3839 = add nsw i32 %3838, 1
  store i32 %3839, ptr @test_count, align 4, !tbaa !5
  %3840 = call i32 @s2n_hmac_free(ptr noundef nonnull %12) #13
  %3841 = icmp eq i32 %3840, -1
  br i1 %3841, label %3842, label %3866

3842:                                             ; preds = %3837
  %3843 = tail call ptr @__errno_location() #14
  %3844 = load i32, ptr %3843, align 4, !tbaa !5
  %3845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3846 = call i32 @s2n_print_stacktrace(ptr noundef %3845) #13
  %3847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3848 = trunc nuw i8 %3847 to i1
  br i1 %3848, label %3849, label %3853

3849:                                             ; preds = %3842
  %3850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3851 = call i32 @fileno(ptr noundef %3850) #13
  %3852 = call i32 @isatty(i32 noundef %3851) #13
  %.not381 = icmp eq i32 %3852, 0
  br i1 %.not381, label %3853, label %3854

3853:                                             ; preds = %3849, %3842
  br label %3854

3854:                                             ; preds = %3849, %3853
  %.str.4.sink1607 = phi ptr [ @.str.4, %3853 ], [ @.str, %3849 ]
  store i32 %3844, ptr %3843, align 4, !tbaa !5
  %3855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3856 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3858, ptr noundef nonnull @.str.3) #13
  %3860 = load i32, ptr %3857, align 4, !tbaa !5
  %3861 = call ptr @s2n_strerror_debug(i32 noundef %3860, ptr noundef nonnull @.str.3) #13
  %3862 = load i32, ptr %3843, align 4, !tbaa !5
  %3863 = call ptr @strerror(i32 noundef %3862) #13
  %3864 = load i32, ptr %3843, align 4, !tbaa !5
  %3865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3855, ptr noundef nonnull %.str.4.sink1607, i32 noundef %3856, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 244, ptr noundef %3859, ptr noundef %3861, ptr noundef %3863, i32 noundef %3864) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3866:                                             ; preds = %3837
  %3867 = load i32, ptr @test_count, align 4, !tbaa !5
  %3868 = add nsw i32 %3867, 1
  store i32 %3868, ptr @test_count, align 4, !tbaa !5
  %3869 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %3870 = icmp eq i32 %3869, -1
  br i1 %3870, label %3871, label %.preheader470

3871:                                             ; preds = %3866
  %3872 = tail call ptr @__errno_location() #14
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = call i32 @s2n_print_stacktrace(ptr noundef %3874) #13
  %3876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3877 = trunc nuw i8 %3876 to i1
  br i1 %3877, label %3878, label %3882

3878:                                             ; preds = %3871
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = call i32 @fileno(ptr noundef %3879) #13
  %3881 = call i32 @isatty(i32 noundef %3880) #13
  %.not380 = icmp eq i32 %3881, 0
  br i1 %.not380, label %3882, label %3883

3882:                                             ; preds = %3878, %3871
  br label %3883

3883:                                             ; preds = %3878, %3882
  %.str.4.sink1618 = phi ptr [ @.str.4, %3882 ], [ @.str, %3878 ]
  store i32 %3873, ptr %3872, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call ptr @s2n_strerror(i32 noundef %3887, ptr noundef nonnull @.str.3) #13
  %3889 = load i32, ptr %3886, align 4, !tbaa !5
  %3890 = call ptr @s2n_strerror_debug(i32 noundef %3889, ptr noundef nonnull @.str.3) #13
  %3891 = load i32, ptr %3872, align 4, !tbaa !5
  %3892 = call ptr @strerror(i32 noundef %3891) #13
  %3893 = load i32, ptr %3872, align 4, !tbaa !5
  %3894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3884, ptr noundef nonnull %.str.4.sink1618, i32 noundef %3885, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 246, ptr noundef %3888, ptr noundef %3890, ptr noundef %3892, i32 noundef %3893) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3895:                                             ; preds = %.preheader470
  %indvars.iv.next508 = add nuw nsw i64 %indvars.iv507, 1
  %exitcond510.not = icmp eq i64 %indvars.iv.next508, 32
  br i1 %exitcond510.not, label %3896, label %.preheader470, !llvm.loop !18

3896:                                             ; preds = %3895
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = add nsw i32 %3897, 1
  store i32 %3898, ptr @test_count, align 4, !tbaa !5
  %bcmp352 = call i32 @bcmp(ptr noundef nonnull dereferenceable(64) %5, ptr noundef nonnull dereferenceable(64) @.str.61, i64 64)
  %3899 = icmp eq i32 %bcmp352, 0
  br i1 %3899, label %3954, label %3930

.preheader470:                                    ; preds = %3866, %3895
  %indvars.iv507 = phi i64 [ %indvars.iv.next508, %3895 ], [ 0, %3866 ]
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = add nsw i32 %3900, 1
  store i32 %3901, ptr @test_count, align 4, !tbaa !5
  %3902 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %indvars.iv507
  %3903 = load i8, ptr %3902, align 1, !tbaa !15
  %3904 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %3903) #13
  %3905 = call zeroext i1 @s2n_result_is_ok(i32 %3904)
  br i1 %3905, label %3895, label %3906

3906:                                             ; preds = %.preheader470
  %3907 = tail call ptr @__errno_location() #14
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = call i32 @s2n_print_stacktrace(ptr noundef %3909) #13
  %3911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3912 = trunc nuw i8 %3911 to i1
  br i1 %3912, label %3913, label %3917

3913:                                             ; preds = %3906
  %3914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3915 = call i32 @fileno(ptr noundef %3914) #13
  %3916 = call i32 @isatty(i32 noundef %3915) #13
  %.not379 = icmp eq i32 %3916, 0
  br i1 %.not379, label %3917, label %3918

3917:                                             ; preds = %3913, %3906
  br label %3918

3918:                                             ; preds = %3913, %3917
  %.str.4.sink1629 = phi ptr [ @.str.4, %3917 ], [ @.str, %3913 ]
  store i32 %3908, ptr %3907, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = load i32, ptr @test_count, align 4, !tbaa !5
  %3921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror(i32 noundef %3922, ptr noundef nonnull @.str.3) #13
  %3924 = load i32, ptr %3921, align 4, !tbaa !5
  %3925 = call ptr @s2n_strerror_debug(i32 noundef %3924, ptr noundef nonnull @.str.3) #13
  %3926 = load i32, ptr %3907, align 4, !tbaa !5
  %3927 = call ptr @strerror(i32 noundef %3926) #13
  %3928 = load i32, ptr %3907, align 4, !tbaa !5
  %3929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3919, ptr noundef nonnull %.str.4.sink1629, i32 noundef %3920, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 248, ptr noundef %3923, ptr noundef %3925, ptr noundef %3927, i32 noundef %3928) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3930:                                             ; preds = %3896
  %3931 = tail call ptr @__errno_location() #14
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3934 = call i32 @s2n_print_stacktrace(ptr noundef %3933) #13
  %3935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3936 = trunc nuw i8 %3935 to i1
  br i1 %3936, label %3937, label %3941

3937:                                             ; preds = %3930
  %3938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3939 = call i32 @fileno(ptr noundef %3938) #13
  %3940 = call i32 @isatty(i32 noundef %3939) #13
  %.not353 = icmp eq i32 %3940, 0
  br i1 %.not353, label %3941, label %3942

3941:                                             ; preds = %3937, %3930
  br label %3942

3942:                                             ; preds = %3937, %3941
  %.str.4.sink1640 = phi ptr [ @.str.4, %3941 ], [ @.str, %3937 ]
  store i32 %3932, ptr %3931, align 4, !tbaa !5
  %3943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3944 = load i32, ptr @test_count, align 4, !tbaa !5
  %3945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror(i32 noundef %3946, ptr noundef nonnull @.str.3) #13
  %3948 = load i32, ptr %3945, align 4, !tbaa !5
  %3949 = call ptr @s2n_strerror_debug(i32 noundef %3948, ptr noundef nonnull @.str.3) #13
  %3950 = load i32, ptr %3931, align 4, !tbaa !5
  %3951 = call ptr @strerror(i32 noundef %3950) #13
  %3952 = load i32, ptr %3931, align 4, !tbaa !5
  %3953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3943, ptr noundef nonnull %.str.4.sink1640, i32 noundef %3944, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 252, ptr noundef %3947, ptr noundef %3949, ptr noundef %3951, i32 noundef %3952) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3954:                                             ; preds = %3896
  %3955 = add nsw i32 %3897, 2
  store i32 %3955, ptr @test_count, align 4, !tbaa !5
  %3956 = call i32 @s2n_hmac_new(ptr noundef nonnull %12) #13
  %3957 = icmp eq i32 %3956, -1
  br i1 %3957, label %3958, label %3982

3958:                                             ; preds = %3954
  %3959 = tail call ptr @__errno_location() #14
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = call i32 @s2n_print_stacktrace(ptr noundef %3961) #13
  %3963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3964 = trunc nuw i8 %3963 to i1
  br i1 %3964, label %3965, label %3969

3965:                                             ; preds = %3958
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = call i32 @fileno(ptr noundef %3966) #13
  %3968 = call i32 @isatty(i32 noundef %3967) #13
  %.not378 = icmp eq i32 %3968, 0
  br i1 %.not378, label %3969, label %3970

3969:                                             ; preds = %3965, %3958
  br label %3970

3970:                                             ; preds = %3965, %3969
  %.str.4.sink1651 = phi ptr [ @.str.4, %3969 ], [ @.str, %3965 ]
  store i32 %3960, ptr %3959, align 4, !tbaa !5
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = load i32, ptr @test_count, align 4, !tbaa !5
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror(i32 noundef %3974, ptr noundef nonnull @.str.3) #13
  %3976 = load i32, ptr %3973, align 4, !tbaa !5
  %3977 = call ptr @s2n_strerror_debug(i32 noundef %3976, ptr noundef nonnull @.str.3) #13
  %3978 = load i32, ptr %3959, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #13
  %3980 = load i32, ptr %3959, align 4, !tbaa !5
  %3981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3971, ptr noundef nonnull %.str.4.sink1651, i32 noundef %3972, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 255, ptr noundef %3975, ptr noundef %3977, ptr noundef %3979, i32 noundef %3980) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3982:                                             ; preds = %3954
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #13
  store i8 0, ptr %22, align 1, !tbaa !15
  %3983 = call i32 @s2n_hmac_digest_size(i32 noundef 5, ptr noundef nonnull %22) #13
  %3984 = icmp sgt i32 %3983, -1
  br i1 %3984, label %3985, label %4564

3985:                                             ; preds = %3982
  %3986 = load i32, ptr @test_count, align 4, !tbaa !5
  %3987 = add nsw i32 %3986, 1
  store i32 %3987, ptr @test_count, align 4, !tbaa !5
  %3988 = load i8, ptr %22, align 1, !tbaa !15
  %3989 = icmp eq i8 %3988, 48
  br i1 %3989, label %4014, label %3990

3990:                                             ; preds = %3985
  %3991 = tail call ptr @__errno_location() #14
  %3992 = load i32, ptr %3991, align 4, !tbaa !5
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = call i32 @s2n_print_stacktrace(ptr noundef %3993) #13
  %3995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3996 = trunc nuw i8 %3995 to i1
  br i1 %3996, label %3997, label %4001

3997:                                             ; preds = %3990
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = call i32 @fileno(ptr noundef %3998) #13
  %4000 = call i32 @isatty(i32 noundef %3999) #13
  %.not354 = icmp eq i32 %4000, 0
  br i1 %.not354, label %4001, label %4002

4001:                                             ; preds = %3997, %3990
  br label %4002

4002:                                             ; preds = %3997, %4001
  %.str.4.sink1662 = phi ptr [ @.str.4, %4001 ], [ @.str, %3997 ]
  store i32 %3992, ptr %3991, align 4, !tbaa !5
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = load i32, ptr @test_count, align 4, !tbaa !5
  %4005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call ptr @s2n_strerror(i32 noundef %4006, ptr noundef nonnull @.str.3) #13
  %4008 = load i32, ptr %4005, align 4, !tbaa !5
  %4009 = call ptr @s2n_strerror_debug(i32 noundef %4008, ptr noundef nonnull @.str.3) #13
  %4010 = load i32, ptr %3991, align 4, !tbaa !5
  %4011 = call ptr @strerror(i32 noundef %4010) #13
  %4012 = load i32, ptr %3991, align 4, !tbaa !5
  %4013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4003, ptr noundef nonnull %.str.4.sink1662, i32 noundef %4004, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 259, ptr noundef %4007, ptr noundef %4009, ptr noundef %4011, i32 noundef %4012) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4014:                                             ; preds = %3985
  %4015 = add nsw i32 %3986, 2
  store i32 %4015, ptr @test_count, align 4, !tbaa !5
  %4016 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %4017 = trunc i64 %4016 to i32
  %4018 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 5, ptr noundef nonnull %7, i32 noundef %4017) #13
  %4019 = icmp eq i32 %4018, -1
  br i1 %4019, label %4020, label %4044

4020:                                             ; preds = %4014
  %4021 = tail call ptr @__errno_location() #14
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4024 = call i32 @s2n_print_stacktrace(ptr noundef %4023) #13
  %4025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4026 = trunc nuw i8 %4025 to i1
  br i1 %4026, label %4027, label %4031

4027:                                             ; preds = %4020
  %4028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4029 = call i32 @fileno(ptr noundef %4028) #13
  %4030 = call i32 @isatty(i32 noundef %4029) #13
  %.not377 = icmp eq i32 %4030, 0
  br i1 %.not377, label %4031, label %4032

4031:                                             ; preds = %4027, %4020
  br label %4032

4032:                                             ; preds = %4027, %4031
  %.str.4.sink1673 = phi ptr [ @.str.4, %4031 ], [ @.str, %4027 ]
  store i32 %4022, ptr %4021, align 4, !tbaa !5
  %4033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4034 = load i32, ptr @test_count, align 4, !tbaa !5
  %4035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror(i32 noundef %4036, ptr noundef nonnull @.str.3) #13
  %4038 = load i32, ptr %4035, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror_debug(i32 noundef %4038, ptr noundef nonnull @.str.3) #13
  %4040 = load i32, ptr %4021, align 4, !tbaa !5
  %4041 = call ptr @strerror(i32 noundef %4040) #13
  %4042 = load i32, ptr %4021, align 4, !tbaa !5
  %4043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4033, ptr noundef nonnull %.str.4.sink1673, i32 noundef %4034, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.2, i32 noundef 260, ptr noundef %4037, ptr noundef %4039, ptr noundef %4041, i32 noundef %4042) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4044:                                             ; preds = %4014
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = add nsw i32 %4045, 1
  store i32 %4046, ptr @test_count, align 4, !tbaa !5
  %4047 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %4048 = trunc i64 %4047 to i32
  %4049 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %4048) #13
  %4050 = icmp eq i32 %4049, -1
  br i1 %4050, label %4051, label %4075

4051:                                             ; preds = %4044
  %4052 = tail call ptr @__errno_location() #14
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4055 = call i32 @s2n_print_stacktrace(ptr noundef %4054) #13
  %4056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4057 = trunc nuw i8 %4056 to i1
  br i1 %4057, label %4058, label %4062

4058:                                             ; preds = %4051
  %4059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4060 = call i32 @fileno(ptr noundef %4059) #13
  %4061 = call i32 @isatty(i32 noundef %4060) #13
  %.not376 = icmp eq i32 %4061, 0
  br i1 %.not376, label %4062, label %4063

4062:                                             ; preds = %4058, %4051
  br label %4063

4063:                                             ; preds = %4058, %4062
  %.str.4.sink1684 = phi ptr [ @.str.4, %4062 ], [ @.str, %4058 ]
  store i32 %4053, ptr %4052, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef nonnull @.str.3) #13
  %4069 = load i32, ptr %4066, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror_debug(i32 noundef %4069, ptr noundef nonnull @.str.3) #13
  %4071 = load i32, ptr %4052, align 4, !tbaa !5
  %4072 = call ptr @strerror(i32 noundef %4071) #13
  %4073 = load i32, ptr %4052, align 4, !tbaa !5
  %4074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef nonnull %.str.4.sink1684, i32 noundef %4065, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 261, ptr noundef %4068, ptr noundef %4070, ptr noundef %4072, i32 noundef %4073) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4075:                                             ; preds = %4044
  %4076 = load i32, ptr @test_count, align 4, !tbaa !5
  %4077 = add nsw i32 %4076, 1
  store i32 %4077, ptr @test_count, align 4, !tbaa !5
  %4078 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 48) #13
  %4079 = icmp eq i32 %4078, -1
  br i1 %4079, label %4080, label %4104

4080:                                             ; preds = %4075
  %4081 = tail call ptr @__errno_location() #14
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = call i32 @s2n_print_stacktrace(ptr noundef %4083) #13
  %4085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4086 = trunc nuw i8 %4085 to i1
  br i1 %4086, label %4087, label %4091

4087:                                             ; preds = %4080
  %4088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4089 = call i32 @fileno(ptr noundef %4088) #13
  %4090 = call i32 @isatty(i32 noundef %4089) #13
  %.not375 = icmp eq i32 %4090, 0
  br i1 %.not375, label %4091, label %4092

4091:                                             ; preds = %4087, %4080
  br label %4092

4092:                                             ; preds = %4087, %4091
  %.str.4.sink1695 = phi ptr [ @.str.4, %4091 ], [ @.str, %4087 ]
  store i32 %4082, ptr %4081, align 4, !tbaa !5
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = load i32, ptr @test_count, align 4, !tbaa !5
  %4095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror(i32 noundef %4096, ptr noundef nonnull @.str.3) #13
  %4098 = load i32, ptr %4095, align 4, !tbaa !5
  %4099 = call ptr @s2n_strerror_debug(i32 noundef %4098, ptr noundef nonnull @.str.3) #13
  %4100 = load i32, ptr %4081, align 4, !tbaa !5
  %4101 = call ptr @strerror(i32 noundef %4100) #13
  %4102 = load i32, ptr %4081, align 4, !tbaa !5
  %4103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4093, ptr noundef nonnull %.str.4.sink1695, i32 noundef %4094, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 262, ptr noundef %4097, ptr noundef %4099, ptr noundef %4101, i32 noundef %4102) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4104:                                             ; preds = %4075
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = add nsw i32 %4105, 1
  store i32 %4106, ptr @test_count, align 4, !tbaa !5
  %4107 = call i32 @s2n_hmac_free(ptr noundef nonnull %12) #13
  %4108 = icmp eq i32 %4107, -1
  br i1 %4108, label %4109, label %4133

4109:                                             ; preds = %4104
  %4110 = tail call ptr @__errno_location() #14
  %4111 = load i32, ptr %4110, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = call i32 @s2n_print_stacktrace(ptr noundef %4112) #13
  %4114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4115 = trunc nuw i8 %4114 to i1
  br i1 %4115, label %4116, label %4120

4116:                                             ; preds = %4109
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = call i32 @fileno(ptr noundef %4117) #13
  %4119 = call i32 @isatty(i32 noundef %4118) #13
  %.not374 = icmp eq i32 %4119, 0
  br i1 %.not374, label %4120, label %4121

4120:                                             ; preds = %4116, %4109
  br label %4121

4121:                                             ; preds = %4116, %4120
  %.str.4.sink1706 = phi ptr [ @.str.4, %4120 ], [ @.str, %4116 ]
  store i32 %4111, ptr %4110, align 4, !tbaa !5
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = load i32, ptr @test_count, align 4, !tbaa !5
  %4124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @s2n_strerror(i32 noundef %4125, ptr noundef nonnull @.str.3) #13
  %4127 = load i32, ptr %4124, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror_debug(i32 noundef %4127, ptr noundef nonnull @.str.3) #13
  %4129 = load i32, ptr %4110, align 4, !tbaa !5
  %4130 = call ptr @strerror(i32 noundef %4129) #13
  %4131 = load i32, ptr %4110, align 4, !tbaa !5
  %4132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4122, ptr noundef nonnull %.str.4.sink1706, i32 noundef %4123, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 263, ptr noundef %4126, ptr noundef %4128, ptr noundef %4130, i32 noundef %4131) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4133:                                             ; preds = %4104
  %4134 = load i32, ptr @test_count, align 4, !tbaa !5
  %4135 = add nsw i32 %4134, 1
  store i32 %4135, ptr @test_count, align 4, !tbaa !5
  %4136 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %4137 = icmp eq i32 %4136, -1
  br i1 %4137, label %4138, label %.preheader469

4138:                                             ; preds = %4133
  %4139 = tail call ptr @__errno_location() #14
  %4140 = load i32, ptr %4139, align 4, !tbaa !5
  %4141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4142 = call i32 @s2n_print_stacktrace(ptr noundef %4141) #13
  %4143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4144 = trunc nuw i8 %4143 to i1
  br i1 %4144, label %4145, label %4149

4145:                                             ; preds = %4138
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = call i32 @fileno(ptr noundef %4146) #13
  %4148 = call i32 @isatty(i32 noundef %4147) #13
  %.not373 = icmp eq i32 %4148, 0
  br i1 %.not373, label %4149, label %4150

4149:                                             ; preds = %4145, %4138
  br label %4150

4150:                                             ; preds = %4145, %4149
  %.str.4.sink1717 = phi ptr [ @.str.4, %4149 ], [ @.str, %4145 ]
  store i32 %4140, ptr %4139, align 4, !tbaa !5
  %4151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @s2n_strerror(i32 noundef %4154, ptr noundef nonnull @.str.3) #13
  %4156 = load i32, ptr %4153, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror_debug(i32 noundef %4156, ptr noundef nonnull @.str.3) #13
  %4158 = load i32, ptr %4139, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #13
  %4160 = load i32, ptr %4139, align 4, !tbaa !5
  %4161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4151, ptr noundef nonnull %.str.4.sink1717, i32 noundef %4152, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 265, ptr noundef %4155, ptr noundef %4157, ptr noundef %4159, i32 noundef %4160) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4162:                                             ; preds = %.preheader469
  %indvars.iv.next512 = add nuw nsw i64 %indvars.iv511, 1
  %exitcond514.not = icmp eq i64 %indvars.iv.next512, 48
  br i1 %exitcond514.not, label %4163, label %.preheader469, !llvm.loop !19

4163:                                             ; preds = %4162
  %4164 = load i32, ptr @test_count, align 4, !tbaa !5
  %4165 = add nsw i32 %4164, 1
  store i32 %4165, ptr @test_count, align 4, !tbaa !5
  %bcmp355 = call i32 @bcmp(ptr noundef nonnull dereferenceable(96) %5, ptr noundef nonnull dereferenceable(96) @.str.66, i64 96)
  %4166 = icmp eq i32 %bcmp355, 0
  br i1 %4166, label %4221, label %4197

.preheader469:                                    ; preds = %4133, %4162
  %indvars.iv511 = phi i64 [ %indvars.iv.next512, %4162 ], [ 0, %4133 ]
  %4167 = load i32, ptr @test_count, align 4, !tbaa !5
  %4168 = add nsw i32 %4167, 1
  store i32 %4168, ptr @test_count, align 4, !tbaa !5
  %4169 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %indvars.iv511
  %4170 = load i8, ptr %4169, align 1, !tbaa !15
  %4171 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %4170) #13
  %4172 = call zeroext i1 @s2n_result_is_ok(i32 %4171)
  br i1 %4172, label %4162, label %4173

4173:                                             ; preds = %.preheader469
  %4174 = tail call ptr @__errno_location() #14
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = call i32 @s2n_print_stacktrace(ptr noundef %4176) #13
  %4178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4179 = trunc nuw i8 %4178 to i1
  br i1 %4179, label %4180, label %4184

4180:                                             ; preds = %4173
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = call i32 @fileno(ptr noundef %4181) #13
  %4183 = call i32 @isatty(i32 noundef %4182) #13
  %.not372 = icmp eq i32 %4183, 0
  br i1 %.not372, label %4184, label %4185

4184:                                             ; preds = %4180, %4173
  br label %4185

4185:                                             ; preds = %4180, %4184
  %.str.4.sink1728 = phi ptr [ @.str.4, %4184 ], [ @.str, %4180 ]
  store i32 %4175, ptr %4174, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call ptr @s2n_strerror(i32 noundef %4189, ptr noundef nonnull @.str.3) #13
  %4191 = load i32, ptr %4188, align 4, !tbaa !5
  %4192 = call ptr @s2n_strerror_debug(i32 noundef %4191, ptr noundef nonnull @.str.3) #13
  %4193 = load i32, ptr %4174, align 4, !tbaa !5
  %4194 = call ptr @strerror(i32 noundef %4193) #13
  %4195 = load i32, ptr %4174, align 4, !tbaa !5
  %4196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4186, ptr noundef nonnull %.str.4.sink1728, i32 noundef %4187, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 267, ptr noundef %4190, ptr noundef %4192, ptr noundef %4194, i32 noundef %4195) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4197:                                             ; preds = %4163
  %4198 = tail call ptr @__errno_location() #14
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @s2n_print_stacktrace(ptr noundef %4200) #13
  %4202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4203 = trunc nuw i8 %4202 to i1
  br i1 %4203, label %4204, label %4208

4204:                                             ; preds = %4197
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = call i32 @fileno(ptr noundef %4205) #13
  %4207 = call i32 @isatty(i32 noundef %4206) #13
  %.not356 = icmp eq i32 %4207, 0
  br i1 %.not356, label %4208, label %4209

4208:                                             ; preds = %4204, %4197
  br label %4209

4209:                                             ; preds = %4204, %4208
  %.str.4.sink1739 = phi ptr [ @.str.4, %4208 ], [ @.str, %4204 ]
  store i32 %4199, ptr %4198, align 4, !tbaa !5
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = load i32, ptr @test_count, align 4, !tbaa !5
  %4212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4213 = load i32, ptr %4212, align 4, !tbaa !5
  %4214 = call ptr @s2n_strerror(i32 noundef %4213, ptr noundef nonnull @.str.3) #13
  %4215 = load i32, ptr %4212, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror_debug(i32 noundef %4215, ptr noundef nonnull @.str.3) #13
  %4217 = load i32, ptr %4198, align 4, !tbaa !5
  %4218 = call ptr @strerror(i32 noundef %4217) #13
  %4219 = load i32, ptr %4198, align 4, !tbaa !5
  %4220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4210, ptr noundef nonnull %.str.4.sink1739, i32 noundef %4211, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.2, i32 noundef 271, ptr noundef %4214, ptr noundef %4216, ptr noundef %4218, i32 noundef %4219) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4221:                                             ; preds = %4163
  %4222 = add nsw i32 %4164, 2
  store i32 %4222, ptr @test_count, align 4, !tbaa !5
  %4223 = call i32 @s2n_hmac_new(ptr noundef nonnull %12) #13
  %4224 = icmp eq i32 %4223, -1
  br i1 %4224, label %4225, label %4249

4225:                                             ; preds = %4221
  %4226 = tail call ptr @__errno_location() #14
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4229 = call i32 @s2n_print_stacktrace(ptr noundef %4228) #13
  %4230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4231 = trunc nuw i8 %4230 to i1
  br i1 %4231, label %4232, label %4236

4232:                                             ; preds = %4225
  %4233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4234 = call i32 @fileno(ptr noundef %4233) #13
  %4235 = call i32 @isatty(i32 noundef %4234) #13
  %.not371 = icmp eq i32 %4235, 0
  br i1 %.not371, label %4236, label %4237

4236:                                             ; preds = %4232, %4225
  br label %4237

4237:                                             ; preds = %4232, %4236
  %.str.4.sink1750 = phi ptr [ @.str.4, %4236 ], [ @.str, %4232 ]
  store i32 %4227, ptr %4226, align 4, !tbaa !5
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = load i32, ptr @test_count, align 4, !tbaa !5
  %4240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror(i32 noundef %4241, ptr noundef nonnull @.str.3) #13
  %4243 = load i32, ptr %4240, align 4, !tbaa !5
  %4244 = call ptr @s2n_strerror_debug(i32 noundef %4243, ptr noundef nonnull @.str.3) #13
  %4245 = load i32, ptr %4226, align 4, !tbaa !5
  %4246 = call ptr @strerror(i32 noundef %4245) #13
  %4247 = load i32, ptr %4226, align 4, !tbaa !5
  %4248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4238, ptr noundef nonnull %.str.4.sink1750, i32 noundef %4239, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 274, ptr noundef %4242, ptr noundef %4244, ptr noundef %4246, i32 noundef %4247) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4249:                                             ; preds = %4221
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #13
  store i8 0, ptr %23, align 1, !tbaa !15
  %4250 = call i32 @s2n_hmac_digest_size(i32 noundef 6, ptr noundef nonnull %23) #13
  %4251 = icmp sgt i32 %4250, -1
  br i1 %4251, label %4252, label %4563

4252:                                             ; preds = %4249
  %4253 = load i32, ptr @test_count, align 4, !tbaa !5
  %4254 = add nsw i32 %4253, 1
  store i32 %4254, ptr @test_count, align 4, !tbaa !5
  %4255 = load i8, ptr %23, align 1, !tbaa !15
  %4256 = icmp eq i8 %4255, 64
  br i1 %4256, label %4281, label %4257

4257:                                             ; preds = %4252
  %4258 = tail call ptr @__errno_location() #14
  %4259 = load i32, ptr %4258, align 4, !tbaa !5
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = call i32 @s2n_print_stacktrace(ptr noundef %4260) #13
  %4262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4263 = trunc nuw i8 %4262 to i1
  br i1 %4263, label %4264, label %4268

4264:                                             ; preds = %4257
  %4265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4266 = call i32 @fileno(ptr noundef %4265) #13
  %4267 = call i32 @isatty(i32 noundef %4266) #13
  %.not357 = icmp eq i32 %4267, 0
  br i1 %.not357, label %4268, label %4269

4268:                                             ; preds = %4264, %4257
  br label %4269

4269:                                             ; preds = %4264, %4268
  %.str.4.sink1761 = phi ptr [ @.str.4, %4268 ], [ @.str, %4264 ]
  store i32 %4259, ptr %4258, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror(i32 noundef %4273, ptr noundef nonnull @.str.3) #13
  %4275 = load i32, ptr %4272, align 4, !tbaa !5
  %4276 = call ptr @s2n_strerror_debug(i32 noundef %4275, ptr noundef nonnull @.str.3) #13
  %4277 = load i32, ptr %4258, align 4, !tbaa !5
  %4278 = call ptr @strerror(i32 noundef %4277) #13
  %4279 = load i32, ptr %4258, align 4, !tbaa !5
  %4280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef nonnull %.str.4.sink1761, i32 noundef %4271, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 278, ptr noundef %4274, ptr noundef %4276, ptr noundef %4278, i32 noundef %4279) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4281:                                             ; preds = %4252
  %4282 = add nsw i32 %4253, 2
  store i32 %4282, ptr @test_count, align 4, !tbaa !5
  %4283 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %4284 = trunc i64 %4283 to i32
  %4285 = call i32 @s2n_hmac_init(ptr noundef nonnull %12, i32 noundef 6, ptr noundef nonnull %7, i32 noundef %4284) #13
  %4286 = icmp eq i32 %4285, -1
  br i1 %4286, label %4287, label %4311

4287:                                             ; preds = %4281
  %4288 = tail call ptr @__errno_location() #14
  %4289 = load i32, ptr %4288, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = call i32 @s2n_print_stacktrace(ptr noundef %4290) #13
  %4292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4293 = trunc nuw i8 %4292 to i1
  br i1 %4293, label %4294, label %4298

4294:                                             ; preds = %4287
  %4295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4296 = call i32 @fileno(ptr noundef %4295) #13
  %4297 = call i32 @isatty(i32 noundef %4296) #13
  %.not370 = icmp eq i32 %4297, 0
  br i1 %.not370, label %4298, label %4299

4298:                                             ; preds = %4294, %4287
  br label %4299

4299:                                             ; preds = %4294, %4298
  %.str.4.sink1772 = phi ptr [ @.str.4, %4298 ], [ @.str, %4294 ]
  store i32 %4289, ptr %4288, 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 nonnull @.str.3) #13
  %4305 = load i32, ptr %4302, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror_debug(i32 noundef %4305, ptr noundef nonnull @.str.3) #13
  %4307 = load i32, ptr %4288, align 4, !tbaa !5
  %4308 = call ptr @strerror(i32 noundef %4307) #13
  %4309 = load i32, ptr %4288, align 4, !tbaa !5
  %4310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4300, ptr noundef nonnull %.str.4.sink1772, i32 noundef %4301, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 279, ptr noundef %4304, ptr noundef %4306, ptr noundef %4308, i32 noundef %4309) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4311:                                             ; preds = %4281
  %4312 = load i32, ptr @test_count, align 4, !tbaa !5
  %4313 = add nsw i32 %4312, 1
  store i32 %4313, ptr @test_count, align 4, !tbaa !5
  %4314 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17
  %4315 = trunc i64 %4314 to i32
  %4316 = call i32 @s2n_hmac_update(ptr noundef nonnull %12, ptr noundef nonnull %9, i32 noundef %4315) #13
  %4317 = icmp eq i32 %4316, -1
  br i1 %4317, label %4318, label %4342

4318:                                             ; preds = %4311
  %4319 = tail call ptr @__errno_location() #14
  %4320 = load i32, ptr %4319, align 4, !tbaa !5
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = call i32 @s2n_print_stacktrace(ptr noundef %4321) #13
  %4323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4324 = trunc nuw i8 %4323 to i1
  br i1 %4324, label %4325, label %4329

4325:                                             ; preds = %4318
  %4326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4327 = call i32 @fileno(ptr noundef %4326) #13
  %4328 = call i32 @isatty(i32 noundef %4327) #13
  %.not369 = icmp eq i32 %4328, 0
  br i1 %.not369, label %4329, label %4330

4329:                                             ; preds = %4325, %4318
  br label %4330

4330:                                             ; preds = %4325, %4329
  %.str.4.sink1783 = phi ptr [ @.str.4, %4329 ], [ @.str, %4325 ]
  store i32 %4320, ptr %4319, align 4, !tbaa !5
  %4331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4332 = load i32, ptr @test_count, align 4, !tbaa !5
  %4333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror(i32 noundef %4334, ptr noundef nonnull @.str.3) #13
  %4336 = load i32, ptr %4333, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror_debug(i32 noundef %4336, ptr noundef nonnull @.str.3) #13
  %4338 = load i32, ptr %4319, align 4, !tbaa !5
  %4339 = call ptr @strerror(i32 noundef %4338) #13
  %4340 = load i32, ptr %4319, align 4, !tbaa !5
  %4341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4331, ptr noundef nonnull %.str.4.sink1783, i32 noundef %4332, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 280, ptr noundef %4335, ptr noundef %4337, ptr noundef %4339, i32 noundef %4340) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4342:                                             ; preds = %4311
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = add nsw i32 %4343, 1
  store i32 %4344, ptr @test_count, align 4, !tbaa !5
  %4345 = call i32 @s2n_hmac_digest(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef 64) #13
  %4346 = icmp eq i32 %4345, -1
  br i1 %4346, label %4347, label %4371

4347:                                             ; preds = %4342
  %4348 = tail call ptr @__errno_location() #14
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4351 = call i32 @s2n_print_stacktrace(ptr noundef %4350) #13
  %4352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4353 = trunc nuw i8 %4352 to i1
  br i1 %4353, label %4354, label %4358

4354:                                             ; preds = %4347
  %4355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4356 = call i32 @fileno(ptr noundef %4355) #13
  %4357 = call i32 @isatty(i32 noundef %4356) #13
  %.not368 = icmp eq i32 %4357, 0
  br i1 %.not368, label %4358, label %4359

4358:                                             ; preds = %4354, %4347
  br label %4359

4359:                                             ; preds = %4354, %4358
  %.str.4.sink1794 = phi ptr [ @.str.4, %4358 ], [ @.str, %4354 ]
  store i32 %4349, ptr %4348, align 4, !tbaa !5
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = load i32, ptr @test_count, align 4, !tbaa !5
  %4362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror(i32 noundef %4363, ptr noundef nonnull @.str.3) #13
  %4365 = load i32, ptr %4362, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror_debug(i32 noundef %4365, ptr noundef nonnull @.str.3) #13
  %4367 = load i32, ptr %4348, align 4, !tbaa !5
  %4368 = call ptr @strerror(i32 noundef %4367) #13
  %4369 = load i32, ptr %4348, align 4, !tbaa !5
  %4370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4360, ptr noundef nonnull %.str.4.sink1794, i32 noundef %4361, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 281, ptr noundef %4364, ptr noundef %4366, ptr noundef %4368, i32 noundef %4369) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4371:                                             ; preds = %4342
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = add nsw i32 %4372, 1
  store i32 %4373, ptr @test_count, align 4, !tbaa !5
  %4374 = call i32 @s2n_hmac_free(ptr noundef nonnull %12) #13
  %4375 = icmp eq i32 %4374, -1
  br i1 %4375, label %4376, label %4400

4376:                                             ; preds = %4371
  %4377 = tail call ptr @__errno_location() #14
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = call i32 @s2n_print_stacktrace(ptr noundef %4379) #13
  %4381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4382 = trunc nuw i8 %4381 to i1
  br i1 %4382, label %4383, label %4387

4383:                                             ; preds = %4376
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = call i32 @fileno(ptr noundef %4384) #13
  %4386 = call i32 @isatty(i32 noundef %4385) #13
  %.not367 = icmp eq i32 %4386, 0
  br i1 %.not367, label %4387, label %4388

4387:                                             ; preds = %4383, %4376
  br label %4388

4388:                                             ; preds = %4383, %4387
  %.str.4.sink1805 = phi ptr [ @.str.4, %4387 ], [ @.str, %4383 ]
  store i32 %4378, ptr %4377, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %4391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call ptr @s2n_strerror(i32 noundef %4392, ptr noundef nonnull @.str.3) #13
  %4394 = load i32, ptr %4391, align 4, !tbaa !5
  %4395 = call ptr @s2n_strerror_debug(i32 noundef %4394, ptr noundef nonnull @.str.3) #13
  %4396 = load i32, ptr %4377, align 4, !tbaa !5
  %4397 = call ptr @strerror(i32 noundef %4396) #13
  %4398 = load i32, ptr %4377, align 4, !tbaa !5
  %4399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef nonnull %.str.4.sink1805, i32 noundef %4390, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 282, ptr noundef %4393, ptr noundef %4395, ptr noundef %4397, i32 noundef %4398) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4400:                                             ; preds = %4371
  %4401 = load i32, ptr @test_count, align 4, !tbaa !5
  %4402 = add nsw i32 %4401, 1
  store i32 %4402, ptr @test_count, align 4, !tbaa !5
  %4403 = call i32 @s2n_stuffer_init(ptr noundef nonnull %6, ptr noundef nonnull %15) #13
  %4404 = icmp eq i32 %4403, -1
  br i1 %4404, label %4405, label %.preheader

4405:                                             ; preds = %4400
  %4406 = tail call ptr @__errno_location() #14
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = call i32 @s2n_print_stacktrace(ptr noundef %4408) #13
  %4410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4411 = trunc nuw i8 %4410 to i1
  br i1 %4411, label %4412, label %4416

4412:                                             ; preds = %4405
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = call i32 @fileno(ptr noundef %4413) #13
  %4415 = call i32 @isatty(i32 noundef %4414) #13
  %.not366 = icmp eq i32 %4415, 0
  br i1 %.not366, label %4416, label %4417

4416:                                             ; preds = %4412, %4405
  br label %4417

4417:                                             ; preds = %4412, %4416
  %.str.4.sink1816 = phi ptr [ @.str.4, %4416 ], [ @.str, %4412 ]
  store i32 %4407, ptr %4406, align 4, !tbaa !5
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = load i32, ptr @test_count, align 4, !tbaa !5
  %4420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4421 = load i32, ptr %4420, align 4, !tbaa !5
  %4422 = call ptr @s2n_strerror(i32 noundef %4421, ptr noundef nonnull @.str.3) #13
  %4423 = load i32, ptr %4420, align 4, !tbaa !5
  %4424 = call ptr @s2n_strerror_debug(i32 noundef %4423, ptr noundef nonnull @.str.3) #13
  %4425 = load i32, ptr %4406, align 4, !tbaa !5
  %4426 = call ptr @strerror(i32 noundef %4425) #13
  %4427 = load i32, ptr %4406, align 4, !tbaa !5
  %4428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4418, ptr noundef nonnull %.str.4.sink1816, i32 noundef %4419, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 284, ptr noundef %4422, ptr noundef %4424, ptr noundef %4426, i32 noundef %4427) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4429:                                             ; preds = %.preheader
  %indvars.iv.next516 = add nuw nsw i64 %indvars.iv515, 1
  %exitcond518.not = icmp eq i64 %indvars.iv.next516, 64
  br i1 %exitcond518.not, label %4430, label %.preheader, !llvm.loop !20

4430:                                             ; preds = %4429
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %4432 = add nsw i32 %4431, 1
  store i32 %4432, ptr @test_count, align 4, !tbaa !5
  %bcmp358 = call i32 @bcmp(ptr noundef nonnull dereferenceable(128) %5, ptr noundef nonnull dereferenceable(128) @.str.71, i64 128)
  %4433 = icmp eq i32 %bcmp358, 0
  br i1 %4433, label %4488, label %4464

.preheader:                                       ; preds = %4400, %4429
  %indvars.iv515 = phi i64 [ %indvars.iv.next516, %4429 ], [ 0, %4400 ]
  %4434 = load i32, ptr @test_count, align 4, !tbaa !5
  %4435 = add nsw i32 %4434, 1
  store i32 %4435, ptr @test_count, align 4, !tbaa !5
  %4436 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 %indvars.iv515
  %4437 = load i8, ptr %4436, align 1, !tbaa !15
  %4438 = call i32 @s2n_stuffer_write_uint8_hex(ptr noundef nonnull %6, i8 noundef zeroext %4437) #13
  %4439 = call zeroext i1 @s2n_result_is_ok(i32 %4438)
  br i1 %4439, label %4429, label %4440

4440:                                             ; preds = %.preheader
  %4441 = tail call ptr @__errno_location() #14
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4444 = call i32 @s2n_print_stacktrace(ptr noundef %4443) #13
  %4445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4446 = trunc nuw i8 %4445 to i1
  br i1 %4446, label %4447, label %4451

4447:                                             ; preds = %4440
  %4448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4449 = call i32 @fileno(ptr noundef %4448) #13
  %4450 = call i32 @isatty(i32 noundef %4449) #13
  %.not365 = icmp eq i32 %4450, 0
  br i1 %.not365, label %4451, label %4452

4451:                                             ; preds = %4447, %4440
  br label %4452

4452:                                             ; preds = %4447, %4451
  %.str.4.sink1827 = phi ptr [ @.str.4, %4451 ], [ @.str, %4447 ]
  store i32 %4442, ptr %4441, align 4, !tbaa !5
  %4453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %4455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call ptr @s2n_strerror(i32 noundef %4456, ptr noundef nonnull @.str.3) #13
  %4458 = load i32, ptr %4455, align 4, !tbaa !5
  %4459 = call ptr @s2n_strerror_debug(i32 noundef %4458, ptr noundef nonnull @.str.3) #13
  %4460 = load i32, ptr %4441, align 4, !tbaa !5
  %4461 = call ptr @strerror(i32 noundef %4460) #13
  %4462 = load i32, ptr %4441, align 4, !tbaa !5
  %4463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4453, ptr noundef nonnull %.str.4.sink1827, i32 noundef %4454, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 286, ptr noundef %4457, ptr noundef %4459, ptr noundef %4461, i32 noundef %4462) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4464:                                             ; preds = %4430
  %4465 = tail call ptr @__errno_location() #14
  %4466 = load i32, ptr %4465, align 4, !tbaa !5
  %4467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4468 = call i32 @s2n_print_stacktrace(ptr noundef %4467) #13
  %4469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4470 = trunc nuw i8 %4469 to i1
  br i1 %4470, label %4471, label %4475

4471:                                             ; preds = %4464
  %4472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4473 = call i32 @fileno(ptr noundef %4472) #13
  %4474 = call i32 @isatty(i32 noundef %4473) #13
  %.not359 = icmp eq i32 %4474, 0
  br i1 %.not359, label %4475, label %4476

4475:                                             ; preds = %4471, %4464
  br label %4476

4476:                                             ; preds = %4471, %4475
  %.str.4.sink1838 = phi ptr [ @.str.4, %4475 ], [ @.str, %4471 ]
  store i32 %4466, ptr %4465, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = load i32, ptr @test_count, align 4, !tbaa !5
  %4479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call ptr @s2n_strerror(i32 noundef %4480, ptr noundef nonnull @.str.3) #13
  %4482 = load i32, ptr %4479, align 4, !tbaa !5
  %4483 = call ptr @s2n_strerror_debug(i32 noundef %4482, ptr noundef nonnull @.str.3) #13
  %4484 = load i32, ptr %4465, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #13
  %4486 = load i32, ptr %4465, align 4, !tbaa !5
  %4487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4477, ptr noundef nonnull %.str.4.sink1838, i32 noundef %4478, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 290, ptr noundef %4481, ptr noundef %4483, ptr noundef %4485, i32 noundef %4486) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4488:                                             ; preds = %4430
  %4489 = call i32 @s2n_cleanup() #13
  %4490 = icmp eq i32 %4489, -1
  br i1 %4490, label %4491, label %4515

4491:                                             ; preds = %4488
  %4492 = tail call ptr @__errno_location() #14
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = call i32 @s2n_print_stacktrace(ptr noundef %4494) #13
  %4496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4497 = trunc nuw i8 %4496 to i1
  br i1 %4497, label %4498, label %4502

4498:                                             ; preds = %4491
  %4499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4500 = call i32 @fileno(ptr noundef %4499) #13
  %4501 = call i32 @isatty(i32 noundef %4500) #13
  %.not364 = icmp eq i32 %4501, 0
  br i1 %.not364, label %4502, label %4503

4502:                                             ; preds = %4498, %4491
  br label %4503

4503:                                             ; preds = %4498, %4502
  %.str.4.sink1849 = phi ptr [ @.str.4, %4502 ], [ @.str, %4498 ]
  store i32 %4493, ptr %4492, align 4, !tbaa !5
  %4504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4505 = load i32, ptr @test_count, align 4, !tbaa !5
  %4506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @s2n_strerror(i32 noundef %4507, ptr noundef nonnull @.str.3) #13
  %4509 = load i32, ptr %4506, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror_debug(i32 noundef %4509, ptr noundef nonnull @.str.3) #13
  %4511 = load i32, ptr %4492, align 4, !tbaa !5
  %4512 = call ptr @strerror(i32 noundef %4511) #13
  %4513 = load i32, ptr %4492, align 4, !tbaa !5
  %4514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4504, ptr noundef nonnull %.str.4.sink1849, i32 noundef %4505, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 292, ptr noundef %4508, ptr noundef %4510, ptr noundef %4512, i32 noundef %4513) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4515:                                             ; preds = %4488
  %4516 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %4517 = icmp eq i32 %4516, -1
  br i1 %4517, label %4518, label %4542

4518:                                             ; preds = %4515
  %4519 = tail call ptr @__errno_location() #14
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4522 = call i32 @s2n_print_stacktrace(ptr noundef %4521) #13
  %4523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4524 = trunc nuw i8 %4523 to i1
  br i1 %4524, label %4525, label %4529

4525:                                             ; preds = %4518
  %4526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4527 = call i32 @fileno(ptr noundef %4526) #13
  %4528 = call i32 @isatty(i32 noundef %4527) #13
  %.not363 = icmp eq i32 %4528, 0
  br i1 %.not363, label %4529, label %4530

4529:                                             ; preds = %4525, %4518
  br label %4530

4530:                                             ; preds = %4525, %4529
  %.str.4.sink1860 = phi ptr [ @.str.4, %4529 ], [ @.str, %4525 ]
  store i32 %4520, ptr %4519, align 4, !tbaa !5
  %4531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4532 = load i32, ptr @test_count, align 4, !tbaa !5
  %4533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4534 = load i32, ptr %4533, align 4, !tbaa !5
  %4535 = call ptr @s2n_strerror(i32 noundef %4534, ptr noundef nonnull @.str.3) #13
  %4536 = load i32, ptr %4533, align 4, !tbaa !5
  %4537 = call ptr @s2n_strerror_debug(i32 noundef %4536, ptr noundef nonnull @.str.3) #13
  %4538 = load i32, ptr %4519, align 4, !tbaa !5
  %4539 = call ptr @strerror(i32 noundef %4538) #13
  %4540 = load i32, ptr %4519, align 4, !tbaa !5
  %4541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4531, ptr noundef nonnull %.str.4.sink1860, i32 noundef %4532, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 292, ptr noundef %4535, ptr noundef %4537, ptr noundef %4539, i32 noundef %4540) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4542:                                             ; preds = %4515
  %4543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4544 = trunc nuw i8 %4543 to i1
  br i1 %4544, label %4545, label %4556

4545:                                             ; preds = %4542
  %4546 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4547 = call i32 @fileno(ptr noundef %4546) #13
  %4548 = call i32 @isatty(i32 noundef %4547) #13
  %.not360 = icmp eq i32 %4548, 0
  br i1 %.not360, label %4556, label %4549

4549:                                             ; preds = %4545
  %4550 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not362 = icmp eq i32 %4550, 0
  %4551 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not362, label %4554, label %4552

4552:                                             ; preds = %4549
  %4553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4551, ptr noundef nonnull @.str.75, i32 noundef %4550) #13
  br label %4563

4554:                                             ; preds = %4549
  %4555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4551, ptr noundef nonnull @.str.76) #13
  br label %4563

4556:                                             ; preds = %4545, %4542
  %4557 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not361 = icmp eq i32 %4557, 0
  %4558 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not361, label %4561, label %4559

4559:                                             ; preds = %4556
  %4560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4558, ptr noundef nonnull @.str.77, i32 noundef %4557) #13
  br label %4563

4561:                                             ; preds = %4556
  %4562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4558, ptr noundef nonnull @.str.78) #13
  br label %4563

4563:                                             ; preds = %4554, %4552, %4561, %4559, %4249
  %.3 = phi i32 [ -1, %4249 ], [ 0, %4559 ], [ 0, %4561 ], [ 0, %4552 ], [ 0, %4554 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #13
  br label %4564

4564:                                             ; preds = %3982, %4563
  %.4 = phi i32 [ %.3, %4563 ], [ -1, %3982 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #13
  br label %4565

4565:                                             ; preds = %3715, %4564
  %.5 = phi i32 [ %.4, %4564 ], [ -1, %3715 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #13
  br label %4566

4566:                                             ; preds = %3448, %4565
  %.6 = phi i32 [ %.5, %4565 ], [ -1, %3448 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #13
  br label %4567

4567:                                             ; preds = %1745, %4566
  %.7 = phi i32 [ %.6, %4566 ], [ -1, %1745 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #13
  br label %4568

4568:                                             ; preds = %.thread467, %.thread465, %.thread, %4567
  %.8 = phi i32 [ %.7, %4567 ], [ -1, %.thread ], [ -1, %.thread465 ], [ -1, %.thread467 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 101, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %3) #13
  ret i32 %.8
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

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

declare i32 @s2n_hmac_new(ptr noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #10

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

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

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

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

declare i32 @s2n_stuffer_write_uint8_hex(ptr noundef, i8 noundef zeroext) local_unnamed_addr #4

declare i32 @s2n_hmac_reset(ptr noundef) local_unnamed_addr #4

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

declare i32 @s2n_hmac_free(ptr noundef) local_unnamed_addr #4

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

declare i32 @s2n_cleanup() local_unnamed_addr #4

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

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


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass