; LLVM IR from aws/s2n-tls :: tests/unit (s2n_drbg_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_debug_info = type { ptr, ptr }
%struct.s2n_drbg = type { i64, ptr, [16 x i8], i64 }
%struct.s2n_result = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@nist_aes128_reference_entropy = external dso_local global %struct.s2n_stuffer, align 8
@nist_aes128_reference_entropy_hex = external dso_local constant [2881 x i8], align 16
@nist_aes128_reference_personalization_strings_hex = external dso_local constant [961 x i8], align 16
@nist_aes128_reference_values_hex = external dso_local constant [1441 x i8], align 16
@nist_aes128_reference_returned_bits_hex = external dso_local constant [1921 x i8], align 16
@nist_aes256_reference_entropy = external dso_local global %struct.s2n_stuffer, align 8
@nist_aes256_reference_entropy_hex_part1 = external dso_local constant [2113 x i8], align 16
@nist_aes256_reference_entropy_hex_part2 = external dso_local constant [2209 x i8], align 16
@nist_aes256_reference_personalization_strings_hex = external dso_local constant [1441 x i8], align 16
@nist_aes256_reference_values_hex = external dso_local constant [1441 x i8], align 16
@nist_aes256_reference_returned_bits_hex = external dso_local constant [1921 x i8], align 16
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [72 x i8], align 1
@stderr = external global ptr, align 8
@.str.8 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [232 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [232 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #3

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

declare i32 @s2n_stuffer_alloc_from_hex(ptr noundef, ptr noundef) #3

declare i32 @s2n_drbg_instantiate(ptr noundef, ptr noundef, i32 noundef) #3

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

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strrchr(ptr noundef, i32 noundef) #6

declare i32 @s2n_calculate_stacktrace() #3

declare i32 @s2n_drbg_generate(ptr noundef, ptr noundef) #3

declare i32 @s2n_drbg_wipe(ptr noundef) #3

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [256 x i8], align 16
  %11 = alloca %struct.s2n_drbg, align 8
  %12 = alloca %struct.s2n_drbg, align 8
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca i32, align 4
  %15 = alloca %struct.s2n_result, align 4
  %16 = alloca i32, align 4
  %17 = alloca %struct.s2n_result, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_result, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_result, align 4
  %37 = alloca i32, align 4
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i32, align 4
  %41 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_result, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_result, align 4
  %60 = alloca i32, align 4
  %61 = alloca i8, align 1
  %62 = alloca i64, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca i32, align 4
  %68 = alloca i64, align 8
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca %struct.s2n_result, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca %struct.s2n_stuffer, align 8
  %78 = alloca %struct.s2n_stuffer, align 8
  %79 = alloca %struct.s2n_result, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, 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 i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %92

92:                                               ; preds = %2
  br label %93

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

98:                                               ; preds = %93
  %99 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %100 = icmp eq i32 %99, -1
  br i1 %100, label %101, label %152

101:                                              ; preds = %98
  br label %102

102:                                              ; preds = %101
  br label %103

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

110:                                              ; preds = %103
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = call i32 @fileno(ptr noundef %111) #11
  %113 = call i32 @isatty(i32 noundef %112) #11
  %114 = icmp ne i32 %113, 0
  br i1 %114, label %115, label %132

115:                                              ; preds = %110
  %116 = load i32, ptr %6, align 4, !tbaa !5
  %117 = call ptr @__errno_location() #12
  store i32 %116, ptr %117, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = call ptr @s2n_strerror(i32 noundef %121, ptr noundef @.str.10)
  %123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef @.str.10)
  %126 = call ptr @__errno_location() #12
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call ptr @strerror(i32 noundef %127) #11
  %129 = call ptr @__errno_location() #12
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef @.str.8, i32 noundef %119, ptr noundef @.str.9, ptr noundef @.str.7, i32 noundef 344, ptr noundef %122, ptr noundef %125, ptr noundef %128, i32 noundef %130) #11
  br label %149

132:                                              ; preds = %110, %103
  %133 = load i32, ptr %6, align 4, !tbaa !5
  %134 = call ptr @__errno_location() #12
  store i32 %133, ptr %134, align 4, !tbaa !5
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = load i32, ptr @test_count, align 4, !tbaa !5
  %137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = call ptr @s2n_strerror(i32 noundef %138, ptr noundef @.str.10)
  %140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = call ptr @s2n_strerror_debug(i32 noundef %141, ptr noundef @.str.10)
  %143 = call ptr @__errno_location() #12
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = call ptr @strerror(i32 noundef %144) #11
  %146 = call ptr @__errno_location() #12
  %147 = load i32, ptr %146, align 4, !tbaa !5
  %148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef @.str.11, i32 noundef %136, ptr noundef @.str.9, ptr noundef @.str.7, i32 noundef 344, ptr noundef %139, ptr noundef %142, ptr noundef %145, i32 noundef %147) #11
  br label %149

149:                                              ; preds = %132, %115
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %150

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

151:                                              ; No predecessors!
  br label %152

152:                                              ; preds = %151, %98
  br label %153

153:                                              ; preds = %152
  br label %154

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

159:                                              ; preds = %154
  br label %160

160:                                              ; preds = %159
  br label %161

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

168:                                              ; preds = %161
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = call i32 @fileno(ptr noundef %169) #11
  %171 = call i32 @isatty(i32 noundef %170) #11
  %172 = icmp ne i32 %171, 0
  br i1 %172, label %173, label %190

173:                                              ; preds = %168
  %174 = load i32, ptr %7, align 4, !tbaa !5
  %175 = call ptr @__errno_location() #12
  store i32 %174, ptr %175, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror(i32 noundef %179, ptr noundef @.str.10)
  %181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @s2n_strerror_debug(i32 noundef %182, ptr noundef @.str.10)
  %184 = call ptr @__errno_location() #12
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = call ptr @strerror(i32 noundef %185) #11
  %187 = call ptr @__errno_location() #12
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef @.str.8, i32 noundef %177, ptr noundef @.str.12, ptr noundef @.str.7, i32 noundef 344, ptr noundef %180, ptr noundef %183, ptr noundef %186, i32 noundef %188) #11
  br label %207

190:                                              ; preds = %168, %161
  %191 = load i32, ptr %7, align 4, !tbaa !5
  %192 = call ptr @__errno_location() #12
  store i32 %191, ptr %192, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @s2n_strerror(i32 noundef %196, ptr noundef @.str.10)
  %198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef @.str.10)
  %201 = call ptr @__errno_location() #12
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call ptr @strerror(i32 noundef %202) #11
  %204 = call ptr @__errno_location() #12
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef @.str.11, i32 noundef %194, ptr noundef @.str.12, ptr noundef @.str.7, i32 noundef 344, ptr noundef %197, ptr noundef %200, ptr noundef %203, i32 noundef %205) #11
  br label %207

207:                                              ; preds = %190, %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %208

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

209:                                              ; No predecessors!
  br label %210

210:                                              ; preds = %209, %154
  br label %211

211:                                              ; preds = %210
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  %214 = call i32 @s2n_init()
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %216, label %267

216:                                              ; preds = %213
  br label %217

217:                                              ; preds = %216
  br label %218

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

225:                                              ; preds = %218
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = call i32 @fileno(ptr noundef %226) #11
  %228 = call i32 @isatty(i32 noundef %227) #11
  %229 = icmp ne i32 %228, 0
  br i1 %229, label %230, label %247

230:                                              ; preds = %225
  %231 = load i32, ptr %8, align 4, !tbaa !5
  %232 = call ptr @__errno_location() #12
  store i32 %231, ptr %232, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror(i32 noundef %236, ptr noundef @.str.10)
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef @.str.10)
  %241 = call ptr @__errno_location() #12
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #11
  %244 = call ptr @__errno_location() #12
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %233, ptr noundef @.str.8, i32 noundef %234, ptr noundef @.str.13, ptr noundef @.str.7, i32 noundef 344, ptr noundef %237, ptr noundef %240, ptr noundef %243, i32 noundef %245) #11
  br label %264

247:                                              ; preds = %225, %218
  %248 = load i32, ptr %8, align 4, !tbaa !5
  %249 = call ptr @__errno_location() #12
  store i32 %248, ptr %249, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = call ptr @s2n_strerror(i32 noundef %253, ptr noundef @.str.10)
  %255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror_debug(i32 noundef %256, ptr noundef @.str.10)
  %258 = call ptr @__errno_location() #12
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @strerror(i32 noundef %259) #11
  %261 = call ptr @__errno_location() #12
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef @.str.11, i32 noundef %251, ptr noundef @.str.13, ptr noundef @.str.7, i32 noundef 344, ptr noundef %254, ptr noundef %257, ptr noundef %260, i32 noundef %262) #11
  br label %264

264:                                              ; preds = %247, %230
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %265

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

266:                                              ; No predecessors!
  br label %267

267:                                              ; preds = %266, %213
  br label %268

268:                                              ; preds = %267
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  %271 = load i32, ptr @test_count, align 4, !tbaa !5
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr @test_count, align 4, !tbaa !5
  %273 = call i32 (...) @s2n_disable_tls13_in_test()
  %274 = icmp eq i32 %273, -1
  br i1 %274, label %275, label %326

275:                                              ; preds = %270
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %278 = call ptr @__errno_location() #12
  %279 = load i32, ptr %278, align 4, !tbaa !5
  store i32 %279, ptr %9, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @s2n_print_stacktrace(ptr noundef %280)
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc i8 %282 to i1
  br i1 %283, label %284, label %306

284:                                              ; preds = %277
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @fileno(ptr noundef %285) #11
  %287 = call i32 @isatty(i32 noundef %286) #11
  %288 = icmp ne i32 %287, 0
  br i1 %288, label %289, label %306

289:                                              ; preds = %284
  %290 = load i32, ptr %9, align 4, !tbaa !5
  %291 = call ptr @__errno_location() #12
  store i32 %290, ptr %291, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror(i32 noundef %295, ptr noundef @.str.10)
  %297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef @.str.10)
  %300 = call ptr @__errno_location() #12
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #11
  %303 = call ptr @__errno_location() #12
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef @.str.8, i32 noundef %293, ptr noundef @.str.14, ptr noundef @.str.7, i32 noundef 345, ptr noundef %296, ptr noundef %299, ptr noundef %302, i32 noundef %304) #11
  br label %323

306:                                              ; preds = %284, %277
  %307 = load i32, ptr %9, align 4, !tbaa !5
  %308 = call ptr @__errno_location() #12
  store i32 %307, ptr %308, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror(i32 noundef %312, ptr noundef @.str.10)
  %314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef @.str.10)
  %317 = call ptr @__errno_location() #12
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #11
  %320 = call ptr @__errno_location() #12
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef @.str.11, i32 noundef %310, ptr noundef @.str.14, ptr noundef @.str.7, i32 noundef 345, ptr noundef %313, ptr noundef %316, ptr noundef %319, i32 noundef %321) #11
  br label %323

323:                                              ; preds = %306, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %324

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

325:                                              ; No predecessors!
  br label %326

326:                                              ; preds = %325, %270
  br label %327

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 256, ptr %10) #11
  call void @llvm.memset.p0.i64(ptr align 16 %10, i8 0, i64 256, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %11) #11
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %12) #11
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #11
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false)
  br label %328

328:                                              ; preds = %327
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = add nsw i32 %329, 1
  store i32 %330, ptr @test_count, align 4, !tbaa !5
  %331 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 0
  %332 = call i32 @s2n_blob_init(ptr noundef %13, ptr noundef %331, i32 noundef 64)
  %333 = icmp eq i32 %332, -1
  br i1 %333, label %334, label %387

334:                                              ; preds = %328
  br label %335

335:                                              ; preds = %334
  br label %336

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

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #11
  %346 = call i32 @isatty(i32 noundef %345) #11
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %365

348:                                              ; preds = %343
  %349 = load i32, ptr %14, align 4, !tbaa !5
  %350 = call ptr @__errno_location() #12
  store i32 %349, ptr %350, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef @.str.10)
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef @.str.10)
  %359 = call ptr @__errno_location() #12
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #11
  %362 = call ptr @__errno_location() #12
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef @.str.8, i32 noundef %352, ptr noundef @.str.15, ptr noundef @.str.7, i32 noundef 351, ptr noundef %355, ptr noundef %358, ptr noundef %361, i32 noundef %363) #11
  br label %382

365:                                              ; preds = %343, %336
  %366 = load i32, ptr %14, align 4, !tbaa !5
  %367 = call ptr @__errno_location() #12
  store i32 %366, ptr %367, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef @.str.10)
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef @.str.10)
  %376 = call ptr @__errno_location() #12
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #11
  %379 = call ptr @__errno_location() #12
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.11, i32 noundef %369, ptr noundef @.str.15, ptr noundef @.str.7, i32 noundef 351, ptr noundef %372, ptr noundef %375, ptr noundef %378, i32 noundef %380) #11
  br label %382

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %383

383:                                              ; preds = %382
  br label %384

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

385:                                              ; No predecessors!
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386, %328
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr @test_count, align 4, !tbaa !5
  %393 = call i32 @s2n_drbg_instantiate(ptr noundef %11, ptr noundef %13, i32 noundef 0)
  %394 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  store i32 %393, ptr %394, align 4
  %395 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  %396 = load i32, ptr %395, align 4
  %397 = call zeroext i1 @s2n_result_is_ok(i32 %396)
  br i1 %397, label %451, label %398

398:                                              ; preds = %390
  br label %399

399:                                              ; preds = %398
  br label %400

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

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

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

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

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

447:                                              ; preds = %446
  br label %448

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

449:                                              ; No predecessors!
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450, %390
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = add nsw i32 %455, 1
  store i32 %456, ptr @test_count, align 4, !tbaa !5
  %457 = call i32 @s2n_drbg_instantiate(ptr noundef %12, ptr noundef %13, i32 noundef 1)
  %458 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  store i32 %457, ptr %458, align 4
  %459 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  %460 = load i32, ptr %459, align 4
  %461 = call zeroext i1 @s2n_result_is_ok(i32 %460)
  br i1 %461, label %515, label %462

462:                                              ; preds = %454
  br label %463

463:                                              ; preds = %462
  br label %464

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

471:                                              ; preds = %464
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = call i32 @fileno(ptr noundef %472) #11
  %474 = call i32 @isatty(i32 noundef %473) #11
  %475 = icmp ne i32 %474, 0
  br i1 %475, label %476, label %493

476:                                              ; preds = %471
  %477 = load i32, ptr %18, align 4, !tbaa !5
  %478 = call ptr @__errno_location() #12
  store i32 %477, ptr %478, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror(i32 noundef %482, ptr noundef @.str.10)
  %484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef @.str.10)
  %487 = call ptr @__errno_location() #12
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @strerror(i32 noundef %488) #11
  %490 = call ptr @__errno_location() #12
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef @.str.8, i32 noundef %480, ptr noundef @.str.17, ptr noundef @.str.7, i32 noundef 354, ptr noundef %483, ptr noundef %486, ptr noundef %489, i32 noundef %491) #11
  br label %510

493:                                              ; preds = %471, %464
  %494 = load i32, ptr %18, align 4, !tbaa !5
  %495 = call ptr @__errno_location() #12
  store i32 %494, ptr %495, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef @.str.10)
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef @.str.10)
  %504 = call ptr @__errno_location() #12
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @strerror(i32 noundef %505) #11
  %507 = call ptr @__errno_location() #12
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef @.str.11, i32 noundef %497, ptr noundef @.str.17, ptr noundef @.str.7, i32 noundef 354, ptr noundef %500, ptr noundef %503, ptr noundef %506, i32 noundef %508) #11
  br label %510

510:                                              ; preds = %493, %476
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %511

511:                                              ; preds = %510
  br label %512

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

513:                                              ; No predecessors!
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514, %454
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  store ptr null, ptr %19, align 8, !tbaa !9
  br label %518

518:                                              ; preds = %517
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr @test_count, align 4, !tbaa !5
  %521 = call ptr @s2n_config_new()
  store ptr %521, ptr %19, align 8, !tbaa !9
  %522 = icmp eq ptr %521, null
  br i1 %522, label %523, label %576

523:                                              ; preds = %518
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %526 = call ptr @__errno_location() #12
  %527 = load i32, ptr %526, align 4, !tbaa !5
  store i32 %527, ptr %20, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @s2n_print_stacktrace(ptr noundef %528)
  %530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %531 = trunc i8 %530 to i1
  br i1 %531, label %532, label %554

532:                                              ; preds = %525
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = call i32 @fileno(ptr noundef %533) #11
  %535 = call i32 @isatty(i32 noundef %534) #11
  %536 = icmp ne i32 %535, 0
  br i1 %536, label %537, label %554

537:                                              ; preds = %532
  %538 = load i32, ptr %20, align 4, !tbaa !5
  %539 = call ptr @__errno_location() #12
  store i32 %538, ptr %539, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror(i32 noundef %543, ptr noundef @.str.10)
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror_debug(i32 noundef %546, ptr noundef @.str.10)
  %548 = call ptr @__errno_location() #12
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #11
  %551 = call ptr @__errno_location() #12
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef @.str.8, i32 noundef %541, ptr noundef @.str.18, ptr noundef @.str.7, i32 noundef 357, ptr noundef %544, ptr noundef %547, ptr noundef %550, i32 noundef %552) #11
  br label %571

554:                                              ; preds = %532, %525
  %555 = load i32, ptr %20, align 4, !tbaa !5
  %556 = call ptr @__errno_location() #12
  store i32 %555, ptr %556, align 4, !tbaa !5
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror(i32 noundef %560, ptr noundef @.str.10)
  %562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror_debug(i32 noundef %563, ptr noundef @.str.10)
  %565 = call ptr @__errno_location() #12
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @strerror(i32 noundef %566) #11
  %568 = call ptr @__errno_location() #12
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %557, ptr noundef @.str.11, i32 noundef %558, ptr noundef @.str.18, ptr noundef @.str.7, i32 noundef 357, ptr noundef %561, ptr noundef %564, ptr noundef %567, i32 noundef %569) #11
  br label %571

571:                                              ; preds = %554, %537
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %572

572:                                              ; preds = %571
  br label %573

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

574:                                              ; No predecessors!
  br label %575

575:                                              ; preds = %574
  br label %576

576:                                              ; preds = %575, %518
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  store i32 0, ptr %21, align 4, !tbaa !5
  br label %579

579:                                              ; preds = %648, %578
  %580 = load i32, ptr %21, align 4, !tbaa !5
  %581 = icmp slt i32 %580, 500000
  br i1 %581, label %583, label %582

582:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %651

583:                                              ; preds = %579
  br label %584

584:                                              ; preds = %583
  %585 = load i32, ptr @test_count, align 4, !tbaa !5
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = call i32 @s2n_drbg_generate(ptr noundef %11, ptr noundef %13)
  %588 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  store i32 %587, ptr %588, align 4
  %589 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  %590 = load i32, ptr %589, align 4
  %591 = call zeroext i1 @s2n_result_is_ok(i32 %590)
  br i1 %591, label %645, label %592

592:                                              ; preds = %584
  br label %593

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %595 = call ptr @__errno_location() #12
  %596 = load i32, ptr %595, align 4, !tbaa !5
  store i32 %596, ptr %23, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @s2n_print_stacktrace(ptr noundef %597)
  %599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %600 = trunc i8 %599 to i1
  br i1 %600, label %601, label %623

601:                                              ; preds = %594
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @fileno(ptr noundef %602) #11
  %604 = call i32 @isatty(i32 noundef %603) #11
  %605 = icmp ne i32 %604, 0
  br i1 %605, label %606, label %623

606:                                              ; preds = %601
  %607 = load i32, ptr %23, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #12
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef @.str.10)
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef @.str.10)
  %617 = call ptr @__errno_location() #12
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #11
  %620 = call ptr @__errno_location() #12
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.8, i32 noundef %610, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 361, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #11
  br label %640

623:                                              ; preds = %601, %594
  %624 = load i32, ptr %23, align 4, !tbaa !5
  %625 = call ptr @__errno_location() #12
  store i32 %624, ptr %625, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef @.str.10)
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef @.str.10)
  %634 = call ptr @__errno_location() #12
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #11
  %637 = call ptr @__errno_location() #12
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.11, i32 noundef %627, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 361, ptr noundef %630, ptr noundef %633, ptr noundef %636, i32 noundef %638) #11
  br label %640

640:                                              ; preds = %623, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %641

641:                                              ; preds = %640
  br label %642

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

643:                                              ; No predecessors!
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644, %584
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  %649 = load i32, ptr %21, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr %21, align 4, !tbaa !5
  br label %579, !llvm.loop !15

651:                                              ; preds = %582
  br label %652

652:                                              ; preds = %651
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = add nsw i32 %653, 1
  store i32 %654, ptr @test_count, align 4, !tbaa !5
  %655 = getelementptr inbounds %struct.s2n_drbg, ptr %11, i32 0, i32 3
  %656 = load i64, ptr %655, align 8, !tbaa !17
  %657 = icmp eq i64 %656, 500000
  br i1 %657, label %711, label %658

658:                                              ; preds = %652
  br label %659

659:                                              ; preds = %658
  br label %660

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

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

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

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

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

707:                                              ; preds = %706
  br label %708

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

709:                                              ; No predecessors!
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710, %652
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %714

714:                                              ; preds = %783, %713
  %715 = load i32, ptr %25, align 4, !tbaa !5
  %716 = icmp slt i32 %715, 500000
  br i1 %716, label %718, label %717

717:                                              ; preds = %714
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %786

718:                                              ; preds = %714
  br label %719

719:                                              ; preds = %718
  %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 = call i32 @s2n_drbg_generate(ptr noundef %12, ptr noundef %13)
  %723 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %722, ptr %723, align 4
  %724 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %725 = load i32, ptr %724, align 4
  %726 = call zeroext i1 @s2n_result_is_ok(i32 %725)
  br i1 %726, label %780, label %727

727:                                              ; preds = %719
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %730 = call ptr @__errno_location() #12
  %731 = load i32, ptr %730, align 4, !tbaa !5
  store i32 %731, ptr %27, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @s2n_print_stacktrace(ptr noundef %732)
  %734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %735 = trunc i8 %734 to i1
  br i1 %735, label %736, label %758

736:                                              ; preds = %729
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @fileno(ptr noundef %737) #11
  %739 = call i32 @isatty(i32 noundef %738) #11
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %758

741:                                              ; preds = %736
  %742 = load i32, ptr %27, align 4, !tbaa !5
  %743 = call ptr @__errno_location() #12
  store i32 %742, ptr %743, align 4, !tbaa !5
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror(i32 noundef %747, ptr noundef @.str.10)
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef @.str.10)
  %752 = call ptr @__errno_location() #12
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @strerror(i32 noundef %753) #11
  %755 = call ptr @__errno_location() #12
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %744, ptr noundef @.str.8, i32 noundef %745, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 367, ptr noundef %748, ptr noundef %751, ptr noundef %754, i32 noundef %756) #11
  br label %775

758:                                              ; preds = %736, %729
  %759 = load i32, ptr %27, align 4, !tbaa !5
  %760 = call ptr @__errno_location() #12
  store i32 %759, ptr %760, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef @.str.10)
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef @.str.10)
  %769 = call ptr @__errno_location() #12
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #11
  %772 = call ptr @__errno_location() #12
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef @.str.11, i32 noundef %762, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 367, ptr noundef %765, ptr noundef %768, ptr noundef %771, i32 noundef %773) #11
  br label %775

775:                                              ; preds = %758, %741
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %776

776:                                              ; preds = %775
  br label %777

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

778:                                              ; No predecessors!
  br label %779

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779, %719
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  %784 = load i32, ptr %25, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %25, align 4, !tbaa !5
  br label %714, !llvm.loop !20

786:                                              ; preds = %717
  br label %787

787:                                              ; preds = %786
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr @test_count, align 4, !tbaa !5
  %790 = getelementptr inbounds %struct.s2n_drbg, ptr %12, i32 0, i32 3
  %791 = load i64, ptr %790, align 8, !tbaa !17
  %792 = icmp eq i64 %791, 500000
  br i1 %792, label %846, label %793

793:                                              ; preds = %787
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %796 = call ptr @__errno_location() #12
  %797 = load i32, ptr %796, align 4, !tbaa !5
  store i32 %797, ptr %28, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = call i32 @s2n_print_stacktrace(ptr noundef %798)
  %800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %801 = trunc i8 %800 to i1
  br i1 %801, label %802, label %824

802:                                              ; preds = %795
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @fileno(ptr noundef %803) #11
  %805 = call i32 @isatty(i32 noundef %804) #11
  %806 = icmp ne i32 %805, 0
  br i1 %806, label %807, label %824

807:                                              ; preds = %802
  %808 = load i32, ptr %28, align 4, !tbaa !5
  %809 = call ptr @__errno_location() #12
  store i32 %808, ptr %809, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror(i32 noundef %813, ptr noundef @.str.10)
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror_debug(i32 noundef %816, ptr noundef @.str.10)
  %818 = call ptr @__errno_location() #12
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @strerror(i32 noundef %819) #11
  %821 = call ptr @__errno_location() #12
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %810, ptr noundef @.str.8, i32 noundef %811, ptr noundef @.str.22, ptr noundef @.str.7, i32 noundef 369, ptr noundef %814, ptr noundef %817, ptr noundef %820, i32 noundef %822) #11
  br label %841

824:                                              ; preds = %802, %795
  %825 = load i32, ptr %28, align 4, !tbaa !5
  %826 = call ptr @__errno_location() #12
  store i32 %825, ptr %826, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror(i32 noundef %830, ptr noundef @.str.10)
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror_debug(i32 noundef %833, ptr noundef @.str.10)
  %835 = call ptr @__errno_location() #12
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #11
  %838 = call ptr @__errno_location() #12
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %827, ptr noundef @.str.11, i32 noundef %828, ptr noundef @.str.22, ptr noundef @.str.7, i32 noundef 369, ptr noundef %831, ptr noundef %834, ptr noundef %837, i32 noundef %839) #11
  br label %841

841:                                              ; preds = %824, %807
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %842

842:                                              ; preds = %841
  br label %843

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

844:                                              ; No predecessors!
  br label %845

845:                                              ; preds = %844
  br label %846

846:                                              ; preds = %845, %787
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847
  %849 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  store i32 129, ptr %849, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  store i32 0, ptr %29, align 4, !tbaa !5
  br label %850

850:                                              ; preds = %983, %848
  %851 = load i32, ptr %29, align 4, !tbaa !5
  %852 = icmp slt i32 %851, 10
  br i1 %852, label %854, label %853

853:                                              ; preds = %850
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %986

854:                                              ; preds = %850
  br label %855

855:                                              ; preds = %854
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = call i32 @s2n_drbg_generate(ptr noundef %11, ptr noundef %13)
  %859 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %858, ptr %859, align 4
  %860 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %861 = load i32, ptr %860, align 4
  %862 = call zeroext i1 @s2n_result_is_ok(i32 %861)
  br i1 %862, label %916, label %863

863:                                              ; preds = %855
  br label %864

864:                                              ; preds = %863
  br label %865

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

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

877:                                              ; preds = %872
  %878 = load i32, ptr %31, align 4, !tbaa !5
  %879 = call ptr @__errno_location() #12
  store i32 %878, ptr %879, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror(i32 noundef %883, ptr noundef @.str.10)
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef @.str.10)
  %888 = call ptr @__errno_location() #12
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @strerror(i32 noundef %889) #11
  %891 = call ptr @__errno_location() #12
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %880, ptr noundef @.str.8, i32 noundef %881, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 375, ptr noundef %884, ptr noundef %887, ptr noundef %890, i32 noundef %892) #11
  br label %911

894:                                              ; preds = %872, %865
  %895 = load i32, ptr %31, align 4, !tbaa !5
  %896 = call ptr @__errno_location() #12
  store i32 %895, ptr %896, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef @.str.10)
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror_debug(i32 noundef %903, ptr noundef @.str.10)
  %905 = call ptr @__errno_location() #12
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #11
  %908 = call ptr @__errno_location() #12
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %897, ptr noundef @.str.11, i32 noundef %898, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 375, ptr noundef %901, ptr noundef %904, ptr noundef %907, i32 noundef %909) #11
  br label %911

911:                                              ; preds = %894, %877
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %912

912:                                              ; preds = %911
  br label %913

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

914:                                              ; No predecessors!
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915, %855
  br label %917

917:                                              ; preds = %916
  br label %918

918:                                              ; preds = %917
  br label %919

919:                                              ; preds = %918
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = call i32 @s2n_drbg_generate(ptr noundef %12, ptr noundef %13)
  %923 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %922, ptr %923, align 4
  %924 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %925 = load i32, ptr %924, align 4
  %926 = call zeroext i1 @s2n_result_is_ok(i32 %925)
  br i1 %926, label %980, label %927

927:                                              ; preds = %919
  br label %928

928:                                              ; preds = %927
  br label %929

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

936:                                              ; preds = %929
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @fileno(ptr noundef %937) #11
  %939 = call i32 @isatty(i32 noundef %938) #11
  %940 = icmp ne i32 %939, 0
  br i1 %940, label %941, label %958

941:                                              ; preds = %936
  %942 = load i32, ptr %33, align 4, !tbaa !5
  %943 = call ptr @__errno_location() #12
  store i32 %942, ptr %943, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror(i32 noundef %947, ptr noundef @.str.10)
  %949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror_debug(i32 noundef %950, ptr noundef @.str.10)
  %952 = call ptr @__errno_location() #12
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @strerror(i32 noundef %953) #11
  %955 = call ptr @__errno_location() #12
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef @.str.8, i32 noundef %945, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 376, ptr noundef %948, ptr noundef %951, ptr noundef %954, i32 noundef %956) #11
  br label %975

958:                                              ; preds = %936, %929
  %959 = load i32, ptr %33, align 4, !tbaa !5
  %960 = call ptr @__errno_location() #12
  store i32 %959, ptr %960, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef @.str.10)
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef @.str.10)
  %969 = call ptr @__errno_location() #12
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #11
  %972 = call ptr @__errno_location() #12
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef @.str.11, i32 noundef %962, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 376, ptr noundef %965, ptr noundef %968, ptr noundef %971, i32 noundef %973) #11
  br label %975

975:                                              ; preds = %958, %941
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %976

976:                                              ; preds = %975
  br label %977

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

978:                                              ; No predecessors!
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979, %919
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981
  br label %983

983:                                              ; preds = %982
  %984 = load i32, ptr %29, align 4, !tbaa !5
  %985 = add nsw i32 %984, 1
  store i32 %985, ptr %29, align 4, !tbaa !5
  br label %850, !llvm.loop !23

986:                                              ; preds = %853
  br label %987

987:                                              ; preds = %986
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = add nsw i32 %988, 1
  store i32 %989, ptr @test_count, align 4, !tbaa !5
  %990 = getelementptr inbounds %struct.s2n_drbg, ptr %11, i32 0, i32 3
  %991 = load i64, ptr %990, align 8, !tbaa !17
  %992 = icmp eq i64 %991, 500010
  br i1 %992, label %1046, label %993

993:                                              ; preds = %987
  br label %994

994:                                              ; preds = %993
  br label %995

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

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

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

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

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

1042:                                             ; preds = %1041
  br label %1043

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

1044:                                             ; No predecessors!
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045, %987
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr @test_count, align 4, !tbaa !5
  %1052 = getelementptr inbounds %struct.s2n_drbg, ptr %12, i32 0, i32 3
  %1053 = load i64, ptr %1052, align 8, !tbaa !17
  %1054 = icmp eq i64 %1053, 500010
  br i1 %1054, label %1108, label %1055

1055:                                             ; preds = %1049
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

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

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

1069:                                             ; preds = %1064
  %1070 = load i32, ptr %35, align 4, !tbaa !5
  %1071 = call ptr @__errno_location() #12
  store i32 %1070, ptr %1071, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror(i32 noundef %1075, ptr noundef @.str.10)
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror_debug(i32 noundef %1078, ptr noundef @.str.10)
  %1080 = call ptr @__errno_location() #12
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #11
  %1083 = call ptr @__errno_location() #12
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef @.str.8, i32 noundef %1073, ptr noundef @.str.24, ptr noundef @.str.7, i32 noundef 379, ptr noundef %1076, ptr noundef %1079, ptr noundef %1082, i32 noundef %1084) #11
  br label %1103

1086:                                             ; preds = %1064, %1057
  %1087 = load i32, ptr %35, align 4, !tbaa !5
  %1088 = call ptr @__errno_location() #12
  store i32 %1087, ptr %1088, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror(i32 noundef %1092, ptr noundef @.str.10)
  %1094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef @.str.10)
  %1097 = call ptr @__errno_location() #12
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call ptr @strerror(i32 noundef %1098) #11
  %1100 = call ptr @__errno_location() #12
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1089, ptr noundef @.str.11, i32 noundef %1090, ptr noundef @.str.24, ptr noundef @.str.7, i32 noundef 379, ptr noundef %1093, ptr noundef %1096, ptr noundef %1099, i32 noundef %1101) #11
  br label %1103

1103:                                             ; preds = %1086, %1069
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

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

1106:                                             ; No predecessors!
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107, %1049
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

1111:                                             ; preds = %1110
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = add nsw i32 %1112, 1
  store i32 %1113, ptr @test_count, align 4, !tbaa !5
  %1114 = call i32 @s2n_ignore_prediction_resistance_for_testing(i1 noundef zeroext true)
  %1115 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1114, ptr %1115, align 4
  %1116 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1117 = load i32, ptr %1116, align 4
  %1118 = call zeroext i1 @s2n_result_is_ok(i32 %1117)
  br i1 %1118, label %1172, label %1119

1119:                                             ; preds = %1111
  br label %1120

1120:                                             ; preds = %1119
  br label %1121

1121:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1122 = call ptr @__errno_location() #12
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  store i32 %1123, ptr %37, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124)
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc i8 %1126 to i1
  br i1 %1127, label %1128, label %1150

1128:                                             ; preds = %1121
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #11
  %1131 = call i32 @isatty(i32 noundef %1130) #11
  %1132 = icmp ne i32 %1131, 0
  br i1 %1132, label %1133, label %1150

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

1150:                                             ; preds = %1128, %1121
  %1151 = load i32, ptr %37, align 4, !tbaa !5
  %1152 = call ptr @__errno_location() #12
  store i32 %1151, ptr %1152, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = load i32, ptr @test_count, align 4, !tbaa !5
  %1155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror(i32 noundef %1156, ptr noundef @.str.10)
  %1158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror_debug(i32 noundef %1159, ptr noundef @.str.10)
  %1161 = call ptr @__errno_location() #12
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @strerror(i32 noundef %1162) #11
  %1164 = call ptr @__errno_location() #12
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1153, ptr noundef @.str.11, i32 noundef %1154, ptr noundef @.str.25, ptr noundef @.str.7, i32 noundef 382, ptr noundef %1157, ptr noundef %1160, ptr noundef %1163, i32 noundef %1165) #11
  br label %1167

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

1168:                                             ; preds = %1167
  br label %1169

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

1170:                                             ; No predecessors!
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171, %1111
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  %1175 = getelementptr inbounds %struct.s2n_drbg, ptr %11, i32 0, i32 3
  %1176 = load i64, ptr %1175, align 8, !tbaa !17
  store i64 %1176, ptr %38, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  %1177 = getelementptr inbounds %struct.s2n_drbg, ptr %12, i32 0, i32 3
  %1178 = load i64, ptr %1177, align 8, !tbaa !17
  store i64 %1178, ptr %39, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1179

1179:                                             ; preds = %1312, %1174
  %1180 = load i32, ptr %40, align 4, !tbaa !5
  %1181 = icmp slt i32 %1180, 10
  br i1 %1181, label %1183, label %1182

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

1183:                                             ; preds = %1179
  br label %1184

1184:                                             ; preds = %1183
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = add nsw i32 %1185, 1
  store i32 %1186, ptr @test_count, align 4, !tbaa !5
  %1187 = call i32 @s2n_drbg_generate(ptr noundef %11, ptr noundef %13)
  %1188 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  store i32 %1187, ptr %1188, align 4
  %1189 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  %1190 = load i32, ptr %1189, align 4
  %1191 = call zeroext i1 @s2n_result_is_ok(i32 %1190)
  br i1 %1191, label %1245, label %1192

1192:                                             ; preds = %1184
  br label %1193

1193:                                             ; preds = %1192
  br label %1194

1194:                                             ; preds = %1193
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1195 = call ptr @__errno_location() #12
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  store i32 %1196, ptr %42, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @s2n_print_stacktrace(ptr noundef %1197)
  %1199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1200 = trunc i8 %1199 to i1
  br i1 %1200, label %1201, label %1223

1201:                                             ; preds = %1194
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @fileno(ptr noundef %1202) #11
  %1204 = call i32 @isatty(i32 noundef %1203) #11
  %1205 = icmp ne i32 %1204, 0
  br i1 %1205, label %1206, label %1223

1206:                                             ; preds = %1201
  %1207 = load i32, ptr %42, align 4, !tbaa !5
  %1208 = call ptr @__errno_location() #12
  store i32 %1207, ptr %1208, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror(i32 noundef %1212, ptr noundef @.str.10)
  %1214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  %1216 = call ptr @s2n_strerror_debug(i32 noundef %1215, ptr noundef @.str.10)
  %1217 = call ptr @__errno_location() #12
  %1218 = load i32, ptr %1217, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #11
  %1220 = call ptr @__errno_location() #12
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef @.str.8, i32 noundef %1210, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 386, ptr noundef %1213, ptr noundef %1216, ptr noundef %1219, i32 noundef %1221) #11
  br label %1240

1223:                                             ; preds = %1201, %1194
  %1224 = load i32, ptr %42, align 4, !tbaa !5
  %1225 = call ptr @__errno_location() #12
  store i32 %1224, ptr %1225, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror(i32 noundef %1229, ptr noundef @.str.10)
  %1231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1232, ptr noundef @.str.10)
  %1234 = call ptr @__errno_location() #12
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @strerror(i32 noundef %1235) #11
  %1237 = call ptr @__errno_location() #12
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef @.str.11, i32 noundef %1227, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 386, ptr noundef %1230, ptr noundef %1233, ptr noundef %1236, i32 noundef %1238) #11
  br label %1240

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

1241:                                             ; preds = %1240
  br label %1242

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

1243:                                             ; No predecessors!
  br label %1244

1244:                                             ; preds = %1243
  br label %1245

1245:                                             ; preds = %1244, %1184
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246
  br label %1248

1248:                                             ; preds = %1247
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = add nsw i32 %1249, 1
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = call i32 @s2n_drbg_generate(ptr noundef %12, ptr noundef %13)
  %1252 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  store i32 %1251, ptr %1252, align 4
  %1253 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  %1254 = load i32, ptr %1253, align 4
  %1255 = call zeroext i1 @s2n_result_is_ok(i32 %1254)
  br i1 %1255, label %1309, label %1256

1256:                                             ; preds = %1248
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

1258:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1259 = call ptr @__errno_location() #12
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  store i32 %1260, ptr %44, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @s2n_print_stacktrace(ptr noundef %1261)
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1264 = trunc i8 %1263 to i1
  br i1 %1264, label %1265, label %1287

1265:                                             ; preds = %1258
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @fileno(ptr noundef %1266) #11
  %1268 = call i32 @isatty(i32 noundef %1267) #11
  %1269 = icmp ne i32 %1268, 0
  br i1 %1269, label %1270, label %1287

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %44, align 4, !tbaa !5
  %1272 = call ptr @__errno_location() #12
  store i32 %1271, ptr %1272, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef @.str.10)
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef @.str.10)
  %1281 = call ptr @__errno_location() #12
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #11
  %1284 = call ptr @__errno_location() #12
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.8, i32 noundef %1274, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 387, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #11
  br label %1304

1287:                                             ; preds = %1265, %1258
  %1288 = load i32, ptr %44, align 4, !tbaa !5
  %1289 = call ptr @__errno_location() #12
  store i32 %1288, ptr %1289, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef @.str.10)
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef @.str.10)
  %1298 = call ptr @__errno_location() #12
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #11
  %1301 = call ptr @__errno_location() #12
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.11, i32 noundef %1291, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 387, ptr noundef %1294, ptr noundef %1297, ptr noundef %1300, i32 noundef %1302) #11
  br label %1304

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

1305:                                             ; preds = %1304
  br label %1306

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

1307:                                             ; No predecessors!
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308, %1248
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311
  %1313 = load i32, ptr %40, align 4, !tbaa !5
  %1314 = add nsw i32 %1313, 1
  store i32 %1314, ptr %40, align 4, !tbaa !5
  br label %1179, !llvm.loop !25

1315:                                             ; preds = %1182
  br label %1316

1316:                                             ; preds = %1315
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = add nsw i32 %1317, 1
  store i32 %1318, ptr @test_count, align 4, !tbaa !5
  %1319 = getelementptr inbounds %struct.s2n_drbg, ptr %11, i32 0, i32 3
  %1320 = load i64, ptr %1319, align 8, !tbaa !17
  %1321 = load i64, ptr %38, align 8, !tbaa !24
  %1322 = icmp eq i64 %1320, %1321
  br i1 %1322, label %1376, label %1323

1323:                                             ; preds = %1316
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1326 = call ptr @__errno_location() #12
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  store i32 %1327, ptr %45, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @s2n_print_stacktrace(ptr noundef %1328)
  %1330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1331 = trunc i8 %1330 to i1
  br i1 %1331, label %1332, label %1354

1332:                                             ; preds = %1325
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @fileno(ptr noundef %1333) #11
  %1335 = call i32 @isatty(i32 noundef %1334) #11
  %1336 = icmp ne i32 %1335, 0
  br i1 %1336, label %1337, label %1354

1337:                                             ; preds = %1332
  %1338 = load i32, ptr %45, align 4, !tbaa !5
  %1339 = call ptr @__errno_location() #12
  store i32 %1338, ptr %1339, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror(i32 noundef %1343, ptr noundef @.str.10)
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror_debug(i32 noundef %1346, ptr noundef @.str.10)
  %1348 = call ptr @__errno_location() #12
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @strerror(i32 noundef %1349) #11
  %1351 = call ptr @__errno_location() #12
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef @.str.8, i32 noundef %1341, ptr noundef @.str.26, ptr noundef @.str.7, i32 noundef 389, ptr noundef %1344, ptr noundef %1347, ptr noundef %1350, i32 noundef %1352) #11
  br label %1371

1354:                                             ; preds = %1332, %1325
  %1355 = load i32, ptr %45, align 4, !tbaa !5
  %1356 = call ptr @__errno_location() #12
  store i32 %1355, ptr %1356, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror(i32 noundef %1360, ptr noundef @.str.10)
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror_debug(i32 noundef %1363, ptr noundef @.str.10)
  %1365 = call ptr @__errno_location() #12
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @strerror(i32 noundef %1366) #11
  %1368 = call ptr @__errno_location() #12
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef @.str.11, i32 noundef %1358, ptr noundef @.str.26, ptr noundef @.str.7, i32 noundef 389, ptr noundef %1361, ptr noundef %1364, ptr noundef %1367, i32 noundef %1369) #11
  br label %1371

1371:                                             ; preds = %1354, %1337
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

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

1374:                                             ; No predecessors!
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375, %1316
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

1379:                                             ; preds = %1378
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = add nsw i32 %1380, 1
  store i32 %1381, ptr @test_count, align 4, !tbaa !5
  %1382 = getelementptr inbounds %struct.s2n_drbg, ptr %12, i32 0, i32 3
  %1383 = load i64, ptr %1382, align 8, !tbaa !17
  %1384 = load i64, ptr %39, align 8, !tbaa !24
  %1385 = icmp eq i64 %1383, %1384
  br i1 %1385, label %1439, label %1386

1386:                                             ; preds = %1379
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

1388:                                             ; preds = %1387
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1389 = call ptr @__errno_location() #12
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  store i32 %1390, ptr %46, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391)
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc i8 %1393 to i1
  br i1 %1394, label %1395, label %1417

1395:                                             ; preds = %1388
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #11
  %1398 = call i32 @isatty(i32 noundef %1397) #11
  %1399 = icmp ne i32 %1398, 0
  br i1 %1399, label %1400, label %1417

1400:                                             ; preds = %1395
  %1401 = load i32, ptr %46, align 4, !tbaa !5
  %1402 = call ptr @__errno_location() #12
  store i32 %1401, ptr %1402, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef @.str.10)
  %1408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror_debug(i32 noundef %1409, ptr noundef @.str.10)
  %1411 = call ptr @__errno_location() #12
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call ptr @strerror(i32 noundef %1412) #11
  %1414 = call ptr @__errno_location() #12
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef @.str.8, i32 noundef %1404, ptr noundef @.str.27, ptr noundef @.str.7, i32 noundef 390, ptr noundef %1407, ptr noundef %1410, ptr noundef %1413, i32 noundef %1415) #11
  br label %1434

1417:                                             ; preds = %1395, %1388
  %1418 = load i32, ptr %46, align 4, !tbaa !5
  %1419 = call ptr @__errno_location() #12
  store i32 %1418, ptr %1419, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror(i32 noundef %1423, ptr noundef @.str.10)
  %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_debug(i32 noundef %1426, ptr noundef @.str.10)
  %1428 = call ptr @__errno_location() #12
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #11
  %1431 = call ptr @__errno_location() #12
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1420, ptr noundef @.str.11, i32 noundef %1421, ptr noundef @.str.27, ptr noundef @.str.7, i32 noundef 390, ptr noundef %1424, ptr noundef %1427, ptr noundef %1430, i32 noundef %1432) #11
  br label %1434

1434:                                             ; preds = %1417, %1400
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

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

1437:                                             ; No predecessors!
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438, %1379
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

1441:                                             ; preds = %1440
  br label %1442

1442:                                             ; preds = %1441
  %1443 = load i32, ptr @test_count, align 4, !tbaa !5
  %1444 = add nsw i32 %1443, 1
  store i32 %1444, ptr @test_count, align 4, !tbaa !5
  %1445 = call i32 @s2n_ignore_prediction_resistance_for_testing(i1 noundef zeroext false)
  %1446 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  store i32 %1445, ptr %1446, align 4
  %1447 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  %1448 = load i32, ptr %1447, align 4
  %1449 = call zeroext i1 @s2n_result_is_ok(i32 %1448)
  br i1 %1449, label %1503, label %1450

1450:                                             ; preds = %1442
  br label %1451

1451:                                             ; preds = %1450
  br label %1452

1452:                                             ; preds = %1451
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1453 = call ptr @__errno_location() #12
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  store i32 %1454, ptr %48, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = call i32 @s2n_print_stacktrace(ptr noundef %1455)
  %1457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1458 = trunc i8 %1457 to i1
  br i1 %1458, label %1459, label %1481

1459:                                             ; preds = %1452
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = call i32 @fileno(ptr noundef %1460) #11
  %1462 = call i32 @isatty(i32 noundef %1461) #11
  %1463 = icmp ne i32 %1462, 0
  br i1 %1463, label %1464, label %1481

1464:                                             ; preds = %1459
  %1465 = load i32, ptr %48, align 4, !tbaa !5
  %1466 = call ptr @__errno_location() #12
  store i32 %1465, ptr %1466, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror(i32 noundef %1470, ptr noundef @.str.10)
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror_debug(i32 noundef %1473, ptr noundef @.str.10)
  %1475 = call ptr @__errno_location() #12
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @strerror(i32 noundef %1476) #11
  %1478 = call ptr @__errno_location() #12
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1467, ptr noundef @.str.8, i32 noundef %1468, ptr noundef @.str.28, ptr noundef @.str.7, i32 noundef 393, ptr noundef %1471, ptr noundef %1474, ptr noundef %1477, i32 noundef %1479) #11
  br label %1498

1481:                                             ; preds = %1459, %1452
  %1482 = load i32, ptr %48, 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.10)
  %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.10)
  %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.11, i32 noundef %1485, ptr noundef @.str.28, ptr noundef @.str.7, i32 noundef 393, ptr noundef %1488, ptr noundef %1491, ptr noundef %1494, i32 noundef %1496) #11
  br label %1498

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

1499:                                             ; preds = %1498
  br label %1500

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

1501:                                             ; No predecessors!
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502, %1442
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  store i32 0, ptr %49, align 4, !tbaa !5
  br label %1506

1506:                                             ; preds = %1639, %1505
  %1507 = load i32, ptr %49, align 4, !tbaa !5
  %1508 = icmp slt i32 %1507, 10
  br i1 %1508, label %1510, label %1509

1509:                                             ; preds = %1506
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1642

1510:                                             ; preds = %1506
  br label %1511

1511:                                             ; preds = %1510
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = add nsw i32 %1512, 1
  store i32 %1513, ptr @test_count, align 4, !tbaa !5
  %1514 = call i32 @s2n_drbg_generate(ptr noundef %11, ptr noundef %13)
  %1515 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1514, ptr %1515, align 4
  %1516 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %1517 = load i32, ptr %1516, align 4
  %1518 = call zeroext i1 @s2n_result_is_ok(i32 %1517)
  br i1 %1518, label %1572, label %1519

1519:                                             ; preds = %1511
  br label %1520

1520:                                             ; preds = %1519
  br label %1521

1521:                                             ; preds = %1520
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1522 = call ptr @__errno_location() #12
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  store i32 %1523, ptr %51, align 4, !tbaa !5
  %1524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1525 = call i32 @s2n_print_stacktrace(ptr noundef %1524)
  %1526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1527 = trunc i8 %1526 to i1
  br i1 %1527, label %1528, label %1550

1528:                                             ; preds = %1521
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = call i32 @fileno(ptr noundef %1529) #11
  %1531 = call i32 @isatty(i32 noundef %1530) #11
  %1532 = icmp ne i32 %1531, 0
  br i1 %1532, label %1533, label %1550

1533:                                             ; preds = %1528
  %1534 = load i32, ptr %51, align 4, !tbaa !5
  %1535 = call ptr @__errno_location() #12
  store i32 %1534, ptr %1535, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror(i32 noundef %1539, ptr noundef @.str.10)
  %1541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror_debug(i32 noundef %1542, ptr noundef @.str.10)
  %1544 = call ptr @__errno_location() #12
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @strerror(i32 noundef %1545) #11
  %1547 = call ptr @__errno_location() #12
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1536, ptr noundef @.str.8, i32 noundef %1537, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 395, ptr noundef %1540, ptr noundef %1543, ptr noundef %1546, i32 noundef %1548) #11
  br label %1567

1550:                                             ; preds = %1528, %1521
  %1551 = load i32, ptr %51, align 4, !tbaa !5
  %1552 = call ptr @__errno_location() #12
  store i32 %1551, ptr %1552, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef @.str.10)
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror_debug(i32 noundef %1559, ptr noundef @.str.10)
  %1561 = call ptr @__errno_location() #12
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @strerror(i32 noundef %1562) #11
  %1564 = call ptr @__errno_location() #12
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef @.str.11, i32 noundef %1554, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 395, ptr noundef %1557, ptr noundef %1560, ptr noundef %1563, i32 noundef %1565) #11
  br label %1567

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

1568:                                             ; preds = %1567
  br label %1569

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

1570:                                             ; No predecessors!
  br label %1571

1571:                                             ; preds = %1570
  br label %1572

1572:                                             ; preds = %1571, %1511
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

1575:                                             ; preds = %1574
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = add nsw i32 %1576, 1
  store i32 %1577, ptr @test_count, align 4, !tbaa !5
  %1578 = call i32 @s2n_drbg_generate(ptr noundef %12, ptr noundef %13)
  %1579 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %1578, ptr %1579, align 4
  %1580 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  %1581 = load i32, ptr %1580, align 4
  %1582 = call zeroext i1 @s2n_result_is_ok(i32 %1581)
  br i1 %1582, label %1636, label %1583

1583:                                             ; preds = %1575
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

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

1592:                                             ; preds = %1585
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #11
  %1595 = call i32 @isatty(i32 noundef %1594) #11
  %1596 = icmp ne i32 %1595, 0
  br i1 %1596, label %1597, label %1614

1597:                                             ; preds = %1592
  %1598 = load i32, ptr %53, align 4, !tbaa !5
  %1599 = call ptr @__errno_location() #12
  store i32 %1598, ptr %1599, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror(i32 noundef %1603, ptr noundef @.str.10)
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror_debug(i32 noundef %1606, ptr noundef @.str.10)
  %1608 = call ptr @__errno_location() #12
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #11
  %1611 = call ptr @__errno_location() #12
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef @.str.8, i32 noundef %1601, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 396, ptr noundef %1604, ptr noundef %1607, ptr noundef %1610, i32 noundef %1612) #11
  br label %1631

1614:                                             ; preds = %1592, %1585
  %1615 = load i32, ptr %53, 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.10)
  %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.10)
  %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.11, i32 noundef %1618, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 396, ptr noundef %1621, ptr noundef %1624, ptr noundef %1627, i32 noundef %1629) #11
  br label %1631

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

1632:                                             ; preds = %1631
  br label %1633

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

1634:                                             ; No predecessors!
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635, %1575
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

1639:                                             ; preds = %1638
  %1640 = load i32, ptr %49, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr %49, align 4, !tbaa !5
  br label %1506, !llvm.loop !26

1642:                                             ; preds = %1509
  br label %1643

1643:                                             ; preds = %1642
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = add nsw i32 %1644, 1
  store i32 %1645, ptr @test_count, align 4, !tbaa !5
  %1646 = getelementptr inbounds %struct.s2n_drbg, ptr %11, i32 0, i32 3
  %1647 = load i64, ptr %1646, align 8, !tbaa !17
  %1648 = load i64, ptr %38, align 8, !tbaa !24
  %1649 = add i64 %1648, 10
  %1650 = icmp eq i64 %1647, %1649
  br i1 %1650, label %1704, label %1651

1651:                                             ; preds = %1643
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

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

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

1665:                                             ; preds = %1660
  %1666 = load i32, ptr %54, align 4, !tbaa !5
  %1667 = call ptr @__errno_location() #12
  store i32 %1666, ptr %1667, align 4, !tbaa !5
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror(i32 noundef %1671, ptr noundef @.str.10)
  %1673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror_debug(i32 noundef %1674, ptr noundef @.str.10)
  %1676 = call ptr @__errno_location() #12
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @strerror(i32 noundef %1677) #11
  %1679 = call ptr @__errno_location() #12
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1668, ptr noundef @.str.8, i32 noundef %1669, ptr noundef @.str.29, ptr noundef @.str.7, i32 noundef 398, ptr noundef %1672, ptr noundef %1675, ptr noundef %1678, i32 noundef %1680) #11
  br label %1699

1682:                                             ; preds = %1660, %1653
  %1683 = load i32, ptr %54, align 4, !tbaa !5
  %1684 = call ptr @__errno_location() #12
  store i32 %1683, ptr %1684, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1688, ptr noundef @.str.10)
  %1690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror_debug(i32 noundef %1691, ptr noundef @.str.10)
  %1693 = call ptr @__errno_location() #12
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call ptr @strerror(i32 noundef %1694) #11
  %1696 = call ptr @__errno_location() #12
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1685, ptr noundef @.str.11, i32 noundef %1686, ptr noundef @.str.29, ptr noundef @.str.7, i32 noundef 398, ptr noundef %1689, ptr noundef %1692, ptr noundef %1695, i32 noundef %1697) #11
  br label %1699

1699:                                             ; preds = %1682, %1665
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

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

1702:                                             ; No predecessors!
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

1704:                                             ; preds = %1703, %1643
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

1707:                                             ; preds = %1706
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = add nsw i32 %1708, 1
  store i32 %1709, ptr @test_count, align 4, !tbaa !5
  %1710 = getelementptr inbounds %struct.s2n_drbg, ptr %12, i32 0, i32 3
  %1711 = load i64, ptr %1710, align 8, !tbaa !17
  %1712 = load i64, ptr %39, align 8, !tbaa !24
  %1713 = add i64 %1712, 10
  %1714 = icmp eq i64 %1711, %1713
  br i1 %1714, label %1768, label %1715

1715:                                             ; preds = %1707
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

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

1724:                                             ; preds = %1717
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = call i32 @fileno(ptr noundef %1725) #11
  %1727 = call i32 @isatty(i32 noundef %1726) #11
  %1728 = icmp ne i32 %1727, 0
  br i1 %1728, label %1729, label %1746

1729:                                             ; preds = %1724
  %1730 = load i32, ptr %55, align 4, !tbaa !5
  %1731 = call ptr @__errno_location() #12
  store i32 %1730, ptr %1731, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror(i32 noundef %1735, ptr noundef @.str.10)
  %1737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror_debug(i32 noundef %1738, ptr noundef @.str.10)
  %1740 = call ptr @__errno_location() #12
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call ptr @strerror(i32 noundef %1741) #11
  %1743 = call ptr @__errno_location() #12
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1732, ptr noundef @.str.8, i32 noundef %1733, ptr noundef @.str.30, ptr noundef @.str.7, i32 noundef 399, ptr noundef %1736, ptr noundef %1739, ptr noundef %1742, i32 noundef %1744) #11
  br label %1763

1746:                                             ; preds = %1724, %1717
  %1747 = load i32, ptr %55, align 4, !tbaa !5
  %1748 = call ptr @__errno_location() #12
  store i32 %1747, ptr %1748, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef @.str.10)
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror_debug(i32 noundef %1755, ptr noundef @.str.10)
  %1757 = call ptr @__errno_location() #12
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @strerror(i32 noundef %1758) #11
  %1760 = call ptr @__errno_location() #12
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1749, ptr noundef @.str.11, i32 noundef %1750, ptr noundef @.str.30, ptr noundef @.str.7, i32 noundef 399, ptr noundef %1753, ptr noundef %1756, ptr noundef %1759, i32 noundef %1761) #11
  br label %1763

1763:                                             ; preds = %1746, %1729
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

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

1766:                                             ; No predecessors!
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

1768:                                             ; preds = %1767, %1707
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  store i32 31, ptr %56, align 4, !tbaa !5
  %1772 = load i32, ptr %56, align 4, !tbaa !5
  %1773 = icmp ne i32 %1772, 0
  %1774 = xor i1 %1773, true
  %1775 = xor i1 %1774, true
  %1776 = zext i1 %1775 to i32
  %1777 = sext i32 %1776 to i64
  %1778 = call i64 @llvm.expect.i64(i64 %1777, i64 1)
  %1779 = icmp ne i64 %1778, 0
  br i1 %1779, label %1780, label %1827

1780:                                             ; preds = %1771
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %1781 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 0
  store ptr %1781, ptr %57, align 8, !tbaa !9
  br label %1782

1782:                                             ; preds = %1780
  %1783 = load ptr, ptr %57, align 8, !tbaa !9
  %1784 = icmp ne ptr %1783, null
  br i1 %1784, label %1818, label %1785

1785:                                             ; preds = %1782
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  %1788 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1789 = getelementptr inbounds %struct.s2n_debug_info, ptr %1788, i32 0, i32 0
  store ptr @.str.31, ptr %1789, align 8, !tbaa !27
  %1790 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1791 = getelementptr inbounds %struct.s2n_debug_info, ptr %1790, i32 0, i32 0
  %1792 = load ptr, ptr %1791, align 8, !tbaa !27
  %1793 = getelementptr inbounds i8, ptr %1792, i64 21
  %1794 = call ptr @strrchr(ptr noundef %1793, i32 noundef 47) #14
  %1795 = icmp ne ptr %1794, null
  br i1 %1795, label %1796, label %1803

1796:                                             ; preds = %1787
  %1797 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1798 = getelementptr inbounds %struct.s2n_debug_info, ptr %1797, i32 0, i32 0
  %1799 = load ptr, ptr %1798, align 8, !tbaa !27
  %1800 = getelementptr inbounds i8, ptr %1799, i64 21
  %1801 = call ptr @strrchr(ptr noundef %1800, i32 noundef 47) #14
  %1802 = getelementptr inbounds i8, ptr %1801, i64 1
  br label %1808

1803:                                             ; preds = %1787
  %1804 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1805 = getelementptr inbounds %struct.s2n_debug_info, ptr %1804, i32 0, i32 0
  %1806 = load ptr, ptr %1805, align 8, !tbaa !27
  %1807 = getelementptr inbounds i8, ptr %1806, i64 21
  br label %1808

1808:                                             ; preds = %1803, %1796
  %1809 = phi ptr [ %1802, %1796 ], [ %1807, %1803 ]
  %1810 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1811 = getelementptr inbounds %struct.s2n_debug_info, ptr %1810, i32 0, i32 1
  store ptr %1809, ptr %1811, align 8, !tbaa !29
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %1812, align 4, !tbaa !5
  %1813 = call i32 @s2n_calculate_stacktrace()
  br label %1814

1814:                                             ; preds = %1808
  br label %1815

1815:                                             ; preds = %1814
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %58, align 4
  br label %1824

1816:                                             ; No predecessors!
  br label %1817

1817:                                             ; preds = %1816
  br label %1818

1818:                                             ; preds = %1817, %1782
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819
  %1821 = load ptr, ptr %57, align 8, !tbaa !9
  %1822 = load i32, ptr %56, align 4, !tbaa !5
  %1823 = sext i32 %1822 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1821, i8 0, i64 %1823, i1 false)
  store i32 0, ptr %58, align 4
  br label %1824

1824:                                             ; preds = %1820, %1815
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  %1825 = load i32, ptr %58, align 4
  switch i32 %1825, label %1828 [
    i32 0, label %1826
  ]

1826:                                             ; preds = %1824
  br label %1827

1827:                                             ; preds = %1826, %1771
  store i32 0, ptr %58, align 4
  br label %1828

1828:                                             ; preds = %1827, %1824
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  %1829 = load i32, ptr %58, align 4
  switch i32 %1829, label %3163 [
    i32 0, label %1830
  ]

1830:                                             ; preds = %1828
  br label %1831

1831:                                             ; preds = %1830
  br label %1832

1832:                                             ; preds = %1831
  %1833 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  store i32 31, ptr %1833, align 8, !tbaa !21
  br label %1834

1834:                                             ; preds = %1832
  %1835 = load i32, ptr @test_count, align 4, !tbaa !5
  %1836 = add nsw i32 %1835, 1
  store i32 %1836, ptr @test_count, align 4, !tbaa !5
  %1837 = call i32 @s2n_drbg_generate(ptr noundef %11, ptr noundef %13)
  %1838 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %1837, ptr %1838, align 4
  %1839 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  %1840 = load i32, ptr %1839, align 4
  %1841 = call zeroext i1 @s2n_result_is_ok(i32 %1840)
  br i1 %1841, label %1895, label %1842

1842:                                             ; preds = %1834
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %1845 = call ptr @__errno_location() #12
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  store i32 %1846, ptr %60, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = call i32 @s2n_print_stacktrace(ptr noundef %1847)
  %1849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1850 = trunc i8 %1849 to i1
  br i1 %1850, label %1851, label %1873

1851:                                             ; preds = %1844
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = call i32 @fileno(ptr noundef %1852) #11
  %1854 = call i32 @isatty(i32 noundef %1853) #11
  %1855 = icmp ne i32 %1854, 0
  br i1 %1855, label %1856, label %1873

1856:                                             ; preds = %1851
  %1857 = load i32, ptr %60, align 4, !tbaa !5
  %1858 = call ptr @__errno_location() #12
  store i32 %1857, ptr %1858, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1862 = load i32, ptr %1861, align 4, !tbaa !5
  %1863 = call ptr @s2n_strerror(i32 noundef %1862, ptr noundef @.str.10)
  %1864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1865 = load i32, ptr %1864, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror_debug(i32 noundef %1865, ptr noundef @.str.10)
  %1867 = call ptr @__errno_location() #12
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  %1869 = call ptr @strerror(i32 noundef %1868) #11
  %1870 = call ptr @__errno_location() #12
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1859, ptr noundef @.str.8, i32 noundef %1860, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 407, ptr noundef %1863, ptr noundef %1866, ptr noundef %1869, i32 noundef %1871) #11
  br label %1890

1873:                                             ; preds = %1851, %1844
  %1874 = load i32, ptr %60, align 4, !tbaa !5
  %1875 = call ptr @__errno_location() #12
  store i32 %1874, ptr %1875, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror(i32 noundef %1879, ptr noundef @.str.10)
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef @.str.10)
  %1884 = call ptr @__errno_location() #12
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #11
  %1887 = call ptr @__errno_location() #12
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef @.str.11, i32 noundef %1877, ptr noundef @.str.19, ptr noundef @.str.7, i32 noundef 407, ptr noundef %1880, ptr noundef %1883, ptr noundef %1886, i32 noundef %1888) #11
  br label %1890

1890:                                             ; preds = %1873, %1856
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

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

1893:                                             ; No predecessors!
  br label %1894

1894:                                             ; preds = %1893
  br label %1895

1895:                                             ; preds = %1894, %1834
  br label %1896

1896:                                             ; preds = %1895
  br label %1897

1897:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #11
  store i8 1, ptr %61, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  store i64 17, ptr %62, align 8, !tbaa !24
  br label %1898

1898:                                             ; preds = %1913, %1897
  %1899 = load i64, ptr %62, align 8, !tbaa !24
  %1900 = icmp ult i64 %1899, 31
  br i1 %1900, label %1902, label %1901

1901:                                             ; preds = %1898
  store i32 191, ptr %58, align 4
  br label %1916

1902:                                             ; preds = %1898
  %1903 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 16
  %1904 = load i8, ptr %1903, align 16, !tbaa !30
  %1905 = zext i8 %1904 to i32
  %1906 = load i64, ptr %62, align 8, !tbaa !24
  %1907 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 %1906
  %1908 = load i8, ptr %1907, align 1, !tbaa !30
  %1909 = zext i8 %1908 to i32
  %1910 = icmp ne i32 %1905, %1909
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1902
  store i8 0, ptr %61, align 1, !tbaa !11
  store i32 191, ptr %58, align 4
  br label %1916

1912:                                             ; preds = %1902
  br label %1913

1913:                                             ; preds = %1912
  %1914 = load i64, ptr %62, align 8, !tbaa !24
  %1915 = add i64 %1914, 1
  store i64 %1915, ptr %62, align 8, !tbaa !24
  br label %1898, !llvm.loop !31

1916:                                             ; preds = %1911, %1901
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr @test_count, align 4, !tbaa !5
  %1921 = load i8, ptr %61, align 1, !tbaa !11, !range !13, !noundef !14
  %1922 = trunc i8 %1921 to i1
  br i1 %1922, label %1923, label %1976

1923:                                             ; preds = %1918
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

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

1932:                                             ; preds = %1925
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @fileno(ptr noundef %1933) #11
  %1935 = call i32 @isatty(i32 noundef %1934) #11
  %1936 = icmp ne i32 %1935, 0
  br i1 %1936, label %1937, label %1954

1937:                                             ; preds = %1932
  %1938 = load i32, ptr %63, align 4, !tbaa !5
  %1939 = call ptr @__errno_location() #12
  store i32 %1938, ptr %1939, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %1942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror(i32 noundef %1943, ptr noundef @.str.10)
  %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_debug(i32 noundef %1946, ptr noundef @.str.10)
  %1948 = call ptr @__errno_location() #12
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @strerror(i32 noundef %1949) #11
  %1951 = call ptr @__errno_location() #12
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1940, ptr noundef @.str.8, i32 noundef %1941, ptr noundef @.str.32, ptr noundef @.str.7, i32 noundef 415, ptr noundef %1944, ptr noundef %1947, ptr noundef %1950, i32 noundef %1952) #11
  br label %1971

1954:                                             ; preds = %1932, %1925
  %1955 = load i32, ptr %63, align 4, !tbaa !5
  %1956 = call ptr @__errno_location() #12
  store i32 %1955, ptr %1956, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = load i32, ptr @test_count, align 4, !tbaa !5
  %1959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror(i32 noundef %1960, ptr noundef @.str.10)
  %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_debug(i32 noundef %1963, ptr noundef @.str.10)
  %1965 = call ptr @__errno_location() #12
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #11
  %1968 = call ptr @__errno_location() #12
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1957, ptr noundef @.str.11, i32 noundef %1958, ptr noundef @.str.32, ptr noundef @.str.7, i32 noundef 415, ptr noundef %1961, ptr noundef %1964, ptr noundef %1967, i32 noundef %1969) #11
  br label %1971

1971:                                             ; preds = %1954, %1937
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

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

1974:                                             ; No predecessors!
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975, %1918
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  store i32 31, ptr %64, align 4, !tbaa !5
  %1980 = load i32, ptr %64, align 4, !tbaa !5
  %1981 = icmp ne i32 %1980, 0
  %1982 = xor i1 %1981, true
  %1983 = xor i1 %1982, true
  %1984 = zext i1 %1983 to i32
  %1985 = sext i32 %1984 to i64
  %1986 = call i64 @llvm.expect.i64(i64 %1985, i64 1)
  %1987 = icmp ne i64 %1986, 0
  br i1 %1987, label %1988, label %2035

1988:                                             ; preds = %1979
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  %1989 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 0
  store ptr %1989, ptr %65, align 8, !tbaa !9
  br label %1990

1990:                                             ; preds = %1988
  %1991 = load ptr, ptr %65, align 8, !tbaa !9
  %1992 = icmp ne ptr %1991, null
  br i1 %1992, label %2026, label %1993

1993:                                             ; preds = %1990
  br label %1994

1994:                                             ; preds = %1993
  br label %1995

1995:                                             ; preds = %1994
  %1996 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1997 = getelementptr inbounds %struct.s2n_debug_info, ptr %1996, i32 0, i32 0
  store ptr @.str.33, ptr %1997, align 8, !tbaa !27
  %1998 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1999 = getelementptr inbounds %struct.s2n_debug_info, ptr %1998, i32 0, i32 0
  %2000 = load ptr, ptr %1999, align 8, !tbaa !27
  %2001 = getelementptr inbounds i8, ptr %2000, i64 21
  %2002 = call ptr @strrchr(ptr noundef %2001, i32 noundef 47) #14
  %2003 = icmp ne ptr %2002, null
  br i1 %2003, label %2004, label %2011

2004:                                             ; preds = %1995
  %2005 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2006 = getelementptr inbounds %struct.s2n_debug_info, ptr %2005, i32 0, i32 0
  %2007 = load ptr, ptr %2006, align 8, !tbaa !27
  %2008 = getelementptr inbounds i8, ptr %2007, i64 21
  %2009 = call ptr @strrchr(ptr noundef %2008, i32 noundef 47) #14
  %2010 = getelementptr inbounds i8, ptr %2009, i64 1
  br label %2016

2011:                                             ; preds = %1995
  %2012 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2013 = getelementptr inbounds %struct.s2n_debug_info, ptr %2012, i32 0, i32 0
  %2014 = load ptr, ptr %2013, align 8, !tbaa !27
  %2015 = getelementptr inbounds i8, ptr %2014, i64 21
  br label %2016

2016:                                             ; preds = %2011, %2004
  %2017 = phi ptr [ %2010, %2004 ], [ %2015, %2011 ]
  %2018 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2019 = getelementptr inbounds %struct.s2n_debug_info, ptr %2018, i32 0, i32 1
  store ptr %2017, ptr %2019, align 8, !tbaa !29
  %2020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %2020, align 4, !tbaa !5
  %2021 = call i32 @s2n_calculate_stacktrace()
  br label %2022

2022:                                             ; preds = %2016
  br label %2023

2023:                                             ; preds = %2022
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %58, align 4
  br label %2032

2024:                                             ; No predecessors!
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025, %1990
  br label %2027

2027:                                             ; preds = %2026
  br label %2028

2028:                                             ; preds = %2027
  %2029 = load ptr, ptr %65, align 8, !tbaa !9
  %2030 = load i32, ptr %64, align 4, !tbaa !5
  %2031 = sext i32 %2030 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %2029, i8 0, i64 %2031, i1 false)
  store i32 0, ptr %58, align 4
  br label %2032

2032:                                             ; preds = %2028, %2023
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  %2033 = load i32, ptr %58, align 4
  switch i32 %2033, label %2036 [
    i32 0, label %2034
  ]

2034:                                             ; preds = %2032
  br label %2035

2035:                                             ; preds = %2034, %1979
  store i32 0, ptr %58, align 4
  br label %2036

2036:                                             ; preds = %2035, %2032
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  %2037 = load i32, ptr %58, align 4
  switch i32 %2037, label %3162 [
    i32 0, label %2038
  ]

2038:                                             ; preds = %2036
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  %2041 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  store i32 31, ptr %2041, align 8, !tbaa !21
  br label %2042

2042:                                             ; preds = %2040
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = call i32 @s2n_drbg_generate(ptr noundef %12, ptr noundef %13)
  %2046 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %2045, ptr %2046, align 4
  %2047 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %2048 = load i32, ptr %2047, align 4
  %2049 = call zeroext i1 @s2n_result_is_ok(i32 %2048)
  br i1 %2049, label %2103, label %2050

2050:                                             ; preds = %2042
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

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

2059:                                             ; preds = %2052
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @fileno(ptr noundef %2060) #11
  %2062 = call i32 @isatty(i32 noundef %2061) #11
  %2063 = icmp ne i32 %2062, 0
  br i1 %2063, label %2064, label %2081

2064:                                             ; preds = %2059
  %2065 = load i32, ptr %67, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #12
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.10)
  %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_debug(i32 noundef %2073, ptr noundef @.str.10)
  %2075 = call ptr @__errno_location() #12
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #11
  %2078 = call ptr @__errno_location() #12
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str.8, i32 noundef %2068, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 419, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #11
  br label %2098

2081:                                             ; preds = %2059, %2052
  %2082 = load i32, ptr %67, align 4, !tbaa !5
  %2083 = call ptr @__errno_location() #12
  store i32 %2082, ptr %2083, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef @.str.10)
  %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_debug(i32 noundef %2090, ptr noundef @.str.10)
  %2092 = call ptr @__errno_location() #12
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #11
  %2095 = call ptr @__errno_location() #12
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.11, i32 noundef %2085, ptr noundef @.str.21, ptr noundef @.str.7, i32 noundef 419, ptr noundef %2088, ptr noundef %2091, ptr noundef %2094, i32 noundef %2096) #11
  br label %2098

2098:                                             ; preds = %2081, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2042
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  store i8 1, ptr %61, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  store i64 17, ptr %68, align 8, !tbaa !24
  br label %2106

2106:                                             ; preds = %2121, %2105
  %2107 = load i64, ptr %68, align 8, !tbaa !24
  %2108 = icmp ult i64 %2107, 31
  br i1 %2108, label %2110, label %2109

2109:                                             ; preds = %2106
  store i32 214, ptr %58, align 4
  br label %2124

2110:                                             ; preds = %2106
  %2111 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 16
  %2112 = load i8, ptr %2111, align 16, !tbaa !30
  %2113 = zext i8 %2112 to i32
  %2114 = load i64, ptr %68, align 8, !tbaa !24
  %2115 = getelementptr inbounds [256 x i8], ptr %10, i64 0, i64 %2114
  %2116 = load i8, ptr %2115, align 1, !tbaa !30
  %2117 = zext i8 %2116 to i32
  %2118 = icmp ne i32 %2113, %2117
  br i1 %2118, label %2119, label %2120

2119:                                             ; preds = %2110
  store i8 0, ptr %61, align 1, !tbaa !11
  store i32 214, ptr %58, align 4
  br label %2124

2120:                                             ; preds = %2110
  br label %2121

2121:                                             ; preds = %2120
  %2122 = load i64, ptr %68, align 8, !tbaa !24
  %2123 = add i64 %2122, 1
  store i64 %2123, ptr %68, align 8, !tbaa !24
  br label %2106, !llvm.loop !32

2124:                                             ; preds = %2119, %2109
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

2126:                                             ; preds = %2125
  %2127 = load i32, ptr @test_count, align 4, !tbaa !5
  %2128 = add nsw i32 %2127, 1
  store i32 %2128, ptr @test_count, align 4, !tbaa !5
  %2129 = load i8, ptr %61, align 1, !tbaa !11, !range !13, !noundef !14
  %2130 = trunc i8 %2129 to i1
  br i1 %2130, label %2131, label %2184

2131:                                             ; preds = %2126
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

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

2140:                                             ; preds = %2133
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = call i32 @fileno(ptr noundef %2141) #11
  %2143 = call i32 @isatty(i32 noundef %2142) #11
  %2144 = icmp ne i32 %2143, 0
  br i1 %2144, label %2145, label %2162

2145:                                             ; preds = %2140
  %2146 = load i32, ptr %69, align 4, !tbaa !5
  %2147 = call ptr @__errno_location() #12
  store i32 %2146, ptr %2147, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror(i32 noundef %2151, ptr noundef @.str.10)
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef @.str.10)
  %2156 = call ptr @__errno_location() #12
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #11
  %2159 = call ptr @__errno_location() #12
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef @.str.8, i32 noundef %2149, ptr noundef @.str.32, ptr noundef @.str.7, i32 noundef 427, ptr noundef %2152, ptr noundef %2155, ptr noundef %2158, i32 noundef %2160) #11
  br label %2179

2162:                                             ; preds = %2140, %2133
  %2163 = load i32, ptr %69, align 4, !tbaa !5
  %2164 = call ptr @__errno_location() #12
  store i32 %2163, ptr %2164, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror(i32 noundef %2168, ptr noundef @.str.10)
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror_debug(i32 noundef %2171, ptr noundef @.str.10)
  %2173 = call ptr @__errno_location() #12
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @strerror(i32 noundef %2174) #11
  %2176 = call ptr @__errno_location() #12
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2165, ptr noundef @.str.11, i32 noundef %2166, ptr noundef @.str.32, ptr noundef @.str.7, i32 noundef 427, ptr noundef %2169, ptr noundef %2172, ptr noundef %2175, i32 noundef %2177) #11
  br label %2179

2179:                                             ; preds = %2162, %2145
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

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

2182:                                             ; No predecessors!
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183, %2126
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = add nsw i32 %2188, 1
  store i32 %2189, ptr @test_count, align 4, !tbaa !5
  %2190 = call i32 @s2n_drbg_wipe(ptr noundef %11)
  %2191 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %2190, ptr %2191, align 4
  %2192 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %2193 = load i32, ptr %2192, align 4
  %2194 = call zeroext i1 @s2n_result_is_ok(i32 %2193)
  br i1 %2194, label %2248, label %2195

2195:                                             ; preds = %2187
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

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

2204:                                             ; preds = %2197
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @fileno(ptr noundef %2205) #11
  %2207 = call i32 @isatty(i32 noundef %2206) #11
  %2208 = icmp ne i32 %2207, 0
  br i1 %2208, label %2209, label %2226

2209:                                             ; preds = %2204
  %2210 = load i32, ptr %71, align 4, !tbaa !5
  %2211 = call ptr @__errno_location() #12
  store i32 %2210, ptr %2211, align 4, !tbaa !5
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = load i32, ptr @test_count, align 4, !tbaa !5
  %2214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror(i32 noundef %2215, ptr noundef @.str.10)
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror_debug(i32 noundef %2218, ptr noundef @.str.10)
  %2220 = call ptr @__errno_location() #12
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @strerror(i32 noundef %2221) #11
  %2223 = call ptr @__errno_location() #12
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2212, ptr noundef @.str.8, i32 noundef %2213, ptr noundef @.str.34, ptr noundef @.str.7, i32 noundef 429, ptr noundef %2216, ptr noundef %2219, ptr noundef %2222, i32 noundef %2224) #11
  br label %2243

2226:                                             ; preds = %2204, %2197
  %2227 = load i32, ptr %71, align 4, !tbaa !5
  %2228 = call ptr @__errno_location() #12
  store i32 %2227, ptr %2228, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror(i32 noundef %2232, ptr noundef @.str.10)
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef @.str.10)
  %2237 = call ptr @__errno_location() #12
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @strerror(i32 noundef %2238) #11
  %2240 = call ptr @__errno_location() #12
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2229, ptr noundef @.str.11, i32 noundef %2230, ptr noundef @.str.34, ptr noundef @.str.7, i32 noundef 429, ptr noundef %2233, ptr noundef %2236, ptr noundef %2239, i32 noundef %2241) #11
  br label %2243

2243:                                             ; preds = %2226, %2209
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

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

2246:                                             ; No predecessors!
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247, %2187
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250
  %2252 = load i32, ptr @test_count, align 4, !tbaa !5
  %2253 = add nsw i32 %2252, 1
  store i32 %2253, ptr @test_count, align 4, !tbaa !5
  %2254 = call i32 @s2n_drbg_wipe(ptr noundef %12)
  %2255 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  store i32 %2254, ptr %2255, align 4
  %2256 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  %2257 = load i32, ptr %2256, align 4
  %2258 = call zeroext i1 @s2n_result_is_ok(i32 %2257)
  br i1 %2258, label %2312, label %2259

2259:                                             ; preds = %2251
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

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

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

2273:                                             ; preds = %2268
  %2274 = load i32, ptr %73, align 4, !tbaa !5
  %2275 = call ptr @__errno_location() #12
  store i32 %2274, ptr %2275, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = load i32, ptr @test_count, align 4, !tbaa !5
  %2278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror(i32 noundef %2279, ptr noundef @.str.10)
  %2281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror_debug(i32 noundef %2282, ptr noundef @.str.10)
  %2284 = call ptr @__errno_location() #12
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @strerror(i32 noundef %2285) #11
  %2287 = call ptr @__errno_location() #12
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2276, ptr noundef @.str.8, i32 noundef %2277, ptr noundef @.str.35, ptr noundef @.str.7, i32 noundef 430, ptr noundef %2280, ptr noundef %2283, ptr noundef %2286, i32 noundef %2288) #11
  br label %2307

2290:                                             ; preds = %2268, %2261
  %2291 = load i32, ptr %73, align 4, !tbaa !5
  %2292 = call ptr @__errno_location() #12
  store i32 %2291, ptr %2292, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror(i32 noundef %2296, ptr noundef @.str.10)
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef @.str.10)
  %2301 = call ptr @__errno_location() #12
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #11
  %2304 = call ptr @__errno_location() #12
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2293, ptr noundef @.str.11, i32 noundef %2294, ptr noundef @.str.35, ptr noundef @.str.7, i32 noundef 430, ptr noundef %2297, ptr noundef %2300, ptr noundef %2303, i32 noundef %2305) #11
  br label %2307

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

2308:                                             ; preds = %2307
  br label %2309

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

2310:                                             ; No predecessors!
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311, %2251
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = add nsw i32 %2316, 1
  store i32 %2317, ptr @test_count, align 4, !tbaa !5
  %2318 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef @nist_aes128_reference_entropy, ptr noundef @nist_aes128_reference_entropy_hex)
  %2319 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %2318, ptr %2319, align 4
  %2320 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %2321 = load i32, ptr %2320, align 4
  %2322 = call zeroext i1 @s2n_result_is_ok(i32 %2321)
  br i1 %2322, label %2376, label %2323

2323:                                             ; preds = %2315
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

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

2332:                                             ; preds = %2325
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = call i32 @fileno(ptr noundef %2333) #11
  %2335 = call i32 @isatty(i32 noundef %2334) #11
  %2336 = icmp ne i32 %2335, 0
  br i1 %2336, label %2337, label %2354

2337:                                             ; preds = %2332
  %2338 = load i32, ptr %75, align 4, !tbaa !5
  %2339 = call ptr @__errno_location() #12
  store i32 %2338, ptr %2339, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror(i32 noundef %2343, ptr noundef @.str.10)
  %2345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror_debug(i32 noundef %2346, ptr noundef @.str.10)
  %2348 = call ptr @__errno_location() #12
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @strerror(i32 noundef %2349) #11
  %2351 = call ptr @__errno_location() #12
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2340, ptr noundef @.str.8, i32 noundef %2341, ptr noundef @.str.36, ptr noundef @.str.7, i32 noundef 433, ptr noundef %2344, ptr noundef %2347, ptr noundef %2350, i32 noundef %2352) #11
  br label %2371

2354:                                             ; preds = %2332, %2325
  %2355 = load i32, ptr %75, align 4, !tbaa !5
  %2356 = call ptr @__errno_location() #12
  store i32 %2355, ptr %2356, align 4, !tbaa !5
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror(i32 noundef %2360, ptr noundef @.str.10)
  %2362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror_debug(i32 noundef %2363, ptr noundef @.str.10)
  %2365 = call ptr @__errno_location() #12
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #11
  %2368 = call ptr @__errno_location() #12
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2357, ptr noundef @.str.11, i32 noundef %2358, ptr noundef @.str.36, ptr noundef @.str.7, i32 noundef 433, ptr noundef %2361, ptr noundef %2364, ptr noundef %2367, i32 noundef %2369) #11
  br label %2371

2371:                                             ; preds = %2354, %2337
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

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

2374:                                             ; No predecessors!
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375, %2315
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  %2380 = load i32, ptr @test_count, align 4, !tbaa !5
  %2381 = add nsw i32 %2380, 1
  store i32 %2381, ptr @test_count, align 4, !tbaa !5
  %2382 = call i32 @check_drgb_version(i32 noundef 0, ptr noundef @nist_fake_128_entropy_data, i32 noundef 32, ptr noundef @nist_aes128_reference_personalization_strings_hex, ptr noundef @nist_aes128_reference_values_hex, ptr noundef @nist_aes128_reference_returned_bits_hex)
  %2383 = icmp eq i32 %2382, -1
  br i1 %2383, label %2384, label %2437

2384:                                             ; preds = %2379
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

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

2393:                                             ; preds = %2386
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = call i32 @fileno(ptr noundef %2394) #11
  %2396 = call i32 @isatty(i32 noundef %2395) #11
  %2397 = icmp ne i32 %2396, 0
  br i1 %2397, label %2398, label %2415

2398:                                             ; preds = %2393
  %2399 = load i32, ptr %76, align 4, !tbaa !5
  %2400 = call ptr @__errno_location() #12
  store i32 %2399, ptr %2400, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror(i32 noundef %2404, ptr noundef @.str.10)
  %2406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef @.str.10)
  %2409 = call ptr @__errno_location() #12
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @strerror(i32 noundef %2410) #11
  %2412 = call ptr @__errno_location() #12
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef @.str.8, i32 noundef %2402, ptr noundef @.str.37, ptr noundef @.str.7, i32 noundef 435, ptr noundef %2405, ptr noundef %2408, ptr noundef %2411, i32 noundef %2413) #11
  br label %2432

2415:                                             ; preds = %2393, %2386
  %2416 = load i32, ptr %76, align 4, !tbaa !5
  %2417 = call ptr @__errno_location() #12
  store i32 %2416, ptr %2417, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror(i32 noundef %2421, ptr noundef @.str.10)
  %2423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror_debug(i32 noundef %2424, ptr noundef @.str.10)
  %2426 = call ptr @__errno_location() #12
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @strerror(i32 noundef %2427) #11
  %2429 = call ptr @__errno_location() #12
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2418, ptr noundef @.str.11, i32 noundef %2419, ptr noundef @.str.37, ptr noundef @.str.7, i32 noundef 435, ptr noundef %2422, ptr noundef %2425, ptr noundef %2428, i32 noundef %2430) #11
  br label %2432

2432:                                             ; preds = %2415, %2398
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

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

2435:                                             ; No predecessors!
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436, %2379
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 40, ptr %77) #11
  call void @llvm.memset.p0.i64(ptr align 8 %77, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %78) #11
  call void @llvm.memset.p0.i64(ptr align 8 %78, i8 0, i64 40, i1 false)
  br label %2440

2440:                                             ; preds = %2439
  %2441 = load i32, ptr @test_count, align 4, !tbaa !5
  %2442 = add nsw i32 %2441, 1
  store i32 %2442, ptr @test_count, align 4, !tbaa !5
  %2443 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %77, ptr noundef @nist_aes256_reference_entropy_hex_part1)
  %2444 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %2443, ptr %2444, align 4
  %2445 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  %2446 = load i32, ptr %2445, align 4
  %2447 = call zeroext i1 @s2n_result_is_ok(i32 %2446)
  br i1 %2447, label %2501, label %2448

2448:                                             ; preds = %2440
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

2450:                                             ; preds = %2449
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %2451 = call ptr @__errno_location() #12
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  store i32 %2452, ptr %80, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = call i32 @s2n_print_stacktrace(ptr noundef %2453)
  %2455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2456 = trunc i8 %2455 to i1
  br i1 %2456, label %2457, label %2479

2457:                                             ; preds = %2450
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @fileno(ptr noundef %2458) #11
  %2460 = call i32 @isatty(i32 noundef %2459) #11
  %2461 = icmp ne i32 %2460, 0
  br i1 %2461, label %2462, label %2479

2462:                                             ; preds = %2457
  %2463 = load i32, ptr %80, align 4, !tbaa !5
  %2464 = call ptr @__errno_location() #12
  store i32 %2463, ptr %2464, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror(i32 noundef %2468, ptr noundef @.str.10)
  %2470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call ptr @s2n_strerror_debug(i32 noundef %2471, ptr noundef @.str.10)
  %2473 = call ptr @__errno_location() #12
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @strerror(i32 noundef %2474) #11
  %2476 = call ptr @__errno_location() #12
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2465, ptr noundef @.str.8, i32 noundef %2466, ptr noundef @.str.38, ptr noundef @.str.7, i32 noundef 443, ptr noundef %2469, ptr noundef %2472, ptr noundef %2475, i32 noundef %2477) #11
  br label %2496

2479:                                             ; preds = %2457, %2450
  %2480 = load i32, ptr %80, align 4, !tbaa !5
  %2481 = call ptr @__errno_location() #12
  store i32 %2480, ptr %2481, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = load i32, ptr @test_count, align 4, !tbaa !5
  %2484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror(i32 noundef %2485, ptr noundef @.str.10)
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror_debug(i32 noundef %2488, ptr noundef @.str.10)
  %2490 = call ptr @__errno_location() #12
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @strerror(i32 noundef %2491) #11
  %2493 = call ptr @__errno_location() #12
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2482, ptr noundef @.str.11, i32 noundef %2483, ptr noundef @.str.38, ptr noundef @.str.7, i32 noundef 443, ptr noundef %2486, ptr noundef %2489, ptr noundef %2492, i32 noundef %2494) #11
  br label %2496

2496:                                             ; preds = %2479, %2462
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

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

2499:                                             ; No predecessors!
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500, %2440
  br label %2502

2502:                                             ; preds = %2501
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = add nsw i32 %2505, 1
  store i32 %2506, ptr @test_count, align 4, !tbaa !5
  %2507 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %78, ptr noundef @nist_aes256_reference_entropy_hex_part2)
  %2508 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %2507, ptr %2508, align 4
  %2509 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %2510 = load i32, ptr %2509, align 4
  %2511 = call zeroext i1 @s2n_result_is_ok(i32 %2510)
  br i1 %2511, label %2565, label %2512

2512:                                             ; preds = %2504
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

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

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

2526:                                             ; preds = %2521
  %2527 = load i32, ptr %82, align 4, !tbaa !5
  %2528 = call ptr @__errno_location() #12
  store i32 %2527, ptr %2528, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror(i32 noundef %2532, ptr noundef @.str.10)
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef @.str.10)
  %2537 = call ptr @__errno_location() #12
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #11
  %2540 = call ptr @__errno_location() #12
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2529, ptr noundef @.str.8, i32 noundef %2530, ptr noundef @.str.39, ptr noundef @.str.7, i32 noundef 444, ptr noundef %2533, ptr noundef %2536, ptr noundef %2539, i32 noundef %2541) #11
  br label %2560

2543:                                             ; preds = %2521, %2514
  %2544 = load i32, ptr %82, align 4, !tbaa !5
  %2545 = call ptr @__errno_location() #12
  store i32 %2544, ptr %2545, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror(i32 noundef %2549, ptr noundef @.str.10)
  %2551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror_debug(i32 noundef %2552, ptr noundef @.str.10)
  %2554 = call ptr @__errno_location() #12
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @strerror(i32 noundef %2555) #11
  %2557 = call ptr @__errno_location() #12
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2546, ptr noundef @.str.11, i32 noundef %2547, ptr noundef @.str.39, ptr noundef @.str.7, i32 noundef 444, ptr noundef %2550, ptr noundef %2553, ptr noundef %2556, i32 noundef %2558) #11
  br label %2560

2560:                                             ; preds = %2543, %2526
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

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

2563:                                             ; No predecessors!
  br label %2564

2564:                                             ; preds = %2563
  br label %2565

2565:                                             ; preds = %2564, %2504
  br label %2566

2566:                                             ; preds = %2565
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

2568:                                             ; preds = %2567
  %2569 = load i32, ptr @test_count, align 4, !tbaa !5
  %2570 = add nsw i32 %2569, 1
  store i32 %2570, ptr @test_count, align 4, !tbaa !5
  %2571 = getelementptr inbounds %struct.s2n_stuffer, ptr %77, i32 0, i32 2
  %2572 = load i32, ptr %2571, align 4, !tbaa !33
  %2573 = getelementptr inbounds %struct.s2n_stuffer, ptr %78, i32 0, i32 2
  %2574 = load i32, ptr %2573, align 4, !tbaa !33
  %2575 = add i32 %2572, %2574
  %2576 = call i32 @s2n_stuffer_alloc(ptr noundef @nist_aes256_reference_entropy, i32 noundef %2575)
  %2577 = icmp eq i32 %2576, -1
  br i1 %2577, label %2578, label %2631

2578:                                             ; preds = %2568
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %2581 = call ptr @__errno_location() #12
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  store i32 %2582, ptr %83, 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 %83, 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.10)
  %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.10)
  %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.8, i32 noundef %2596, ptr noundef @.str.40, ptr noundef @.str.7, i32 noundef 445, ptr noundef %2599, ptr noundef %2602, ptr noundef %2605, i32 noundef %2607) #11
  br label %2626

2609:                                             ; preds = %2587, %2580
  %2610 = load i32, ptr %83, 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.10)
  %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.10)
  %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.11, i32 noundef %2613, ptr noundef @.str.40, ptr noundef @.str.7, i32 noundef 445, 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 %83) #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, %2568
  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 %struct.s2n_stuffer, ptr %77, i32 0, i32 2
  %2638 = load i32, ptr %2637, align 4, !tbaa !33
  %2639 = call i32 @s2n_stuffer_copy(ptr noundef %77, ptr noundef @nist_aes256_reference_entropy, i32 noundef %2638)
  %2640 = icmp eq i32 %2639, -1
  br i1 %2640, label %2641, label %2694

2641:                                             ; preds = %2634
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

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

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

2655:                                             ; preds = %2650
  %2656 = load i32, ptr %84, align 4, !tbaa !5
  %2657 = call ptr @__errno_location() #12
  store i32 %2656, ptr %2657, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror(i32 noundef %2661, ptr noundef @.str.10)
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror_debug(i32 noundef %2664, ptr noundef @.str.10)
  %2666 = call ptr @__errno_location() #12
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #11
  %2669 = call ptr @__errno_location() #12
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef @.str.8, i32 noundef %2659, ptr noundef @.str.41, ptr noundef @.str.7, i32 noundef 446, ptr noundef %2662, ptr noundef %2665, ptr noundef %2668, i32 noundef %2670) #11
  br label %2689

2672:                                             ; preds = %2650, %2643
  %2673 = load i32, ptr %84, align 4, !tbaa !5
  %2674 = call ptr @__errno_location() #12
  store i32 %2673, ptr %2674, align 4, !tbaa !5
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror(i32 noundef %2678, ptr noundef @.str.10)
  %2680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror_debug(i32 noundef %2681, ptr noundef @.str.10)
  %2683 = call ptr @__errno_location() #12
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #11
  %2686 = call ptr @__errno_location() #12
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2675, ptr noundef @.str.11, i32 noundef %2676, ptr noundef @.str.41, ptr noundef @.str.7, i32 noundef 446, ptr noundef %2679, ptr noundef %2682, ptr noundef %2685, i32 noundef %2687) #11
  br label %2689

2689:                                             ; preds = %2672, %2655
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %2690

2690:                                             ; preds = %2689
  br label %2691

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

2692:                                             ; No predecessors!
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

2694:                                             ; preds = %2693, %2634
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  %2698 = load i32, ptr @test_count, align 4, !tbaa !5
  %2699 = add nsw i32 %2698, 1
  store i32 %2699, ptr @test_count, align 4, !tbaa !5
  %2700 = getelementptr inbounds %struct.s2n_stuffer, ptr %78, i32 0, i32 2
  %2701 = load i32, ptr %2700, align 4, !tbaa !33
  %2702 = call i32 @s2n_stuffer_copy(ptr noundef %78, ptr noundef @nist_aes256_reference_entropy, i32 noundef %2701)
  %2703 = icmp eq i32 %2702, -1
  br i1 %2703, label %2704, label %2757

2704:                                             ; preds = %2697
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

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

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

2718:                                             ; preds = %2713
  %2719 = load i32, ptr %85, align 4, !tbaa !5
  %2720 = call ptr @__errno_location() #12
  store i32 %2719, ptr %2720, 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 @.str.10)
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror_debug(i32 noundef %2727, ptr noundef @.str.10)
  %2729 = call ptr @__errno_location() #12
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @strerror(i32 noundef %2730) #11
  %2732 = call ptr @__errno_location() #12
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2721, ptr noundef @.str.8, i32 noundef %2722, ptr noundef @.str.42, ptr noundef @.str.7, i32 noundef 447, ptr noundef %2725, ptr noundef %2728, ptr noundef %2731, i32 noundef %2733) #11
  br label %2752

2735:                                             ; preds = %2713, %2706
  %2736 = load i32, ptr %85, align 4, !tbaa !5
  %2737 = call ptr @__errno_location() #12
  store i32 %2736, ptr %2737, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef @.str.10)
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror_debug(i32 noundef %2744, ptr noundef @.str.10)
  %2746 = call ptr @__errno_location() #12
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #11
  %2749 = call ptr @__errno_location() #12
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef @.str.11, i32 noundef %2739, ptr noundef @.str.42, ptr noundef @.str.7, i32 noundef 447, ptr noundef %2742, ptr noundef %2745, ptr noundef %2748, i32 noundef %2750) #11
  br label %2752

2752:                                             ; preds = %2735, %2718
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

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

2755:                                             ; No predecessors!
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

2757:                                             ; preds = %2756, %2697
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = add nsw i32 %2761, 1
  store i32 %2762, ptr @test_count, align 4, !tbaa !5
  %2763 = call i32 @check_drgb_version(i32 noundef 1, ptr noundef @nist_fake_256_entropy_data, i32 noundef 48, ptr noundef @nist_aes256_reference_personalization_strings_hex, ptr noundef @nist_aes256_reference_values_hex, ptr noundef @nist_aes256_reference_returned_bits_hex)
  %2764 = icmp eq i32 %2763, -1
  br i1 %2764, label %2765, label %2818

2765:                                             ; preds = %2760
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

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

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

2779:                                             ; preds = %2774
  %2780 = load i32, ptr %86, align 4, !tbaa !5
  %2781 = call ptr @__errno_location() #12
  store i32 %2780, ptr %2781, align 4, !tbaa !5
  %2782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror(i32 noundef %2785, ptr noundef @.str.10)
  %2787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror_debug(i32 noundef %2788, ptr noundef @.str.10)
  %2790 = call ptr @__errno_location() #12
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @strerror(i32 noundef %2791) #11
  %2793 = call ptr @__errno_location() #12
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2782, ptr noundef @.str.8, i32 noundef %2783, ptr noundef @.str.43, ptr noundef @.str.7, i32 noundef 450, ptr noundef %2786, ptr noundef %2789, ptr noundef %2792, i32 noundef %2794) #11
  br label %2813

2796:                                             ; preds = %2774, %2767
  %2797 = load i32, ptr %86, align 4, !tbaa !5
  %2798 = call ptr @__errno_location() #12
  store i32 %2797, ptr %2798, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror(i32 noundef %2802, ptr noundef @.str.10)
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror_debug(i32 noundef %2805, ptr noundef @.str.10)
  %2807 = call ptr @__errno_location() #12
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @strerror(i32 noundef %2808) #11
  %2810 = call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2799, ptr noundef @.str.11, i32 noundef %2800, ptr noundef @.str.43, ptr noundef @.str.7, i32 noundef 450, ptr noundef %2803, ptr noundef %2806, ptr noundef %2809, i32 noundef %2811) #11
  br label %2813

2813:                                             ; preds = %2796, %2779
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %2814

2814:                                             ; preds = %2813
  br label %2815

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

2816:                                             ; No predecessors!
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

2818:                                             ; preds = %2817, %2760
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = call i32 @s2n_stuffer_free(ptr noundef @nist_aes128_reference_entropy)
  %2825 = icmp eq i32 %2824, -1
  br i1 %2825, label %2826, label %2879

2826:                                             ; preds = %2821
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

2828:                                             ; preds = %2827
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %2829 = call ptr @__errno_location() #12
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  store i32 %2830, ptr %87, align 4, !tbaa !5
  %2831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2832 = call i32 @s2n_print_stacktrace(ptr noundef %2831)
  %2833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2834 = trunc i8 %2833 to i1
  br i1 %2834, label %2835, label %2857

2835:                                             ; preds = %2828
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = call i32 @fileno(ptr noundef %2836) #11
  %2838 = call i32 @isatty(i32 noundef %2837) #11
  %2839 = icmp ne i32 %2838, 0
  br i1 %2839, label %2840, label %2857

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

2857:                                             ; preds = %2835, %2828
  %2858 = load i32, ptr %87, align 4, !tbaa !5
  %2859 = call ptr @__errno_location() #12
  store i32 %2858, ptr %2859, align 4, !tbaa !5
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = load i32, ptr @test_count, align 4, !tbaa !5
  %2862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror(i32 noundef %2863, ptr noundef @.str.10)
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef @.str.10)
  %2868 = call ptr @__errno_location() #12
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @strerror(i32 noundef %2869) #11
  %2871 = call ptr @__errno_location() #12
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2860, ptr noundef @.str.11, i32 noundef %2861, ptr noundef @.str.44, ptr noundef @.str.7, i32 noundef 452, ptr noundef %2864, ptr noundef %2867, ptr noundef %2870, i32 noundef %2872) #11
  br label %2874

2874:                                             ; preds = %2857, %2840
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

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

2877:                                             ; No predecessors!
  br label %2878

2878:                                             ; preds = %2877
  br label %2879

2879:                                             ; preds = %2878, %2821
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  br label %2882

2882:                                             ; preds = %2881
  %2883 = load i32, ptr @test_count, align 4, !tbaa !5
  %2884 = add nsw i32 %2883, 1
  store i32 %2884, ptr @test_count, align 4, !tbaa !5
  %2885 = call i32 @s2n_stuffer_free(ptr noundef @nist_aes256_reference_entropy)
  %2886 = icmp eq i32 %2885, -1
  br i1 %2886, label %2887, label %2940

2887:                                             ; preds = %2882
  br label %2888

2888:                                             ; preds = %2887
  br label %2889

2889:                                             ; preds = %2888
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %2890 = call ptr @__errno_location() #12
  %2891 = load i32, ptr %2890, align 4, !tbaa !5
  store i32 %2891, ptr %88, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = call i32 @s2n_print_stacktrace(ptr noundef %2892)
  %2894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2895 = trunc i8 %2894 to i1
  br i1 %2895, label %2896, label %2918

2896:                                             ; preds = %2889
  %2897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2898 = call i32 @fileno(ptr noundef %2897) #11
  %2899 = call i32 @isatty(i32 noundef %2898) #11
  %2900 = icmp ne i32 %2899, 0
  br i1 %2900, label %2901, label %2918

2901:                                             ; preds = %2896
  %2902 = load i32, ptr %88, align 4, !tbaa !5
  %2903 = call ptr @__errno_location() #12
  store i32 %2902, ptr %2903, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = load i32, ptr @test_count, align 4, !tbaa !5
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror(i32 noundef %2907, ptr noundef @.str.10)
  %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_debug(i32 noundef %2910, ptr noundef @.str.10)
  %2912 = call ptr @__errno_location() #12
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @strerror(i32 noundef %2913) #11
  %2915 = call ptr @__errno_location() #12
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2904, ptr noundef @.str.8, i32 noundef %2905, ptr noundef @.str.45, ptr noundef @.str.7, i32 noundef 453, ptr noundef %2908, ptr noundef %2911, ptr noundef %2914, i32 noundef %2916) #11
  br label %2935

2918:                                             ; preds = %2896, %2889
  %2919 = load i32, ptr %88, align 4, !tbaa !5
  %2920 = call ptr @__errno_location() #12
  store i32 %2919, ptr %2920, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = call ptr @s2n_strerror(i32 noundef %2924, ptr noundef @.str.10)
  %2926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror_debug(i32 noundef %2927, ptr noundef @.str.10)
  %2929 = call ptr @__errno_location() #12
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @strerror(i32 noundef %2930) #11
  %2932 = call ptr @__errno_location() #12
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2921, ptr noundef @.str.11, i32 noundef %2922, ptr noundef @.str.45, ptr noundef @.str.7, i32 noundef 453, ptr noundef %2925, ptr noundef %2928, ptr noundef %2931, i32 noundef %2933) #11
  br label %2935

2935:                                             ; preds = %2918, %2901
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %2936

2936:                                             ; preds = %2935
  br label %2937

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

2938:                                             ; No predecessors!
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

2940:                                             ; preds = %2939, %2882
  br label %2941

2941:                                             ; preds = %2940
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = add nsw i32 %2944, 1
  store i32 %2945, ptr @test_count, align 4, !tbaa !5
  %2946 = load ptr, ptr %19, align 8, !tbaa !9
  %2947 = call i32 @s2n_config_free(ptr noundef %2946)
  %2948 = icmp eq i32 %2947, -1
  br i1 %2948, label %2949, label %3002

2949:                                             ; preds = %2943
  br label %2950

2950:                                             ; preds = %2949
  br label %2951

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

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

2963:                                             ; preds = %2958
  %2964 = load i32, ptr %89, align 4, !tbaa !5
  %2965 = call ptr @__errno_location() #12
  store i32 %2964, ptr %2965, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = load i32, ptr @test_count, align 4, !tbaa !5
  %2968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @s2n_strerror(i32 noundef %2969, ptr noundef @.str.10)
  %2971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror_debug(i32 noundef %2972, ptr noundef @.str.10)
  %2974 = call ptr @__errno_location() #12
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @strerror(i32 noundef %2975) #11
  %2977 = call ptr @__errno_location() #12
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2966, ptr noundef @.str.8, i32 noundef %2967, ptr noundef @.str.46, ptr noundef @.str.7, i32 noundef 455, ptr noundef %2970, ptr noundef %2973, ptr noundef %2976, i32 noundef %2978) #11
  br label %2997

2980:                                             ; preds = %2958, %2951
  %2981 = load i32, ptr %89, 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.10)
  %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.10)
  %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.11, i32 noundef %2984, ptr noundef @.str.46, ptr noundef @.str.7, i32 noundef 455, ptr noundef %2987, ptr noundef %2990, ptr noundef %2993, i32 noundef %2995) #11
  br label %2997

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

2998:                                             ; preds = %2997
  br label %2999

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

3000:                                             ; No predecessors!
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

3002:                                             ; preds = %3001, %2943
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  %3007 = call i32 @s2n_cleanup()
  %3008 = icmp eq i32 %3007, -1
  br i1 %3008, label %3009, label %3062

3009:                                             ; preds = %3006
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3012 = call ptr @__errno_location() #12
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  store i32 %3013, ptr %90, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @s2n_print_stacktrace(ptr noundef %3014)
  %3016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3017 = trunc i8 %3016 to i1
  br i1 %3017, label %3018, label %3040

3018:                                             ; preds = %3011
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @fileno(ptr noundef %3019) #11
  %3021 = call i32 @isatty(i32 noundef %3020) #11
  %3022 = icmp ne i32 %3021, 0
  br i1 %3022, label %3023, label %3040

3023:                                             ; preds = %3018
  %3024 = load i32, ptr %90, align 4, !tbaa !5
  %3025 = call ptr @__errno_location() #12
  store i32 %3024, ptr %3025, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = load i32, ptr @test_count, align 4, !tbaa !5
  %3028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror(i32 noundef %3029, ptr noundef @.str.10)
  %3031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  %3033 = call ptr @s2n_strerror_debug(i32 noundef %3032, ptr noundef @.str.10)
  %3034 = call ptr @__errno_location() #12
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = call ptr @strerror(i32 noundef %3035) #11
  %3037 = call ptr @__errno_location() #12
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3026, ptr noundef @.str.8, i32 noundef %3027, ptr noundef @.str.47, ptr noundef @.str.7, i32 noundef 457, ptr noundef %3030, ptr noundef %3033, ptr noundef %3036, i32 noundef %3038) #11
  br label %3057

3040:                                             ; preds = %3018, %3011
  %3041 = load i32, ptr %90, align 4, !tbaa !5
  %3042 = call ptr @__errno_location() #12
  store i32 %3041, ptr %3042, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror(i32 noundef %3046, ptr noundef @.str.10)
  %3048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror_debug(i32 noundef %3049, ptr noundef @.str.10)
  %3051 = call ptr @__errno_location() #12
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @strerror(i32 noundef %3052) #11
  %3054 = call ptr @__errno_location() #12
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3043, ptr noundef @.str.11, i32 noundef %3044, ptr noundef @.str.47, ptr noundef @.str.7, i32 noundef 457, ptr noundef %3047, ptr noundef %3050, ptr noundef %3053, i32 noundef %3055) #11
  br label %3057

3057:                                             ; preds = %3040, %3023
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

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

3060:                                             ; No predecessors!
  br label %3061

3061:                                             ; preds = %3060
  br label %3062

3062:                                             ; preds = %3061, %3006
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065
  %3067 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3068 = icmp eq i32 %3067, -1
  br i1 %3068, label %3069, label %3122

3069:                                             ; preds = %3066
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3072 = call ptr @__errno_location() #12
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  store i32 %3073, ptr %91, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @s2n_print_stacktrace(ptr noundef %3074)
  %3076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3077 = trunc i8 %3076 to i1
  br i1 %3077, label %3078, label %3100

3078:                                             ; preds = %3071
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = call i32 @fileno(ptr noundef %3079) #11
  %3081 = call i32 @isatty(i32 noundef %3080) #11
  %3082 = icmp ne i32 %3081, 0
  br i1 %3082, label %3083, label %3100

3083:                                             ; preds = %3078
  %3084 = load i32, ptr %91, align 4, !tbaa !5
  %3085 = call ptr @__errno_location() #12
  store i32 %3084, ptr %3085, align 4, !tbaa !5
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror(i32 noundef %3089, ptr noundef @.str.10)
  %3091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @s2n_strerror_debug(i32 noundef %3092, ptr noundef @.str.10)
  %3094 = call ptr @__errno_location() #12
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call ptr @strerror(i32 noundef %3095) #11
  %3097 = call ptr @__errno_location() #12
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3086, ptr noundef @.str.8, i32 noundef %3087, ptr noundef @.str.48, ptr noundef @.str.7, i32 noundef 457, ptr noundef %3090, ptr noundef %3093, ptr noundef %3096, i32 noundef %3098) #11
  br label %3117

3100:                                             ; preds = %3078, %3071
  %3101 = load i32, ptr %91, align 4, !tbaa !5
  %3102 = call ptr @__errno_location() #12
  store i32 %3101, ptr %3102, align 4, !tbaa !5
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = load i32, ptr @test_count, align 4, !tbaa !5
  %3105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @s2n_strerror(i32 noundef %3106, ptr noundef @.str.10)
  %3108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror_debug(i32 noundef %3109, ptr noundef @.str.10)
  %3111 = call ptr @__errno_location() #12
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call ptr @strerror(i32 noundef %3112) #11
  %3114 = call ptr @__errno_location() #12
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3103, ptr noundef @.str.11, i32 noundef %3104, ptr noundef @.str.48, ptr noundef @.str.7, i32 noundef 457, ptr noundef %3107, ptr noundef %3110, ptr noundef %3113, i32 noundef %3115) #11
  br label %3117

3117:                                             ; preds = %3100, %3083
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3118

3118:                                             ; preds = %3117
  br label %3119

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

3120:                                             ; No predecessors!
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121, %3066
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123
  %3125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3126 = trunc i8 %3125 to i1
  br i1 %3126, label %3127, label %3143

3127:                                             ; preds = %3124
  %3128 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3129 = call i32 @fileno(ptr noundef %3128) #11
  %3130 = call i32 @isatty(i32 noundef %3129) #11
  %3131 = icmp ne i32 %3130, 0
  br i1 %3131, label %3132, label %3143

3132:                                             ; preds = %3127
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = icmp ne i32 %3133, 0
  br i1 %3134, label %3135, label %3139

3135:                                             ; preds = %3132
  %3136 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3136, ptr noundef @.str.49, i32 noundef %3137) #11
  br label %3142

3139:                                             ; preds = %3132
  %3140 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3140, ptr noundef @.str.50) #11
  br label %3142

3142:                                             ; preds = %3139, %3135
  br label %3154

3143:                                             ; preds = %3127, %3124
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = icmp ne i32 %3144, 0
  br i1 %3145, label %3146, label %3150

3146:                                             ; preds = %3143
  %3147 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3148 = load i32, ptr @test_count, align 4, !tbaa !5
  %3149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef @.str.51, i32 noundef %3148) #11
  br label %3153

3150:                                             ; preds = %3143
  %3151 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3151, ptr noundef @.str.52) #11
  br label %3153

3153:                                             ; preds = %3150, %3146
  br label %3154

3154:                                             ; preds = %3153, %3142
  store i32 0, ptr %3, align 4
  store i32 1, ptr %58, align 4
  br label %3159

3155:                                             ; No predecessors!
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157
  store i32 0, ptr %58, align 4
  br label %3159

3159:                                             ; preds = %3158, %3154
  %3160 = call i32 @s2n_stuffer_free(ptr noundef %78)
  call void @llvm.lifetime.end.p0(i64 40, ptr %78) #11
  %3161 = call i32 @s2n_stuffer_free(ptr noundef %77)
  call void @llvm.lifetime.end.p0(i64 40, ptr %77) #11
  br label %3162

3162:                                             ; preds = %3159, %2036
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #11
  br label %3163

3163:                                             ; preds = %3162, %1828
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %10) #11
  %3164 = load i32, ptr %58, align 4
  switch i32 %3164, label %3167 [
    i32 0, label %3165
    i32 1, label %3165
  ]

3165:                                             ; preds = %3163, %3163
  %3166 = load i32, ptr %3, align 4
  ret i32 %3166

3167:                                             ; preds = %3163
  unreachable
}

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

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

declare ptr @s2n_config_new() #3

declare i32 @s2n_ignore_prediction_resistance_for_testing(i1 noundef zeroext) #3

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #10

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #3

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

declare i32 @s2n_cleanup() #3

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { 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 = { 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 #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 = { nocallback nofree nosync nounwind willreturn memory(none) }
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 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!18, !19, i64 32}
!18 = !{!"s2n_drbg", !19, i64 0, !10, i64 8, !7, i64 16, !19, i64 32}
!19 = !{!"long", !7, i64 0}
!20 = distinct !{!20, !16}
!21 = !{!22, !6, i64 8}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = distinct !{!23, !16}
!24 = !{!19, !19, i64 0}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = !{!28, !10, i64 0}
!28 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!29 = !{!28, !10, i64 8}
!30 = !{!7, !7, i64 0}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = !{!34, !6, i64 28}
!34 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}


; 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_drbg = type { i64, ptr, [16 x i8], i64 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@nist_aes128_reference_entropy = external dso_local global %struct.s2n_stuffer, align 8
@nist_aes128_reference_entropy_hex = external dso_local constant [2881 x i8], align 16
@nist_aes128_reference_personalization_strings_hex = external dso_local constant [961 x i8], align 16
@nist_aes128_reference_values_hex = external dso_local constant [1441 x i8], align 16
@nist_aes128_reference_returned_bits_hex = external dso_local constant [1921 x i8], align 16
@nist_aes256_reference_entropy = external dso_local global %struct.s2n_stuffer, align 8
@nist_aes256_reference_entropy_hex_part1 = external dso_local constant [2113 x i8], align 16
@nist_aes256_reference_entropy_hex_part2 = external dso_local constant [2209 x i8], align 16
@nist_aes256_reference_personalization_strings_hex = external dso_local constant [1441 x i8], align 16
@nist_aes256_reference_values_hex = external dso_local constant [1441 x i8], align 16
@nist_aes256_reference_returned_bits_hex = external dso_local constant [1921 x i8], align 16
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [72 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.8 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [232 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [232 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #3

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

declare i32 @s2n_stuffer_alloc_from_hex(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_drbg_instantiate(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare i32 @s2n_drbg_generate(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_drbg_wipe(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [256 x i8], align 16
  %4 = alloca %struct.s2n_drbg, align 8
  %5 = alloca %struct.s2n_drbg, align 8
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %9 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7) #10
  %11 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12 = tail call i32 @fflush(ptr noundef %11)
  %13 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %14 = icmp eq i32 %13, -1
  br i1 %14, label %15, label %39

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

22:                                               ; preds = %15
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = tail call i32 @fileno(ptr noundef %23) #10
  %25 = tail call i32 @isatty(i32 noundef %24) #10
  %.not214 = icmp eq i32 %25, 0
  br i1 %.not214, label %26, label %27

26:                                               ; preds = %22, %15
  br label %27

27:                                               ; preds = %22, %26
  %.str.11.sink = phi ptr [ @.str.11, %26 ], [ @.str.8, %22 ]
  store i32 %17, ptr %16, align 4, !tbaa !5
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = load i32, ptr @test_count, align 4, !tbaa !5
  %30 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31 = load i32, ptr %30, align 4, !tbaa !5
  %32 = tail call ptr @s2n_strerror(i32 noundef %31, ptr noundef nonnull @.str.10) #10
  %33 = load i32, ptr %30, align 4, !tbaa !5
  %34 = tail call ptr @s2n_strerror_debug(i32 noundef %33, ptr noundef nonnull @.str.10) #10
  %35 = load i32, ptr %16, align 4, !tbaa !5
  %36 = tail call ptr @strerror(i32 noundef %35) #10
  %37 = load i32, ptr %16, align 4, !tbaa !5
  %38 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28, ptr noundef nonnull %.str.11.sink, i32 noundef %29, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.7, i32 noundef 344, ptr noundef %32, ptr noundef %34, ptr noundef %36, i32 noundef %37) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

39:                                               ; preds = %2
  %40 = load i32, ptr @test_count, align 4, !tbaa !5
  %41 = add nsw i32 %40, 1
  store i32 %41, ptr @test_count, align 4, !tbaa !5
  %42 = tail call i32 @s2n_enable_atexit() #10
  %43 = icmp eq i32 %42, -1
  br i1 %43, label %44, label %68

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

51:                                               ; preds = %44
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @fileno(ptr noundef %52) #10
  %54 = tail call i32 @isatty(i32 noundef %53) #10
  %.not213 = icmp eq i32 %54, 0
  br i1 %.not213, label %55, label %56

55:                                               ; preds = %51, %44
  br label %56

56:                                               ; preds = %51, %55
  %.str.11.sink242 = phi ptr [ @.str.11, %55 ], [ @.str.8, %51 ]
  store i32 %46, ptr %45, align 4, !tbaa !5
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = load i32, ptr @test_count, align 4, !tbaa !5
  %59 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror(i32 noundef %60, ptr noundef nonnull @.str.10) #10
  %62 = load i32, ptr %59, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror_debug(i32 noundef %62, ptr noundef nonnull @.str.10) #10
  %64 = load i32, ptr %45, align 4, !tbaa !5
  %65 = tail call ptr @strerror(i32 noundef %64) #10
  %66 = load i32, ptr %45, align 4, !tbaa !5
  %67 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %57, ptr noundef nonnull %.str.11.sink242, i32 noundef %58, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.7, i32 noundef 344, ptr noundef %61, ptr noundef %63, ptr noundef %65, i32 noundef %66) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

68:                                               ; preds = %39
  %69 = tail call i32 @s2n_init() #10
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %95

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

78:                                               ; preds = %71
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = tail call i32 @fileno(ptr noundef %79) #10
  %81 = tail call i32 @isatty(i32 noundef %80) #10
  %.not212 = icmp eq i32 %81, 0
  br i1 %.not212, label %82, label %83

82:                                               ; preds = %78, %71
  br label %83

83:                                               ; preds = %78, %82
  %.str.11.sink253 = phi ptr [ @.str.11, %82 ], [ @.str.8, %78 ]
  store i32 %73, ptr %72, align 4, !tbaa !5
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = load i32, ptr @test_count, align 4, !tbaa !5
  %86 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror(i32 noundef %87, ptr noundef nonnull @.str.10) #10
  %89 = load i32, ptr %86, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror_debug(i32 noundef %89, ptr noundef nonnull @.str.10) #10
  %91 = load i32, ptr %72, align 4, !tbaa !5
  %92 = tail call ptr @strerror(i32 noundef %91) #10
  %93 = load i32, ptr %72, align 4, !tbaa !5
  %94 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %84, ptr noundef nonnull %.str.11.sink253, i32 noundef %85, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.7, i32 noundef 344, ptr noundef %88, ptr noundef %90, ptr noundef %92, i32 noundef %93) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

95:                                               ; preds = %68
  %96 = load i32, ptr @test_count, align 4, !tbaa !5
  %97 = add nsw i32 %96, 1
  store i32 %97, ptr @test_count, align 4, !tbaa !5
  %98 = tail call i32 (...) @s2n_disable_tls13_in_test() #10
  %99 = icmp eq i32 %98, -1
  br i1 %99, label %100, label %124

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

107:                                              ; preds = %100
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @fileno(ptr noundef %108) #10
  %110 = tail call i32 @isatty(i32 noundef %109) #10
  %.not211 = icmp eq i32 %110, 0
  br i1 %.not211, label %111, label %112

111:                                              ; preds = %107, %100
  br label %112

112:                                              ; preds = %107, %111
  %.str.11.sink264 = phi ptr [ @.str.11, %111 ], [ @.str.8, %107 ]
  store i32 %102, ptr %101, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %115 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror(i32 noundef %116, ptr noundef nonnull @.str.10) #10
  %118 = load i32, ptr %115, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror_debug(i32 noundef %118, ptr noundef nonnull @.str.10) #10
  %120 = load i32, ptr %101, align 4, !tbaa !5
  %121 = tail call ptr @strerror(i32 noundef %120) #10
  %122 = load i32, ptr %101, align 4, !tbaa !5
  %123 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef nonnull %.str.11.sink264, i32 noundef %114, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.7, i32 noundef 345, ptr noundef %117, ptr noundef %119, ptr noundef %121, i32 noundef %122) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

124:                                              ; preds = %95
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %3, i8 0, i64 256, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr @test_count, align 4, !tbaa !5
  %127 = call i32 @s2n_blob_init(ptr noundef nonnull %6, ptr noundef nonnull %3, i32 noundef 64) #10
  %128 = icmp eq i32 %127, -1
  br i1 %128, label %129, label %153

129:                                              ; preds = %124
  %130 = tail call ptr @__errno_location() #11
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = call i32 @s2n_print_stacktrace(ptr noundef %132) #10
  %134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %135 = trunc nuw i8 %134 to i1
  br i1 %135, label %136, label %140

136:                                              ; preds = %129
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = call i32 @fileno(ptr noundef %137) #10
  %139 = call i32 @isatty(i32 noundef %138) #10
  %.not210 = icmp eq i32 %139, 0
  br i1 %.not210, label %140, label %141

140:                                              ; preds = %136, %129
  br label %141

141:                                              ; preds = %136, %140
  %.str.11.sink275 = phi ptr [ @.str.11, %140 ], [ @.str.8, %136 ]
  store i32 %131, ptr %130, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = load i32, ptr @test_count, align 4, !tbaa !5
  %144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call ptr @s2n_strerror(i32 noundef %145, ptr noundef nonnull @.str.10) #10
  %147 = load i32, ptr %144, align 4, !tbaa !5
  %148 = call ptr @s2n_strerror_debug(i32 noundef %147, ptr noundef nonnull @.str.10) #10
  %149 = load i32, ptr %130, align 4, !tbaa !5
  %150 = call ptr @strerror(i32 noundef %149) #10
  %151 = load i32, ptr %130, align 4, !tbaa !5
  %152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %142, ptr noundef nonnull %.str.11.sink275, i32 noundef %143, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.7, i32 noundef 351, ptr noundef %146, ptr noundef %148, ptr noundef %150, i32 noundef %151) #12
  call void @exit(i32 noundef 1) #13
  unreachable

153:                                              ; preds = %124
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr @test_count, align 4, !tbaa !5
  %156 = call i32 @s2n_drbg_instantiate(ptr noundef nonnull %4, ptr noundef nonnull %6, i32 noundef 0) #10
  %157 = call zeroext i1 @s2n_result_is_ok(i32 %156)
  br i1 %157, label %182, label %158

158:                                              ; preds = %153
  %159 = tail call ptr @__errno_location() #11
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @s2n_print_stacktrace(ptr noundef %161) #10
  %163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %164 = trunc nuw i8 %163 to i1
  br i1 %164, label %165, label %169

165:                                              ; preds = %158
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = call i32 @fileno(ptr noundef %166) #10
  %168 = call i32 @isatty(i32 noundef %167) #10
  %.not = icmp eq i32 %168, 0
  br i1 %.not, label %169, label %170

169:                                              ; preds = %165, %158
  br label %170

170:                                              ; preds = %165, %169
  %.str.11.sink286 = phi ptr [ @.str.11, %169 ], [ @.str.8, %165 ]
  store i32 %160, ptr %159, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror(i32 noundef %174, ptr noundef nonnull @.str.10) #10
  %176 = load i32, ptr %173, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror_debug(i32 noundef %176, ptr noundef nonnull @.str.10) #10
  %178 = load i32, ptr %159, align 4, !tbaa !5
  %179 = call ptr @strerror(i32 noundef %178) #10
  %180 = load i32, ptr %159, align 4, !tbaa !5
  %181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %171, ptr noundef nonnull %.str.11.sink286, i32 noundef %172, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.7, i32 noundef 353, ptr noundef %175, ptr noundef %177, ptr noundef %179, i32 noundef %180) #12
  call void @exit(i32 noundef 1) #13
  unreachable

182:                                              ; preds = %153
  %183 = load i32, ptr @test_count, align 4, !tbaa !5
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr @test_count, align 4, !tbaa !5
  %185 = call i32 @s2n_drbg_instantiate(ptr noundef nonnull %5, ptr noundef nonnull %6, i32 noundef 1) #10
  %186 = call zeroext i1 @s2n_result_is_ok(i32 %185)
  br i1 %186, label %211, label %187

187:                                              ; preds = %182
  %188 = tail call ptr @__errno_location() #11
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @s2n_print_stacktrace(ptr noundef %190) #10
  %192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %193 = trunc nuw i8 %192 to i1
  br i1 %193, label %194, label %198

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

198:                                              ; preds = %194, %187
  br label %199

199:                                              ; preds = %194, %198
  %.str.11.sink297 = phi ptr [ @.str.11, %198 ], [ @.str.8, %194 ]
  store i32 %189, ptr %188, align 4, !tbaa !5
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @s2n_strerror(i32 noundef %203, ptr noundef nonnull @.str.10) #10
  %205 = load i32, ptr %202, align 4, !tbaa !5
  %206 = call ptr @s2n_strerror_debug(i32 noundef %205, ptr noundef nonnull @.str.10) #10
  %207 = load i32, ptr %188, align 4, !tbaa !5
  %208 = call ptr @strerror(i32 noundef %207) #10
  %209 = load i32, ptr %188, align 4, !tbaa !5
  %210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef nonnull %.str.11.sink297, i32 noundef %201, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.7, i32 noundef 354, ptr noundef %204, ptr noundef %206, ptr noundef %208, i32 noundef %209) #12
  call void @exit(i32 noundef 1) #13
  unreachable

211:                                              ; preds = %182
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr @test_count, align 4, !tbaa !5
  %214 = call ptr @s2n_config_new() #10
  %215 = icmp eq ptr %214, null
  br i1 %215, label %216, label %.preheader218

216:                                              ; preds = %211
  %217 = tail call ptr @__errno_location() #11
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219) #10
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc nuw i8 %221 to i1
  br i1 %222, label %223, label %227

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #10
  %226 = call i32 @isatty(i32 noundef %225) #10
  %.not209 = icmp eq i32 %226, 0
  br i1 %.not209, label %227, label %228

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.11.sink308 = phi ptr [ @.str.11, %227 ], [ @.str.8, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef nonnull @.str.10) #10
  %234 = load i32, ptr %231, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef nonnull @.str.10) #10
  %236 = load i32, ptr %217, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #10
  %238 = load i32, ptr %217, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.11.sink308, i32 noundef %230, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.7, i32 noundef 357, ptr noundef %233, ptr noundef %235, ptr noundef %237, i32 noundef %238) #12
  call void @exit(i32 noundef 1) #13
  unreachable

240:                                              ; preds = %.preheader218
  %241 = add nuw nsw i32 %.0146219, 1
  %exitcond.not = icmp eq i32 %241, 500000
  br i1 %exitcond.not, label %242, label %.preheader218, !llvm.loop !15

242:                                              ; preds = %240
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = add nsw i32 %243, 1
  store i32 %244, ptr @test_count, align 4, !tbaa !5
  %245 = getelementptr inbounds i8, ptr %4, i64 32
  %246 = load i64, ptr %245, align 8, !tbaa !17
  %247 = icmp eq i64 %246, 500000
  br i1 %247, label %.preheader217, label %276

.preheader218:                                    ; preds = %211, %240
  %.0146219 = phi i32 [ %241, %240 ], [ 0, %211 ]
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr @test_count, align 4, !tbaa !5
  %250 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %251 = call zeroext i1 @s2n_result_is_ok(i32 %250)
  br i1 %251, label %240, label %252

252:                                              ; preds = %.preheader218
  %253 = tail call ptr @__errno_location() #11
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @s2n_print_stacktrace(ptr noundef %255) #10
  %257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %258 = trunc nuw i8 %257 to i1
  br i1 %258, label %259, label %263

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

263:                                              ; preds = %259, %252
  br label %264

264:                                              ; preds = %259, %263
  %.str.11.sink319 = phi ptr [ @.str.11, %263 ], [ @.str.8, %259 ]
  store i32 %254, ptr %253, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef nonnull @.str.10) #10
  %270 = load i32, ptr %267, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef nonnull @.str.10) #10
  %272 = load i32, ptr %253, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #10
  %274 = load i32, ptr %253, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef nonnull %.str.11.sink319, i32 noundef %266, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.7, i32 noundef 361, ptr noundef %269, ptr noundef %271, ptr noundef %273, i32 noundef %274) #12
  call void @exit(i32 noundef 1) #13
  unreachable

276:                                              ; preds = %242
  %277 = tail call ptr @__errno_location() #11
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @s2n_print_stacktrace(ptr noundef %279) #10
  %281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %282 = trunc nuw i8 %281 to i1
  br i1 %282, label %283, label %287

283:                                              ; preds = %276
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = call i32 @fileno(ptr noundef %284) #10
  %286 = call i32 @isatty(i32 noundef %285) #10
  %.not167 = icmp eq i32 %286, 0
  br i1 %.not167, label %287, label %288

287:                                              ; preds = %283, %276
  br label %288

288:                                              ; preds = %283, %287
  %.str.11.sink330 = phi ptr [ @.str.11, %287 ], [ @.str.8, %283 ]
  store i32 %278, ptr %277, align 4, !tbaa !5
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror(i32 noundef %292, ptr noundef nonnull @.str.10) #10
  %294 = load i32, ptr %291, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef nonnull @.str.10) #10
  %296 = load i32, ptr %277, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #10
  %298 = load i32, ptr %277, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %289, ptr noundef nonnull %.str.11.sink330, i32 noundef %290, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.7, i32 noundef 363, ptr noundef %293, ptr noundef %295, ptr noundef %297, i32 noundef %298) #12
  call void @exit(i32 noundef 1) #13
  unreachable

300:                                              ; preds = %.preheader217
  %301 = add nuw nsw i32 %.0147220, 1
  %exitcond226.not = icmp eq i32 %301, 500000
  br i1 %exitcond226.not, label %302, label %.preheader217, !llvm.loop !20

302:                                              ; preds = %300
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = getelementptr inbounds i8, ptr %5, i64 32
  %306 = load i64, ptr %305, align 8, !tbaa !17
  %307 = icmp eq i64 %306, 500000
  br i1 %307, label %360, label %336

.preheader217:                                    ; preds = %242, %300
  %.0147220 = phi i32 [ %301, %300 ], [ 0, %242 ]
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %311 = call zeroext i1 @s2n_result_is_ok(i32 %310)
  br i1 %311, label %300, label %312

312:                                              ; preds = %.preheader217
  %313 = tail call ptr @__errno_location() #11
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @s2n_print_stacktrace(ptr noundef %315) #10
  %317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %318 = trunc nuw i8 %317 to i1
  br i1 %318, label %319, label %323

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @fileno(ptr noundef %320) #10
  %322 = call i32 @isatty(i32 noundef %321) #10
  %.not207 = icmp eq i32 %322, 0
  br i1 %.not207, label %323, label %324

323:                                              ; preds = %319, %312
  br label %324

324:                                              ; preds = %319, %323
  %.str.11.sink341 = phi ptr [ @.str.11, %323 ], [ @.str.8, %319 ]
  store i32 %314, ptr %313, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror(i32 noundef %328, ptr noundef nonnull @.str.10) #10
  %330 = load i32, ptr %327, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef nonnull @.str.10) #10
  %332 = load i32, ptr %313, align 4, !tbaa !5
  %333 = call ptr @strerror(i32 noundef %332) #10
  %334 = load i32, ptr %313, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef nonnull %.str.11.sink341, i32 noundef %326, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.7, i32 noundef 367, ptr noundef %329, ptr noundef %331, ptr noundef %333, i32 noundef %334) #12
  call void @exit(i32 noundef 1) #13
  unreachable

336:                                              ; preds = %302
  %337 = tail call ptr @__errno_location() #11
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339) #10
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc nuw i8 %341 to i1
  br i1 %342, label %343, label %347

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #10
  %346 = call i32 @isatty(i32 noundef %345) #10
  %.not168 = icmp eq i32 %346, 0
  br i1 %.not168, label %347, label %348

347:                                              ; preds = %343, %336
  br label %348

348:                                              ; preds = %343, %347
  %.str.11.sink352 = phi ptr [ @.str.11, %347 ], [ @.str.8, %343 ]
  store i32 %338, ptr %337, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef nonnull @.str.10) #10
  %354 = load i32, ptr %351, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror_debug(i32 noundef %354, ptr noundef nonnull @.str.10) #10
  %356 = load i32, ptr %337, align 4, !tbaa !5
  %357 = call ptr @strerror(i32 noundef %356) #10
  %358 = load i32, ptr %337, align 4, !tbaa !5
  %359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef nonnull %.str.11.sink352, i32 noundef %350, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.7, i32 noundef 369, ptr noundef %353, ptr noundef %355, ptr noundef %357, i32 noundef %358) #12
  call void @exit(i32 noundef 1) #13
  unreachable

360:                                              ; preds = %302
  %361 = getelementptr inbounds i8, ptr %6, i64 8
  store i32 129, ptr %361, align 8, !tbaa !21
  %362 = add nsw i32 %303, 2
  store i32 %362, ptr @test_count, align 4, !tbaa !5
  %363 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %364 = call zeroext i1 @s2n_result_is_ok(i32 %363)
  br i1 %364, label %484, label %460

365:                                              ; preds = %484
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = add nsw i32 %366, 1
  store i32 %367, ptr @test_count, align 4, !tbaa !5
  %368 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %369 = call zeroext i1 @s2n_result_is_ok(i32 %368)
  br i1 %369, label %370, label %460

370:                                              ; preds = %365
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr @test_count, align 4, !tbaa !5
  %373 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %374 = call zeroext i1 @s2n_result_is_ok(i32 %373)
  br i1 %374, label %375, label %489

375:                                              ; preds = %370
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr @test_count, align 4, !tbaa !5
  %378 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %379 = call zeroext i1 @s2n_result_is_ok(i32 %378)
  br i1 %379, label %380, label %460

380:                                              ; preds = %375
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr @test_count, align 4, !tbaa !5
  %383 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %384 = call zeroext i1 @s2n_result_is_ok(i32 %383)
  br i1 %384, label %385, label %489

385:                                              ; preds = %380
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %389 = call zeroext i1 @s2n_result_is_ok(i32 %388)
  br i1 %389, label %390, label %460

390:                                              ; preds = %385
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr @test_count, align 4, !tbaa !5
  %393 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %394 = call zeroext i1 @s2n_result_is_ok(i32 %393)
  br i1 %394, label %395, label %489

395:                                              ; preds = %390
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %399 = call zeroext i1 @s2n_result_is_ok(i32 %398)
  br i1 %399, label %400, label %460

400:                                              ; preds = %395
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr @test_count, align 4, !tbaa !5
  %403 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %404 = call zeroext i1 @s2n_result_is_ok(i32 %403)
  br i1 %404, label %405, label %489

405:                                              ; preds = %400
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = add nsw i32 %406, 1
  store i32 %407, ptr @test_count, align 4, !tbaa !5
  %408 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %409 = call zeroext i1 @s2n_result_is_ok(i32 %408)
  br i1 %409, label %410, label %460

410:                                              ; preds = %405
  %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 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %414 = call zeroext i1 @s2n_result_is_ok(i32 %413)
  br i1 %414, label %415, label %489

415:                                              ; preds = %410
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %419 = call zeroext i1 @s2n_result_is_ok(i32 %418)
  br i1 %419, label %420, label %460

420:                                              ; preds = %415
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %424 = call zeroext i1 @s2n_result_is_ok(i32 %423)
  br i1 %424, label %425, label %489

425:                                              ; preds = %420
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr @test_count, align 4, !tbaa !5
  %428 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %429 = call zeroext i1 @s2n_result_is_ok(i32 %428)
  br i1 %429, label %430, label %460

430:                                              ; preds = %425
  %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_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %434 = call zeroext i1 @s2n_result_is_ok(i32 %433)
  br i1 %434, label %435, label %489

435:                                              ; preds = %430
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %439 = call zeroext i1 @s2n_result_is_ok(i32 %438)
  br i1 %439, label %440, label %460

440:                                              ; preds = %435
  %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 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %444 = call zeroext i1 @s2n_result_is_ok(i32 %443)
  br i1 %444, label %445, label %489

445:                                              ; preds = %440
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %449 = call zeroext i1 @s2n_result_is_ok(i32 %448)
  br i1 %449, label %450, label %460

450:                                              ; preds = %445
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = add nsw i32 %451, 1
  store i32 %452, ptr @test_count, align 4, !tbaa !5
  %453 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %454 = call zeroext i1 @s2n_result_is_ok(i32 %453)
  br i1 %454, label %455, label %489

455:                                              ; preds = %450
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr @test_count, align 4, !tbaa !5
  %458 = load i64, ptr %245, align 8, !tbaa !17
  %459 = icmp eq i64 %458, 500010
  br i1 %459, label %537, label %513

460:                                              ; preds = %445, %435, %425, %415, %405, %395, %385, %375, %365, %360
  %461 = tail call ptr @__errno_location() #11
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = call i32 @s2n_print_stacktrace(ptr noundef %463) #10
  %465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %466 = trunc nuw i8 %465 to i1
  br i1 %466, label %467, label %471

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

471:                                              ; preds = %467, %460
  br label %472

472:                                              ; preds = %467, %471
  %.str.11.sink363 = phi ptr [ @.str.11, %471 ], [ @.str.8, %467 ]
  store i32 %462, ptr %461, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = load i32, ptr @test_count, align 4, !tbaa !5
  %475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror(i32 noundef %476, ptr noundef nonnull @.str.10) #10
  %478 = load i32, ptr %475, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror_debug(i32 noundef %478, ptr noundef nonnull @.str.10) #10
  %480 = load i32, ptr %461, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #10
  %482 = load i32, ptr %461, align 4, !tbaa !5
  %483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %473, ptr noundef nonnull %.str.11.sink363, i32 noundef %474, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.7, i32 noundef 375, ptr noundef %477, ptr noundef %479, ptr noundef %481, i32 noundef %482) #12
  call void @exit(i32 noundef 1) #13
  unreachable

484:                                              ; preds = %360
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr @test_count, align 4, !tbaa !5
  %487 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %488 = call zeroext i1 @s2n_result_is_ok(i32 %487)
  br i1 %488, label %365, label %489

489:                                              ; preds = %450, %440, %430, %420, %410, %400, %390, %380, %370, %484
  %490 = tail call ptr @__errno_location() #11
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @s2n_print_stacktrace(ptr noundef %492) #10
  %494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %495 = trunc nuw i8 %494 to i1
  br i1 %495, label %496, label %500

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

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

501:                                              ; preds = %496, %500
  %.str.11.sink374 = phi ptr [ @.str.11, %500 ], [ @.str.8, %496 ]
  store i32 %491, ptr %490, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef nonnull @.str.10) #10
  %507 = load i32, ptr %504, align 4, !tbaa !5
  %508 = call ptr @s2n_strerror_debug(i32 noundef %507, ptr noundef nonnull @.str.10) #10
  %509 = load i32, ptr %490, align 4, !tbaa !5
  %510 = call ptr @strerror(i32 noundef %509) #10
  %511 = load i32, ptr %490, align 4, !tbaa !5
  %512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef nonnull %.str.11.sink374, i32 noundef %503, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.7, i32 noundef 376, ptr noundef %506, ptr noundef %508, ptr noundef %510, i32 noundef %511) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #10
  %523 = call i32 @isatty(i32 noundef %522) #10
  %.not169 = icmp eq i32 %523, 0
  br i1 %.not169, label %524, label %525

524:                                              ; preds = %520, %513
  br label %525

525:                                              ; preds = %520, %524
  %.str.11.sink385 = phi ptr [ @.str.11, %524 ], [ @.str.8, %520 ]
  store i32 %515, ptr %514, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef nonnull @.str.10) #10
  %531 = load i32, ptr %528, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.10) #10
  %533 = load i32, ptr %514, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #10
  %535 = load i32, ptr %514, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.11.sink385, i32 noundef %527, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.7, i32 noundef 378, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #12
  call void @exit(i32 noundef 1) #13
  unreachable

537:                                              ; preds = %455
  %538 = add nsw i32 %456, 2
  store i32 %538, ptr @test_count, align 4, !tbaa !5
  %539 = load i64, ptr %305, align 8, !tbaa !17
  %540 = icmp eq i64 %539, 500010
  br i1 %540, label %565, label %541

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

548:                                              ; preds = %541
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = call i32 @fileno(ptr noundef %549) #10
  %551 = call i32 @isatty(i32 noundef %550) #10
  %.not170 = icmp eq i32 %551, 0
  br i1 %.not170, label %552, label %553

552:                                              ; preds = %548, %541
  br label %553

553:                                              ; preds = %548, %552
  %.str.11.sink396 = phi ptr [ @.str.11, %552 ], [ @.str.8, %548 ]
  store i32 %543, ptr %542, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef nonnull @.str.10) #10
  %559 = load i32, ptr %556, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef nonnull @.str.10) #10
  %561 = load i32, ptr %542, align 4, !tbaa !5
  %562 = call ptr @strerror(i32 noundef %561) #10
  %563 = load i32, ptr %542, align 4, !tbaa !5
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef nonnull %.str.11.sink396, i32 noundef %555, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.7, i32 noundef 379, ptr noundef %558, ptr noundef %560, ptr noundef %562, i32 noundef %563) #12
  call void @exit(i32 noundef 1) #13
  unreachable

565:                                              ; preds = %537
  %566 = add nsw i32 %456, 3
  store i32 %566, ptr @test_count, align 4, !tbaa !5
  %567 = call i32 @s2n_ignore_prediction_resistance_for_testing(i1 noundef zeroext true) #10
  %568 = call zeroext i1 @s2n_result_is_ok(i32 %567)
  br i1 %568, label %593, label %569

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

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #10
  %579 = call i32 @isatty(i32 noundef %578) #10
  %.not171 = icmp eq i32 %579, 0
  br i1 %.not171, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.11.sink407 = phi ptr [ @.str.11, %580 ], [ @.str.8, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef nonnull @.str.10) #10
  %587 = load i32, ptr %584, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef nonnull @.str.10) #10
  %589 = load i32, ptr %570, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #10
  %591 = load i32, ptr %570, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.11.sink407, i32 noundef %583, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.7, i32 noundef 382, ptr noundef %586, ptr noundef %588, ptr noundef %590, i32 noundef %591) #12
  call void @exit(i32 noundef 1) #13
  unreachable

593:                                              ; preds = %565
  %594 = load i64, ptr %245, align 8, !tbaa !17
  %595 = load i64, ptr %305, align 8, !tbaa !17
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr @test_count, align 4, !tbaa !5
  %598 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %599 = call zeroext i1 @s2n_result_is_ok(i32 %598)
  br i1 %599, label %719, label %695

600:                                              ; preds = %719
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = add nsw i32 %601, 1
  store i32 %602, ptr @test_count, align 4, !tbaa !5
  %603 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %604 = call zeroext i1 @s2n_result_is_ok(i32 %603)
  br i1 %604, label %605, label %695

605:                                              ; preds = %600
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %609 = call zeroext i1 @s2n_result_is_ok(i32 %608)
  br i1 %609, label %610, label %724

610:                                              ; preds = %605
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %614 = call zeroext i1 @s2n_result_is_ok(i32 %613)
  br i1 %614, label %615, label %695

615:                                              ; preds = %610
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr @test_count, align 4, !tbaa !5
  %618 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %619 = call zeroext i1 @s2n_result_is_ok(i32 %618)
  br i1 %619, label %620, label %724

620:                                              ; preds = %615
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %624 = call zeroext i1 @s2n_result_is_ok(i32 %623)
  br i1 %624, label %625, label %695

625:                                              ; preds = %620
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr @test_count, align 4, !tbaa !5
  %628 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %629 = call zeroext i1 @s2n_result_is_ok(i32 %628)
  br i1 %629, label %630, label %724

630:                                              ; preds = %625
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr @test_count, align 4, !tbaa !5
  %633 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %634 = call zeroext i1 @s2n_result_is_ok(i32 %633)
  br i1 %634, label %635, label %695

635:                                              ; preds = %630
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr @test_count, align 4, !tbaa !5
  %638 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %639 = call zeroext i1 @s2n_result_is_ok(i32 %638)
  br i1 %639, label %640, label %724

640:                                              ; preds = %635
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %644 = call zeroext i1 @s2n_result_is_ok(i32 %643)
  br i1 %644, label %645, label %695

645:                                              ; preds = %640
  %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 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %649 = call zeroext i1 @s2n_result_is_ok(i32 %648)
  br i1 %649, label %650, label %724

650:                                              ; preds = %645
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %654 = call zeroext i1 @s2n_result_is_ok(i32 %653)
  br i1 %654, label %655, label %695

655:                                              ; preds = %650
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = add nsw i32 %656, 1
  store i32 %657, ptr @test_count, align 4, !tbaa !5
  %658 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %659 = call zeroext i1 @s2n_result_is_ok(i32 %658)
  br i1 %659, label %660, label %724

660:                                              ; preds = %655
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr @test_count, align 4, !tbaa !5
  %663 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %664 = call zeroext i1 @s2n_result_is_ok(i32 %663)
  br i1 %664, label %665, label %695

665:                                              ; preds = %660
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = add nsw i32 %666, 1
  store i32 %667, ptr @test_count, align 4, !tbaa !5
  %668 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %669 = call zeroext i1 @s2n_result_is_ok(i32 %668)
  br i1 %669, label %670, label %724

670:                                              ; preds = %665
  %671 = load i32, ptr @test_count, align 4, !tbaa !5
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr @test_count, align 4, !tbaa !5
  %673 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %674 = call zeroext i1 @s2n_result_is_ok(i32 %673)
  br i1 %674, label %675, label %695

675:                                              ; preds = %670
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr @test_count, align 4, !tbaa !5
  %678 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %679 = call zeroext i1 @s2n_result_is_ok(i32 %678)
  br i1 %679, label %680, label %724

680:                                              ; preds = %675
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %684 = call zeroext i1 @s2n_result_is_ok(i32 %683)
  br i1 %684, label %685, label %695

685:                                              ; preds = %680
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %689 = call zeroext i1 @s2n_result_is_ok(i32 %688)
  br i1 %689, label %690, label %724

690:                                              ; preds = %685
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr @test_count, align 4, !tbaa !5
  %693 = load i64, ptr %245, align 8, !tbaa !17
  %694 = icmp eq i64 %693, %594
  br i1 %694, label %772, label %748

695:                                              ; preds = %680, %670, %660, %650, %640, %630, %620, %610, %600, %593
  %696 = tail call ptr @__errno_location() #11
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @s2n_print_stacktrace(ptr noundef %698) #10
  %700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %701 = trunc nuw i8 %700 to i1
  br i1 %701, label %702, label %706

702:                                              ; preds = %695
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @fileno(ptr noundef %703) #10
  %705 = call i32 @isatty(i32 noundef %704) #10
  %.not203 = icmp eq i32 %705, 0
  br i1 %.not203, label %706, label %707

706:                                              ; preds = %702, %695
  br label %707

707:                                              ; preds = %702, %706
  %.str.11.sink418 = phi ptr [ @.str.11, %706 ], [ @.str.8, %702 ]
  store i32 %697, ptr %696, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror(i32 noundef %711, ptr noundef nonnull @.str.10) #10
  %713 = load i32, ptr %710, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror_debug(i32 noundef %713, ptr noundef nonnull @.str.10) #10
  %715 = load i32, ptr %696, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #10
  %717 = load i32, ptr %696, align 4, !tbaa !5
  %718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %708, ptr noundef nonnull %.str.11.sink418, i32 noundef %709, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.7, i32 noundef 386, ptr noundef %712, ptr noundef %714, ptr noundef %716, i32 noundef %717) #12
  call void @exit(i32 noundef 1) #13
  unreachable

719:                                              ; preds = %593
  %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 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %723 = call zeroext i1 @s2n_result_is_ok(i32 %722)
  br i1 %723, label %600, label %724

724:                                              ; preds = %685, %675, %665, %655, %645, %635, %625, %615, %605, %719
  %725 = tail call ptr @__errno_location() #11
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @s2n_print_stacktrace(ptr noundef %727) #10
  %729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %730 = trunc nuw i8 %729 to i1
  br i1 %730, label %731, label %735

731:                                              ; preds = %724
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @fileno(ptr noundef %732) #10
  %734 = call i32 @isatty(i32 noundef %733) #10
  %.not204 = icmp eq i32 %734, 0
  br i1 %.not204, label %735, label %736

735:                                              ; preds = %731, %724
  br label %736

736:                                              ; preds = %731, %735
  %.str.11.sink429 = phi ptr [ @.str.11, %735 ], [ @.str.8, %731 ]
  store i32 %726, ptr %725, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror(i32 noundef %740, ptr noundef nonnull @.str.10) #10
  %742 = load i32, ptr %739, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef nonnull @.str.10) #10
  %744 = load i32, ptr %725, align 4, !tbaa !5
  %745 = call ptr @strerror(i32 noundef %744) #10
  %746 = load i32, ptr %725, align 4, !tbaa !5
  %747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef nonnull %.str.11.sink429, i32 noundef %738, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.7, i32 noundef 387, ptr noundef %741, ptr noundef %743, ptr noundef %745, i32 noundef %746) #12
  call void @exit(i32 noundef 1) #13
  unreachable

748:                                              ; preds = %690
  %749 = tail call ptr @__errno_location() #11
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @s2n_print_stacktrace(ptr noundef %751) #10
  %753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %754 = trunc nuw i8 %753 to i1
  br i1 %754, label %755, label %759

755:                                              ; preds = %748
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #10
  %758 = call i32 @isatty(i32 noundef %757) #10
  %.not172 = icmp eq i32 %758, 0
  br i1 %.not172, label %759, label %760

759:                                              ; preds = %755, %748
  br label %760

760:                                              ; preds = %755, %759
  %.str.11.sink440 = phi ptr [ @.str.11, %759 ], [ @.str.8, %755 ]
  store i32 %750, ptr %749, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef nonnull @.str.10) #10
  %766 = load i32, ptr %763, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.10) #10
  %768 = load i32, ptr %749, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #10
  %770 = load i32, ptr %749, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef nonnull %.str.11.sink440, i32 noundef %762, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.7, i32 noundef 389, ptr noundef %765, ptr noundef %767, ptr noundef %769, i32 noundef %770) #12
  call void @exit(i32 noundef 1) #13
  unreachable

772:                                              ; preds = %690
  %773 = add nsw i32 %691, 2
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = load i64, ptr %305, align 8, !tbaa !17
  %775 = icmp eq i64 %774, %595
  br i1 %775, label %800, label %776

776:                                              ; preds = %772
  %777 = tail call ptr @__errno_location() #11
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #10
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %776
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #10
  %786 = call i32 @isatty(i32 noundef %785) #10
  %.not173 = icmp eq i32 %786, 0
  br i1 %.not173, label %787, label %788

787:                                              ; preds = %783, %776
  br label %788

788:                                              ; preds = %783, %787
  %.str.11.sink451 = phi ptr [ @.str.11, %787 ], [ @.str.8, %783 ]
  store i32 %778, ptr %777, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %792, ptr noundef nonnull @.str.10) #10
  %794 = load i32, ptr %791, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef nonnull @.str.10) #10
  %796 = load i32, ptr %777, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #10
  %798 = load i32, ptr %777, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.11.sink451, i32 noundef %790, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.7, i32 noundef 390, ptr noundef %793, ptr noundef %795, ptr noundef %797, i32 noundef %798) #12
  call void @exit(i32 noundef 1) #13
  unreachable

800:                                              ; preds = %772
  %801 = add nsw i32 %691, 3
  store i32 %801, ptr @test_count, align 4, !tbaa !5
  %802 = call i32 @s2n_ignore_prediction_resistance_for_testing(i1 noundef zeroext false) #10
  %803 = call zeroext i1 @s2n_result_is_ok(i32 %802)
  br i1 %803, label %.preheader216.preheader, label %808

.preheader216.preheader:                          ; preds = %800
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr @test_count, align 4, !tbaa !5
  %806 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %807 = call zeroext i1 @s2n_result_is_ok(i32 %806)
  br i1 %807, label %943, label %919

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

815:                                              ; preds = %808
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @fileno(ptr noundef %816) #10
  %818 = call i32 @isatty(i32 noundef %817) #10
  %.not174 = icmp eq i32 %818, 0
  br i1 %.not174, label %819, label %820

819:                                              ; preds = %815, %808
  br label %820

820:                                              ; preds = %815, %819
  %.str.11.sink462 = phi ptr [ @.str.11, %819 ], [ @.str.8, %815 ]
  store i32 %810, ptr %809, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef nonnull @.str.10) #10
  %826 = load i32, ptr %823, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror_debug(i32 noundef %826, ptr noundef nonnull @.str.10) #10
  %828 = load i32, ptr %809, align 4, !tbaa !5
  %829 = call ptr @strerror(i32 noundef %828) #10
  %830 = load i32, ptr %809, align 4, !tbaa !5
  %831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef nonnull %.str.11.sink462, i32 noundef %822, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.7, i32 noundef 393, ptr noundef %825, ptr noundef %827, ptr noundef %829, i32 noundef %830) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.preheader216.1:                                  ; preds = %943
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %835 = call zeroext i1 @s2n_result_is_ok(i32 %834)
  br i1 %835, label %836, label %919

836:                                              ; preds = %.preheader216.1
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %840 = call zeroext i1 @s2n_result_is_ok(i32 %839)
  br i1 %840, label %.preheader216.2, label %948

.preheader216.2:                                  ; preds = %836
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %844 = call zeroext i1 @s2n_result_is_ok(i32 %843)
  br i1 %844, label %845, label %919

845:                                              ; preds = %.preheader216.2
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = add nsw i32 %846, 1
  store i32 %847, ptr @test_count, align 4, !tbaa !5
  %848 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %849 = call zeroext i1 @s2n_result_is_ok(i32 %848)
  br i1 %849, label %.preheader216.3, label %948

.preheader216.3:                                  ; preds = %845
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = add nsw i32 %850, 1
  store i32 %851, ptr @test_count, align 4, !tbaa !5
  %852 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %853 = call zeroext i1 @s2n_result_is_ok(i32 %852)
  br i1 %853, label %854, label %919

854:                                              ; preds = %.preheader216.3
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = add nsw i32 %855, 1
  store i32 %856, ptr @test_count, align 4, !tbaa !5
  %857 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %858 = call zeroext i1 @s2n_result_is_ok(i32 %857)
  br i1 %858, label %.preheader216.4, label %948

.preheader216.4:                                  ; preds = %854
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = add nsw i32 %859, 1
  store i32 %860, ptr @test_count, align 4, !tbaa !5
  %861 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %862 = call zeroext i1 @s2n_result_is_ok(i32 %861)
  br i1 %862, label %863, label %919

863:                                              ; preds = %.preheader216.4
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %867 = call zeroext i1 @s2n_result_is_ok(i32 %866)
  br i1 %867, label %.preheader216.5, label %948

.preheader216.5:                                  ; preds = %863
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %871 = call zeroext i1 @s2n_result_is_ok(i32 %870)
  br i1 %871, label %872, label %919

872:                                              ; preds = %.preheader216.5
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %876 = call zeroext i1 @s2n_result_is_ok(i32 %875)
  br i1 %876, label %.preheader216.6, label %948

.preheader216.6:                                  ; preds = %872
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %880 = call zeroext i1 @s2n_result_is_ok(i32 %879)
  br i1 %880, label %881, label %919

881:                                              ; preds = %.preheader216.6
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = add nsw i32 %882, 1
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %885 = call zeroext i1 @s2n_result_is_ok(i32 %884)
  br i1 %885, label %.preheader216.7, label %948

.preheader216.7:                                  ; preds = %881
  %886 = load i32, ptr @test_count, align 4, !tbaa !5
  %887 = add nsw i32 %886, 1
  store i32 %887, ptr @test_count, align 4, !tbaa !5
  %888 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %889 = call zeroext i1 @s2n_result_is_ok(i32 %888)
  br i1 %889, label %890, label %919

890:                                              ; preds = %.preheader216.7
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %894 = call zeroext i1 @s2n_result_is_ok(i32 %893)
  br i1 %894, label %.preheader216.8, label %948

.preheader216.8:                                  ; preds = %890
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = add nsw i32 %895, 1
  store i32 %896, ptr @test_count, align 4, !tbaa !5
  %897 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %898 = call zeroext i1 @s2n_result_is_ok(i32 %897)
  br i1 %898, label %899, label %919

899:                                              ; preds = %.preheader216.8
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %903 = call zeroext i1 @s2n_result_is_ok(i32 %902)
  br i1 %903, label %.preheader216.9, label %948

.preheader216.9:                                  ; preds = %899
  %904 = load i32, ptr @test_count, align 4, !tbaa !5
  %905 = add nsw i32 %904, 1
  store i32 %905, ptr @test_count, align 4, !tbaa !5
  %906 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %907 = call zeroext i1 @s2n_result_is_ok(i32 %906)
  br i1 %907, label %908, label %919

908:                                              ; preds = %.preheader216.9
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = add nsw i32 %909, 1
  store i32 %910, ptr @test_count, align 4, !tbaa !5
  %911 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %912 = call zeroext i1 @s2n_result_is_ok(i32 %911)
  br i1 %912, label %913, label %948

913:                                              ; preds = %908
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr @test_count, align 4, !tbaa !5
  %916 = load i64, ptr %245, align 8, !tbaa !17
  %917 = add i64 %594, 10
  %918 = icmp eq i64 %916, %917
  br i1 %918, label %996, label %972

919:                                              ; preds = %.preheader216.9, %.preheader216.8, %.preheader216.7, %.preheader216.6, %.preheader216.5, %.preheader216.4, %.preheader216.3, %.preheader216.2, %.preheader216.1, %.preheader216.preheader
  %920 = tail call ptr @__errno_location() #11
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = call i32 @s2n_print_stacktrace(ptr noundef %922) #10
  %924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %925 = trunc nuw i8 %924 to i1
  br i1 %925, label %926, label %930

926:                                              ; preds = %919
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @fileno(ptr noundef %927) #10
  %929 = call i32 @isatty(i32 noundef %928) #10
  %.not201 = icmp eq i32 %929, 0
  br i1 %.not201, label %930, label %931

930:                                              ; preds = %926, %919
  br label %931

931:                                              ; preds = %926, %930
  %.str.11.sink473 = phi ptr [ @.str.11, %930 ], [ @.str.8, %926 ]
  store i32 %921, ptr %920, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef nonnull @.str.10) #10
  %937 = load i32, ptr %934, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror_debug(i32 noundef %937, ptr noundef nonnull @.str.10) #10
  %939 = load i32, ptr %920, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #10
  %941 = load i32, ptr %920, align 4, !tbaa !5
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef nonnull %.str.11.sink473, i32 noundef %933, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.7, i32 noundef 395, ptr noundef %936, ptr noundef %938, ptr noundef %940, i32 noundef %941) #12
  call void @exit(i32 noundef 1) #13
  unreachable

943:                                              ; preds = %.preheader216.preheader
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %947 = call zeroext i1 @s2n_result_is_ok(i32 %946)
  br i1 %947, label %.preheader216.1, label %948

948:                                              ; preds = %908, %899, %890, %881, %872, %863, %854, %845, %836, %943
  %949 = tail call ptr @__errno_location() #11
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951) #10
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc nuw i8 %953 to i1
  br i1 %954, label %955, label %959

955:                                              ; preds = %948
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #10
  %958 = call i32 @isatty(i32 noundef %957) #10
  %.not202 = icmp eq i32 %958, 0
  br i1 %.not202, label %959, label %960

959:                                              ; preds = %955, %948
  br label %960

960:                                              ; preds = %955, %959
  %.str.11.sink484 = phi ptr [ @.str.11, %959 ], [ @.str.8, %955 ]
  store i32 %950, ptr %949, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef nonnull @.str.10) #10
  %966 = load i32, ptr %963, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef nonnull @.str.10) #10
  %968 = load i32, ptr %949, align 4, !tbaa !5
  %969 = call ptr @strerror(i32 noundef %968) #10
  %970 = load i32, ptr %949, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef nonnull %.str.11.sink484, i32 noundef %962, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.7, i32 noundef 396, ptr noundef %965, ptr noundef %967, ptr noundef %969, i32 noundef %970) #12
  call void @exit(i32 noundef 1) #13
  unreachable

972:                                              ; preds = %913
  %973 = tail call ptr @__errno_location() #11
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @s2n_print_stacktrace(ptr noundef %975) #10
  %977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %978 = trunc nuw i8 %977 to i1
  br i1 %978, label %979, label %983

979:                                              ; preds = %972
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @fileno(ptr noundef %980) #10
  %982 = call i32 @isatty(i32 noundef %981) #10
  %.not175 = icmp eq i32 %982, 0
  br i1 %.not175, label %983, label %984

983:                                              ; preds = %979, %972
  br label %984

984:                                              ; preds = %979, %983
  %.str.11.sink495 = phi ptr [ @.str.11, %983 ], [ @.str.8, %979 ]
  store i32 %974, ptr %973, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror(i32 noundef %988, ptr noundef nonnull @.str.10) #10
  %990 = load i32, ptr %987, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror_debug(i32 noundef %990, ptr noundef nonnull @.str.10) #10
  %992 = load i32, ptr %973, align 4, !tbaa !5
  %993 = call ptr @strerror(i32 noundef %992) #10
  %994 = load i32, ptr %973, align 4, !tbaa !5
  %995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef nonnull %.str.11.sink495, i32 noundef %986, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.7, i32 noundef 398, ptr noundef %989, ptr noundef %991, ptr noundef %993, i32 noundef %994) #12
  call void @exit(i32 noundef 1) #13
  unreachable

996:                                              ; preds = %913
  %997 = add nsw i32 %914, 2
  store i32 %997, ptr @test_count, align 4, !tbaa !5
  %998 = load i64, ptr %305, align 8, !tbaa !17
  %999 = add i64 %595, 10
  %1000 = icmp eq i64 %998, %999
  br i1 %1000, label %1025, label %1001

1001:                                             ; preds = %996
  %1002 = tail call ptr @__errno_location() #11
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = call i32 @s2n_print_stacktrace(ptr noundef %1004) #10
  %1006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1007 = trunc nuw i8 %1006 to i1
  br i1 %1007, label %1008, label %1012

1008:                                             ; preds = %1001
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = call i32 @fileno(ptr noundef %1009) #10
  %1011 = call i32 @isatty(i32 noundef %1010) #10
  %.not176 = icmp eq i32 %1011, 0
  br i1 %.not176, label %1012, label %1013

1012:                                             ; preds = %1008, %1001
  br label %1013

1013:                                             ; preds = %1008, %1012
  %.str.11.sink506 = phi ptr [ @.str.11, %1012 ], [ @.str.8, %1008 ]
  store i32 %1003, ptr %1002, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror(i32 noundef %1017, ptr noundef nonnull @.str.10) #10
  %1019 = load i32, ptr %1016, align 4, !tbaa !5
  %1020 = call ptr @s2n_strerror_debug(i32 noundef %1019, ptr noundef nonnull @.str.10) #10
  %1021 = load i32, ptr %1002, align 4, !tbaa !5
  %1022 = call ptr @strerror(i32 noundef %1021) #10
  %1023 = load i32, ptr %1002, align 4, !tbaa !5
  %1024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1014, ptr noundef nonnull %.str.11.sink506, i32 noundef %1015, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.7, i32 noundef 399, ptr noundef %1018, ptr noundef %1020, ptr noundef %1022, i32 noundef %1023) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1025:                                             ; preds = %996
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(31) %3, i8 0, i64 31, i1 false)
  store i32 31, ptr %361, align 8, !tbaa !21
  %1026 = add nsw i32 %914, 3
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = call i32 @s2n_drbg_generate(ptr noundef nonnull %4, ptr noundef nonnull %6) #10
  %1028 = call zeroext i1 @s2n_result_is_ok(i32 %1027)
  br i1 %1028, label %.preheader215, label %1052

.preheader215:                                    ; preds = %1025
  %1029 = getelementptr inbounds i8, ptr %3, i64 16
  %1030 = getelementptr inbounds i8, ptr %3, i64 24
  %1031 = load i8, ptr %1030, align 8
  %1032 = load <8 x i8>, ptr %1029, align 16
  %1033 = insertelement <8 x i8> %1032, i8 %1031, i64 1
  %1034 = shufflevector <8 x i8> %1033, <8 x i8> poison, <8 x i32> <i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
  %1035 = icmp eq <8 x i8> %1032, %1034
  %1036 = getelementptr inbounds i8, ptr %3, i64 25
  %1037 = extractelement <8 x i8> %1032, i64 0
  %1038 = load <4 x i8>, ptr %1036, align 1
  %1039 = shufflevector <8 x i8> %1032, <8 x i8> poison, <4 x i32> zeroinitializer
  %1040 = icmp eq <4 x i8> %1039, %1038
  %1041 = getelementptr inbounds i8, ptr %3, i64 29
  %1042 = load i8, ptr %1041, align 1
  %.not178.12 = icmp eq i8 %1037, %1042
  %1043 = getelementptr inbounds i8, ptr %3, i64 30
  %1044 = load i8, ptr %1043, align 2
  %.not178.13 = icmp eq i8 %1037, %1044
  %1045 = freeze <8 x i1> %1035
  %1046 = bitcast <8 x i1> %1045 to i8
  %1047 = icmp eq i8 %1046, -1
  %1048 = freeze <4 x i1> %1040
  %1049 = bitcast <4 x i1> %1048 to i4
  %1050 = icmp eq i4 %1049, -1
  %op.rdx779 = and i1 %1047, %1050
  %.not178.12.fr = freeze i1 %.not178.12
  %op.rdx780 = and i1 %op.rdx779, %.not178.12.fr
  %op.rdx781 = select i1 %op.rdx780, i1 %.not178.13, i1 false
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %op.rdx781, label %1076, label %1101

1052:                                             ; preds = %1025
  %1053 = tail call ptr @__errno_location() #11
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @s2n_print_stacktrace(ptr noundef %1055) #10
  %1057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1058 = trunc nuw i8 %1057 to i1
  br i1 %1058, label %1059, label %1063

1059:                                             ; preds = %1052
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = call i32 @fileno(ptr noundef %1060) #10
  %1062 = call i32 @isatty(i32 noundef %1061) #10
  %.not177 = icmp eq i32 %1062, 0
  br i1 %.not177, label %1063, label %1064

1063:                                             ; preds = %1059, %1052
  br label %1064

1064:                                             ; preds = %1059, %1063
  %.str.11.sink517 = phi ptr [ @.str.11, %1063 ], [ @.str.8, %1059 ]
  store i32 %1054, ptr %1053, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror(i32 noundef %1068, ptr noundef nonnull @.str.10) #10
  %1070 = load i32, ptr %1067, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror_debug(i32 noundef %1070, ptr noundef nonnull @.str.10) #10
  %1072 = load i32, ptr %1053, align 4, !tbaa !5
  %1073 = call ptr @strerror(i32 noundef %1072) #10
  %1074 = load i32, ptr %1053, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1065, ptr noundef nonnull %.str.11.sink517, i32 noundef %1066, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.7, i32 noundef 407, ptr noundef %1069, ptr noundef %1071, ptr noundef %1073, i32 noundef %1074) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1076:                                             ; preds = %.preheader215
  %1077 = add nsw i32 %1051, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = tail call ptr @__errno_location() #11
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = call i32 @s2n_print_stacktrace(ptr noundef %1080) #10
  %1082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1084, label %1088

1084:                                             ; preds = %1076
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @fileno(ptr noundef %1085) #10
  %1087 = call i32 @isatty(i32 noundef %1086) #10
  %.not200 = icmp eq i32 %1087, 0
  br i1 %.not200, label %1088, label %1089

1088:                                             ; preds = %1084, %1076
  br label %1089

1089:                                             ; preds = %1084, %1088
  %.str.11.sink553 = phi ptr [ @.str.11, %1088 ], [ @.str.8, %1084 ]
  store i32 %1079, ptr %1078, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef nonnull @.str.10) #10
  %1095 = load i32, ptr %1092, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef nonnull @.str.10) #10
  %1097 = load i32, ptr %1078, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #10
  %1099 = load i32, ptr %1078, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef nonnull %.str.11.sink553, i32 noundef %1091, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.7, i32 noundef 415, ptr noundef %1094, ptr noundef %1096, ptr noundef %1098, i32 noundef %1099) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1101:                                             ; preds = %.preheader215
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(31) %3, i8 0, i64 31, i1 false)
  store i32 31, ptr %361, align 8, !tbaa !21
  %1102 = add nsw i32 %1051, 2
  store i32 %1102, ptr @test_count, align 4, !tbaa !5
  %1103 = call i32 @s2n_drbg_generate(ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %1104 = call zeroext i1 @s2n_result_is_ok(i32 %1103)
  br i1 %1104, label %.preheader, label %1127

.preheader:                                       ; preds = %1101
  %1105 = getelementptr inbounds i8, ptr %3, i64 24
  %1106 = load i8, ptr %1105, align 8
  %1107 = load <8 x i8>, ptr %1029, align 16
  %1108 = insertelement <8 x i8> %1107, i8 %1106, i64 1
  %1109 = shufflevector <8 x i8> %1108, <8 x i8> poison, <8 x i32> <i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
  %1110 = icmp eq <8 x i8> %1107, %1109
  %1111 = getelementptr inbounds i8, ptr %3, i64 25
  %1112 = extractelement <8 x i8> %1107, i64 0
  %1113 = load <4 x i8>, ptr %1111, align 1
  %1114 = shufflevector <8 x i8> %1107, <8 x i8> poison, <4 x i32> zeroinitializer
  %1115 = icmp eq <4 x i8> %1114, %1113
  %1116 = getelementptr inbounds i8, ptr %3, i64 29
  %1117 = load i8, ptr %1116, align 1
  %.not180.12 = icmp eq i8 %1112, %1117
  %1118 = getelementptr inbounds i8, ptr %3, i64 30
  %1119 = load i8, ptr %1118, align 2
  %.not180.13 = icmp eq i8 %1112, %1119
  %1120 = freeze <8 x i1> %1110
  %1121 = bitcast <8 x i1> %1120 to i8
  %1122 = icmp eq i8 %1121, -1
  %1123 = freeze <4 x i1> %1115
  %1124 = bitcast <4 x i1> %1123 to i4
  %1125 = icmp eq i4 %1124, -1
  %op.rdx = and i1 %1122, %1125
  %.not180.12.fr = freeze i1 %.not180.12
  %op.rdx777 = and i1 %op.rdx, %.not180.12.fr
  %op.rdx778 = select i1 %op.rdx777, i1 %.not180.13, i1 false
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %op.rdx778, label %1151, label %1176

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

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

1138:                                             ; preds = %1134, %1127
  br label %1139

1139:                                             ; preds = %1134, %1138
  %.str.11.sink564 = phi ptr [ @.str.11, %1138 ], [ @.str.8, %1134 ]
  store i32 %1129, ptr %1128, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror(i32 noundef %1143, ptr noundef nonnull @.str.10) #10
  %1145 = load i32, ptr %1142, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef nonnull @.str.10) #10
  %1147 = load i32, ptr %1128, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #10
  %1149 = load i32, ptr %1128, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef nonnull %.str.11.sink564, i32 noundef %1141, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.7, i32 noundef 419, ptr noundef %1144, ptr noundef %1146, ptr noundef %1148, i32 noundef %1149) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1151:                                             ; preds = %.preheader
  %1152 = add nsw i32 %1126, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = tail call ptr @__errno_location() #11
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = call i32 @s2n_print_stacktrace(ptr noundef %1155) #10
  %1157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1158 = trunc nuw i8 %1157 to i1
  br i1 %1158, label %1159, label %1163

1159:                                             ; preds = %1151
  %1160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1161 = call i32 @fileno(ptr noundef %1160) #10
  %1162 = call i32 @isatty(i32 noundef %1161) #10
  %.not199 = icmp eq i32 %1162, 0
  br i1 %.not199, label %1163, label %1164

1163:                                             ; preds = %1159, %1151
  br label %1164

1164:                                             ; preds = %1159, %1163
  %.str.11.sink601 = phi ptr [ @.str.11, %1163 ], [ @.str.8, %1159 ]
  store i32 %1154, ptr %1153, align 4, !tbaa !5
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror(i32 noundef %1168, ptr noundef nonnull @.str.10) #10
  %1170 = load i32, ptr %1167, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror_debug(i32 noundef %1170, ptr noundef nonnull @.str.10) #10
  %1172 = load i32, ptr %1153, align 4, !tbaa !5
  %1173 = call ptr @strerror(i32 noundef %1172) #10
  %1174 = load i32, ptr %1153, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1165, ptr noundef nonnull %.str.11.sink601, i32 noundef %1166, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.7, i32 noundef 427, ptr noundef %1169, ptr noundef %1171, ptr noundef %1173, i32 noundef %1174) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1176:                                             ; preds = %.preheader
  %1177 = add nsw i32 %1126, 2
  store i32 %1177, ptr @test_count, align 4, !tbaa !5
  %1178 = call i32 @s2n_drbg_wipe(ptr noundef nonnull %4) #10
  %1179 = call zeroext i1 @s2n_result_is_ok(i32 %1178)
  br i1 %1179, label %1204, label %1180

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

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

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

1192:                                             ; preds = %1187, %1191
  %.str.11.sink612 = phi ptr [ @.str.11, %1191 ], [ @.str.8, %1187 ]
  store i32 %1182, ptr %1181, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef nonnull @.str.10) #10
  %1198 = load i32, ptr %1195, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef nonnull @.str.10) #10
  %1200 = load i32, ptr %1181, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #10
  %1202 = load i32, ptr %1181, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef nonnull %.str.11.sink612, i32 noundef %1194, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.7, i32 noundef 429, ptr noundef %1197, ptr noundef %1199, ptr noundef %1201, i32 noundef %1202) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1204:                                             ; preds = %1176
  %1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %1206 = add nsw i32 %1205, 1
  store i32 %1206, ptr @test_count, align 4, !tbaa !5
  %1207 = call i32 @s2n_drbg_wipe(ptr noundef nonnull %5) #10
  %1208 = call zeroext i1 @s2n_result_is_ok(i32 %1207)
  br i1 %1208, label %1233, label %1209

1209:                                             ; preds = %1204
  %1210 = tail call ptr @__errno_location() #11
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @s2n_print_stacktrace(ptr noundef %1212) #10
  %1214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1215 = trunc nuw i8 %1214 to i1
  br i1 %1215, label %1216, label %1220

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

1220:                                             ; preds = %1216, %1209
  br label %1221

1221:                                             ; preds = %1216, %1220
  %.str.11.sink623 = phi ptr [ @.str.11, %1220 ], [ @.str.8, %1216 ]
  store i32 %1211, ptr %1210, 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 nonnull @.str.10) #10
  %1227 = load i32, ptr %1224, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror_debug(i32 noundef %1227, ptr noundef nonnull @.str.10) #10
  %1229 = load i32, ptr %1210, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #10
  %1231 = load i32, ptr %1210, align 4, !tbaa !5
  %1232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1222, ptr noundef nonnull %.str.11.sink623, i32 noundef %1223, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.7, i32 noundef 430, ptr noundef %1226, ptr noundef %1228, ptr noundef %1230, i32 noundef %1231) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1233:                                             ; preds = %1204
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = add nsw i32 %1234, 1
  store i32 %1235, ptr @test_count, align 4, !tbaa !5
  %1236 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull @nist_aes128_reference_entropy, ptr noundef nonnull @nist_aes128_reference_entropy_hex) #10
  %1237 = call zeroext i1 @s2n_result_is_ok(i32 %1236)
  br i1 %1237, label %1262, label %1238

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

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

1249:                                             ; preds = %1245, %1238
  br label %1250

1250:                                             ; preds = %1245, %1249
  %.str.11.sink634 = phi ptr [ @.str.11, %1249 ], [ @.str.8, %1245 ]
  store i32 %1240, ptr %1239, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror(i32 noundef %1254, ptr noundef nonnull @.str.10) #10
  %1256 = load i32, ptr %1253, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef nonnull @.str.10) #10
  %1258 = load i32, ptr %1239, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #10
  %1260 = load i32, ptr %1239, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef nonnull %.str.11.sink634, i32 noundef %1252, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.7, i32 noundef 433, ptr noundef %1255, ptr noundef %1257, ptr noundef %1259, i32 noundef %1260) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1262:                                             ; preds = %1233
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = add nsw i32 %1263, 1
  store i32 %1264, ptr @test_count, align 4, !tbaa !5
  %1265 = call i32 @check_drgb_version(i32 noundef 0, ptr noundef nonnull @nist_fake_128_entropy_data, i32 noundef 32, ptr noundef nonnull @nist_aes128_reference_personalization_strings_hex, ptr noundef nonnull @nist_aes128_reference_values_hex, ptr noundef nonnull @nist_aes128_reference_returned_bits_hex)
  %1266 = icmp eq i32 %1265, -1
  br i1 %1266, label %1267, label %1291

1267:                                             ; preds = %1262
  %1268 = tail call ptr @__errno_location() #11
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @s2n_print_stacktrace(ptr noundef %1270) #10
  %1272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1273 = trunc nuw i8 %1272 to i1
  br i1 %1273, label %1274, label %1278

1274:                                             ; preds = %1267
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #10
  %1277 = call i32 @isatty(i32 noundef %1276) #10
  %.not198 = icmp eq i32 %1277, 0
  br i1 %.not198, label %1278, label %1279

1278:                                             ; preds = %1274, %1267
  br label %1279

1279:                                             ; preds = %1274, %1278
  %.str.11.sink645 = phi ptr [ @.str.11, %1278 ], [ @.str.8, %1274 ]
  store i32 %1269, ptr %1268, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror(i32 noundef %1283, ptr noundef nonnull @.str.10) #10
  %1285 = load i32, ptr %1282, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef nonnull @.str.10) #10
  %1287 = load i32, ptr %1268, align 4, !tbaa !5
  %1288 = call ptr @strerror(i32 noundef %1287) #10
  %1289 = load i32, ptr %1268, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef nonnull %.str.11.sink645, i32 noundef %1281, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.7, i32 noundef 435, ptr noundef %1284, ptr noundef %1286, ptr noundef %1288, i32 noundef %1289) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1291:                                             ; preds = %1262
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr @test_count, align 4, !tbaa !5
  %1294 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %7, ptr noundef nonnull @nist_aes256_reference_entropy_hex_part1) #10
  %1295 = call zeroext i1 @s2n_result_is_ok(i32 %1294)
  br i1 %1295, label %1320, label %1296

1296:                                             ; preds = %1291
  %1297 = tail call ptr @__errno_location() #11
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @s2n_print_stacktrace(ptr noundef %1299) #10
  %1301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1302 = trunc nuw i8 %1301 to i1
  br i1 %1302, label %1303, label %1307

1303:                                             ; preds = %1296
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @fileno(ptr noundef %1304) #10
  %1306 = call i32 @isatty(i32 noundef %1305) #10
  %.not184 = icmp eq i32 %1306, 0
  br i1 %.not184, label %1307, label %1308

1307:                                             ; preds = %1303, %1296
  br label %1308

1308:                                             ; preds = %1303, %1307
  %.str.11.sink656 = phi ptr [ @.str.11, %1307 ], [ @.str.8, %1303 ]
  store i32 %1298, ptr %1297, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror(i32 noundef %1312, ptr noundef nonnull @.str.10) #10
  %1314 = load i32, ptr %1311, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef nonnull @.str.10) #10
  %1316 = load i32, ptr %1297, align 4, !tbaa !5
  %1317 = call ptr @strerror(i32 noundef %1316) #10
  %1318 = load i32, ptr %1297, align 4, !tbaa !5
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef nonnull %.str.11.sink656, i32 noundef %1310, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.7, i32 noundef 443, ptr noundef %1313, ptr noundef %1315, ptr noundef %1317, i32 noundef %1318) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1320:                                             ; preds = %1291
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = add nsw i32 %1321, 1
  store i32 %1322, ptr @test_count, align 4, !tbaa !5
  %1323 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %8, ptr noundef nonnull @nist_aes256_reference_entropy_hex_part2) #10
  %1324 = call zeroext i1 @s2n_result_is_ok(i32 %1323)
  br i1 %1324, label %1349, label %1325

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

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

1336:                                             ; preds = %1332, %1325
  br label %1337

1337:                                             ; preds = %1332, %1336
  %.str.11.sink667 = phi ptr [ @.str.11, %1336 ], [ @.str.8, %1332 ]
  store i32 %1327, ptr %1326, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror(i32 noundef %1341, ptr noundef nonnull @.str.10) #10
  %1343 = load i32, ptr %1340, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror_debug(i32 noundef %1343, ptr noundef nonnull @.str.10) #10
  %1345 = load i32, ptr %1326, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #10
  %1347 = load i32, ptr %1326, align 4, !tbaa !5
  %1348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef nonnull %.str.11.sink667, i32 noundef %1339, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.7, i32 noundef 444, ptr noundef %1342, ptr noundef %1344, ptr noundef %1346, i32 noundef %1347) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1349:                                             ; preds = %1320
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = add nsw i32 %1350, 1
  store i32 %1351, ptr @test_count, align 4, !tbaa !5
  %1352 = getelementptr inbounds i8, ptr %7, i64 28
  %1353 = load i32, ptr %1352, align 4, !tbaa !23
  %1354 = getelementptr inbounds i8, ptr %8, i64 28
  %1355 = load i32, ptr %1354, align 4, !tbaa !23
  %1356 = add i32 %1355, %1353
  %1357 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull @nist_aes256_reference_entropy, i32 noundef %1356) #10
  %1358 = icmp eq i32 %1357, -1
  br i1 %1358, label %1359, label %1383

1359:                                             ; preds = %1349
  %1360 = tail call ptr @__errno_location() #11
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = call i32 @s2n_print_stacktrace(ptr noundef %1362) #10
  %1364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1365 = trunc nuw i8 %1364 to i1
  br i1 %1365, label %1366, label %1370

1366:                                             ; preds = %1359
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = call i32 @fileno(ptr noundef %1367) #10
  %1369 = call i32 @isatty(i32 noundef %1368) #10
  %.not197 = icmp eq i32 %1369, 0
  br i1 %.not197, label %1370, label %1371

1370:                                             ; preds = %1366, %1359
  br label %1371

1371:                                             ; preds = %1366, %1370
  %.str.11.sink678 = phi ptr [ @.str.11, %1370 ], [ @.str.8, %1366 ]
  store i32 %1361, ptr %1360, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror(i32 noundef %1375, ptr noundef nonnull @.str.10) #10
  %1377 = load i32, ptr %1374, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef nonnull @.str.10) #10
  %1379 = load i32, ptr %1360, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #10
  %1381 = load i32, ptr %1360, align 4, !tbaa !5
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1372, ptr noundef nonnull %.str.11.sink678, i32 noundef %1373, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.7, i32 noundef 445, ptr noundef %1376, ptr noundef %1378, ptr noundef %1380, i32 noundef %1381) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1383:                                             ; preds = %1349
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = add nsw i32 %1384, 1
  store i32 %1385, ptr @test_count, align 4, !tbaa !5
  %1386 = load i32, ptr %1352, align 4, !tbaa !23
  %1387 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %7, ptr noundef nonnull @nist_aes256_reference_entropy, i32 noundef %1386) #10
  %1388 = icmp eq i32 %1387, -1
  br i1 %1388, label %1389, label %1413

1389:                                             ; preds = %1383
  %1390 = tail call ptr @__errno_location() #11
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = call i32 @s2n_print_stacktrace(ptr noundef %1392) #10
  %1394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1395 = trunc nuw i8 %1394 to i1
  br i1 %1395, label %1396, label %1400

1396:                                             ; preds = %1389
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @fileno(ptr noundef %1397) #10
  %1399 = call i32 @isatty(i32 noundef %1398) #10
  %.not196 = icmp eq i32 %1399, 0
  br i1 %.not196, label %1400, label %1401

1400:                                             ; preds = %1396, %1389
  br label %1401

1401:                                             ; preds = %1396, %1400
  %.str.11.sink689 = phi ptr [ @.str.11, %1400 ], [ @.str.8, %1396 ]
  store i32 %1391, ptr %1390, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef nonnull @.str.10) #10
  %1407 = load i32, ptr %1404, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef nonnull @.str.10) #10
  %1409 = load i32, ptr %1390, align 4, !tbaa !5
  %1410 = call ptr @strerror(i32 noundef %1409) #10
  %1411 = load i32, ptr %1390, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1402, ptr noundef nonnull %.str.11.sink689, i32 noundef %1403, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.7, i32 noundef 446, ptr noundef %1406, ptr noundef %1408, ptr noundef %1410, i32 noundef %1411) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1413:                                             ; preds = %1383
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = add nsw i32 %1414, 1
  store i32 %1415, ptr @test_count, align 4, !tbaa !5
  %1416 = load i32, ptr %1354, align 4, !tbaa !23
  %1417 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %8, ptr noundef nonnull @nist_aes256_reference_entropy, i32 noundef %1416) #10
  %1418 = icmp eq i32 %1417, -1
  br i1 %1418, label %1419, label %1443

1419:                                             ; preds = %1413
  %1420 = tail call ptr @__errno_location() #11
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @s2n_print_stacktrace(ptr noundef %1422) #10
  %1424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1425 = trunc nuw i8 %1424 to i1
  br i1 %1425, label %1426, label %1430

1426:                                             ; preds = %1419
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = call i32 @fileno(ptr noundef %1427) #10
  %1429 = call i32 @isatty(i32 noundef %1428) #10
  %.not195 = icmp eq i32 %1429, 0
  br i1 %.not195, label %1430, label %1431

1430:                                             ; preds = %1426, %1419
  br label %1431

1431:                                             ; preds = %1426, %1430
  %.str.11.sink700 = phi ptr [ @.str.11, %1430 ], [ @.str.8, %1426 ]
  store i32 %1421, ptr %1420, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror(i32 noundef %1435, ptr noundef nonnull @.str.10) #10
  %1437 = load i32, ptr %1434, align 4, !tbaa !5
  %1438 = call ptr @s2n_strerror_debug(i32 noundef %1437, ptr noundef nonnull @.str.10) #10
  %1439 = load i32, ptr %1420, align 4, !tbaa !5
  %1440 = call ptr @strerror(i32 noundef %1439) #10
  %1441 = load i32, ptr %1420, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef nonnull %.str.11.sink700, i32 noundef %1433, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.7, i32 noundef 447, ptr noundef %1436, ptr noundef %1438, ptr noundef %1440, i32 noundef %1441) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1443:                                             ; preds = %1413
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = add nsw i32 %1444, 1
  store i32 %1445, ptr @test_count, align 4, !tbaa !5
  %1446 = call i32 @check_drgb_version(i32 noundef 1, ptr noundef nonnull @nist_fake_256_entropy_data, i32 noundef 48, ptr noundef nonnull @nist_aes256_reference_personalization_strings_hex, ptr noundef nonnull @nist_aes256_reference_values_hex, ptr noundef nonnull @nist_aes256_reference_returned_bits_hex)
  %1447 = icmp eq i32 %1446, -1
  br i1 %1447, label %1448, label %1472

1448:                                             ; preds = %1443
  %1449 = tail call ptr @__errno_location() #11
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @s2n_print_stacktrace(ptr noundef %1451) #10
  %1453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1454 = trunc nuw i8 %1453 to i1
  br i1 %1454, label %1455, label %1459

1455:                                             ; preds = %1448
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = call i32 @fileno(ptr noundef %1456) #10
  %1458 = call i32 @isatty(i32 noundef %1457) #10
  %.not194 = icmp eq i32 %1458, 0
  br i1 %.not194, label %1459, label %1460

1459:                                             ; preds = %1455, %1448
  br label %1460

1460:                                             ; preds = %1455, %1459
  %.str.11.sink711 = phi ptr [ @.str.11, %1459 ], [ @.str.8, %1455 ]
  store i32 %1450, ptr %1449, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.10) #10
  %1466 = load i32, ptr %1463, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.10) #10
  %1468 = load i32, ptr %1449, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #10
  %1470 = load i32, ptr %1449, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef nonnull %.str.11.sink711, i32 noundef %1462, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.7, i32 noundef 450, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1472:                                             ; preds = %1443
  %1473 = load i32, ptr @test_count, align 4, !tbaa !5
  %1474 = add nsw i32 %1473, 1
  store i32 %1474, ptr @test_count, align 4, !tbaa !5
  %1475 = call i32 @s2n_stuffer_free(ptr noundef nonnull @nist_aes128_reference_entropy) #10
  %1476 = icmp eq i32 %1475, -1
  br i1 %1476, label %1477, label %1501

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

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

1488:                                             ; preds = %1484, %1477
  br label %1489

1489:                                             ; preds = %1484, %1488
  %.str.11.sink722 = phi ptr [ @.str.11, %1488 ], [ @.str.8, %1484 ]
  store i32 %1479, ptr %1478, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror(i32 noundef %1493, ptr noundef nonnull @.str.10) #10
  %1495 = load i32, ptr %1492, align 4, !tbaa !5
  %1496 = call ptr @s2n_strerror_debug(i32 noundef %1495, ptr noundef nonnull @.str.10) #10
  %1497 = load i32, ptr %1478, align 4, !tbaa !5
  %1498 = call ptr @strerror(i32 noundef %1497) #10
  %1499 = load i32, ptr %1478, align 4, !tbaa !5
  %1500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1490, ptr noundef nonnull %.str.11.sink722, i32 noundef %1491, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.7, i32 noundef 452, ptr noundef %1494, ptr noundef %1496, ptr noundef %1498, i32 noundef %1499) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1501:                                             ; preds = %1472
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = add nsw i32 %1502, 1
  store i32 %1503, ptr @test_count, align 4, !tbaa !5
  %1504 = call i32 @s2n_stuffer_free(ptr noundef nonnull @nist_aes256_reference_entropy) #10
  %1505 = icmp eq i32 %1504, -1
  br i1 %1505, label %1506, label %1530

1506:                                             ; preds = %1501
  %1507 = tail call ptr @__errno_location() #11
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @s2n_print_stacktrace(ptr noundef %1509) #10
  %1511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1512 = trunc nuw i8 %1511 to i1
  br i1 %1512, label %1513, label %1517

1513:                                             ; preds = %1506
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @fileno(ptr noundef %1514) #10
  %1516 = call i32 @isatty(i32 noundef %1515) #10
  %.not192 = icmp eq i32 %1516, 0
  br i1 %.not192, label %1517, label %1518

1517:                                             ; preds = %1513, %1506
  br label %1518

1518:                                             ; preds = %1513, %1517
  %.str.11.sink733 = phi ptr [ @.str.11, %1517 ], [ @.str.8, %1513 ]
  store i32 %1508, ptr %1507, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef nonnull @.str.10) #10
  %1524 = load i32, ptr %1521, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef nonnull @.str.10) #10
  %1526 = load i32, ptr %1507, align 4, !tbaa !5
  %1527 = call ptr @strerror(i32 noundef %1526) #10
  %1528 = load i32, ptr %1507, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef nonnull %.str.11.sink733, i32 noundef %1520, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.7, i32 noundef 453, ptr noundef %1523, ptr noundef %1525, ptr noundef %1527, i32 noundef %1528) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1530:                                             ; preds = %1501
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = call i32 @s2n_config_free(ptr noundef nonnull %214) #10
  %1534 = icmp eq i32 %1533, -1
  br i1 %1534, label %1535, label %1559

1535:                                             ; preds = %1530
  %1536 = tail call ptr @__errno_location() #11
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @s2n_print_stacktrace(ptr noundef %1538) #10
  %1540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1541 = trunc nuw i8 %1540 to i1
  br i1 %1541, label %1542, label %1546

1542:                                             ; preds = %1535
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = call i32 @fileno(ptr noundef %1543) #10
  %1545 = call i32 @isatty(i32 noundef %1544) #10
  %.not191 = icmp eq i32 %1545, 0
  br i1 %.not191, label %1546, label %1547

1546:                                             ; preds = %1542, %1535
  br label %1547

1547:                                             ; preds = %1542, %1546
  %.str.11.sink744 = phi ptr [ @.str.11, %1546 ], [ @.str.8, %1542 ]
  store i32 %1537, ptr %1536, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1551, ptr noundef nonnull @.str.10) #10
  %1553 = load i32, ptr %1550, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror_debug(i32 noundef %1553, ptr noundef nonnull @.str.10) #10
  %1555 = load i32, ptr %1536, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #10
  %1557 = load i32, ptr %1536, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1548, ptr noundef nonnull %.str.11.sink744, i32 noundef %1549, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.7, i32 noundef 455, ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, i32 noundef %1557) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1559:                                             ; preds = %1530
  %1560 = call i32 @s2n_cleanup() #10
  %1561 = icmp eq i32 %1560, -1
  br i1 %1561, label %1562, label %1586

1562:                                             ; preds = %1559
  %1563 = tail call ptr @__errno_location() #11
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @s2n_print_stacktrace(ptr noundef %1565) #10
  %1567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1568 = trunc nuw i8 %1567 to i1
  br i1 %1568, label %1569, label %1573

1569:                                             ; preds = %1562
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @fileno(ptr noundef %1570) #10
  %1572 = call i32 @isatty(i32 noundef %1571) #10
  %.not190 = icmp eq i32 %1572, 0
  br i1 %.not190, label %1573, label %1574

1573:                                             ; preds = %1569, %1562
  br label %1574

1574:                                             ; preds = %1569, %1573
  %.str.11.sink755 = phi ptr [ @.str.11, %1573 ], [ @.str.8, %1569 ]
  store i32 %1564, ptr %1563, align 4, !tbaa !5
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror(i32 noundef %1578, ptr noundef nonnull @.str.10) #10
  %1580 = load i32, ptr %1577, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef nonnull @.str.10) #10
  %1582 = load i32, ptr %1563, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #10
  %1584 = load i32, ptr %1563, align 4, !tbaa !5
  %1585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1575, ptr noundef nonnull %.str.11.sink755, i32 noundef %1576, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.7, i32 noundef 457, ptr noundef %1579, ptr noundef %1581, ptr noundef %1583, i32 noundef %1584) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1586:                                             ; preds = %1559
  %1587 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1588 = icmp eq i32 %1587, -1
  br i1 %1588, label %1589, label %1613

1589:                                             ; preds = %1586
  %1590 = tail call ptr @__errno_location() #11
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @s2n_print_stacktrace(ptr noundef %1592) #10
  %1594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1595 = trunc nuw i8 %1594 to i1
  br i1 %1595, label %1596, label %1600

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

1600:                                             ; preds = %1596, %1589
  br label %1601

1601:                                             ; preds = %1596, %1600
  %.str.11.sink766 = phi ptr [ @.str.11, %1600 ], [ @.str.8, %1596 ]
  store i32 %1591, ptr %1590, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror(i32 noundef %1605, ptr noundef nonnull @.str.10) #10
  %1607 = load i32, ptr %1604, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef nonnull @.str.10) #10
  %1609 = load i32, ptr %1590, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #10
  %1611 = load i32, ptr %1590, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1602, ptr noundef nonnull %.str.11.sink766, i32 noundef %1603, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.7, i32 noundef 457, ptr noundef %1606, ptr noundef %1608, ptr noundef %1610, i32 noundef %1611) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1613:                                             ; preds = %1586
  %1614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1615 = trunc nuw i8 %1614 to i1
  br i1 %1615, label %1616, label %1627

1616:                                             ; preds = %1613
  %1617 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1618 = call i32 @fileno(ptr noundef %1617) #10
  %1619 = call i32 @isatty(i32 noundef %1618) #10
  %.not186 = icmp eq i32 %1619, 0
  br i1 %.not186, label %1627, label %1620

1620:                                             ; preds = %1616
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not188 = icmp eq i32 %1621, 0
  %1622 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not188, label %1625, label %1623

1623:                                             ; preds = %1620
  %1624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1622, ptr noundef nonnull @.str.49, i32 noundef %1621) #10
  br label %1634

1625:                                             ; preds = %1620
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1622, ptr noundef nonnull @.str.50) #10
  br label %1634

1627:                                             ; preds = %1616, %1613
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not187 = icmp eq i32 %1628, 0
  %1629 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not187, label %1632, label %1630

1630:                                             ; preds = %1627
  %1631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull @.str.51, i32 noundef %1628) #10
  br label %1634

1632:                                             ; preds = %1627
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull @.str.52) #10
  br label %1634

1634:                                             ; preds = %1630, %1632, %1623, %1625
  %1635 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #10
  %1636 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %3) #10
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

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

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_ignore_prediction_resistance_for_testing(i1 noundef zeroext) local_unnamed_addr #3

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cleanup() local_unnamed_addr #3

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

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

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


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass