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

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

%struct.s2n_debug_info = type { ptr, ptr }
%struct.s2n_kem = type { ptr, i32, i16, i16, i16, i16, i16, ptr, ptr, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_iana_to_kem = type { [2 x i8], ptr, i8 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@TEST_PUBLIC_KEY = external dso_local constant [2 x i8], align 1
@TEST_PRIVATE_KEY = external dso_local constant [3 x i8], align 1
@TEST_SHARED_SECRET = external dso_local constant [4 x i8], align 1
@TEST_CIPHERTEXT = external dso_local constant [5 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local global i32, align 4
@s2n_test_kem = external dso_local constant %struct.s2n_kem, align 8
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [71 x i8], align 1
@stderr = external global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [56 x i8], align 1
@classic_ecdhe_iana = external hidden constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [49 x i8], align 1
@kyber_iana = external hidden constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [51 x i8], align 1
@s2n_kyber_512_r3 = external constant %struct.s2n_kem, align 8
@.str.28 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [80 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.36 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [68 x i8], align 1
@__const.main.kem_extensions = external hidden unnamed_addr constant [1 x i16], align 2
@__const.main.kems = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.39 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [78 x i8], align 1
@__const.main.prefixed_output = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.unprefixed_output = external hidden unnamed_addr constant [2 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [78 x i8], align 1
@__const.main.prefixed_output.89 = external hidden unnamed_addr constant [7 x i8], align 1
@__const.main.unprefixed_output.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [96 x i8], align 1
@__const.main.prefixed_input = external hidden unnamed_addr constant [7 x i8], align 1
@__const.main.unprefixed_input = external hidden unnamed_addr constant [5 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [72 x i8], align 1
@__const.main.bad_ct_input_3 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [50 x i8], align 1
@__const.main.prefixed_input.119 = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.unprefixed_input.120 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.bad_pk_input_3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) #1

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #1

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

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

declare i32 @s2n_calculate_stacktrace() #1

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

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

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

; 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 ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %struct.s2n_kem_params, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_kem_group_params, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_stuffer, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca [1 x i16], align 2
  %36 = alloca [1 x ptr], align 8
  %37 = alloca i64, align 8
  %38 = alloca i16, align 2
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i16, align 2
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_kem_params, align 8
  %50 = alloca i32, align 4
  %51 = alloca %struct.s2n_result, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_kem_params, align 8
  %61 = alloca %struct.s2n_blob, align 8
  %62 = alloca %struct.s2n_result, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_kem_params, align 8
  %84 = alloca %struct.s2n_blob, align 8
  %85 = alloca i32, align 4
  %86 = alloca %struct.s2n_stuffer, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca [4 x i8], align 1
  %90 = alloca [2 x i8], align 1
  %91 = alloca ptr, align 8
  %92 = alloca i16, align 2
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_blob, align 8
  %108 = alloca i32, align 4
  %109 = alloca %struct.s2n_stuffer, align 8
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca %struct.s2n_kem_params, align 8
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_kem_params, align 8
  %119 = alloca %struct.s2n_blob, align 8
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_stuffer, align 8
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca ptr, align 8
  %126 = alloca i32, align 4
  %127 = alloca [7 x i8], align 1
  %128 = alloca [5 x i8], align 1
  %129 = alloca ptr, align 8
  %130 = alloca i16, align 2
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_blob, align 8
  %146 = alloca i32, align 4
  %147 = alloca %struct.s2n_stuffer, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca %struct.s2n_kem_params, align 8
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca %struct.s2n_kem_params, align 8
  %160 = alloca %struct.s2n_blob, align 8
  %161 = alloca i32, align 4
  %162 = alloca %struct.s2n_stuffer, align 8
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca ptr, align 8
  %167 = alloca [7 x i8], align 1
  %168 = alloca [5 x i8], align 1
  %169 = alloca ptr, align 8
  %170 = alloca i16, align 2
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca %struct.s2n_blob, align 8
  %186 = alloca i32, align 4
  %187 = alloca %struct.s2n_stuffer, align 8
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca %struct.s2n_kem_params, align 8
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca ptr, align 8
  %202 = alloca %struct.s2n_blob, align 8
  %203 = alloca i32, align 4
  %204 = alloca %struct.s2n_stuffer, align 8
  %205 = alloca i32, align 4
  %206 = alloca [4 x i8], align 1
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca %struct.s2n_kem_params, align 8
  %217 = alloca %struct.s2n_blob, align 8
  %218 = alloca i32, align 4
  %219 = alloca %struct.s2n_stuffer, align 8
  %220 = alloca i32, align 4
  %221 = alloca [4 x i8], align 1
  %222 = alloca [2 x i8], align 1
  %223 = alloca ptr, align 8
  %224 = alloca i16, align 2
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca %struct.s2n_blob, align 8
  %238 = alloca i32, align 4
  %239 = alloca %struct.s2n_stuffer, align 8
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca %struct.s2n_kem_params, align 8
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca %struct.s2n_blob, align 8
  %249 = alloca i32, align 4
  %250 = alloca %struct.s2n_stuffer, align 8
  %251 = alloca i32, align 4
  %252 = alloca [5 x i8], align 1
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = 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 %260

260:                                              ; preds = %2
  br label %261

261:                                              ; preds = %260
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %262 = load ptr, ptr @stdout, align 8, !tbaa !9
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %262, ptr noundef @.str.12, ptr noundef @.str.13) #12
  %264 = load ptr, ptr @stdout, align 8, !tbaa !9
  %265 = call i32 @fflush(ptr noundef %264)
  br label %266

266:                                              ; preds = %261
  %267 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %268 = icmp eq i32 %267, -1
  br i1 %268, label %269, label %320

269:                                              ; preds = %266
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #12
  %272 = call ptr @__errno_location() #13
  %273 = load i32, ptr %272, align 4, !tbaa !5
  store i32 %273, ptr %6, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @s2n_print_stacktrace(ptr noundef %274)
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc i8 %276 to i1
  br i1 %277, label %278, label %300

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #12
  %281 = call i32 @isatty(i32 noundef %280) #12
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %300

283:                                              ; preds = %278
  %284 = load i32, ptr %6, align 4, !tbaa !5
  %285 = call ptr @__errno_location() #13
  store i32 %284, ptr %285, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef @.str.16)
  %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_debug(i32 noundef %292, ptr noundef @.str.16)
  %294 = call ptr @__errno_location() #13
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @strerror(i32 noundef %295) #12
  %297 = call ptr @__errno_location() #13
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef @.str.14, i32 noundef %287, ptr noundef @.str.15, ptr noundef @.str.13, i32 noundef 115, ptr noundef %290, ptr noundef %293, ptr noundef %296, i32 noundef %298) #12
  br label %317

300:                                              ; preds = %278, %271
  %301 = load i32, ptr %6, align 4, !tbaa !5
  %302 = call ptr @__errno_location() #13
  store i32 %301, ptr %302, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror(i32 noundef %306, ptr noundef @.str.16)
  %308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef @.str.16)
  %311 = call ptr @__errno_location() #13
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #12
  %314 = call ptr @__errno_location() #13
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef @.str.17, i32 noundef %304, ptr noundef @.str.15, ptr noundef @.str.13, i32 noundef 115, ptr noundef %307, ptr noundef %310, ptr noundef %313, i32 noundef %315) #12
  br label %317

317:                                              ; preds = %300, %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  br label %318

318:                                              ; preds = %317
  call void @exit(i32 noundef 1) #14
  unreachable

319:                                              ; No predecessors!
  br label %320

320:                                              ; preds = %319, %266
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = call i32 @s2n_enable_atexit()
  %326 = icmp eq i32 %325, -1
  br i1 %326, label %327, label %378

327:                                              ; preds = %322
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #12
  %330 = call ptr @__errno_location() #13
  %331 = load i32, ptr %330, align 4, !tbaa !5
  store i32 %331, ptr %7, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @s2n_print_stacktrace(ptr noundef %332)
  %334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %335 = trunc i8 %334 to i1
  br i1 %335, label %336, label %358

336:                                              ; preds = %329
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @fileno(ptr noundef %337) #12
  %339 = call i32 @isatty(i32 noundef %338) #12
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %341, label %358

341:                                              ; preds = %336
  %342 = load i32, ptr %7, align 4, !tbaa !5
  %343 = call ptr @__errno_location() #13
  store i32 %342, ptr %343, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror(i32 noundef %347, ptr noundef @.str.16)
  %349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror_debug(i32 noundef %350, ptr noundef @.str.16)
  %352 = call ptr @__errno_location() #13
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call ptr @strerror(i32 noundef %353) #12
  %355 = call ptr @__errno_location() #13
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef @.str.14, i32 noundef %345, ptr noundef @.str.18, ptr noundef @.str.13, i32 noundef 115, ptr noundef %348, ptr noundef %351, ptr noundef %354, i32 noundef %356) #12
  br label %375

358:                                              ; preds = %336, %329
  %359 = load i32, ptr %7, align 4, !tbaa !5
  %360 = call ptr @__errno_location() #13
  store i32 %359, ptr %360, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror(i32 noundef %364, ptr noundef @.str.16)
  %366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror_debug(i32 noundef %367, ptr noundef @.str.16)
  %369 = call ptr @__errno_location() #13
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call ptr @strerror(i32 noundef %370) #12
  %372 = call ptr @__errno_location() #13
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %361, ptr noundef @.str.17, i32 noundef %362, ptr noundef @.str.18, ptr noundef @.str.13, i32 noundef 115, ptr noundef %365, ptr noundef %368, ptr noundef %371, i32 noundef %373) #12
  br label %375

375:                                              ; preds = %358, %341
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #12
  br label %376

376:                                              ; preds = %375
  call void @exit(i32 noundef 1) #14
  unreachable

377:                                              ; No predecessors!
  br label %378

378:                                              ; preds = %377, %322
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  %382 = call i32 @s2n_init()
  %383 = icmp eq i32 %382, -1
  br i1 %383, label %384, label %435

384:                                              ; preds = %381
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #12
  %387 = call ptr @__errno_location() #13
  %388 = load i32, ptr %387, align 4, !tbaa !5
  store i32 %388, ptr %8, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = call i32 @s2n_print_stacktrace(ptr noundef %389)
  %391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %392 = trunc i8 %391 to i1
  br i1 %392, label %393, label %415

393:                                              ; preds = %386
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = call i32 @fileno(ptr noundef %394) #12
  %396 = call i32 @isatty(i32 noundef %395) #12
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %398, label %415

398:                                              ; preds = %393
  %399 = load i32, ptr %8, align 4, !tbaa !5
  %400 = call ptr @__errno_location() #13
  store i32 %399, ptr %400, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror(i32 noundef %404, ptr noundef @.str.16)
  %406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = call ptr @s2n_strerror_debug(i32 noundef %407, ptr noundef @.str.16)
  %409 = call ptr @__errno_location() #13
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @strerror(i32 noundef %410) #12
  %412 = call ptr @__errno_location() #13
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %401, ptr noundef @.str.14, i32 noundef %402, ptr noundef @.str.19, ptr noundef @.str.13, i32 noundef 115, ptr noundef %405, ptr noundef %408, ptr noundef %411, i32 noundef %413) #12
  br label %432

415:                                              ; preds = %393, %386
  %416 = load i32, ptr %8, align 4, !tbaa !5
  %417 = call ptr @__errno_location() #13
  store i32 %416, ptr %417, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %421, ptr noundef @.str.16)
  %423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror_debug(i32 noundef %424, ptr noundef @.str.16)
  %426 = call ptr @__errno_location() #13
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @strerror(i32 noundef %427) #12
  %429 = call ptr @__errno_location() #13
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %418, ptr noundef @.str.17, i32 noundef %419, ptr noundef @.str.19, ptr noundef @.str.13, i32 noundef 115, ptr noundef %422, ptr noundef %425, ptr noundef %428, i32 noundef %430) #12
  br label %432

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

433:                                              ; preds = %432
  call void @exit(i32 noundef 1) #14
  unreachable

434:                                              ; No predecessors!
  br label %435

435:                                              ; preds = %434, %381
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call i32 (...) @s2n_disable_tls13_in_test()
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %443, label %494

443:                                              ; preds = %438
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #12
  %446 = call ptr @__errno_location() #13
  %447 = load i32, ptr %446, align 4, !tbaa !5
  store i32 %447, ptr %9, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448)
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc i8 %450 to i1
  br i1 %451, label %452, label %474

452:                                              ; preds = %445
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @fileno(ptr noundef %453) #12
  %455 = call i32 @isatty(i32 noundef %454) #12
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %474

457:                                              ; preds = %452
  %458 = load i32, ptr %9, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #13
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef @.str.16)
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef @.str.16)
  %468 = call ptr @__errno_location() #13
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #12
  %471 = call ptr @__errno_location() #13
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.14, i32 noundef %461, ptr noundef @.str.20, ptr noundef @.str.13, i32 noundef 116, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #12
  br label %491

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

491:                                              ; preds = %474, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  br label %492

492:                                              ; preds = %491
  call void @exit(i32 noundef 1) #14
  unreachable

493:                                              ; No predecessors!
  br label %494

494:                                              ; preds = %493, %438
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  br label %499

499:                                              ; preds = %496
  br label %500

500:                                              ; preds = %499
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  br label %503

503:                                              ; preds = %500
  br label %504

504:                                              ; preds = %503
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  br label %507

507:                                              ; preds = %504
  br label %508

508:                                              ; preds = %507
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  br label %511

511:                                              ; preds = %508
  br label %512

512:                                              ; preds = %511
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  br label %515

515:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #12
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516
  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 i32 @s2n_cipher_suite_to_kem(ptr noundef @classic_ecdhe_iana, ptr noundef %10)
  %522 = icmp eq i32 %521, -1
  br i1 %522, label %576, label %523

523:                                              ; preds = %518
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #12
  %526 = call ptr @__errno_location() #13
  %527 = load i32, ptr %526, align 4, !tbaa !5
  store i32 %527, ptr %11, 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) #12
  %535 = call i32 @isatty(i32 noundef %534) #12
  %536 = icmp ne i32 %535, 0
  br i1 %536, label %537, label %554

537:                                              ; preds = %532
  %538 = load i32, ptr %11, align 4, !tbaa !5
  %539 = call ptr @__errno_location() #13
  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.16)
  %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.16)
  %548 = call ptr @__errno_location() #13
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #12
  %551 = call ptr @__errno_location() #13
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef @.str.14, i32 noundef %541, ptr noundef @.str.21, ptr noundef @.str.13, i32 noundef 129, ptr noundef %544, ptr noundef %547, ptr noundef %550, i32 noundef %552) #12
  br label %571

554:                                              ; preds = %532, %525
  %555 = load i32, ptr %11, align 4, !tbaa !5
  %556 = call ptr @__errno_location() #13
  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.16)
  %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.16)
  %565 = call ptr @__errno_location() #13
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @strerror(i32 noundef %566) #12
  %568 = call ptr @__errno_location() #13
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %557, ptr noundef @.str.17, i32 noundef %558, ptr noundef @.str.21, ptr noundef @.str.13, i32 noundef 129, ptr noundef %561, ptr noundef %564, ptr noundef %567, i32 noundef %569) #12
  br label %571

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

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572
  call void @exit(i32 noundef 1) #14
  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
  br label %579

579:                                              ; preds = %578
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr @test_count, align 4, !tbaa !5
  %582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = icmp eq i32 %583, 335544361
  br i1 %584, label %638, label %585

585:                                              ; preds = %579
  br label %586

586:                                              ; preds = %585
  br label %587

587:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #12
  %588 = call ptr @__errno_location() #13
  %589 = load i32, ptr %588, align 4, !tbaa !5
  store i32 %589, ptr %12, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @s2n_print_stacktrace(ptr noundef %590)
  %592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %593 = trunc i8 %592 to i1
  br i1 %593, label %594, label %616

594:                                              ; preds = %587
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @fileno(ptr noundef %595) #12
  %597 = call i32 @isatty(i32 noundef %596) #12
  %598 = icmp ne i32 %597, 0
  br i1 %598, label %599, label %616

599:                                              ; preds = %594
  %600 = load i32, ptr %12, align 4, !tbaa !5
  %601 = call ptr @__errno_location() #13
  store i32 %600, ptr %601, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = load i32, ptr @test_count, align 4, !tbaa !5
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror(i32 noundef %605, ptr noundef @.str.16)
  %607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror_debug(i32 noundef %608, ptr noundef @.str.16)
  %610 = call ptr @__errno_location() #13
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @strerror(i32 noundef %611) #12
  %613 = call ptr @__errno_location() #13
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %602, ptr noundef @.str.14, i32 noundef %603, ptr noundef @.str.22, ptr noundef @.str.13, i32 noundef 129, ptr noundef %606, ptr noundef %609, ptr noundef %612, i32 noundef %614) #12
  br label %633

616:                                              ; preds = %594, %587
  %617 = load i32, ptr %12, align 4, !tbaa !5
  %618 = call ptr @__errno_location() #13
  store i32 %617, ptr %618, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror(i32 noundef %622, ptr noundef @.str.16)
  %624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror_debug(i32 noundef %625, ptr noundef @.str.16)
  %627 = call ptr @__errno_location() #13
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = call ptr @strerror(i32 noundef %628) #12
  %630 = call ptr @__errno_location() #13
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %619, ptr noundef @.str.17, i32 noundef %620, ptr noundef @.str.22, ptr noundef @.str.13, i32 noundef 129, ptr noundef %623, ptr noundef %626, ptr noundef %629, i32 noundef %631) #12
  br label %633

633:                                              ; preds = %616, %599
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  call void @exit(i32 noundef 1) #14
  unreachable

636:                                              ; No predecessors!
  br label %637

637:                                              ; preds = %636
  br label %638

638:                                              ; preds = %637, %579
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = add nsw i32 %642, 1
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror_debug(i32 noundef %645, ptr noundef @.str.16)
  %647 = icmp eq ptr %646, null
  br i1 %647, label %648, label %701

648:                                              ; preds = %641
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #12
  %651 = call ptr @__errno_location() #13
  %652 = load i32, ptr %651, align 4, !tbaa !5
  store i32 %652, ptr %13, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = call i32 @s2n_print_stacktrace(ptr noundef %653)
  %655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %656 = trunc i8 %655 to i1
  br i1 %656, label %657, label %679

657:                                              ; preds = %650
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @fileno(ptr noundef %658) #12
  %660 = call i32 @isatty(i32 noundef %659) #12
  %661 = icmp ne i32 %660, 0
  br i1 %661, label %662, label %679

662:                                              ; preds = %657
  %663 = load i32, ptr %13, align 4, !tbaa !5
  %664 = call ptr @__errno_location() #13
  store i32 %663, ptr %664, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror(i32 noundef %668, ptr noundef @.str.16)
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef @.str.16)
  %673 = call ptr @__errno_location() #13
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @strerror(i32 noundef %674) #12
  %676 = call ptr @__errno_location() #13
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef @.str.14, i32 noundef %666, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 129, ptr noundef %669, ptr noundef %672, ptr noundef %675, i32 noundef %677) #12
  br label %696

679:                                              ; preds = %657, %650
  %680 = load i32, ptr %13, align 4, !tbaa !5
  %681 = call ptr @__errno_location() #13
  store i32 %680, ptr %681, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror(i32 noundef %685, ptr noundef @.str.16)
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror_debug(i32 noundef %688, ptr noundef @.str.16)
  %690 = call ptr @__errno_location() #13
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @strerror(i32 noundef %691) #12
  %693 = call ptr @__errno_location() #13
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %682, ptr noundef @.str.17, i32 noundef %683, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 129, ptr noundef %686, ptr noundef %689, ptr noundef %692, i32 noundef %694) #12
  br label %696

696:                                              ; preds = %679, %662
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  call void @exit(i32 noundef 1) #14
  unreachable

699:                                              ; No predecessors!
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700, %641
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  %707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %707, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %708 = call ptr @__errno_location() #13
  store i32 0, ptr %708, align 4, !tbaa !5
  br label %709

709:                                              ; preds = %706
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr @test_count, align 4, !tbaa !5
  %716 = load ptr, ptr %10, align 8, !tbaa !9
  %717 = icmp eq ptr %716, null
  br i1 %717, label %771, label %718

718:                                              ; preds = %713
  br label %719

719:                                              ; preds = %718
  br label %720

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

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #12
  %730 = call i32 @isatty(i32 noundef %729) #12
  %731 = icmp ne i32 %730, 0
  br i1 %731, label %732, label %749

732:                                              ; preds = %727
  %733 = load i32, ptr %14, align 4, !tbaa !5
  %734 = call ptr @__errno_location() #13
  store i32 %733, ptr %734, align 4, !tbaa !5
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror(i32 noundef %738, ptr noundef @.str.16)
  %740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror_debug(i32 noundef %741, ptr noundef @.str.16)
  %743 = call ptr @__errno_location() #13
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call ptr @strerror(i32 noundef %744) #12
  %746 = call ptr @__errno_location() #13
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %735, ptr noundef @.str.14, i32 noundef %736, ptr noundef @.str.24, ptr noundef @.str.13, i32 noundef 130, ptr noundef %739, ptr noundef %742, ptr noundef %745, i32 noundef %747) #12
  br label %766

749:                                              ; preds = %727, %720
  %750 = load i32, ptr %14, align 4, !tbaa !5
  %751 = call ptr @__errno_location() #13
  store i32 %750, ptr %751, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror(i32 noundef %755, ptr noundef @.str.16)
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror_debug(i32 noundef %758, ptr noundef @.str.16)
  %760 = call ptr @__errno_location() #13
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @strerror(i32 noundef %761) #12
  %763 = call ptr @__errno_location() #13
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef @.str.17, i32 noundef %753, ptr noundef @.str.24, ptr noundef @.str.13, i32 noundef 130, ptr noundef %756, ptr noundef %759, ptr noundef %762, i32 noundef %764) #12
  br label %766

766:                                              ; preds = %749, %732
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  call void @exit(i32 noundef 1) #14
  unreachable

769:                                              ; No predecessors!
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770, %713
  br label %772

772:                                              ; preds = %771
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = call i32 @s2n_cipher_suite_to_kem(ptr noundef @kyber_iana, ptr noundef %10)
  %778 = icmp eq i32 %777, -1
  br i1 %778, label %779, label %832

779:                                              ; preds = %774
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #12
  %782 = call ptr @__errno_location() #13
  %783 = load i32, ptr %782, align 4, !tbaa !5
  store i32 %783, ptr %15, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @s2n_print_stacktrace(ptr noundef %784)
  %786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %787 = trunc i8 %786 to i1
  br i1 %787, label %788, label %810

788:                                              ; preds = %781
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @fileno(ptr noundef %789) #12
  %791 = call i32 @isatty(i32 noundef %790) #12
  %792 = icmp ne i32 %791, 0
  br i1 %792, label %793, label %810

793:                                              ; preds = %788
  %794 = load i32, ptr %15, align 4, !tbaa !5
  %795 = call ptr @__errno_location() #13
  store i32 %794, ptr %795, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = load i32, ptr @test_count, align 4, !tbaa !5
  %798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror(i32 noundef %799, ptr noundef @.str.16)
  %801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef @.str.16)
  %804 = call ptr @__errno_location() #13
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = call ptr @strerror(i32 noundef %805) #12
  %807 = call ptr @__errno_location() #13
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %796, ptr noundef @.str.14, i32 noundef %797, ptr noundef @.str.25, ptr noundef @.str.13, i32 noundef 132, ptr noundef %800, ptr noundef %803, ptr noundef %806, i32 noundef %808) #12
  br label %827

810:                                              ; preds = %788, %781
  %811 = load i32, ptr %15, align 4, !tbaa !5
  %812 = call ptr @__errno_location() #13
  store i32 %811, ptr %812, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %816, ptr noundef @.str.16)
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror_debug(i32 noundef %819, ptr noundef @.str.16)
  %821 = call ptr @__errno_location() #13
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #12
  %824 = call ptr @__errno_location() #13
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef @.str.17, i32 noundef %814, ptr noundef @.str.25, ptr noundef @.str.13, i32 noundef 132, ptr noundef %817, ptr noundef %820, ptr noundef %823, i32 noundef %825) #12
  br label %827

827:                                              ; preds = %810, %793
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  call void @exit(i32 noundef 1) #14
  unreachable

830:                                              ; No predecessors!
  br label %831

831:                                              ; preds = %830
  br label %832

832:                                              ; preds = %831, %774
  br label %833

833:                                              ; preds = %832
  br label %834

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = add nsw i32 %836, 1
  store i32 %837, ptr @test_count, align 4, !tbaa !5
  %838 = load ptr, ptr %10, align 8, !tbaa !9
  %839 = icmp eq ptr %838, null
  br i1 %839, label %840, label %893

840:                                              ; preds = %835
  br label %841

841:                                              ; preds = %840
  br label %842

842:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #12
  %843 = call ptr @__errno_location() #13
  %844 = load i32, ptr %843, align 4, !tbaa !5
  store i32 %844, ptr %16, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @s2n_print_stacktrace(ptr noundef %845)
  %847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %848 = trunc i8 %847 to i1
  br i1 %848, label %849, label %871

849:                                              ; preds = %842
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @fileno(ptr noundef %850) #12
  %852 = call i32 @isatty(i32 noundef %851) #12
  %853 = icmp ne i32 %852, 0
  br i1 %853, label %854, label %871

854:                                              ; preds = %849
  %855 = load i32, ptr %16, align 4, !tbaa !5
  %856 = call ptr @__errno_location() #13
  store i32 %855, ptr %856, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror(i32 noundef %860, ptr noundef @.str.16)
  %862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef @.str.16)
  %865 = call ptr @__errno_location() #13
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @strerror(i32 noundef %866) #12
  %868 = call ptr @__errno_location() #13
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef @.str.14, i32 noundef %858, ptr noundef @.str.26, ptr noundef @.str.13, i32 noundef 133, ptr noundef %861, ptr noundef %864, ptr noundef %867, i32 noundef %869) #12
  br label %888

871:                                              ; preds = %849, %842
  %872 = load i32, ptr %16, align 4, !tbaa !5
  %873 = call ptr @__errno_location() #13
  store i32 %872, ptr %873, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror(i32 noundef %877, ptr noundef @.str.16)
  %879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef @.str.16)
  %882 = call ptr @__errno_location() #13
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @strerror(i32 noundef %883) #12
  %885 = call ptr @__errno_location() #13
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %874, ptr noundef @.str.17, i32 noundef %875, ptr noundef @.str.26, ptr noundef @.str.13, i32 noundef 133, ptr noundef %878, ptr noundef %881, ptr noundef %884, i32 noundef %886) #12
  br label %888

888:                                              ; preds = %871, %854
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  call void @exit(i32 noundef 1) #14
  unreachable

891:                                              ; No predecessors!
  br label %892

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %892, %835
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = load ptr, ptr %10, align 8, !tbaa !9
  %900 = getelementptr inbounds %struct.s2n_iana_to_kem, ptr %899, i32 0, i32 2
  %901 = load i8, ptr %900, align 8, !tbaa !15
  %902 = zext i8 %901 to i32
  %903 = icmp eq i32 %902, 1
  br i1 %903, label %957, label %904

904:                                              ; preds = %896
  br label %905

905:                                              ; preds = %904
  br label %906

906:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #12
  %907 = call ptr @__errno_location() #13
  %908 = load i32, ptr %907, align 4, !tbaa !5
  store i32 %908, ptr %17, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @s2n_print_stacktrace(ptr noundef %909)
  %911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %912 = trunc i8 %911 to i1
  br i1 %912, label %913, label %935

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

918:                                              ; preds = %913
  %919 = load i32, ptr %17, align 4, !tbaa !5
  %920 = call ptr @__errno_location() #13
  store i32 %919, ptr %920, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror(i32 noundef %924, ptr noundef @.str.16)
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef @.str.16)
  %929 = call ptr @__errno_location() #13
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @strerror(i32 noundef %930) #12
  %932 = call ptr @__errno_location() #13
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef @.str.14, i32 noundef %922, ptr noundef @.str.27, ptr noundef @.str.13, i32 noundef 134, ptr noundef %925, ptr noundef %928, ptr noundef %931, i32 noundef %933) #12
  br label %952

935:                                              ; preds = %913, %906
  %936 = load i32, ptr %17, align 4, !tbaa !5
  %937 = call ptr @__errno_location() #13
  store i32 %936, ptr %937, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef @.str.16)
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef @.str.16)
  %946 = call ptr @__errno_location() #13
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #12
  %949 = call ptr @__errno_location() #13
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef @.str.17, i32 noundef %939, ptr noundef @.str.27, ptr noundef @.str.13, i32 noundef 134, ptr noundef %942, ptr noundef %945, ptr noundef %948, i32 noundef %950) #12
  br label %952

952:                                              ; preds = %935, %918
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #12
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  call void @exit(i32 noundef 1) #14
  unreachable

955:                                              ; No predecessors!
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956, %896
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr @test_count, align 4, !tbaa !5
  %963 = load ptr, ptr %10, align 8, !tbaa !9
  %964 = getelementptr inbounds %struct.s2n_iana_to_kem, ptr %963, i32 0, i32 1
  %965 = load ptr, ptr %964, align 8, !tbaa !17
  %966 = getelementptr inbounds ptr, ptr %965, i64 0
  %967 = load ptr, ptr %966, align 8, !tbaa !9
  %968 = getelementptr inbounds %struct.s2n_kem, ptr %967, i32 0, i32 2
  %969 = load i16, ptr %968, align 4, !tbaa !18
  %970 = zext i16 %969 to i32
  %971 = load i16, ptr getelementptr inbounds (%struct.s2n_kem, ptr @s2n_kyber_512_r3, i32 0, i32 2), align 4, !tbaa !18
  %972 = zext i16 %971 to i32
  %973 = icmp eq i32 %970, %972
  br i1 %973, label %1027, label %974

974:                                              ; preds = %960
  br label %975

975:                                              ; preds = %974
  br label %976

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

983:                                              ; preds = %976
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = call i32 @fileno(ptr noundef %984) #12
  %986 = call i32 @isatty(i32 noundef %985) #12
  %987 = icmp ne i32 %986, 0
  br i1 %987, label %988, label %1005

988:                                              ; preds = %983
  %989 = load i32, ptr %18, align 4, !tbaa !5
  %990 = call ptr @__errno_location() #13
  store i32 %989, ptr %990, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror(i32 noundef %994, ptr noundef @.str.16)
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef @.str.16)
  %999 = call ptr @__errno_location() #13
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @strerror(i32 noundef %1000) #12
  %1002 = call ptr @__errno_location() #13
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %991, ptr noundef @.str.14, i32 noundef %992, ptr noundef @.str.28, ptr noundef @.str.13, i32 noundef 135, ptr noundef %995, ptr noundef %998, ptr noundef %1001, i32 noundef %1003) #12
  br label %1022

1005:                                             ; preds = %983, %976
  %1006 = load i32, ptr %18, align 4, !tbaa !5
  %1007 = call ptr @__errno_location() #13
  store i32 %1006, ptr %1007, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror(i32 noundef %1011, ptr noundef @.str.16)
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror_debug(i32 noundef %1014, ptr noundef @.str.16)
  %1016 = call ptr @__errno_location() #13
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #12
  %1019 = call ptr @__errno_location() #13
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1008, ptr noundef @.str.17, i32 noundef %1009, ptr noundef @.str.28, ptr noundef @.str.13, i32 noundef 135, ptr noundef %1012, ptr noundef %1015, ptr noundef %1018, i32 noundef %1020) #12
  br label %1022

1022:                                             ; preds = %1005, %988
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #12
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  call void @exit(i32 noundef 1) #14
  unreachable

1025:                                             ; No predecessors!
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026, %960
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

1029:                                             ; preds = %1028
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #12
  br label %1030

1030:                                             ; preds = %1029
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr @test_count, align 4, !tbaa !5
  %1033 = call i32 @s2n_kem_free(ptr noundef null)
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1086

1035:                                             ; preds = %1030
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

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

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #12
  %1047 = call i32 @isatty(i32 noundef %1046) #12
  %1048 = icmp ne i32 %1047, 0
  br i1 %1048, label %1049, label %1066

1049:                                             ; preds = %1044
  %1050 = load i32, ptr %19, align 4, !tbaa !5
  %1051 = call ptr @__errno_location() #13
  store i32 %1050, ptr %1051, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror(i32 noundef %1055, ptr noundef @.str.16)
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef @.str.16)
  %1060 = call ptr @__errno_location() #13
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @strerror(i32 noundef %1061) #12
  %1063 = call ptr @__errno_location() #13
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef @.str.14, i32 noundef %1053, ptr noundef @.str.29, ptr noundef @.str.13, i32 noundef 139, ptr noundef %1056, ptr noundef %1059, ptr noundef %1062, i32 noundef %1064) #12
  br label %1083

1066:                                             ; preds = %1044, %1037
  %1067 = load i32, ptr %19, align 4, !tbaa !5
  %1068 = call ptr @__errno_location() #13
  store i32 %1067, ptr %1068, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef @.str.16)
  %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_debug(i32 noundef %1075, ptr noundef @.str.16)
  %1077 = call ptr @__errno_location() #13
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #12
  %1080 = call ptr @__errno_location() #13
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef @.str.17, i32 noundef %1070, ptr noundef @.str.29, ptr noundef @.str.13, i32 noundef 139, ptr noundef %1073, ptr noundef %1076, ptr noundef %1079, i32 noundef %1081) #12
  br label %1083

1083:                                             ; preds = %1066, %1049
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  br label %1084

1084:                                             ; preds = %1083
  call void @exit(i32 noundef 1) #14
  unreachable

1085:                                             ; No predecessors!
  br label %1086

1086:                                             ; preds = %1085, %1030
  br label %1087

1087:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 88, ptr %20) #12
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 88, i1 false)
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = call i32 @s2n_kem_free(ptr noundef %20)
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1093, label %1146

1093:                                             ; preds = %1088
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #12
  %1096 = call ptr @__errno_location() #13
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  store i32 %1097, ptr %21, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @s2n_print_stacktrace(ptr noundef %1098)
  %1100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1101 = trunc i8 %1100 to i1
  br i1 %1101, label %1102, label %1124

1102:                                             ; preds = %1095
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = call i32 @fileno(ptr noundef %1103) #12
  %1105 = call i32 @isatty(i32 noundef %1104) #12
  %1106 = icmp ne i32 %1105, 0
  br i1 %1106, label %1107, label %1124

1107:                                             ; preds = %1102
  %1108 = load i32, ptr %21, align 4, !tbaa !5
  %1109 = call ptr @__errno_location() #13
  store i32 %1108, ptr %1109, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror(i32 noundef %1113, ptr noundef @.str.16)
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror_debug(i32 noundef %1116, ptr noundef @.str.16)
  %1118 = call ptr @__errno_location() #13
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @strerror(i32 noundef %1119) #12
  %1121 = call ptr @__errno_location() #13
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef @.str.14, i32 noundef %1111, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 142, ptr noundef %1114, ptr noundef %1117, ptr noundef %1120, i32 noundef %1122) #12
  br label %1141

1124:                                             ; preds = %1102, %1095
  %1125 = load i32, ptr %21, align 4, !tbaa !5
  %1126 = call ptr @__errno_location() #13
  store i32 %1125, ptr %1126, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = load i32, ptr @test_count, align 4, !tbaa !5
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror(i32 noundef %1130, ptr noundef @.str.16)
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef @.str.16)
  %1135 = call ptr @__errno_location() #13
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @strerror(i32 noundef %1136) #12
  %1138 = call ptr @__errno_location() #13
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1127, ptr noundef @.str.17, i32 noundef %1128, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 142, ptr noundef %1131, ptr noundef %1134, ptr noundef %1137, i32 noundef %1139) #12
  br label %1141

1141:                                             ; preds = %1124, %1107
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  call void @exit(i32 noundef 1) #14
  unreachable

1144:                                             ; No predecessors!
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145, %1088
  br label %1147

1147:                                             ; preds = %1146
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr @test_count, align 4, !tbaa !5
  %1152 = call i32 @alloc_test_kem_params(ptr noundef %20)
  %1153 = icmp eq i32 %1152, -1
  br i1 %1153, label %1154, label %1207

1154:                                             ; preds = %1149
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #12
  %1157 = call ptr @__errno_location() #13
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  store i32 %1158, ptr %22, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @s2n_print_stacktrace(ptr noundef %1159)
  %1161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1162 = trunc i8 %1161 to i1
  br i1 %1162, label %1163, label %1185

1163:                                             ; preds = %1156
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @fileno(ptr noundef %1164) #12
  %1166 = call i32 @isatty(i32 noundef %1165) #12
  %1167 = icmp ne i32 %1166, 0
  br i1 %1167, label %1168, label %1185

1168:                                             ; preds = %1163
  %1169 = load i32, ptr %22, align 4, !tbaa !5
  %1170 = call ptr @__errno_location() #13
  store i32 %1169, ptr %1170, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef @.str.16)
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror_debug(i32 noundef %1177, ptr noundef @.str.16)
  %1179 = call ptr @__errno_location() #13
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @strerror(i32 noundef %1180) #12
  %1182 = call ptr @__errno_location() #13
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef @.str.14, i32 noundef %1172, ptr noundef @.str.31, ptr noundef @.str.13, i32 noundef 145, ptr noundef %1175, ptr noundef %1178, ptr noundef %1181, i32 noundef %1183) #12
  br label %1202

1185:                                             ; preds = %1163, %1156
  %1186 = load i32, ptr %22, align 4, !tbaa !5
  %1187 = call ptr @__errno_location() #13
  store i32 %1186, ptr %1187, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef @.str.16)
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef @.str.16)
  %1196 = call ptr @__errno_location() #13
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #12
  %1199 = call ptr @__errno_location() #13
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1188, ptr noundef @.str.17, i32 noundef %1189, ptr noundef @.str.31, ptr noundef @.str.13, i32 noundef 145, ptr noundef %1192, ptr noundef %1195, ptr noundef %1198, i32 noundef %1200) #12
  br label %1202

1202:                                             ; preds = %1185, %1168
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203
  call void @exit(i32 noundef 1) #14
  unreachable

1205:                                             ; No predecessors!
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

1207:                                             ; preds = %1206, %1149
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  br label %1210

1210:                                             ; preds = %1209
  %1211 = load i32, ptr @test_count, align 4, !tbaa !5
  %1212 = add nsw i32 %1211, 1
  store i32 %1212, ptr @test_count, align 4, !tbaa !5
  %1213 = call i32 @s2n_kem_free(ptr noundef %20)
  %1214 = icmp eq i32 %1213, -1
  br i1 %1214, label %1215, label %1268

1215:                                             ; preds = %1210
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

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

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

1229:                                             ; preds = %1224
  %1230 = load i32, ptr %23, align 4, !tbaa !5
  %1231 = call ptr @__errno_location() #13
  store i32 %1230, ptr %1231, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef @.str.16)
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror_debug(i32 noundef %1238, ptr noundef @.str.16)
  %1240 = call ptr @__errno_location() #13
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @strerror(i32 noundef %1241) #12
  %1243 = call ptr @__errno_location() #13
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef @.str.14, i32 noundef %1233, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 146, ptr noundef %1236, ptr noundef %1239, ptr noundef %1242, i32 noundef %1244) #12
  br label %1263

1246:                                             ; preds = %1224, %1217
  %1247 = load i32, ptr %23, align 4, !tbaa !5
  %1248 = call ptr @__errno_location() #13
  store i32 %1247, ptr %1248, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef @.str.16)
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef @.str.16)
  %1257 = call ptr @__errno_location() #13
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #12
  %1260 = call ptr @__errno_location() #13
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef @.str.17, i32 noundef %1250, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 146, ptr noundef %1253, ptr noundef %1256, ptr noundef %1259, i32 noundef %1261) #12
  br label %1263

1263:                                             ; preds = %1246, %1229
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #12
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

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

1266:                                             ; No predecessors!
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267, %1210
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = add nsw i32 %1272, 1
  store i32 %1273, ptr @test_count, align 4, !tbaa !5
  %1274 = call i32 @assert_kem_params_free(ptr noundef %20)
  %1275 = icmp eq i32 %1274, -1
  br i1 %1275, label %1276, label %1329

1276:                                             ; preds = %1271
  br label %1277

1277:                                             ; preds = %1276
  br label %1278

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

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

1290:                                             ; preds = %1285
  %1291 = load i32, ptr %24, align 4, !tbaa !5
  %1292 = call ptr @__errno_location() #13
  store i32 %1291, ptr %1292, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1296, ptr noundef @.str.16)
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef @.str.16)
  %1301 = call ptr @__errno_location() #13
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #12
  %1304 = call ptr @__errno_location() #13
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef @.str.14, i32 noundef %1294, ptr noundef @.str.32, ptr noundef @.str.13, i32 noundef 147, ptr noundef %1297, ptr noundef %1300, ptr noundef %1303, i32 noundef %1305) #12
  br label %1324

1307:                                             ; preds = %1285, %1278
  %1308 = load i32, ptr %24, align 4, !tbaa !5
  %1309 = call ptr @__errno_location() #13
  store i32 %1308, ptr %1309, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror(i32 noundef %1313, ptr noundef @.str.16)
  %1315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef @.str.16)
  %1318 = call ptr @__errno_location() #13
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #12
  %1321 = call ptr @__errno_location() #13
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1310, ptr noundef @.str.17, i32 noundef %1311, ptr noundef @.str.32, ptr noundef @.str.13, i32 noundef 147, ptr noundef %1314, ptr noundef %1317, ptr noundef %1320, i32 noundef %1322) #12
  br label %1324

1324:                                             ; preds = %1307, %1290
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #12
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

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

1327:                                             ; No predecessors!
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

1329:                                             ; preds = %1328, %1271
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330
  call void @llvm.lifetime.end.p0(i64 88, ptr %20) #12
  br label %1332

1332:                                             ; preds = %1331
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = add nsw i32 %1333, 1
  store i32 %1334, ptr @test_count, align 4, !tbaa !5
  %1335 = call i32 @s2n_kem_group_free(ptr noundef null)
  %1336 = icmp eq i32 %1335, -1
  br i1 %1336, label %1337, label %1388

1337:                                             ; preds = %1332
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

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

1346:                                             ; preds = %1339
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @fileno(ptr noundef %1347) #12
  %1349 = call i32 @isatty(i32 noundef %1348) #12
  %1350 = icmp ne i32 %1349, 0
  br i1 %1350, label %1351, label %1368

1351:                                             ; preds = %1346
  %1352 = load i32, ptr %25, align 4, !tbaa !5
  %1353 = call ptr @__errno_location() #13
  store i32 %1352, ptr %1353, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef @.str.16)
  %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_debug(i32 noundef %1360, ptr noundef @.str.16)
  %1362 = call ptr @__errno_location() #13
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #12
  %1365 = call ptr @__errno_location() #13
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1354, ptr noundef @.str.14, i32 noundef %1355, ptr noundef @.str.33, ptr noundef @.str.13, i32 noundef 151, ptr noundef %1358, ptr noundef %1361, ptr noundef %1364, i32 noundef %1366) #12
  br label %1385

1368:                                             ; preds = %1346, %1339
  %1369 = load i32, ptr %25, align 4, !tbaa !5
  %1370 = call ptr @__errno_location() #13
  store i32 %1369, ptr %1370, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror(i32 noundef %1374, ptr noundef @.str.16)
  %1376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef @.str.16)
  %1379 = call ptr @__errno_location() #13
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @strerror(i32 noundef %1380) #12
  %1382 = call ptr @__errno_location() #13
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1371, ptr noundef @.str.17, i32 noundef %1372, ptr noundef @.str.33, ptr noundef @.str.13, i32 noundef 151, ptr noundef %1375, ptr noundef %1378, ptr noundef %1381, i32 noundef %1383) #12
  br label %1385

1385:                                             ; preds = %1368, %1351
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  br label %1386

1386:                                             ; preds = %1385
  call void @exit(i32 noundef 1) #14
  unreachable

1387:                                             ; No predecessors!
  br label %1388

1388:                                             ; preds = %1387, %1332
  br label %1389

1389:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 112, ptr %26) #12
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 112, i1 false)
  br label %1390

1390:                                             ; preds = %1389
  %1391 = load i32, ptr @test_count, align 4, !tbaa !5
  %1392 = add nsw i32 %1391, 1
  store i32 %1392, ptr @test_count, align 4, !tbaa !5
  %1393 = call i32 @s2n_kem_group_free(ptr noundef %26)
  %1394 = icmp eq i32 %1393, -1
  br i1 %1394, label %1395, label %1448

1395:                                             ; preds = %1390
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  %1398 = call ptr @__errno_location() #13
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  store i32 %1399, ptr %27, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @s2n_print_stacktrace(ptr noundef %1400)
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc i8 %1402 to i1
  br i1 %1403, label %1404, label %1426

1404:                                             ; preds = %1397
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #12
  %1407 = call i32 @isatty(i32 noundef %1406) #12
  %1408 = icmp ne i32 %1407, 0
  br i1 %1408, label %1409, label %1426

1409:                                             ; preds = %1404
  %1410 = load i32, ptr %27, align 4, !tbaa !5
  %1411 = call ptr @__errno_location() #13
  store i32 %1410, ptr %1411, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef @.str.16)
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef @.str.16)
  %1420 = call ptr @__errno_location() #13
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #12
  %1423 = call ptr @__errno_location() #13
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef @.str.14, i32 noundef %1413, ptr noundef @.str.34, ptr noundef @.str.13, i32 noundef 154, ptr noundef %1416, ptr noundef %1419, ptr noundef %1422, i32 noundef %1424) #12
  br label %1443

1426:                                             ; preds = %1404, %1397
  %1427 = load i32, ptr %27, align 4, !tbaa !5
  %1428 = call ptr @__errno_location() #13
  store i32 %1427, ptr %1428, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef @.str.16)
  %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_debug(i32 noundef %1435, ptr noundef @.str.16)
  %1437 = call ptr @__errno_location() #13
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #12
  %1440 = call ptr @__errno_location() #13
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef @.str.17, i32 noundef %1430, ptr noundef @.str.34, ptr noundef @.str.13, i32 noundef 154, ptr noundef %1433, ptr noundef %1436, ptr noundef %1439, i32 noundef %1441) #12
  br label %1443

1443:                                             ; preds = %1426, %1409
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

1445:                                             ; preds = %1444
  call void @exit(i32 noundef 1) #14
  unreachable

1446:                                             ; No predecessors!
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447, %1390
  br label %1449

1449:                                             ; preds = %1448
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

1451:                                             ; preds = %1450
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr @test_count, align 4, !tbaa !5
  %1454 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %26, i32 0, i32 1
  %1455 = call i32 @alloc_test_kem_params(ptr noundef %1454)
  %1456 = icmp eq i32 %1455, -1
  br i1 %1456, label %1457, label %1510

1457:                                             ; preds = %1451
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #12
  %1460 = call ptr @__errno_location() #13
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  store i32 %1461, ptr %28, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @s2n_print_stacktrace(ptr noundef %1462)
  %1464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1465 = trunc i8 %1464 to i1
  br i1 %1465, label %1466, label %1488

1466:                                             ; preds = %1459
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = call i32 @fileno(ptr noundef %1467) #12
  %1469 = call i32 @isatty(i32 noundef %1468) #12
  %1470 = icmp ne i32 %1469, 0
  br i1 %1470, label %1471, label %1488

1471:                                             ; preds = %1466
  %1472 = load i32, ptr %28, align 4, !tbaa !5
  %1473 = call ptr @__errno_location() #13
  store i32 %1472, ptr %1473, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror(i32 noundef %1477, ptr noundef @.str.16)
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef @.str.16)
  %1482 = call ptr @__errno_location() #13
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @strerror(i32 noundef %1483) #12
  %1485 = call ptr @__errno_location() #13
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef @.str.14, i32 noundef %1475, ptr noundef @.str.35, ptr noundef @.str.13, i32 noundef 157, ptr noundef %1478, ptr noundef %1481, ptr noundef %1484, i32 noundef %1486) #12
  br label %1505

1488:                                             ; preds = %1466, %1459
  %1489 = load i32, ptr %28, align 4, !tbaa !5
  %1490 = call ptr @__errno_location() #13
  store i32 %1489, ptr %1490, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef @.str.16)
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef @.str.16)
  %1499 = call ptr @__errno_location() #13
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #12
  %1502 = call ptr @__errno_location() #13
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef @.str.17, i32 noundef %1492, ptr noundef @.str.35, ptr noundef @.str.13, i32 noundef 157, ptr noundef %1495, ptr noundef %1498, ptr noundef %1501, i32 noundef %1503) #12
  br label %1505

1505:                                             ; preds = %1488, %1471
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  call void @exit(i32 noundef 1) #14
  unreachable

1508:                                             ; No predecessors!
  br label %1509

1509:                                             ; preds = %1508
  br label %1510

1510:                                             ; preds = %1509, %1451
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511
  call void @llvm.lifetime.start.p0(i64 40, ptr %29) #12
  call void @llvm.memset.p0.i64(ptr align 8 %29, i8 0, i64 40, i1 false)
  br label %1513

1513:                                             ; preds = %1512
  %1514 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %29, i32 noundef 1024)
  %1515 = icmp sgt i32 %1514, -1
  br i1 %1515, label %1517, label %1516

1516:                                             ; preds = %1513
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %1786

1517:                                             ; preds = %1513
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  %1520 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %26, i32 0, i32 2
  %1521 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1520, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp256r1, ptr %1521, align 8, !tbaa !21
  br label %1522

1522:                                             ; preds = %1519
  %1523 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %26, i32 0, i32 2
  %1524 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %1523, ptr noundef %29)
  %1525 = icmp sgt i32 %1524, -1
  br i1 %1525, label %1527, label %1526

1526:                                             ; preds = %1522
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %1786

1527:                                             ; preds = %1522
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  %1531 = call i32 @s2n_stuffer_free(ptr noundef %29)
  %1532 = icmp sgt i32 %1531, -1
  br i1 %1532, label %1534, label %1533

1533:                                             ; preds = %1530
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %1786

1534:                                             ; preds = %1530
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  %1538 = load i32, ptr @test_count, align 4, !tbaa !5
  %1539 = add nsw i32 %1538, 1
  store i32 %1539, ptr @test_count, align 4, !tbaa !5
  %1540 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %26, i32 0, i32 2
  %1541 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1540, i32 0, i32 1
  %1542 = load ptr, ptr %1541, align 8, !tbaa !26
  %1543 = icmp eq ptr %1542, null
  br i1 %1543, label %1544, label %1597

1544:                                             ; preds = %1537
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #12
  %1547 = call ptr @__errno_location() #13
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  store i32 %1548, ptr %31, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = call i32 @s2n_print_stacktrace(ptr noundef %1549)
  %1551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1552 = trunc i8 %1551 to i1
  br i1 %1552, label %1553, label %1575

1553:                                             ; preds = %1546
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = call i32 @fileno(ptr noundef %1554) #12
  %1556 = call i32 @isatty(i32 noundef %1555) #12
  %1557 = icmp ne i32 %1556, 0
  br i1 %1557, label %1558, label %1575

1558:                                             ; preds = %1553
  %1559 = load i32, ptr %31, align 4, !tbaa !5
  %1560 = call ptr @__errno_location() #13
  store i32 %1559, ptr %1560, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = load i32, ptr @test_count, align 4, !tbaa !5
  %1563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror(i32 noundef %1564, ptr noundef @.str.16)
  %1566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror_debug(i32 noundef %1567, ptr noundef @.str.16)
  %1569 = call ptr @__errno_location() #13
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @strerror(i32 noundef %1570) #12
  %1572 = call ptr @__errno_location() #13
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1561, ptr noundef @.str.14, i32 noundef %1562, ptr noundef @.str.36, ptr noundef @.str.13, i32 noundef 163, ptr noundef %1565, ptr noundef %1568, ptr noundef %1571, i32 noundef %1573) #12
  br label %1592

1575:                                             ; preds = %1553, %1546
  %1576 = load i32, ptr %31, align 4, !tbaa !5
  %1577 = call ptr @__errno_location() #13
  store i32 %1576, ptr %1577, align 4, !tbaa !5
  %1578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1579 = load i32, ptr @test_count, align 4, !tbaa !5
  %1580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1581 = load i32, ptr %1580, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror(i32 noundef %1581, ptr noundef @.str.16)
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror_debug(i32 noundef %1584, ptr noundef @.str.16)
  %1586 = call ptr @__errno_location() #13
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @strerror(i32 noundef %1587) #12
  %1589 = call ptr @__errno_location() #13
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1578, ptr noundef @.str.17, i32 noundef %1579, ptr noundef @.str.36, ptr noundef @.str.13, i32 noundef 163, ptr noundef %1582, ptr noundef %1585, ptr noundef %1588, i32 noundef %1590) #12
  br label %1592

1592:                                             ; preds = %1575, %1558
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593
  call void @exit(i32 noundef 1) #14
  unreachable

1595:                                             ; No predecessors!
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

1597:                                             ; preds = %1596, %1537
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = add nsw i32 %1601, 1
  store i32 %1602, ptr @test_count, align 4, !tbaa !5
  %1603 = call i32 @s2n_kem_group_free(ptr noundef %26)
  %1604 = icmp eq i32 %1603, -1
  br i1 %1604, label %1605, label %1658

1605:                                             ; preds = %1600
  br label %1606

1606:                                             ; preds = %1605
  br label %1607

1607:                                             ; preds = %1606
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #12
  %1608 = call ptr @__errno_location() #13
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  store i32 %1609, ptr %32, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = call i32 @s2n_print_stacktrace(ptr noundef %1610)
  %1612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1613 = trunc i8 %1612 to i1
  br i1 %1613, label %1614, label %1636

1614:                                             ; preds = %1607
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @fileno(ptr noundef %1615) #12
  %1617 = call i32 @isatty(i32 noundef %1616) #12
  %1618 = icmp ne i32 %1617, 0
  br i1 %1618, label %1619, label %1636

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

1636:                                             ; preds = %1614, %1607
  %1637 = load i32, ptr %32, align 4, !tbaa !5
  %1638 = call ptr @__errno_location() #13
  store i32 %1637, ptr %1638, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror(i32 noundef %1642, ptr noundef @.str.16)
  %1644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror_debug(i32 noundef %1645, ptr noundef @.str.16)
  %1647 = call ptr @__errno_location() #13
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @strerror(i32 noundef %1648) #12
  %1650 = call ptr @__errno_location() #13
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef @.str.17, i32 noundef %1640, ptr noundef @.str.34, ptr noundef @.str.13, i32 noundef 166, ptr noundef %1643, ptr noundef %1646, ptr noundef %1649, i32 noundef %1651) #12
  br label %1653

1653:                                             ; preds = %1636, %1619
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  call void @exit(i32 noundef 1) #14
  unreachable

1656:                                             ; No predecessors!
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657, %1600
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

1661:                                             ; preds = %1660
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr @test_count, align 4, !tbaa !5
  %1664 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %26, i32 0, i32 1
  %1665 = call i32 @assert_kem_params_free(ptr noundef %1664)
  %1666 = icmp eq i32 %1665, -1
  br i1 %1666, label %1667, label %1720

1667:                                             ; preds = %1661
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

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

1676:                                             ; preds = %1669
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = call i32 @fileno(ptr noundef %1677) #12
  %1679 = call i32 @isatty(i32 noundef %1678) #12
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1681, label %1698

1681:                                             ; preds = %1676
  %1682 = load i32, ptr %33, align 4, !tbaa !5
  %1683 = call ptr @__errno_location() #13
  store i32 %1682, ptr %1683, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef @.str.16)
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @s2n_strerror_debug(i32 noundef %1690, ptr noundef @.str.16)
  %1692 = call ptr @__errno_location() #13
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @strerror(i32 noundef %1693) #12
  %1695 = call ptr @__errno_location() #13
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef @.str.14, i32 noundef %1685, ptr noundef @.str.37, ptr noundef @.str.13, i32 noundef 167, ptr noundef %1688, ptr noundef %1691, ptr noundef %1694, i32 noundef %1696) #12
  br label %1715

1698:                                             ; preds = %1676, %1669
  %1699 = load i32, ptr %33, align 4, !tbaa !5
  %1700 = call ptr @__errno_location() #13
  store i32 %1699, ptr %1700, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror(i32 noundef %1704, ptr noundef @.str.16)
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror_debug(i32 noundef %1707, ptr noundef @.str.16)
  %1709 = call ptr @__errno_location() #13
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @strerror(i32 noundef %1710) #12
  %1712 = call ptr @__errno_location() #13
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1701, ptr noundef @.str.17, i32 noundef %1702, ptr noundef @.str.37, ptr noundef @.str.13, i32 noundef 167, ptr noundef %1705, ptr noundef %1708, ptr noundef %1711, i32 noundef %1713) #12
  br label %1715

1715:                                             ; preds = %1698, %1681
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  call void @exit(i32 noundef 1) #14
  unreachable

1718:                                             ; No predecessors!
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719, %1661
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = add nsw i32 %1724, 1
  store i32 %1725, ptr @test_count, align 4, !tbaa !5
  %1726 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %26, i32 0, i32 2
  %1727 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1726, i32 0, i32 1
  %1728 = load ptr, ptr %1727, align 8, !tbaa !26
  %1729 = icmp eq ptr %1728, null
  br i1 %1729, label %1783, label %1730

1730:                                             ; preds = %1723
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

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

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

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

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

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

1779:                                             ; preds = %1778
  br label %1780

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

1781:                                             ; No predecessors!
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

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

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  store i32 0, ptr %30, align 4
  br label %1786

1786:                                             ; preds = %1785, %1533, %1526, %1516
  call void @llvm.lifetime.end.p0(i64 40, ptr %29) #12
  call void @llvm.lifetime.end.p0(i64 112, ptr %26) #12
  %1787 = load i32, ptr %30, align 4
  switch i32 %1787, label %12315 [
    i32 0, label %1788
    i32 1, label %12313
  ]

1788:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 2, ptr %35) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %35, ptr align 2 @__const.main.kem_extensions, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 @__const.main.kems, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #12
  store i64 0, ptr %37, align 8, !tbaa !27
  br label %1789

1789:                                             ; preds = %1984, %1788
  %1790 = load i64, ptr %37, align 8, !tbaa !27
  %1791 = icmp ult i64 %1790, 1
  br i1 %1791, label %1793, label %1792

1792:                                             ; preds = %1789
  store i32 172, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #12
  br label %1987

1793:                                             ; preds = %1789
  call void @llvm.lifetime.start.p0(i64 2, ptr %38) #12
  %1794 = load i64, ptr %37, align 8, !tbaa !27
  %1795 = getelementptr inbounds [1 x i16], ptr %35, i64 0, i64 %1794
  %1796 = load i16, ptr %1795, align 2, !tbaa !29
  store i16 %1796, ptr %38, align 2, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #12
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1797

1797:                                             ; preds = %1793
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = add nsw i32 %1798, 1
  store i32 %1799, ptr @test_count, align 4, !tbaa !5
  %1800 = load i16, ptr %38, align 2, !tbaa !29
  %1801 = call i32 @s2n_get_kem_from_extension_id(i16 noundef zeroext %1800, ptr noundef %39)
  %1802 = icmp eq i32 %1801, -1
  br i1 %1802, label %1803, label %1856

1803:                                             ; preds = %1797
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  %1806 = call ptr @__errno_location() #13
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  store i32 %1807, ptr %40, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = call i32 @s2n_print_stacktrace(ptr noundef %1808)
  %1810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1811 = trunc i8 %1810 to i1
  br i1 %1811, label %1812, label %1834

1812:                                             ; preds = %1805
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = call i32 @fileno(ptr noundef %1813) #12
  %1815 = call i32 @isatty(i32 noundef %1814) #12
  %1816 = icmp ne i32 %1815, 0
  br i1 %1816, label %1817, label %1834

1817:                                             ; preds = %1812
  %1818 = load i32, ptr %40, align 4, !tbaa !5
  %1819 = call ptr @__errno_location() #13
  store i32 %1818, ptr %1819, align 4, !tbaa !5
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror(i32 noundef %1823, ptr noundef @.str.16)
  %1825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror_debug(i32 noundef %1826, ptr noundef @.str.16)
  %1828 = call ptr @__errno_location() #13
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @strerror(i32 noundef %1829) #12
  %1831 = call ptr @__errno_location() #13
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1820, ptr noundef @.str.14, i32 noundef %1821, ptr noundef @.str.39, ptr noundef @.str.13, i32 noundef 186, ptr noundef %1824, ptr noundef %1827, ptr noundef %1830, i32 noundef %1832) #12
  br label %1851

1834:                                             ; preds = %1812, %1805
  %1835 = load i32, ptr %40, align 4, !tbaa !5
  %1836 = call ptr @__errno_location() #13
  store i32 %1835, ptr %1836, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @s2n_strerror(i32 noundef %1840, ptr noundef @.str.16)
  %1842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror_debug(i32 noundef %1843, ptr noundef @.str.16)
  %1845 = call ptr @__errno_location() #13
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @strerror(i32 noundef %1846) #12
  %1848 = call ptr @__errno_location() #13
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef @.str.17, i32 noundef %1838, ptr noundef @.str.39, ptr noundef @.str.13, i32 noundef 186, ptr noundef %1841, ptr noundef %1844, ptr noundef %1847, i32 noundef %1849) #12
  br label %1851

1851:                                             ; preds = %1834, %1817
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  call void @exit(i32 noundef 1) #14
  unreachable

1854:                                             ; No predecessors!
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855, %1797
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = add nsw i32 %1860, 1
  store i32 %1861, ptr @test_count, align 4, !tbaa !5
  %1862 = load ptr, ptr %39, align 8, !tbaa !9
  %1863 = icmp eq ptr %1862, null
  br i1 %1863, label %1864, label %1917

1864:                                             ; preds = %1859
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %1867 = call ptr @__errno_location() #13
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  store i32 %1868, ptr %41, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @s2n_print_stacktrace(ptr noundef %1869)
  %1871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1872 = trunc i8 %1871 to i1
  br i1 %1872, label %1873, label %1895

1873:                                             ; preds = %1866
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = call i32 @fileno(ptr noundef %1874) #12
  %1876 = call i32 @isatty(i32 noundef %1875) #12
  %1877 = icmp ne i32 %1876, 0
  br i1 %1877, label %1878, label %1895

1878:                                             ; preds = %1873
  %1879 = load i32, ptr %41, align 4, !tbaa !5
  %1880 = call ptr @__errno_location() #13
  store i32 %1879, ptr %1880, align 4, !tbaa !5
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = load i32, ptr @test_count, align 4, !tbaa !5
  %1883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call ptr @s2n_strerror(i32 noundef %1884, ptr noundef @.str.16)
  %1886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror_debug(i32 noundef %1887, ptr noundef @.str.16)
  %1889 = call ptr @__errno_location() #13
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @strerror(i32 noundef %1890) #12
  %1892 = call ptr @__errno_location() #13
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1881, ptr noundef @.str.14, i32 noundef %1882, ptr noundef @.str.40, ptr noundef @.str.13, i32 noundef 187, ptr noundef %1885, ptr noundef %1888, ptr noundef %1891, i32 noundef %1893) #12
  br label %1912

1895:                                             ; preds = %1873, %1866
  %1896 = load i32, ptr %41, align 4, !tbaa !5
  %1897 = call ptr @__errno_location() #13
  store i32 %1896, ptr %1897, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror(i32 noundef %1901, ptr noundef @.str.16)
  %1903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  %1905 = call ptr @s2n_strerror_debug(i32 noundef %1904, ptr noundef @.str.16)
  %1906 = call ptr @__errno_location() #13
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @strerror(i32 noundef %1907) #12
  %1909 = call ptr @__errno_location() #13
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef @.str.17, i32 noundef %1899, ptr noundef @.str.40, ptr noundef @.str.13, i32 noundef 187, ptr noundef %1902, ptr noundef %1905, ptr noundef %1908, i32 noundef %1910) #12
  br label %1912

1912:                                             ; preds = %1895, %1878
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  call void @exit(i32 noundef 1) #14
  unreachable

1915:                                             ; No predecessors!
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916, %1859
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  %1921 = load i32, ptr @test_count, align 4, !tbaa !5
  %1922 = add nsw i32 %1921, 1
  store i32 %1922, ptr @test_count, align 4, !tbaa !5
  %1923 = load i64, ptr %37, align 8, !tbaa !27
  %1924 = getelementptr inbounds [1 x ptr], ptr %36, i64 0, i64 %1923
  %1925 = load ptr, ptr %1924, align 8, !tbaa !9
  %1926 = load ptr, ptr %39, align 8, !tbaa !9
  %1927 = icmp eq ptr %1925, %1926
  br i1 %1927, label %1981, label %1928

1928:                                             ; preds = %1920
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

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

1937:                                             ; preds = %1930
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @fileno(ptr noundef %1938) #12
  %1940 = call i32 @isatty(i32 noundef %1939) #12
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1959

1942:                                             ; preds = %1937
  %1943 = load i32, ptr %42, align 4, !tbaa !5
  %1944 = call ptr @__errno_location() #13
  store i32 %1943, ptr %1944, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror(i32 noundef %1948, ptr noundef @.str.16)
  %1950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror_debug(i32 noundef %1951, ptr noundef @.str.16)
  %1953 = call ptr @__errno_location() #13
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #12
  %1956 = call ptr @__errno_location() #13
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1945, ptr noundef @.str.14, i32 noundef %1946, ptr noundef @.str.41, ptr noundef @.str.13, i32 noundef 188, ptr noundef %1949, ptr noundef %1952, ptr noundef %1955, i32 noundef %1957) #12
  br label %1976

1959:                                             ; preds = %1937, %1930
  %1960 = load i32, ptr %42, align 4, !tbaa !5
  %1961 = call ptr @__errno_location() #13
  store i32 %1960, ptr %1961, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror(i32 noundef %1965, ptr noundef @.str.16)
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef @.str.16)
  %1970 = call ptr @__errno_location() #13
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @strerror(i32 noundef %1971) #12
  %1973 = call ptr @__errno_location() #13
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1962, ptr noundef @.str.17, i32 noundef %1963, ptr noundef @.str.41, ptr noundef @.str.13, i32 noundef 188, ptr noundef %1966, ptr noundef %1969, ptr noundef %1972, i32 noundef %1974) #12
  br label %1976

1976:                                             ; preds = %1959, %1942
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #12
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  call void @exit(i32 noundef 1) #14
  unreachable

1979:                                             ; No predecessors!
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980, %1920
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %38) #12
  br label %1984

1984:                                             ; preds = %1983
  %1985 = load i64, ptr %37, align 8, !tbaa !27
  %1986 = add i64 %1985, 1
  store i64 %1986, ptr %37, align 8, !tbaa !27
  br label %1789, !llvm.loop !30

1987:                                             ; preds = %1792
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %35) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #12
  store ptr null, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %44) #12
  store i16 -1, ptr %44, align 2, !tbaa !29
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr @test_count, align 4, !tbaa !5
  %1993 = load i16, ptr %44, align 2, !tbaa !29
  %1994 = call i32 @s2n_get_kem_from_extension_id(i16 noundef zeroext %1993, ptr noundef %43)
  %1995 = icmp eq i32 %1994, -1
  br i1 %1995, label %2049, label %1996

1996:                                             ; preds = %1990
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

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

2005:                                             ; preds = %1998
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = call i32 @fileno(ptr noundef %2006) #12
  %2008 = call i32 @isatty(i32 noundef %2007) #12
  %2009 = icmp ne i32 %2008, 0
  br i1 %2009, label %2010, label %2027

2010:                                             ; preds = %2005
  %2011 = load i32, ptr %45, align 4, !tbaa !5
  %2012 = call ptr @__errno_location() #13
  store i32 %2011, ptr %2012, align 4, !tbaa !5
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef @.str.16)
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef @.str.16)
  %2021 = call ptr @__errno_location() #13
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #12
  %2024 = call ptr @__errno_location() #13
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2013, ptr noundef @.str.14, i32 noundef %2014, ptr noundef @.str.42, ptr noundef @.str.13, i32 noundef 195, ptr noundef %2017, ptr noundef %2020, ptr noundef %2023, i32 noundef %2025) #12
  br label %2044

2027:                                             ; preds = %2005, %1998
  %2028 = load i32, ptr %45, align 4, !tbaa !5
  %2029 = call ptr @__errno_location() #13
  store i32 %2028, ptr %2029, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef @.str.16)
  %2035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror_debug(i32 noundef %2036, ptr noundef @.str.16)
  %2038 = call ptr @__errno_location() #13
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @strerror(i32 noundef %2039) #12
  %2041 = call ptr @__errno_location() #13
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef @.str.17, i32 noundef %2031, ptr noundef @.str.42, ptr noundef @.str.13, i32 noundef 195, ptr noundef %2034, ptr noundef %2037, ptr noundef %2040, i32 noundef %2042) #12
  br label %2044

2044:                                             ; preds = %2027, %2010
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  call void @exit(i32 noundef 1) #14
  unreachable

2047:                                             ; No predecessors!
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048, %1990
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = add nsw i32 %2053, 1
  store i32 %2054, ptr @test_count, align 4, !tbaa !5
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = icmp eq i32 %2056, 335544361
  br i1 %2057, label %2111, label %2058

2058:                                             ; preds = %2052
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #12
  %2061 = call ptr @__errno_location() #13
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  store i32 %2062, ptr %46, align 4, !tbaa !5
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @s2n_print_stacktrace(ptr noundef %2063)
  %2065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2066 = trunc i8 %2065 to i1
  br i1 %2066, label %2067, label %2089

2067:                                             ; preds = %2060
  %2068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2069 = call i32 @fileno(ptr noundef %2068) #12
  %2070 = call i32 @isatty(i32 noundef %2069) #12
  %2071 = icmp ne i32 %2070, 0
  br i1 %2071, label %2072, label %2089

2072:                                             ; preds = %2067
  %2073 = load i32, ptr %46, align 4, !tbaa !5
  %2074 = call ptr @__errno_location() #13
  store i32 %2073, ptr %2074, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef @.str.16)
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror_debug(i32 noundef %2081, ptr noundef @.str.16)
  %2083 = call ptr @__errno_location() #13
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @strerror(i32 noundef %2084) #12
  %2086 = call ptr @__errno_location() #13
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef @.str.14, i32 noundef %2076, ptr noundef @.str.22, ptr noundef @.str.13, i32 noundef 195, ptr noundef %2079, ptr noundef %2082, ptr noundef %2085, i32 noundef %2087) #12
  br label %2106

2089:                                             ; preds = %2067, %2060
  %2090 = load i32, ptr %46, align 4, !tbaa !5
  %2091 = call ptr @__errno_location() #13
  store i32 %2090, ptr %2091, align 4, !tbaa !5
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = load i32, ptr @test_count, align 4, !tbaa !5
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror(i32 noundef %2095, ptr noundef @.str.16)
  %2097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror_debug(i32 noundef %2098, ptr noundef @.str.16)
  %2100 = call ptr @__errno_location() #13
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @strerror(i32 noundef %2101) #12
  %2103 = call ptr @__errno_location() #13
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2092, ptr noundef @.str.17, i32 noundef %2093, ptr noundef @.str.22, ptr noundef @.str.13, i32 noundef 195, ptr noundef %2096, ptr noundef %2099, ptr noundef %2102, i32 noundef %2104) #12
  br label %2106

2106:                                             ; preds = %2089, %2072
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  call void @exit(i32 noundef 1) #14
  unreachable

2109:                                             ; No predecessors!
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110, %2052
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = add nsw i32 %2115, 1
  store i32 %2116, ptr @test_count, align 4, !tbaa !5
  %2117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call ptr @s2n_strerror_debug(i32 noundef %2118, ptr noundef @.str.16)
  %2120 = icmp eq ptr %2119, null
  br i1 %2120, label %2121, label %2174

2121:                                             ; preds = %2114
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

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

2130:                                             ; preds = %2123
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = call i32 @fileno(ptr noundef %2131) #12
  %2133 = call i32 @isatty(i32 noundef %2132) #12
  %2134 = icmp ne i32 %2133, 0
  br i1 %2134, label %2135, label %2152

2135:                                             ; preds = %2130
  %2136 = load i32, ptr %47, align 4, !tbaa !5
  %2137 = call ptr @__errno_location() #13
  store i32 %2136, ptr %2137, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror(i32 noundef %2141, ptr noundef @.str.16)
  %2143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror_debug(i32 noundef %2144, ptr noundef @.str.16)
  %2146 = call ptr @__errno_location() #13
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @strerror(i32 noundef %2147) #12
  %2149 = call ptr @__errno_location() #13
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2138, ptr noundef @.str.14, i32 noundef %2139, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 195, ptr noundef %2142, ptr noundef %2145, ptr noundef %2148, i32 noundef %2150) #12
  br label %2169

2152:                                             ; preds = %2130, %2123
  %2153 = load i32, ptr %47, align 4, !tbaa !5
  %2154 = call ptr @__errno_location() #13
  store i32 %2153, ptr %2154, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror(i32 noundef %2158, ptr noundef @.str.16)
  %2160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror_debug(i32 noundef %2161, ptr noundef @.str.16)
  %2163 = call ptr @__errno_location() #13
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @strerror(i32 noundef %2164) #12
  %2166 = call ptr @__errno_location() #13
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2155, ptr noundef @.str.17, i32 noundef %2156, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 195, ptr noundef %2159, ptr noundef %2162, ptr noundef %2165, i32 noundef %2167) #12
  br label %2169

2169:                                             ; preds = %2152, %2135
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #12
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170
  call void @exit(i32 noundef 1) #14
  unreachable

2172:                                             ; No predecessors!
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173, %2114
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2180, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2181 = call ptr @__errno_location() #13
  store i32 0, ptr %2181, align 4, !tbaa !5
  br label %2182

2182:                                             ; preds = %2179
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @llvm.lifetime.end.p0(i64 2, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #12
  store i32 0, ptr %48, align 4, !tbaa !5
  br label %2186

2186:                                             ; preds = %12162, %2185
  %2187 = load i32, ptr %48, align 4, !tbaa !5
  %2188 = icmp slt i32 %2187, 2
  br i1 %2188, label %2190, label %2189

2189:                                             ; preds = %2186
  store i32 217, ptr %30, align 4
  br label %12165

2190:                                             ; preds = %2186
  call void @llvm.lifetime.start.p0(i64 88, ptr %49) #12
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 88, i1 false)
  %2191 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %2191, align 8, !tbaa !32
  %2192 = load i32, ptr %48, align 4, !tbaa !5
  %2193 = icmp ne i32 %2192, 0
  %2194 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 4
  %2195 = zext i1 %2193 to i8
  store i8 %2195, ptr %2194, align 8, !tbaa !33
  br label %2196

2196:                                             ; preds = %2190
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr @test_count, align 4, !tbaa !5
  %2199 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 1
  %2200 = call i32 @s2n_alloc(ptr noundef %2199, i32 noundef 2)
  %2201 = icmp eq i32 %2200, -1
  br i1 %2201, label %2202, label %2255

2202:                                             ; preds = %2196
  br label %2203

2203:                                             ; preds = %2202
  br label %2204

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

2211:                                             ; preds = %2204
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = call i32 @fileno(ptr noundef %2212) #12
  %2214 = call i32 @isatty(i32 noundef %2213) #12
  %2215 = icmp ne i32 %2214, 0
  br i1 %2215, label %2216, label %2233

2216:                                             ; preds = %2211
  %2217 = load i32, ptr %50, align 4, !tbaa !5
  %2218 = call ptr @__errno_location() #13
  store i32 %2217, ptr %2218, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror(i32 noundef %2222, ptr noundef @.str.16)
  %2224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror_debug(i32 noundef %2225, ptr noundef @.str.16)
  %2227 = call ptr @__errno_location() #13
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @strerror(i32 noundef %2228) #12
  %2230 = call ptr @__errno_location() #13
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2219, ptr noundef @.str.14, i32 noundef %2220, ptr noundef @.str.43, ptr noundef @.str.13, i32 noundef 204, ptr noundef %2223, ptr noundef %2226, ptr noundef %2229, i32 noundef %2231) #12
  br label %2250

2233:                                             ; preds = %2211, %2204
  %2234 = load i32, ptr %50, align 4, !tbaa !5
  %2235 = call ptr @__errno_location() #13
  store i32 %2234, ptr %2235, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = load i32, ptr @test_count, align 4, !tbaa !5
  %2238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror(i32 noundef %2239, ptr noundef @.str.16)
  %2241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  %2243 = call ptr @s2n_strerror_debug(i32 noundef %2242, ptr noundef @.str.16)
  %2244 = call ptr @__errno_location() #13
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = call ptr @strerror(i32 noundef %2245) #12
  %2247 = call ptr @__errno_location() #13
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2236, ptr noundef @.str.17, i32 noundef %2237, ptr noundef @.str.43, ptr noundef @.str.13, i32 noundef 204, ptr noundef %2240, ptr noundef %2243, ptr noundef %2246, i32 noundef %2248) #12
  br label %2250

2250:                                             ; preds = %2233, %2216
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #12
  br label %2251

2251:                                             ; preds = %2250
  br label %2252

2252:                                             ; preds = %2251
  call void @exit(i32 noundef 1) #14
  unreachable

2253:                                             ; No predecessors!
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254, %2196
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

2258:                                             ; preds = %2257
  %2259 = load i32, ptr @test_count, align 4, !tbaa !5
  %2260 = add nsw i32 %2259, 1
  store i32 %2260, ptr @test_count, align 4, !tbaa !5
  %2261 = call i32 @s2n_kem_generate_keypair(ptr noundef %49)
  %2262 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %2261, ptr %2262, align 4
  %2263 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  %2264 = load i32, ptr %2263, align 4
  %2265 = call zeroext i1 @s2n_result_is_ok(i32 %2264)
  br i1 %2265, label %2319, label %2266

2266:                                             ; preds = %2258
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

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

2275:                                             ; preds = %2268
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @fileno(ptr noundef %2276) #12
  %2278 = call i32 @isatty(i32 noundef %2277) #12
  %2279 = icmp ne i32 %2278, 0
  br i1 %2279, label %2280, label %2297

2280:                                             ; preds = %2275
  %2281 = load i32, ptr %52, align 4, !tbaa !5
  %2282 = call ptr @__errno_location() #13
  store i32 %2281, ptr %2282, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef @.str.16)
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef @.str.16)
  %2291 = call ptr @__errno_location() #13
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #12
  %2294 = call ptr @__errno_location() #13
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef @.str.14, i32 noundef %2284, ptr noundef @.str.44, ptr noundef @.str.13, i32 noundef 205, ptr noundef %2287, ptr noundef %2290, ptr noundef %2293, i32 noundef %2295) #12
  br label %2314

2297:                                             ; preds = %2275, %2268
  %2298 = load i32, ptr %52, align 4, !tbaa !5
  %2299 = call ptr @__errno_location() #13
  store i32 %2298, ptr %2299, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror(i32 noundef %2303, ptr noundef @.str.16)
  %2305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef @.str.16)
  %2308 = call ptr @__errno_location() #13
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @strerror(i32 noundef %2309) #12
  %2311 = call ptr @__errno_location() #13
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef @.str.17, i32 noundef %2301, ptr noundef @.str.44, ptr noundef @.str.13, i32 noundef 205, ptr noundef %2304, ptr noundef %2307, ptr noundef %2310, i32 noundef %2312) #12
  br label %2314

2314:                                             ; preds = %2297, %2280
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #12
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  call void @exit(i32 noundef 1) #14
  unreachable

2317:                                             ; No predecessors!
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318, %2258
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 1
  %2326 = getelementptr inbounds %struct.s2n_blob, ptr %2325, i32 0, i32 1
  %2327 = load i32, ptr %2326, align 8, !tbaa !34
  %2328 = icmp eq i32 2, %2327
  br i1 %2328, label %2382, label %2329

2329:                                             ; preds = %2322
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #12
  %2332 = call ptr @__errno_location() #13
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  store i32 %2333, ptr %53, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334)
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc i8 %2336 to i1
  br i1 %2337, label %2338, label %2360

2338:                                             ; preds = %2331
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #12
  %2341 = call i32 @isatty(i32 noundef %2340) #12
  %2342 = icmp ne i32 %2341, 0
  br i1 %2342, label %2343, label %2360

2343:                                             ; preds = %2338
  %2344 = load i32, ptr %53, align 4, !tbaa !5
  %2345 = call ptr @__errno_location() #13
  store i32 %2344, ptr %2345, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef @.str.16)
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef @.str.16)
  %2354 = call ptr @__errno_location() #13
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @strerror(i32 noundef %2355) #12
  %2357 = call ptr @__errno_location() #13
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef @.str.14, i32 noundef %2347, ptr noundef @.str.45, ptr noundef @.str.13, i32 noundef 206, ptr noundef %2350, ptr noundef %2353, ptr noundef %2356, i32 noundef %2358) #12
  br label %2377

2360:                                             ; preds = %2338, %2331
  %2361 = load i32, ptr %53, align 4, !tbaa !5
  %2362 = call ptr @__errno_location() #13
  store i32 %2361, ptr %2362, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror(i32 noundef %2366, ptr noundef @.str.16)
  %2368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef @.str.16)
  %2371 = call ptr @__errno_location() #13
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #12
  %2374 = call ptr @__errno_location() #13
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef @.str.17, i32 noundef %2364, ptr noundef @.str.45, ptr noundef @.str.13, i32 noundef 206, ptr noundef %2367, ptr noundef %2370, ptr noundef %2373, i32 noundef %2375) #12
  br label %2377

2377:                                             ; preds = %2360, %2343
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #12
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  call void @exit(i32 noundef 1) #14
  unreachable

2380:                                             ; No predecessors!
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381, %2322
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = add nsw i32 %2386, 1
  store i32 %2387, ptr @test_count, align 4, !tbaa !5
  %2388 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 2
  %2389 = getelementptr inbounds %struct.s2n_blob, ptr %2388, i32 0, i32 1
  %2390 = load i32, ptr %2389, align 8, !tbaa !35
  %2391 = icmp eq i32 3, %2390
  br i1 %2391, label %2445, label %2392

2392:                                             ; preds = %2385
  br label %2393

2393:                                             ; preds = %2392
  br label %2394

2394:                                             ; preds = %2393
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #12
  %2395 = call ptr @__errno_location() #13
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  store i32 %2396, ptr %54, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @s2n_print_stacktrace(ptr noundef %2397)
  %2399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2400 = trunc i8 %2399 to i1
  br i1 %2400, label %2401, label %2423

2401:                                             ; preds = %2394
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @fileno(ptr noundef %2402) #12
  %2404 = call i32 @isatty(i32 noundef %2403) #12
  %2405 = icmp ne i32 %2404, 0
  br i1 %2405, label %2406, label %2423

2406:                                             ; preds = %2401
  %2407 = load i32, ptr %54, align 4, !tbaa !5
  %2408 = call ptr @__errno_location() #13
  store i32 %2407, ptr %2408, align 4, !tbaa !5
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = load i32, ptr @test_count, align 4, !tbaa !5
  %2411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror(i32 noundef %2412, ptr noundef @.str.16)
  %2414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @s2n_strerror_debug(i32 noundef %2415, ptr noundef @.str.16)
  %2417 = call ptr @__errno_location() #13
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @strerror(i32 noundef %2418) #12
  %2420 = call ptr @__errno_location() #13
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2409, ptr noundef @.str.14, i32 noundef %2410, ptr noundef @.str.46, ptr noundef @.str.13, i32 noundef 207, ptr noundef %2413, ptr noundef %2416, ptr noundef %2419, i32 noundef %2421) #12
  br label %2440

2423:                                             ; preds = %2401, %2394
  %2424 = load i32, ptr %54, align 4, !tbaa !5
  %2425 = call ptr @__errno_location() #13
  store i32 %2424, ptr %2425, align 4, !tbaa !5
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror(i32 noundef %2429, ptr noundef @.str.16)
  %2431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef @.str.16)
  %2434 = call ptr @__errno_location() #13
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @strerror(i32 noundef %2435) #12
  %2437 = call ptr @__errno_location() #13
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2426, ptr noundef @.str.17, i32 noundef %2427, ptr noundef @.str.46, ptr noundef @.str.13, i32 noundef 207, ptr noundef %2430, ptr noundef %2433, ptr noundef %2436, i32 noundef %2438) #12
  br label %2440

2440:                                             ; preds = %2423, %2406
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #12
  br label %2441

2441:                                             ; preds = %2440
  br label %2442

2442:                                             ; preds = %2441
  call void @exit(i32 noundef 1) #14
  unreachable

2443:                                             ; No predecessors!
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444, %2385
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448
  %2450 = load i32, ptr @test_count, align 4, !tbaa !5
  %2451 = add nsw i32 %2450, 1
  store i32 %2451, ptr @test_count, align 4, !tbaa !5
  %2452 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 1
  %2453 = getelementptr inbounds %struct.s2n_blob, ptr %2452, i32 0, i32 0
  %2454 = load ptr, ptr %2453, align 8, !tbaa !36
  %2455 = call i32 @memcmp(ptr noundef @TEST_PUBLIC_KEY, ptr noundef %2454, i64 noundef 2) #15
  %2456 = icmp eq i32 %2455, 0
  br i1 %2456, label %2510, label %2457

2457:                                             ; preds = %2449
  br label %2458

2458:                                             ; preds = %2457
  br label %2459

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

2466:                                             ; preds = %2459
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @fileno(ptr noundef %2467) #12
  %2469 = call i32 @isatty(i32 noundef %2468) #12
  %2470 = icmp ne i32 %2469, 0
  br i1 %2470, label %2471, label %2488

2471:                                             ; preds = %2466
  %2472 = load i32, ptr %55, align 4, !tbaa !5
  %2473 = call ptr @__errno_location() #13
  store i32 %2472, ptr %2473, align 4, !tbaa !5
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror(i32 noundef %2477, ptr noundef @.str.16)
  %2479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror_debug(i32 noundef %2480, ptr noundef @.str.16)
  %2482 = call ptr @__errno_location() #13
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #12
  %2485 = call ptr @__errno_location() #13
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2474, ptr noundef @.str.14, i32 noundef %2475, ptr noundef @.str.47, ptr noundef @.str.13, i32 noundef 208, ptr noundef %2478, ptr noundef %2481, ptr noundef %2484, i32 noundef %2486) #12
  br label %2505

2488:                                             ; preds = %2466, %2459
  %2489 = load i32, ptr %55, align 4, !tbaa !5
  %2490 = call ptr @__errno_location() #13
  store i32 %2489, ptr %2490, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef @.str.16)
  %2496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call ptr @s2n_strerror_debug(i32 noundef %2497, ptr noundef @.str.16)
  %2499 = call ptr @__errno_location() #13
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call ptr @strerror(i32 noundef %2500) #12
  %2502 = call ptr @__errno_location() #13
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef @.str.17, i32 noundef %2492, ptr noundef @.str.47, ptr noundef @.str.13, i32 noundef 208, ptr noundef %2495, ptr noundef %2498, ptr noundef %2501, i32 noundef %2503) #12
  br label %2505

2505:                                             ; preds = %2488, %2471
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506
  call void @exit(i32 noundef 1) #14
  unreachable

2508:                                             ; No predecessors!
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

2510:                                             ; preds = %2509, %2449
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = add nsw i32 %2517, 1
  store i32 %2518, ptr @test_count, align 4, !tbaa !5
  %2519 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 2
  %2520 = getelementptr inbounds %struct.s2n_blob, ptr %2519, i32 0, i32 0
  %2521 = load ptr, ptr %2520, align 8, !tbaa !37
  %2522 = call i32 @memcmp(ptr noundef @TEST_PRIVATE_KEY, ptr noundef %2521, i64 noundef 3) #15
  %2523 = icmp eq i32 %2522, 0
  br i1 %2523, label %2577, label %2524

2524:                                             ; preds = %2516
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

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

2533:                                             ; preds = %2526
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @fileno(ptr noundef %2534) #12
  %2536 = call i32 @isatty(i32 noundef %2535) #12
  %2537 = icmp ne i32 %2536, 0
  br i1 %2537, label %2538, label %2555

2538:                                             ; preds = %2533
  %2539 = load i32, ptr %56, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #13
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.16)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.16)
  %2549 = call ptr @__errno_location() #13
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #12
  %2552 = call ptr @__errno_location() #13
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.14, i32 noundef %2542, ptr noundef @.str.48, ptr noundef @.str.13, i32 noundef 209, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #12
  br label %2572

2555:                                             ; preds = %2533, %2526
  %2556 = load i32, ptr %56, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #13
  store i32 %2556, ptr %2557, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef @.str.16)
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef @.str.16)
  %2566 = call ptr @__errno_location() #13
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #12
  %2569 = call ptr @__errno_location() #13
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.17, i32 noundef %2559, ptr noundef @.str.48, ptr noundef @.str.13, i32 noundef 209, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #12
  br label %2572

2572:                                             ; preds = %2555, %2538
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

2574:                                             ; preds = %2573
  call void @exit(i32 noundef 1) #14
  unreachable

2575:                                             ; No predecessors!
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576, %2516
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

2582:                                             ; preds = %2581
  %2583 = load i32, ptr @test_count, align 4, !tbaa !5
  %2584 = add nsw i32 %2583, 1
  store i32 %2584, ptr @test_count, align 4, !tbaa !5
  %2585 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 3
  %2586 = getelementptr inbounds %struct.s2n_blob, ptr %2585, i32 0, i32 1
  %2587 = load i32, ptr %2586, align 8, !tbaa !38
  %2588 = icmp eq i32 0, %2587
  br i1 %2588, label %2642, label %2589

2589:                                             ; preds = %2582
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #12
  %2592 = call ptr @__errno_location() #13
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  store i32 %2593, ptr %57, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @s2n_print_stacktrace(ptr noundef %2594)
  %2596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2597 = trunc i8 %2596 to i1
  br i1 %2597, label %2598, label %2620

2598:                                             ; preds = %2591
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = call i32 @fileno(ptr noundef %2599) #12
  %2601 = call i32 @isatty(i32 noundef %2600) #12
  %2602 = icmp ne i32 %2601, 0
  br i1 %2602, label %2603, label %2620

2603:                                             ; preds = %2598
  %2604 = load i32, ptr %57, align 4, !tbaa !5
  %2605 = call ptr @__errno_location() #13
  store i32 %2604, ptr %2605, align 4, !tbaa !5
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = load i32, ptr @test_count, align 4, !tbaa !5
  %2608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror(i32 noundef %2609, ptr noundef @.str.16)
  %2611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @s2n_strerror_debug(i32 noundef %2612, ptr noundef @.str.16)
  %2614 = call ptr @__errno_location() #13
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @strerror(i32 noundef %2615) #12
  %2617 = call ptr @__errno_location() #13
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2606, ptr noundef @.str.14, i32 noundef %2607, ptr noundef @.str.49, ptr noundef @.str.13, i32 noundef 211, ptr noundef %2610, ptr noundef %2613, ptr noundef %2616, i32 noundef %2618) #12
  br label %2637

2620:                                             ; preds = %2598, %2591
  %2621 = load i32, ptr %57, align 4, !tbaa !5
  %2622 = call ptr @__errno_location() #13
  store i32 %2621, ptr %2622, align 4, !tbaa !5
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror(i32 noundef %2626, ptr noundef @.str.16)
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef @.str.16)
  %2631 = call ptr @__errno_location() #13
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #12
  %2634 = call ptr @__errno_location() #13
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2623, ptr noundef @.str.17, i32 noundef %2624, ptr noundef @.str.49, ptr noundef @.str.13, i32 noundef 211, ptr noundef %2627, ptr noundef %2630, ptr noundef %2633, i32 noundef %2635) #12
  br label %2637

2637:                                             ; preds = %2620, %2603
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  call void @exit(i32 noundef 1) #14
  unreachable

2640:                                             ; No predecessors!
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

2642:                                             ; preds = %2641, %2582
  br label %2643

2643:                                             ; preds = %2642
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

2645:                                             ; preds = %2644
  %2646 = load i32, ptr @test_count, align 4, !tbaa !5
  %2647 = add nsw i32 %2646, 1
  store i32 %2647, ptr @test_count, align 4, !tbaa !5
  %2648 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 3
  %2649 = getelementptr inbounds %struct.s2n_blob, ptr %2648, i32 0, i32 2
  %2650 = load i32, ptr %2649, align 4, !tbaa !39
  %2651 = icmp eq i32 0, %2650
  br i1 %2651, label %2705, label %2652

2652:                                             ; preds = %2645
  br label %2653

2653:                                             ; preds = %2652
  br label %2654

2654:                                             ; preds = %2653
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #12
  %2655 = call ptr @__errno_location() #13
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  store i32 %2656, ptr %58, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @s2n_print_stacktrace(ptr noundef %2657)
  %2659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2660 = trunc i8 %2659 to i1
  br i1 %2660, label %2661, label %2683

2661:                                             ; preds = %2654
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = call i32 @fileno(ptr noundef %2662) #12
  %2664 = call i32 @isatty(i32 noundef %2663) #12
  %2665 = icmp ne i32 %2664, 0
  br i1 %2665, label %2666, label %2683

2666:                                             ; preds = %2661
  %2667 = load i32, ptr %58, align 4, !tbaa !5
  %2668 = call ptr @__errno_location() #13
  store i32 %2667, ptr %2668, align 4, !tbaa !5
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = load i32, ptr @test_count, align 4, !tbaa !5
  %2671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call ptr @s2n_strerror(i32 noundef %2672, ptr noundef @.str.16)
  %2674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror_debug(i32 noundef %2675, ptr noundef @.str.16)
  %2677 = call ptr @__errno_location() #13
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @strerror(i32 noundef %2678) #12
  %2680 = call ptr @__errno_location() #13
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2669, ptr noundef @.str.14, i32 noundef %2670, ptr noundef @.str.50, ptr noundef @.str.13, i32 noundef 212, ptr noundef %2673, ptr noundef %2676, ptr noundef %2679, i32 noundef %2681) #12
  br label %2700

2683:                                             ; preds = %2661, %2654
  %2684 = load i32, ptr %58, align 4, !tbaa !5
  %2685 = call ptr @__errno_location() #13
  store i32 %2684, ptr %2685, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror(i32 noundef %2689, ptr noundef @.str.16)
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror_debug(i32 noundef %2692, ptr noundef @.str.16)
  %2694 = call ptr @__errno_location() #13
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @strerror(i32 noundef %2695) #12
  %2697 = call ptr @__errno_location() #13
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2686, ptr noundef @.str.17, i32 noundef %2687, ptr noundef @.str.50, ptr noundef @.str.13, i32 noundef 212, ptr noundef %2690, ptr noundef %2693, ptr noundef %2696, i32 noundef %2698) #12
  br label %2700

2700:                                             ; preds = %2683, %2666
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #12
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  call void @exit(i32 noundef 1) #14
  unreachable

2703:                                             ; No predecessors!
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704, %2645
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707
  %2709 = load i32, ptr @test_count, align 4, !tbaa !5
  %2710 = add nsw i32 %2709, 1
  store i32 %2710, ptr @test_count, align 4, !tbaa !5
  %2711 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 3
  %2712 = getelementptr inbounds %struct.s2n_blob, ptr %2711, i32 0, i32 0
  %2713 = load ptr, ptr %2712, align 8, !tbaa !40
  %2714 = icmp eq ptr %2713, null
  br i1 %2714, label %2768, label %2715

2715:                                             ; preds = %2708
  br label %2716

2716:                                             ; preds = %2715
  br label %2717

2717:                                             ; preds = %2716
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  %2718 = call ptr @__errno_location() #13
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  store i32 %2719, ptr %59, align 4, !tbaa !5
  %2720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2721 = call i32 @s2n_print_stacktrace(ptr noundef %2720)
  %2722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2723 = trunc i8 %2722 to i1
  br i1 %2723, label %2724, label %2746

2724:                                             ; preds = %2717
  %2725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2726 = call i32 @fileno(ptr noundef %2725) #12
  %2727 = call i32 @isatty(i32 noundef %2726) #12
  %2728 = icmp ne i32 %2727, 0
  br i1 %2728, label %2729, label %2746

2729:                                             ; preds = %2724
  %2730 = load i32, ptr %59, align 4, !tbaa !5
  %2731 = call ptr @__errno_location() #13
  store i32 %2730, ptr %2731, align 4, !tbaa !5
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror(i32 noundef %2735, ptr noundef @.str.16)
  %2737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @s2n_strerror_debug(i32 noundef %2738, ptr noundef @.str.16)
  %2740 = call ptr @__errno_location() #13
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @strerror(i32 noundef %2741) #12
  %2743 = call ptr @__errno_location() #13
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2732, ptr noundef @.str.14, i32 noundef %2733, ptr noundef @.str.51, ptr noundef @.str.13, i32 noundef 213, ptr noundef %2736, ptr noundef %2739, ptr noundef %2742, i32 noundef %2744) #12
  br label %2763

2746:                                             ; preds = %2724, %2717
  %2747 = load i32, ptr %59, align 4, !tbaa !5
  %2748 = call ptr @__errno_location() #13
  store i32 %2747, ptr %2748, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call ptr @s2n_strerror(i32 noundef %2752, ptr noundef @.str.16)
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef @.str.16)
  %2757 = call ptr @__errno_location() #13
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #12
  %2760 = call ptr @__errno_location() #13
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2749, ptr noundef @.str.17, i32 noundef %2750, ptr noundef @.str.51, ptr noundef @.str.13, i32 noundef 213, ptr noundef %2753, ptr noundef %2756, ptr noundef %2759, i32 noundef %2761) #12
  br label %2763

2763:                                             ; preds = %2746, %2729
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %2764

2764:                                             ; preds = %2763
  br label %2765

2765:                                             ; preds = %2764
  call void @exit(i32 noundef 1) #14
  unreachable

2766:                                             ; No predecessors!
  br label %2767

2767:                                             ; preds = %2766
  br label %2768

2768:                                             ; preds = %2767, %2708
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769
  call void @llvm.lifetime.start.p0(i64 88, ptr %60) #12
  call void @llvm.memset.p0.i64(ptr align 8 %60, i8 0, i64 88, i1 false)
  %2771 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %2771, align 8, !tbaa !32
  %2772 = load i32, ptr %48, align 4, !tbaa !5
  %2773 = icmp ne i32 %2772, 0
  %2774 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 4
  %2775 = zext i1 %2773 to i8
  store i8 %2775, ptr %2774, align 8, !tbaa !33
  br label %2776

2776:                                             ; preds = %2770
  %2777 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 1
  %2778 = call i32 @s2n_alloc(ptr noundef %2777, i32 noundef 2)
  %2779 = icmp sgt i32 %2778, -1
  br i1 %2779, label %2781, label %2780

2780:                                             ; preds = %2776
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %4013

2781:                                             ; preds = %2776
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  %2784 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 1
  %2785 = getelementptr inbounds %struct.s2n_blob, ptr %2784, i32 0, i32 0
  %2786 = load ptr, ptr %2785, align 8, !tbaa !36
  call void @llvm.memset.p0.i64(ptr align 1 %2786, i8 2, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #12
  call void @llvm.memset.p0.i64(ptr align 8 %61, i8 0, i64 24, i1 false)
  br label %2787

2787:                                             ; preds = %2783
  %2788 = call i32 @s2n_alloc(ptr noundef %61, i32 noundef 5)
  %2789 = icmp sgt i32 %2788, -1
  br i1 %2789, label %2791, label %2790

2790:                                             ; preds = %2787
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %4011

2791:                                             ; preds = %2787
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = add nsw i32 %2795, 1
  store i32 %2796, ptr @test_count, align 4, !tbaa !5
  %2797 = call i32 @s2n_kem_encapsulate(ptr noundef %60, ptr noundef %61)
  %2798 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  store i32 %2797, ptr %2798, align 4
  %2799 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  %2800 = load i32, ptr %2799, align 4
  %2801 = call zeroext i1 @s2n_result_is_ok(i32 %2800)
  br i1 %2801, label %2855, label %2802

2802:                                             ; preds = %2794
  br label %2803

2803:                                             ; preds = %2802
  br label %2804

2804:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  %2805 = call ptr @__errno_location() #13
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  store i32 %2806, ptr %63, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @s2n_print_stacktrace(ptr noundef %2807)
  %2809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2810 = trunc i8 %2809 to i1
  br i1 %2810, label %2811, label %2833

2811:                                             ; preds = %2804
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @fileno(ptr noundef %2812) #12
  %2814 = call i32 @isatty(i32 noundef %2813) #12
  %2815 = icmp ne i32 %2814, 0
  br i1 %2815, label %2816, label %2833

2816:                                             ; preds = %2811
  %2817 = load i32, ptr %63, align 4, !tbaa !5
  %2818 = call ptr @__errno_location() #13
  store i32 %2817, ptr %2818, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef @.str.16)
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror_debug(i32 noundef %2825, ptr noundef @.str.16)
  %2827 = call ptr @__errno_location() #13
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @strerror(i32 noundef %2828) #12
  %2830 = call ptr @__errno_location() #13
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2819, ptr noundef @.str.14, i32 noundef %2820, ptr noundef @.str.52, ptr noundef @.str.13, i32 noundef 225, ptr noundef %2823, ptr noundef %2826, ptr noundef %2829, i32 noundef %2831) #12
  br label %2850

2833:                                             ; preds = %2811, %2804
  %2834 = load i32, ptr %63, align 4, !tbaa !5
  %2835 = call ptr @__errno_location() #13
  store i32 %2834, ptr %2835, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = load i32, ptr @test_count, align 4, !tbaa !5
  %2838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror(i32 noundef %2839, ptr noundef @.str.16)
  %2841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror_debug(i32 noundef %2842, ptr noundef @.str.16)
  %2844 = call ptr @__errno_location() #13
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @strerror(i32 noundef %2845) #12
  %2847 = call ptr @__errno_location() #13
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2836, ptr noundef @.str.17, i32 noundef %2837, ptr noundef @.str.52, ptr noundef @.str.13, i32 noundef 225, ptr noundef %2840, ptr noundef %2843, ptr noundef %2846, i32 noundef %2848) #12
  br label %2850

2850:                                             ; preds = %2833, %2816
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

2852:                                             ; preds = %2851
  call void @exit(i32 noundef 1) #14
  unreachable

2853:                                             ; No predecessors!
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854, %2794
  br label %2856

2856:                                             ; preds = %2855
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  %2859 = load i32, ptr @test_count, align 4, !tbaa !5
  %2860 = add nsw i32 %2859, 1
  store i32 %2860, ptr @test_count, align 4, !tbaa !5
  %2861 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 3
  %2862 = getelementptr inbounds %struct.s2n_blob, ptr %2861, i32 0, i32 1
  %2863 = load i32, ptr %2862, align 8, !tbaa !38
  %2864 = icmp eq i32 4, %2863
  br i1 %2864, label %2918, label %2865

2865:                                             ; preds = %2858
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #12
  %2868 = call ptr @__errno_location() #13
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  store i32 %2869, ptr %64, align 4, !tbaa !5
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = call i32 @s2n_print_stacktrace(ptr noundef %2870)
  %2872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2873 = trunc i8 %2872 to i1
  br i1 %2873, label %2874, label %2896

2874:                                             ; preds = %2867
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = call i32 @fileno(ptr noundef %2875) #12
  %2877 = call i32 @isatty(i32 noundef %2876) #12
  %2878 = icmp ne i32 %2877, 0
  br i1 %2878, label %2879, label %2896

2879:                                             ; preds = %2874
  %2880 = load i32, ptr %64, align 4, !tbaa !5
  %2881 = call ptr @__errno_location() #13
  store i32 %2880, ptr %2881, align 4, !tbaa !5
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = load i32, ptr @test_count, align 4, !tbaa !5
  %2884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2885 = load i32, ptr %2884, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror(i32 noundef %2885, ptr noundef @.str.16)
  %2887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2888 = load i32, ptr %2887, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror_debug(i32 noundef %2888, ptr noundef @.str.16)
  %2890 = call ptr @__errno_location() #13
  %2891 = load i32, ptr %2890, align 4, !tbaa !5
  %2892 = call ptr @strerror(i32 noundef %2891) #12
  %2893 = call ptr @__errno_location() #13
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2882, ptr noundef @.str.14, i32 noundef %2883, ptr noundef @.str.53, ptr noundef @.str.13, i32 noundef 226, ptr noundef %2886, ptr noundef %2889, ptr noundef %2892, i32 noundef %2894) #12
  br label %2913

2896:                                             ; preds = %2874, %2867
  %2897 = load i32, ptr %64, align 4, !tbaa !5
  %2898 = call ptr @__errno_location() #13
  store i32 %2897, ptr %2898, align 4, !tbaa !5
  %2899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror(i32 noundef %2902, ptr noundef @.str.16)
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror_debug(i32 noundef %2905, ptr noundef @.str.16)
  %2907 = call ptr @__errno_location() #13
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @strerror(i32 noundef %2908) #12
  %2910 = call ptr @__errno_location() #13
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2899, ptr noundef @.str.17, i32 noundef %2900, ptr noundef @.str.53, ptr noundef @.str.13, i32 noundef 226, ptr noundef %2903, ptr noundef %2906, ptr noundef %2909, i32 noundef %2911) #12
  br label %2913

2913:                                             ; preds = %2896, %2879
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %2914

2914:                                             ; preds = %2913
  br label %2915

2915:                                             ; preds = %2914
  call void @exit(i32 noundef 1) #14
  unreachable

2916:                                             ; No predecessors!
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

2918:                                             ; preds = %2917, %2858
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = add nsw i32 %2922, 1
  store i32 %2923, ptr @test_count, align 4, !tbaa !5
  %2924 = getelementptr inbounds %struct.s2n_blob, ptr %61, i32 0, i32 1
  %2925 = load i32, ptr %2924, align 8, !tbaa !41
  %2926 = icmp eq i32 5, %2925
  br i1 %2926, label %2980, label %2927

2927:                                             ; preds = %2921
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #12
  %2930 = call ptr @__errno_location() #13
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  store i32 %2931, ptr %65, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = call i32 @s2n_print_stacktrace(ptr noundef %2932)
  %2934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2935 = trunc i8 %2934 to i1
  br i1 %2935, label %2936, label %2958

2936:                                             ; preds = %2929
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = call i32 @fileno(ptr noundef %2937) #12
  %2939 = call i32 @isatty(i32 noundef %2938) #12
  %2940 = icmp ne i32 %2939, 0
  br i1 %2940, label %2941, label %2958

2941:                                             ; preds = %2936
  %2942 = load i32, ptr %65, align 4, !tbaa !5
  %2943 = call ptr @__errno_location() #13
  store i32 %2942, ptr %2943, align 4, !tbaa !5
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2947 = load i32, ptr %2946, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror(i32 noundef %2947, ptr noundef @.str.16)
  %2949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  %2951 = call ptr @s2n_strerror_debug(i32 noundef %2950, ptr noundef @.str.16)
  %2952 = call ptr @__errno_location() #13
  %2953 = load i32, ptr %2952, align 4, !tbaa !5
  %2954 = call ptr @strerror(i32 noundef %2953) #12
  %2955 = call ptr @__errno_location() #13
  %2956 = load i32, ptr %2955, align 4, !tbaa !5
  %2957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef @.str.14, i32 noundef %2945, ptr noundef @.str.54, ptr noundef @.str.13, i32 noundef 227, ptr noundef %2948, ptr noundef %2951, ptr noundef %2954, i32 noundef %2956) #12
  br label %2975

2958:                                             ; preds = %2936, %2929
  %2959 = load i32, ptr %65, align 4, !tbaa !5
  %2960 = call ptr @__errno_location() #13
  store i32 %2959, ptr %2960, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2964 = load i32, ptr %2963, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror(i32 noundef %2964, ptr noundef @.str.16)
  %2966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2967 = load i32, ptr %2966, align 4, !tbaa !5
  %2968 = call ptr @s2n_strerror_debug(i32 noundef %2967, ptr noundef @.str.16)
  %2969 = call ptr @__errno_location() #13
  %2970 = load i32, ptr %2969, align 4, !tbaa !5
  %2971 = call ptr @strerror(i32 noundef %2970) #12
  %2972 = call ptr @__errno_location() #13
  %2973 = load i32, ptr %2972, align 4, !tbaa !5
  %2974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef @.str.17, i32 noundef %2962, ptr noundef @.str.54, ptr noundef @.str.13, i32 noundef 227, ptr noundef %2965, ptr noundef %2968, ptr noundef %2971, i32 noundef %2973) #12
  br label %2975

2975:                                             ; preds = %2958, %2941
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #12
  br label %2976

2976:                                             ; preds = %2975
  br label %2977

2977:                                             ; preds = %2976
  call void @exit(i32 noundef 1) #14
  unreachable

2978:                                             ; No predecessors!
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979, %2921
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

2984:                                             ; preds = %2983
  %2985 = load i32, ptr @test_count, align 4, !tbaa !5
  %2986 = add nsw i32 %2985, 1
  store i32 %2986, ptr @test_count, align 4, !tbaa !5
  %2987 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 3
  %2988 = getelementptr inbounds %struct.s2n_blob, ptr %2987, i32 0, i32 0
  %2989 = load ptr, ptr %2988, align 8, !tbaa !40
  %2990 = call i32 @memcmp(ptr noundef @TEST_SHARED_SECRET, ptr noundef %2989, i64 noundef 4) #15
  %2991 = icmp eq i32 %2990, 0
  br i1 %2991, label %3045, label %2992

2992:                                             ; preds = %2984
  br label %2993

2993:                                             ; preds = %2992
  br label %2994

2994:                                             ; preds = %2993
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #12
  %2995 = call ptr @__errno_location() #13
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  store i32 %2996, ptr %66, align 4, !tbaa !5
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = call i32 @s2n_print_stacktrace(ptr noundef %2997)
  %2999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3000 = trunc i8 %2999 to i1
  br i1 %3000, label %3001, label %3023

3001:                                             ; preds = %2994
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = call i32 @fileno(ptr noundef %3002) #12
  %3004 = call i32 @isatty(i32 noundef %3003) #12
  %3005 = icmp ne i32 %3004, 0
  br i1 %3005, label %3006, label %3023

3006:                                             ; preds = %3001
  %3007 = load i32, ptr %66, align 4, !tbaa !5
  %3008 = call ptr @__errno_location() #13
  store i32 %3007, ptr %3008, align 4, !tbaa !5
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call ptr @s2n_strerror(i32 noundef %3012, ptr noundef @.str.16)
  %3014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = call ptr @s2n_strerror_debug(i32 noundef %3015, ptr noundef @.str.16)
  %3017 = call ptr @__errno_location() #13
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  %3019 = call ptr @strerror(i32 noundef %3018) #12
  %3020 = call ptr @__errno_location() #13
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3009, ptr noundef @.str.14, i32 noundef %3010, ptr noundef @.str.55, ptr noundef @.str.13, i32 noundef 228, ptr noundef %3013, ptr noundef %3016, ptr noundef %3019, i32 noundef %3021) #12
  br label %3040

3023:                                             ; preds = %3001, %2994
  %3024 = load i32, ptr %66, align 4, !tbaa !5
  %3025 = call ptr @__errno_location() #13
  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.16)
  %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.16)
  %3034 = call ptr @__errno_location() #13
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = call ptr @strerror(i32 noundef %3035) #12
  %3037 = call ptr @__errno_location() #13
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3026, ptr noundef @.str.17, i32 noundef %3027, ptr noundef @.str.55, ptr noundef @.str.13, i32 noundef 228, ptr noundef %3030, ptr noundef %3033, ptr noundef %3036, i32 noundef %3038) #12
  br label %3040

3040:                                             ; preds = %3023, %3006
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #12
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  call void @exit(i32 noundef 1) #14
  unreachable

3043:                                             ; No predecessors!
  br label %3044

3044:                                             ; preds = %3043
  br label %3045

3045:                                             ; preds = %3044, %2984
  br label %3046

3046:                                             ; preds = %3045
  br label %3047

3047:                                             ; preds = %3046
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

3050:                                             ; preds = %3049
  br label %3051

3051:                                             ; preds = %3050
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = add nsw i32 %3052, 1
  store i32 %3053, ptr @test_count, align 4, !tbaa !5
  %3054 = getelementptr inbounds %struct.s2n_blob, ptr %61, i32 0, i32 0
  %3055 = load ptr, ptr %3054, align 8, !tbaa !42
  %3056 = call i32 @memcmp(ptr noundef @TEST_CIPHERTEXT, ptr noundef %3055, i64 noundef 5) #15
  %3057 = icmp eq i32 %3056, 0
  br i1 %3057, label %3111, label %3058

3058:                                             ; preds = %3051
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #12
  %3061 = call ptr @__errno_location() #13
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  store i32 %3062, ptr %67, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @s2n_print_stacktrace(ptr noundef %3063)
  %3065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3066 = trunc i8 %3065 to i1
  br i1 %3066, label %3067, label %3089

3067:                                             ; preds = %3060
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @fileno(ptr noundef %3068) #12
  %3070 = call i32 @isatty(i32 noundef %3069) #12
  %3071 = icmp ne i32 %3070, 0
  br i1 %3071, label %3072, label %3089

3072:                                             ; preds = %3067
  %3073 = load i32, ptr %67, align 4, !tbaa !5
  %3074 = call ptr @__errno_location() #13
  store i32 %3073, ptr %3074, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = load i32, ptr @test_count, align 4, !tbaa !5
  %3077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3078 = load i32, ptr %3077, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror(i32 noundef %3078, ptr noundef @.str.16)
  %3080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror_debug(i32 noundef %3081, ptr noundef @.str.16)
  %3083 = call ptr @__errno_location() #13
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call ptr @strerror(i32 noundef %3084) #12
  %3086 = call ptr @__errno_location() #13
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3075, ptr noundef @.str.14, i32 noundef %3076, ptr noundef @.str.56, ptr noundef @.str.13, i32 noundef 229, ptr noundef %3079, ptr noundef %3082, ptr noundef %3085, i32 noundef %3087) #12
  br label %3106

3089:                                             ; preds = %3067, %3060
  %3090 = load i32, ptr %67, align 4, !tbaa !5
  %3091 = call ptr @__errno_location() #13
  store i32 %3090, ptr %3091, align 4, !tbaa !5
  %3092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3093 = load i32, ptr @test_count, align 4, !tbaa !5
  %3094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror(i32 noundef %3095, ptr noundef @.str.16)
  %3097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @s2n_strerror_debug(i32 noundef %3098, ptr noundef @.str.16)
  %3100 = call ptr @__errno_location() #13
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @strerror(i32 noundef %3101) #12
  %3103 = call ptr @__errno_location() #13
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3092, ptr noundef @.str.17, i32 noundef %3093, ptr noundef @.str.56, ptr noundef @.str.13, i32 noundef 229, ptr noundef %3096, ptr noundef %3099, ptr noundef %3102, i32 noundef %3104) #12
  br label %3106

3106:                                             ; preds = %3089, %3072
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #12
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

3108:                                             ; preds = %3107
  call void @exit(i32 noundef 1) #14
  unreachable

3109:                                             ; No predecessors!
  br label %3110

3110:                                             ; preds = %3109
  br label %3111

3111:                                             ; preds = %3110, %3051
  br label %3112

3112:                                             ; preds = %3111
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

3116:                                             ; preds = %3115
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = add nsw i32 %3117, 1
  store i32 %3118, ptr @test_count, align 4, !tbaa !5
  %3119 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 1
  %3120 = getelementptr inbounds %struct.s2n_blob, ptr %3119, i32 0, i32 1
  %3121 = load i32, ptr %3120, align 8, !tbaa !34
  %3122 = icmp eq i32 2, %3121
  br i1 %3122, label %3176, label %3123

3123:                                             ; preds = %3116
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #12
  %3126 = call ptr @__errno_location() #13
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  store i32 %3127, ptr %68, align 4, !tbaa !5
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = call i32 @s2n_print_stacktrace(ptr noundef %3128)
  %3130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3131 = trunc i8 %3130 to i1
  br i1 %3131, label %3132, label %3154

3132:                                             ; preds = %3125
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3134 = call i32 @fileno(ptr noundef %3133) #12
  %3135 = call i32 @isatty(i32 noundef %3134) #12
  %3136 = icmp ne i32 %3135, 0
  br i1 %3136, label %3137, label %3154

3137:                                             ; preds = %3132
  %3138 = load i32, ptr %68, align 4, !tbaa !5
  %3139 = call ptr @__errno_location() #13
  store i32 %3138, ptr %3139, align 4, !tbaa !5
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3141 = load i32, ptr @test_count, align 4, !tbaa !5
  %3142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3143 = load i32, ptr %3142, align 4, !tbaa !5
  %3144 = call ptr @s2n_strerror(i32 noundef %3143, ptr noundef @.str.16)
  %3145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3146 = load i32, ptr %3145, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror_debug(i32 noundef %3146, ptr noundef @.str.16)
  %3148 = call ptr @__errno_location() #13
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call ptr @strerror(i32 noundef %3149) #12
  %3151 = call ptr @__errno_location() #13
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3140, ptr noundef @.str.14, i32 noundef %3141, ptr noundef @.str.57, ptr noundef @.str.13, i32 noundef 231, ptr noundef %3144, ptr noundef %3147, ptr noundef %3150, i32 noundef %3152) #12
  br label %3171

3154:                                             ; preds = %3132, %3125
  %3155 = load i32, ptr %68, align 4, !tbaa !5
  %3156 = call ptr @__errno_location() #13
  store i32 %3155, ptr %3156, align 4, !tbaa !5
  %3157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3160 = load i32, ptr %3159, align 4, !tbaa !5
  %3161 = call ptr @s2n_strerror(i32 noundef %3160, ptr noundef @.str.16)
  %3162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror_debug(i32 noundef %3163, ptr noundef @.str.16)
  %3165 = call ptr @__errno_location() #13
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  %3167 = call ptr @strerror(i32 noundef %3166) #12
  %3168 = call ptr @__errno_location() #13
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3157, ptr noundef @.str.17, i32 noundef %3158, ptr noundef @.str.57, ptr noundef @.str.13, i32 noundef 231, ptr noundef %3161, ptr noundef %3164, ptr noundef %3167, i32 noundef %3169) #12
  br label %3171

3171:                                             ; preds = %3154, %3137
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #12
  br label %3172

3172:                                             ; preds = %3171
  br label %3173

3173:                                             ; preds = %3172
  call void @exit(i32 noundef 1) #14
  unreachable

3174:                                             ; No predecessors!
  br label %3175

3175:                                             ; preds = %3174
  br label %3176

3176:                                             ; preds = %3175, %3116
  br label %3177

3177:                                             ; preds = %3176
  br label %3178

3178:                                             ; preds = %3177
  br label %3179

3179:                                             ; preds = %3178
  br label %3180

3180:                                             ; preds = %3179
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  %3182 = add nsw i32 %3181, 1
  store i32 %3182, ptr @test_count, align 4, !tbaa !5
  %3183 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 1
  %3184 = getelementptr inbounds %struct.s2n_blob, ptr %3183, i32 0, i32 0
  %3185 = load ptr, ptr %3184, align 8, !tbaa !36
  %3186 = call i32 @memcmp(ptr noundef @TEST_PUBLIC_KEY, ptr noundef %3185, i64 noundef 2) #15
  %3187 = icmp eq i32 %3186, 0
  br i1 %3187, label %3241, label %3188

3188:                                             ; preds = %3180
  br label %3189

3189:                                             ; preds = %3188
  br label %3190

3190:                                             ; preds = %3189
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #12
  %3191 = call ptr @__errno_location() #13
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  store i32 %3192, ptr %69, align 4, !tbaa !5
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = call i32 @s2n_print_stacktrace(ptr noundef %3193)
  %3195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3196 = trunc i8 %3195 to i1
  br i1 %3196, label %3197, label %3219

3197:                                             ; preds = %3190
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = call i32 @fileno(ptr noundef %3198) #12
  %3200 = call i32 @isatty(i32 noundef %3199) #12
  %3201 = icmp ne i32 %3200, 0
  br i1 %3201, label %3202, label %3219

3202:                                             ; preds = %3197
  %3203 = load i32, ptr %69, align 4, !tbaa !5
  %3204 = call ptr @__errno_location() #13
  store i32 %3203, ptr %3204, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = load i32, ptr @test_count, align 4, !tbaa !5
  %3207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror(i32 noundef %3208, ptr noundef @.str.16)
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror_debug(i32 noundef %3211, ptr noundef @.str.16)
  %3213 = call ptr @__errno_location() #13
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @strerror(i32 noundef %3214) #12
  %3216 = call ptr @__errno_location() #13
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3205, ptr noundef @.str.14, i32 noundef %3206, ptr noundef @.str.58, ptr noundef @.str.13, i32 noundef 232, ptr noundef %3209, ptr noundef %3212, ptr noundef %3215, i32 noundef %3217) #12
  br label %3236

3219:                                             ; preds = %3197, %3190
  %3220 = load i32, ptr %69, align 4, !tbaa !5
  %3221 = call ptr @__errno_location() #13
  store i32 %3220, ptr %3221, align 4, !tbaa !5
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = load i32, ptr @test_count, align 4, !tbaa !5
  %3224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call ptr @s2n_strerror(i32 noundef %3225, ptr noundef @.str.16)
  %3227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror_debug(i32 noundef %3228, ptr noundef @.str.16)
  %3230 = call ptr @__errno_location() #13
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call ptr @strerror(i32 noundef %3231) #12
  %3233 = call ptr @__errno_location() #13
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3222, ptr noundef @.str.17, i32 noundef %3223, ptr noundef @.str.58, ptr noundef @.str.13, i32 noundef 232, ptr noundef %3226, ptr noundef %3229, ptr noundef %3232, i32 noundef %3234) #12
  br label %3236

3236:                                             ; preds = %3219, %3202
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #12
  br label %3237

3237:                                             ; preds = %3236
  br label %3238

3238:                                             ; preds = %3237
  call void @exit(i32 noundef 1) #14
  unreachable

3239:                                             ; No predecessors!
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

3241:                                             ; preds = %3240, %3180
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245
  %3247 = load i32, ptr @test_count, align 4, !tbaa !5
  %3248 = add nsw i32 %3247, 1
  store i32 %3248, ptr @test_count, align 4, !tbaa !5
  %3249 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 2
  %3250 = getelementptr inbounds %struct.s2n_blob, ptr %3249, i32 0, i32 1
  %3251 = load i32, ptr %3250, align 8, !tbaa !35
  %3252 = icmp eq i32 0, %3251
  br i1 %3252, label %3306, label %3253

3253:                                             ; preds = %3246
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #12
  %3256 = call ptr @__errno_location() #13
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  store i32 %3257, ptr %70, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @s2n_print_stacktrace(ptr noundef %3258)
  %3260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3261 = trunc i8 %3260 to i1
  br i1 %3261, label %3262, label %3284

3262:                                             ; preds = %3255
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #12
  %3265 = call i32 @isatty(i32 noundef %3264) #12
  %3266 = icmp ne i32 %3265, 0
  br i1 %3266, label %3267, label %3284

3267:                                             ; preds = %3262
  %3268 = load i32, ptr %70, align 4, !tbaa !5
  %3269 = call ptr @__errno_location() #13
  store i32 %3268, ptr %3269, align 4, !tbaa !5
  %3270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3271 = load i32, ptr @test_count, align 4, !tbaa !5
  %3272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror(i32 noundef %3273, ptr noundef @.str.16)
  %3275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror_debug(i32 noundef %3276, ptr noundef @.str.16)
  %3278 = call ptr @__errno_location() #13
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #12
  %3281 = call ptr @__errno_location() #13
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3270, ptr noundef @.str.14, i32 noundef %3271, ptr noundef @.str.59, ptr noundef @.str.13, i32 noundef 233, ptr noundef %3274, ptr noundef %3277, ptr noundef %3280, i32 noundef %3282) #12
  br label %3301

3284:                                             ; preds = %3262, %3255
  %3285 = load i32, ptr %70, align 4, !tbaa !5
  %3286 = call ptr @__errno_location() #13
  store i32 %3285, ptr %3286, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call ptr @s2n_strerror(i32 noundef %3290, ptr noundef @.str.16)
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror_debug(i32 noundef %3293, ptr noundef @.str.16)
  %3295 = call ptr @__errno_location() #13
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #12
  %3298 = call ptr @__errno_location() #13
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef @.str.17, i32 noundef %3288, ptr noundef @.str.59, ptr noundef @.str.13, i32 noundef 233, ptr noundef %3291, ptr noundef %3294, ptr noundef %3297, i32 noundef %3299) #12
  br label %3301

3301:                                             ; preds = %3284, %3267
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #12
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

3303:                                             ; preds = %3302
  call void @exit(i32 noundef 1) #14
  unreachable

3304:                                             ; No predecessors!
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305, %3246
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 2
  %3313 = getelementptr inbounds %struct.s2n_blob, ptr %3312, i32 0, i32 2
  %3314 = load i32, ptr %3313, align 4, !tbaa !43
  %3315 = icmp eq i32 0, %3314
  br i1 %3315, label %3369, label %3316

3316:                                             ; preds = %3309
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

3318:                                             ; preds = %3317
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #12
  %3319 = call ptr @__errno_location() #13
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  store i32 %3320, ptr %71, align 4, !tbaa !5
  %3321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3322 = call i32 @s2n_print_stacktrace(ptr noundef %3321)
  %3323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3324 = trunc i8 %3323 to i1
  br i1 %3324, label %3325, label %3347

3325:                                             ; preds = %3318
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = call i32 @fileno(ptr noundef %3326) #12
  %3328 = call i32 @isatty(i32 noundef %3327) #12
  %3329 = icmp ne i32 %3328, 0
  br i1 %3329, label %3330, label %3347

3330:                                             ; preds = %3325
  %3331 = load i32, ptr %71, align 4, !tbaa !5
  %3332 = call ptr @__errno_location() #13
  store i32 %3331, ptr %3332, align 4, !tbaa !5
  %3333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3334 = load i32, ptr @test_count, align 4, !tbaa !5
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = call ptr @s2n_strerror(i32 noundef %3336, ptr noundef @.str.16)
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror_debug(i32 noundef %3339, ptr noundef @.str.16)
  %3341 = call ptr @__errno_location() #13
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call ptr @strerror(i32 noundef %3342) #12
  %3344 = call ptr @__errno_location() #13
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3333, ptr noundef @.str.14, i32 noundef %3334, ptr noundef @.str.60, ptr noundef @.str.13, i32 noundef 234, ptr noundef %3337, ptr noundef %3340, ptr noundef %3343, i32 noundef %3345) #12
  br label %3364

3347:                                             ; preds = %3325, %3318
  %3348 = load i32, ptr %71, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #13
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.16)
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef @.str.16)
  %3358 = call ptr @__errno_location() #13
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #12
  %3361 = call ptr @__errno_location() #13
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.17, i32 noundef %3351, ptr noundef @.str.60, ptr noundef @.str.13, i32 noundef 234, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #12
  br label %3364

3364:                                             ; preds = %3347, %3330
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #12
  br label %3365

3365:                                             ; preds = %3364
  br label %3366

3366:                                             ; preds = %3365
  call void @exit(i32 noundef 1) #14
  unreachable

3367:                                             ; No predecessors!
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

3369:                                             ; preds = %3368, %3309
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

3371:                                             ; preds = %3370
  br label %3372

3372:                                             ; preds = %3371
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = add nsw i32 %3373, 1
  store i32 %3374, ptr @test_count, align 4, !tbaa !5
  %3375 = getelementptr inbounds %struct.s2n_kem_params, ptr %60, i32 0, i32 2
  %3376 = getelementptr inbounds %struct.s2n_blob, ptr %3375, i32 0, i32 0
  %3377 = load ptr, ptr %3376, align 8, !tbaa !37
  %3378 = icmp eq ptr %3377, null
  br i1 %3378, label %3432, label %3379

3379:                                             ; preds = %3372
  br label %3380

3380:                                             ; preds = %3379
  br label %3381

3381:                                             ; preds = %3380
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #12
  %3382 = call ptr @__errno_location() #13
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  store i32 %3383, ptr %72, align 4, !tbaa !5
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = call i32 @s2n_print_stacktrace(ptr noundef %3384)
  %3386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3387 = trunc i8 %3386 to i1
  br i1 %3387, label %3388, label %3410

3388:                                             ; preds = %3381
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = call i32 @fileno(ptr noundef %3389) #12
  %3391 = call i32 @isatty(i32 noundef %3390) #12
  %3392 = icmp ne i32 %3391, 0
  br i1 %3392, label %3393, label %3410

3393:                                             ; preds = %3388
  %3394 = load i32, ptr %72, align 4, !tbaa !5
  %3395 = call ptr @__errno_location() #13
  store i32 %3394, ptr %3395, align 4, !tbaa !5
  %3396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3397 = load i32, ptr @test_count, align 4, !tbaa !5
  %3398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @s2n_strerror(i32 noundef %3399, ptr noundef @.str.16)
  %3401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror_debug(i32 noundef %3402, ptr noundef @.str.16)
  %3404 = call ptr @__errno_location() #13
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @strerror(i32 noundef %3405) #12
  %3407 = call ptr @__errno_location() #13
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3396, ptr noundef @.str.14, i32 noundef %3397, ptr noundef @.str.61, ptr noundef @.str.13, i32 noundef 235, ptr noundef %3400, ptr noundef %3403, ptr noundef %3406, i32 noundef %3408) #12
  br label %3427

3410:                                             ; preds = %3388, %3381
  %3411 = load i32, ptr %72, align 4, !tbaa !5
  %3412 = call ptr @__errno_location() #13
  store i32 %3411, ptr %3412, align 4, !tbaa !5
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef @.str.16)
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror_debug(i32 noundef %3419, ptr noundef @.str.16)
  %3421 = call ptr @__errno_location() #13
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @strerror(i32 noundef %3422) #12
  %3424 = call ptr @__errno_location() #13
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3413, ptr noundef @.str.17, i32 noundef %3414, ptr noundef @.str.61, ptr noundef @.str.13, i32 noundef 235, ptr noundef %3417, ptr noundef %3420, ptr noundef %3423, i32 noundef %3425) #12
  br label %3427

3427:                                             ; preds = %3410, %3393
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #12
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

3429:                                             ; preds = %3428
  call void @exit(i32 noundef 1) #14
  unreachable

3430:                                             ; No predecessors!
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431, %3372
  br label %3433

3433:                                             ; preds = %3432
  br label %3434

3434:                                             ; preds = %3433
  br label %3435

3435:                                             ; preds = %3434
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = add nsw i32 %3436, 1
  store i32 %3437, ptr @test_count, align 4, !tbaa !5
  %3438 = call i32 @s2n_kem_decapsulate(ptr noundef %49, ptr noundef %61)
  %3439 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %3438, ptr %3439, align 4
  %3440 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %3441 = load i32, ptr %3440, align 4
  %3442 = call zeroext i1 @s2n_result_is_ok(i32 %3441)
  br i1 %3442, label %3496, label %3443

3443:                                             ; preds = %3435
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

3445:                                             ; preds = %3444
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #12
  %3446 = call ptr @__errno_location() #13
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  store i32 %3447, ptr %74, align 4, !tbaa !5
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = call i32 @s2n_print_stacktrace(ptr noundef %3448)
  %3450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3451 = trunc i8 %3450 to i1
  br i1 %3451, label %3452, label %3474

3452:                                             ; preds = %3445
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @fileno(ptr noundef %3453) #12
  %3455 = call i32 @isatty(i32 noundef %3454) #12
  %3456 = icmp ne i32 %3455, 0
  br i1 %3456, label %3457, label %3474

3457:                                             ; preds = %3452
  %3458 = load i32, ptr %74, align 4, !tbaa !5
  %3459 = call ptr @__errno_location() #13
  store i32 %3458, ptr %3459, align 4, !tbaa !5
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = load i32, ptr @test_count, align 4, !tbaa !5
  %3462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call ptr @s2n_strerror(i32 noundef %3463, ptr noundef @.str.16)
  %3465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @s2n_strerror_debug(i32 noundef %3466, ptr noundef @.str.16)
  %3468 = call ptr @__errno_location() #13
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call ptr @strerror(i32 noundef %3469) #12
  %3471 = call ptr @__errno_location() #13
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3460, ptr noundef @.str.14, i32 noundef %3461, ptr noundef @.str.62, ptr noundef @.str.13, i32 noundef 237, ptr noundef %3464, ptr noundef %3467, ptr noundef %3470, i32 noundef %3472) #12
  br label %3491

3474:                                             ; preds = %3452, %3445
  %3475 = load i32, ptr %74, align 4, !tbaa !5
  %3476 = call ptr @__errno_location() #13
  store i32 %3475, ptr %3476, align 4, !tbaa !5
  %3477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3478 = load i32, ptr @test_count, align 4, !tbaa !5
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror(i32 noundef %3480, ptr noundef @.str.16)
  %3482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror_debug(i32 noundef %3483, ptr noundef @.str.16)
  %3485 = call ptr @__errno_location() #13
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call ptr @strerror(i32 noundef %3486) #12
  %3488 = call ptr @__errno_location() #13
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3477, ptr noundef @.str.17, i32 noundef %3478, ptr noundef @.str.62, ptr noundef @.str.13, i32 noundef 237, ptr noundef %3481, ptr noundef %3484, ptr noundef %3487, i32 noundef %3489) #12
  br label %3491

3491:                                             ; preds = %3474, %3457
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #12
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  call void @exit(i32 noundef 1) #14
  unreachable

3494:                                             ; No predecessors!
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

3496:                                             ; preds = %3495, %3435
  br label %3497

3497:                                             ; preds = %3496
  br label %3498

3498:                                             ; preds = %3497
  br label %3499

3499:                                             ; preds = %3498
  %3500 = load i32, ptr @test_count, align 4, !tbaa !5
  %3501 = add nsw i32 %3500, 1
  store i32 %3501, ptr @test_count, align 4, !tbaa !5
  %3502 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 3
  %3503 = getelementptr inbounds %struct.s2n_blob, ptr %3502, i32 0, i32 1
  %3504 = load i32, ptr %3503, align 8, !tbaa !38
  %3505 = icmp eq i32 4, %3504
  br i1 %3505, label %3559, label %3506

3506:                                             ; preds = %3499
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

3508:                                             ; preds = %3507
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #12
  %3509 = call ptr @__errno_location() #13
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  store i32 %3510, ptr %75, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = call i32 @s2n_print_stacktrace(ptr noundef %3511)
  %3513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3514 = trunc i8 %3513 to i1
  br i1 %3514, label %3515, label %3537

3515:                                             ; preds = %3508
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @fileno(ptr noundef %3516) #12
  %3518 = call i32 @isatty(i32 noundef %3517) #12
  %3519 = icmp ne i32 %3518, 0
  br i1 %3519, label %3520, label %3537

3520:                                             ; preds = %3515
  %3521 = load i32, ptr %75, align 4, !tbaa !5
  %3522 = call ptr @__errno_location() #13
  store i32 %3521, ptr %3522, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror(i32 noundef %3526, ptr noundef @.str.16)
  %3528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror_debug(i32 noundef %3529, ptr noundef @.str.16)
  %3531 = call ptr @__errno_location() #13
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @strerror(i32 noundef %3532) #12
  %3534 = call ptr @__errno_location() #13
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3523, ptr noundef @.str.14, i32 noundef %3524, ptr noundef @.str.63, ptr noundef @.str.13, i32 noundef 238, ptr noundef %3527, ptr noundef %3530, ptr noundef %3533, i32 noundef %3535) #12
  br label %3554

3537:                                             ; preds = %3515, %3508
  %3538 = load i32, ptr %75, align 4, !tbaa !5
  %3539 = call ptr @__errno_location() #13
  store i32 %3538, ptr %3539, align 4, !tbaa !5
  %3540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3541 = load i32, ptr @test_count, align 4, !tbaa !5
  %3542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3543 = load i32, ptr %3542, align 4, !tbaa !5
  %3544 = call ptr @s2n_strerror(i32 noundef %3543, ptr noundef @.str.16)
  %3545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  %3547 = call ptr @s2n_strerror_debug(i32 noundef %3546, ptr noundef @.str.16)
  %3548 = call ptr @__errno_location() #13
  %3549 = load i32, ptr %3548, align 4, !tbaa !5
  %3550 = call ptr @strerror(i32 noundef %3549) #12
  %3551 = call ptr @__errno_location() #13
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  %3553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3540, ptr noundef @.str.17, i32 noundef %3541, ptr noundef @.str.63, ptr noundef @.str.13, i32 noundef 238, ptr noundef %3544, ptr noundef %3547, ptr noundef %3550, i32 noundef %3552) #12
  br label %3554

3554:                                             ; preds = %3537, %3520
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #12
  br label %3555

3555:                                             ; preds = %3554
  br label %3556

3556:                                             ; preds = %3555
  call void @exit(i32 noundef 1) #14
  unreachable

3557:                                             ; No predecessors!
  br label %3558

3558:                                             ; preds = %3557
  br label %3559

3559:                                             ; preds = %3558, %3499
  br label %3560

3560:                                             ; preds = %3559
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  br label %3563

3563:                                             ; preds = %3562
  %3564 = load i32, ptr @test_count, align 4, !tbaa !5
  %3565 = add nsw i32 %3564, 1
  store i32 %3565, ptr @test_count, align 4, !tbaa !5
  %3566 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 3
  %3567 = getelementptr inbounds %struct.s2n_blob, ptr %3566, i32 0, i32 0
  %3568 = load ptr, ptr %3567, align 8, !tbaa !40
  %3569 = call i32 @memcmp(ptr noundef @TEST_SHARED_SECRET, ptr noundef %3568, i64 noundef 4) #15
  %3570 = icmp eq i32 %3569, 0
  br i1 %3570, label %3624, label %3571

3571:                                             ; preds = %3563
  br label %3572

3572:                                             ; preds = %3571
  br label %3573

3573:                                             ; preds = %3572
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #12
  %3574 = call ptr @__errno_location() #13
  %3575 = load i32, ptr %3574, align 4, !tbaa !5
  store i32 %3575, ptr %76, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = call i32 @s2n_print_stacktrace(ptr noundef %3576)
  %3578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3579 = trunc i8 %3578 to i1
  br i1 %3579, label %3580, label %3602

3580:                                             ; preds = %3573
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @fileno(ptr noundef %3581) #12
  %3583 = call i32 @isatty(i32 noundef %3582) #12
  %3584 = icmp ne i32 %3583, 0
  br i1 %3584, label %3585, label %3602

3585:                                             ; preds = %3580
  %3586 = load i32, ptr %76, align 4, !tbaa !5
  %3587 = call ptr @__errno_location() #13
  store i32 %3586, ptr %3587, align 4, !tbaa !5
  %3588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror(i32 noundef %3591, ptr noundef @.str.16)
  %3593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef %3594, ptr noundef @.str.16)
  %3596 = call ptr @__errno_location() #13
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @strerror(i32 noundef %3597) #12
  %3599 = call ptr @__errno_location() #13
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3588, ptr noundef @.str.14, i32 noundef %3589, ptr noundef @.str.64, ptr noundef @.str.13, i32 noundef 239, ptr noundef %3592, ptr noundef %3595, ptr noundef %3598, i32 noundef %3600) #12
  br label %3619

3602:                                             ; preds = %3580, %3573
  %3603 = load i32, ptr %76, align 4, !tbaa !5
  %3604 = call ptr @__errno_location() #13
  store i32 %3603, ptr %3604, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef @.str.16)
  %3610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror_debug(i32 noundef %3611, ptr noundef @.str.16)
  %3613 = call ptr @__errno_location() #13
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @strerror(i32 noundef %3614) #12
  %3616 = call ptr @__errno_location() #13
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef @.str.17, i32 noundef %3606, ptr noundef @.str.64, ptr noundef @.str.13, i32 noundef 239, ptr noundef %3609, ptr noundef %3612, ptr noundef %3615, i32 noundef %3617) #12
  br label %3619

3619:                                             ; preds = %3602, %3585
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #12
  br label %3620

3620:                                             ; preds = %3619
  br label %3621

3621:                                             ; preds = %3620
  call void @exit(i32 noundef 1) #14
  unreachable

3622:                                             ; No predecessors!
  br label %3623

3623:                                             ; preds = %3622
  br label %3624

3624:                                             ; preds = %3623, %3563
  br label %3625

3625:                                             ; preds = %3624
  br label %3626

3626:                                             ; preds = %3625
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

3628:                                             ; preds = %3627
  br label %3629

3629:                                             ; preds = %3628
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = add nsw i32 %3630, 1
  store i32 %3631, ptr @test_count, align 4, !tbaa !5
  %3632 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 1
  %3633 = getelementptr inbounds %struct.s2n_blob, ptr %3632, i32 0, i32 1
  %3634 = load i32, ptr %3633, align 8, !tbaa !34
  %3635 = icmp eq i32 2, %3634
  br i1 %3635, label %3689, label %3636

3636:                                             ; preds = %3629
  br label %3637

3637:                                             ; preds = %3636
  br label %3638

3638:                                             ; preds = %3637
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #12
  %3639 = call ptr @__errno_location() #13
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  store i32 %3640, ptr %77, align 4, !tbaa !5
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = call i32 @s2n_print_stacktrace(ptr noundef %3641)
  %3643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3644 = trunc i8 %3643 to i1
  br i1 %3644, label %3645, label %3667

3645:                                             ; preds = %3638
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = call i32 @fileno(ptr noundef %3646) #12
  %3648 = call i32 @isatty(i32 noundef %3647) #12
  %3649 = icmp ne i32 %3648, 0
  br i1 %3649, label %3650, label %3667

3650:                                             ; preds = %3645
  %3651 = load i32, ptr %77, align 4, !tbaa !5
  %3652 = call ptr @__errno_location() #13
  store i32 %3651, ptr %3652, align 4, !tbaa !5
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = load i32, ptr @test_count, align 4, !tbaa !5
  %3655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror(i32 noundef %3656, ptr noundef @.str.16)
  %3658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3659 = load i32, ptr %3658, align 4, !tbaa !5
  %3660 = call ptr @s2n_strerror_debug(i32 noundef %3659, ptr noundef @.str.16)
  %3661 = call ptr @__errno_location() #13
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call ptr @strerror(i32 noundef %3662) #12
  %3664 = call ptr @__errno_location() #13
  %3665 = load i32, ptr %3664, align 4, !tbaa !5
  %3666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3653, ptr noundef @.str.14, i32 noundef %3654, ptr noundef @.str.45, ptr noundef @.str.13, i32 noundef 241, ptr noundef %3657, ptr noundef %3660, ptr noundef %3663, i32 noundef %3665) #12
  br label %3684

3667:                                             ; preds = %3645, %3638
  %3668 = load i32, ptr %77, align 4, !tbaa !5
  %3669 = call ptr @__errno_location() #13
  store i32 %3668, ptr %3669, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror(i32 noundef %3673, ptr noundef @.str.16)
  %3675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call ptr @s2n_strerror_debug(i32 noundef %3676, ptr noundef @.str.16)
  %3678 = call ptr @__errno_location() #13
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @strerror(i32 noundef %3679) #12
  %3681 = call ptr @__errno_location() #13
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3670, ptr noundef @.str.17, i32 noundef %3671, ptr noundef @.str.45, ptr noundef @.str.13, i32 noundef 241, ptr noundef %3674, ptr noundef %3677, ptr noundef %3680, i32 noundef %3682) #12
  br label %3684

3684:                                             ; preds = %3667, %3650
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #12
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  call void @exit(i32 noundef 1) #14
  unreachable

3687:                                             ; No predecessors!
  br label %3688

3688:                                             ; preds = %3687
  br label %3689

3689:                                             ; preds = %3688, %3629
  br label %3690

3690:                                             ; preds = %3689
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692
  %3694 = load i32, ptr @test_count, align 4, !tbaa !5
  %3695 = add nsw i32 %3694, 1
  store i32 %3695, ptr @test_count, align 4, !tbaa !5
  %3696 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 1
  %3697 = getelementptr inbounds %struct.s2n_blob, ptr %3696, i32 0, i32 0
  %3698 = load ptr, ptr %3697, align 8, !tbaa !36
  %3699 = call i32 @memcmp(ptr noundef @TEST_PUBLIC_KEY, ptr noundef %3698, i64 noundef 2) #15
  %3700 = icmp eq i32 %3699, 0
  br i1 %3700, label %3754, label %3701

3701:                                             ; preds = %3693
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

3703:                                             ; preds = %3702
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #12
  %3704 = call ptr @__errno_location() #13
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  store i32 %3705, ptr %78, align 4, !tbaa !5
  %3706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3707 = call i32 @s2n_print_stacktrace(ptr noundef %3706)
  %3708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3709 = trunc i8 %3708 to i1
  br i1 %3709, label %3710, label %3732

3710:                                             ; preds = %3703
  %3711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3712 = call i32 @fileno(ptr noundef %3711) #12
  %3713 = call i32 @isatty(i32 noundef %3712) #12
  %3714 = icmp ne i32 %3713, 0
  br i1 %3714, label %3715, label %3732

3715:                                             ; preds = %3710
  %3716 = load i32, ptr %78, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #13
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.16)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.16)
  %3726 = call ptr @__errno_location() #13
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #12
  %3729 = call ptr @__errno_location() #13
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.14, i32 noundef %3719, ptr noundef @.str.47, ptr noundef @.str.13, i32 noundef 242, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #12
  br label %3749

3732:                                             ; preds = %3710, %3703
  %3733 = load i32, ptr %78, align 4, !tbaa !5
  %3734 = call ptr @__errno_location() #13
  store i32 %3733, ptr %3734, align 4, !tbaa !5
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = load i32, ptr @test_count, align 4, !tbaa !5
  %3737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror(i32 noundef %3738, ptr noundef @.str.16)
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror_debug(i32 noundef %3741, ptr noundef @.str.16)
  %3743 = call ptr @__errno_location() #13
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @strerror(i32 noundef %3744) #12
  %3746 = call ptr @__errno_location() #13
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3735, ptr noundef @.str.17, i32 noundef %3736, ptr noundef @.str.47, ptr noundef @.str.13, i32 noundef 242, ptr noundef %3739, ptr noundef %3742, ptr noundef %3745, i32 noundef %3747) #12
  br label %3749

3749:                                             ; preds = %3732, %3715
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #12
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

3751:                                             ; preds = %3750
  call void @exit(i32 noundef 1) #14
  unreachable

3752:                                             ; No predecessors!
  br label %3753

3753:                                             ; preds = %3752
  br label %3754

3754:                                             ; preds = %3753, %3693
  br label %3755

3755:                                             ; preds = %3754
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  %3760 = load i32, ptr @test_count, align 4, !tbaa !5
  %3761 = add nsw i32 %3760, 1
  store i32 %3761, ptr @test_count, align 4, !tbaa !5
  %3762 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 2
  %3763 = getelementptr inbounds %struct.s2n_blob, ptr %3762, i32 0, i32 1
  %3764 = load i32, ptr %3763, align 8, !tbaa !35
  %3765 = icmp eq i32 3, %3764
  br i1 %3765, label %3819, label %3766

3766:                                             ; preds = %3759
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

3768:                                             ; preds = %3767
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #12
  %3769 = call ptr @__errno_location() #13
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  store i32 %3770, ptr %79, align 4, !tbaa !5
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = call i32 @s2n_print_stacktrace(ptr noundef %3771)
  %3773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3774 = trunc i8 %3773 to i1
  br i1 %3774, label %3775, label %3797

3775:                                             ; preds = %3768
  %3776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3777 = call i32 @fileno(ptr noundef %3776) #12
  %3778 = call i32 @isatty(i32 noundef %3777) #12
  %3779 = icmp ne i32 %3778, 0
  br i1 %3779, label %3780, label %3797

3780:                                             ; preds = %3775
  %3781 = load i32, ptr %79, align 4, !tbaa !5
  %3782 = call ptr @__errno_location() #13
  store i32 %3781, ptr %3782, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = load i32, ptr @test_count, align 4, !tbaa !5
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror(i32 noundef %3786, ptr noundef @.str.16)
  %3788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @s2n_strerror_debug(i32 noundef %3789, ptr noundef @.str.16)
  %3791 = call ptr @__errno_location() #13
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call ptr @strerror(i32 noundef %3792) #12
  %3794 = call ptr @__errno_location() #13
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3783, ptr noundef @.str.14, i32 noundef %3784, ptr noundef @.str.46, ptr noundef @.str.13, i32 noundef 243, ptr noundef %3787, ptr noundef %3790, ptr noundef %3793, i32 noundef %3795) #12
  br label %3814

3797:                                             ; preds = %3775, %3768
  %3798 = load i32, ptr %79, align 4, !tbaa !5
  %3799 = call ptr @__errno_location() #13
  store i32 %3798, ptr %3799, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = load i32, ptr @test_count, align 4, !tbaa !5
  %3802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = call ptr @s2n_strerror(i32 noundef %3803, ptr noundef @.str.16)
  %3805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror_debug(i32 noundef %3806, ptr noundef @.str.16)
  %3808 = call ptr @__errno_location() #13
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call ptr @strerror(i32 noundef %3809) #12
  %3811 = call ptr @__errno_location() #13
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3800, ptr noundef @.str.17, i32 noundef %3801, ptr noundef @.str.46, ptr noundef @.str.13, i32 noundef 243, ptr noundef %3804, ptr noundef %3807, ptr noundef %3810, i32 noundef %3812) #12
  br label %3814

3814:                                             ; preds = %3797, %3780
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #12
  br label %3815

3815:                                             ; preds = %3814
  br label %3816

3816:                                             ; preds = %3815
  call void @exit(i32 noundef 1) #14
  unreachable

3817:                                             ; No predecessors!
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

3819:                                             ; preds = %3818, %3759
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821
  br label %3823

3823:                                             ; preds = %3822
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = add nsw i32 %3824, 1
  store i32 %3825, ptr @test_count, align 4, !tbaa !5
  %3826 = getelementptr inbounds %struct.s2n_kem_params, ptr %49, i32 0, i32 2
  %3827 = getelementptr inbounds %struct.s2n_blob, ptr %3826, i32 0, i32 0
  %3828 = load ptr, ptr %3827, align 8, !tbaa !37
  %3829 = call i32 @memcmp(ptr noundef @TEST_PRIVATE_KEY, ptr noundef %3828, i64 noundef 3) #15
  %3830 = icmp eq i32 %3829, 0
  br i1 %3830, label %3884, label %3831

3831:                                             ; preds = %3823
  br label %3832

3832:                                             ; preds = %3831
  br label %3833

3833:                                             ; preds = %3832
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #12
  %3834 = call ptr @__errno_location() #13
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  store i32 %3835, ptr %80, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = call i32 @s2n_print_stacktrace(ptr noundef %3836)
  %3838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3839 = trunc i8 %3838 to i1
  br i1 %3839, label %3840, label %3862

3840:                                             ; preds = %3833
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = call i32 @fileno(ptr noundef %3841) #12
  %3843 = call i32 @isatty(i32 noundef %3842) #12
  %3844 = icmp ne i32 %3843, 0
  br i1 %3844, label %3845, label %3862

3845:                                             ; preds = %3840
  %3846 = load i32, ptr %80, align 4, !tbaa !5
  %3847 = call ptr @__errno_location() #13
  store i32 %3846, ptr %3847, align 4, !tbaa !5
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef @.str.16)
  %3853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror_debug(i32 noundef %3854, ptr noundef @.str.16)
  %3856 = call ptr @__errno_location() #13
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call ptr @strerror(i32 noundef %3857) #12
  %3859 = call ptr @__errno_location() #13
  %3860 = load i32, ptr %3859, align 4, !tbaa !5
  %3861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3848, ptr noundef @.str.14, i32 noundef %3849, ptr noundef @.str.48, ptr noundef @.str.13, i32 noundef 244, ptr noundef %3852, ptr noundef %3855, ptr noundef %3858, i32 noundef %3860) #12
  br label %3879

3862:                                             ; preds = %3840, %3833
  %3863 = load i32, ptr %80, align 4, !tbaa !5
  %3864 = call ptr @__errno_location() #13
  store i32 %3863, ptr %3864, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror(i32 noundef %3868, ptr noundef @.str.16)
  %3870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef @.str.16)
  %3873 = call ptr @__errno_location() #13
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @strerror(i32 noundef %3874) #12
  %3876 = call ptr @__errno_location() #13
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3865, ptr noundef @.str.17, i32 noundef %3866, ptr noundef @.str.48, ptr noundef @.str.13, i32 noundef 244, ptr noundef %3869, ptr noundef %3872, ptr noundef %3875, i32 noundef %3877) #12
  br label %3879

3879:                                             ; preds = %3862, %3845
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  call void @exit(i32 noundef 1) #14
  unreachable

3882:                                             ; No predecessors!
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883, %3823
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

3888:                                             ; preds = %3887
  br label %3889

3889:                                             ; preds = %3888
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = add nsw i32 %3890, 1
  store i32 %3891, ptr @test_count, align 4, !tbaa !5
  %3892 = call i32 @s2n_kem_free(ptr noundef %49)
  %3893 = icmp eq i32 %3892, -1
  br i1 %3893, label %3894, label %3947

3894:                                             ; preds = %3889
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #12
  %3897 = call ptr @__errno_location() #13
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  store i32 %3898, ptr %81, align 4, !tbaa !5
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = call i32 @s2n_print_stacktrace(ptr noundef %3899)
  %3901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3902 = trunc i8 %3901 to i1
  br i1 %3902, label %3903, label %3925

3903:                                             ; preds = %3896
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = call i32 @fileno(ptr noundef %3904) #12
  %3906 = call i32 @isatty(i32 noundef %3905) #12
  %3907 = icmp ne i32 %3906, 0
  br i1 %3907, label %3908, label %3925

3908:                                             ; preds = %3903
  %3909 = load i32, ptr %81, align 4, !tbaa !5
  %3910 = call ptr @__errno_location() #13
  store i32 %3909, ptr %3910, align 4, !tbaa !5
  %3911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3912 = load i32, ptr @test_count, align 4, !tbaa !5
  %3913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call ptr @s2n_strerror(i32 noundef %3914, ptr noundef @.str.16)
  %3916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = call ptr @s2n_strerror_debug(i32 noundef %3917, ptr noundef @.str.16)
  %3919 = call ptr @__errno_location() #13
  %3920 = load i32, ptr %3919, align 4, !tbaa !5
  %3921 = call ptr @strerror(i32 noundef %3920) #12
  %3922 = call ptr @__errno_location() #13
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3911, ptr noundef @.str.14, i32 noundef %3912, ptr noundef @.str.65, ptr noundef @.str.13, i32 noundef 246, ptr noundef %3915, ptr noundef %3918, ptr noundef %3921, i32 noundef %3923) #12
  br label %3942

3925:                                             ; preds = %3903, %3896
  %3926 = load i32, ptr %81, align 4, !tbaa !5
  %3927 = call ptr @__errno_location() #13
  store i32 %3926, ptr %3927, align 4, !tbaa !5
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef @.str.16)
  %3933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3934 = load i32, ptr %3933, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror_debug(i32 noundef %3934, ptr noundef @.str.16)
  %3936 = call ptr @__errno_location() #13
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #12
  %3939 = call ptr @__errno_location() #13
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3928, ptr noundef @.str.17, i32 noundef %3929, ptr noundef @.str.65, ptr noundef @.str.13, i32 noundef 246, ptr noundef %3932, ptr noundef %3935, ptr noundef %3938, i32 noundef %3940) #12
  br label %3942

3942:                                             ; preds = %3925, %3908
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #12
  br label %3943

3943:                                             ; preds = %3942
  br label %3944

3944:                                             ; preds = %3943
  call void @exit(i32 noundef 1) #14
  unreachable

3945:                                             ; No predecessors!
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

3947:                                             ; preds = %3946, %3889
  br label %3948

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

3950:                                             ; preds = %3949
  %3951 = load i32, ptr @test_count, align 4, !tbaa !5
  %3952 = add nsw i32 %3951, 1
  store i32 %3952, ptr @test_count, align 4, !tbaa !5
  %3953 = call i32 @s2n_kem_free(ptr noundef %60)
  %3954 = icmp eq i32 %3953, -1
  br i1 %3954, label %3955, label %4008

3955:                                             ; preds = %3950
  br label %3956

3956:                                             ; preds = %3955
  br label %3957

3957:                                             ; preds = %3956
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #12
  %3958 = call ptr @__errno_location() #13
  %3959 = load i32, ptr %3958, align 4, !tbaa !5
  store i32 %3959, ptr %82, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = call i32 @s2n_print_stacktrace(ptr noundef %3960)
  %3962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3963 = trunc i8 %3962 to i1
  br i1 %3963, label %3964, label %3986

3964:                                             ; preds = %3957
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = call i32 @fileno(ptr noundef %3965) #12
  %3967 = call i32 @isatty(i32 noundef %3966) #12
  %3968 = icmp ne i32 %3967, 0
  br i1 %3968, label %3969, label %3986

3969:                                             ; preds = %3964
  %3970 = load i32, ptr %82, align 4, !tbaa !5
  %3971 = call ptr @__errno_location() #13
  store i32 %3970, ptr %3971, align 4, !tbaa !5
  %3972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3973 = load i32, ptr @test_count, align 4, !tbaa !5
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror(i32 noundef %3975, ptr noundef @.str.16)
  %3977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror_debug(i32 noundef %3978, ptr noundef @.str.16)
  %3980 = call ptr @__errno_location() #13
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call ptr @strerror(i32 noundef %3981) #12
  %3983 = call ptr @__errno_location() #13
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3972, ptr noundef @.str.14, i32 noundef %3973, ptr noundef @.str.66, ptr noundef @.str.13, i32 noundef 247, ptr noundef %3976, ptr noundef %3979, ptr noundef %3982, i32 noundef %3984) #12
  br label %4003

3986:                                             ; preds = %3964, %3957
  %3987 = load i32, ptr %82, align 4, !tbaa !5
  %3988 = call ptr @__errno_location() #13
  store i32 %3987, ptr %3988, align 4, !tbaa !5
  %3989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3990 = load i32, ptr @test_count, align 4, !tbaa !5
  %3991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3992 = load i32, ptr %3991, align 4, !tbaa !5
  %3993 = call ptr @s2n_strerror(i32 noundef %3992, ptr noundef @.str.16)
  %3994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3995 = load i32, ptr %3994, align 4, !tbaa !5
  %3996 = call ptr @s2n_strerror_debug(i32 noundef %3995, ptr noundef @.str.16)
  %3997 = call ptr @__errno_location() #13
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = call ptr @strerror(i32 noundef %3998) #12
  %4000 = call ptr @__errno_location() #13
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3989, ptr noundef @.str.17, i32 noundef %3990, ptr noundef @.str.66, ptr noundef @.str.13, i32 noundef 247, ptr noundef %3993, ptr noundef %3996, ptr noundef %3999, i32 noundef %4001) #12
  br label %4003

4003:                                             ; preds = %3986, %3969
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #12
  br label %4004

4004:                                             ; preds = %4003
  br label %4005

4005:                                             ; preds = %4004
  call void @exit(i32 noundef 1) #14
  unreachable

4006:                                             ; No predecessors!
  br label %4007

4007:                                             ; preds = %4006
  br label %4008

4008:                                             ; preds = %4007, %3950
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

4010:                                             ; preds = %4009
  store i32 0, ptr %30, align 4
  br label %4011

4011:                                             ; preds = %4010, %2790
  %4012 = call i32 @s2n_free(ptr noundef %61)
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #12
  br label %4013

4013:                                             ; preds = %4011, %2780
  call void @llvm.lifetime.end.p0(i64 88, ptr %60) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %49) #12
  %4014 = load i32, ptr %30, align 4
  switch i32 %4014, label %12165 [
    i32 0, label %4015
  ]

4015:                                             ; preds = %4013
  call void @llvm.lifetime.start.p0(i64 88, ptr %83) #12
  call void @llvm.memset.p0.i64(ptr align 8 %83, i8 0, i64 88, i1 false)
  %4016 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %4016, align 8, !tbaa !32
  %4017 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 1
  %4018 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 2
  %4019 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 3
  %4020 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 4
  %4021 = load i32, ptr %48, align 4, !tbaa !5
  %4022 = icmp ne i32 %4021, 0
  %4023 = zext i1 %4022 to i8
  store i8 %4023, ptr %4020, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 24, ptr %84) #12
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 24, i1 false)
  br label %4024

4024:                                             ; preds = %4015
  %4025 = load i32, ptr @test_count, align 4, !tbaa !5
  %4026 = add nsw i32 %4025, 1
  store i32 %4026, ptr @test_count, align 4, !tbaa !5
  %4027 = call i32 @s2n_alloc(ptr noundef %84, i32 noundef 4)
  %4028 = icmp eq i32 %4027, -1
  br i1 %4028, label %4029, label %4082

4029:                                             ; preds = %4024
  br label %4030

4030:                                             ; preds = %4029
  br label %4031

4031:                                             ; preds = %4030
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #12
  %4032 = call ptr @__errno_location() #13
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  store i32 %4033, ptr %85, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = call i32 @s2n_print_stacktrace(ptr noundef %4034)
  %4036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4037 = trunc i8 %4036 to i1
  br i1 %4037, label %4038, label %4060

4038:                                             ; preds = %4031
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = call i32 @fileno(ptr noundef %4039) #12
  %4041 = call i32 @isatty(i32 noundef %4040) #12
  %4042 = icmp ne i32 %4041, 0
  br i1 %4042, label %4043, label %4060

4043:                                             ; preds = %4038
  %4044 = load i32, ptr %85, align 4, !tbaa !5
  %4045 = call ptr @__errno_location() #13
  store i32 %4044, ptr %4045, align 4, !tbaa !5
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4049 = load i32, ptr %4048, align 4, !tbaa !5
  %4050 = call ptr @s2n_strerror(i32 noundef %4049, ptr noundef @.str.16)
  %4051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4052 = load i32, ptr %4051, align 4, !tbaa !5
  %4053 = call ptr @s2n_strerror_debug(i32 noundef %4052, ptr noundef @.str.16)
  %4054 = call ptr @__errno_location() #13
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @strerror(i32 noundef %4055) #12
  %4057 = call ptr @__errno_location() #13
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4046, ptr noundef @.str.14, i32 noundef %4047, ptr noundef @.str.67, ptr noundef @.str.13, i32 noundef 254, ptr noundef %4050, ptr noundef %4053, ptr noundef %4056, i32 noundef %4058) #12
  br label %4077

4060:                                             ; preds = %4038, %4031
  %4061 = load i32, ptr %85, align 4, !tbaa !5
  %4062 = call ptr @__errno_location() #13
  store i32 %4061, ptr %4062, align 4, !tbaa !5
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = load i32, ptr @test_count, align 4, !tbaa !5
  %4065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4066 = load i32, ptr %4065, align 4, !tbaa !5
  %4067 = call ptr @s2n_strerror(i32 noundef %4066, ptr noundef @.str.16)
  %4068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4069 = load i32, ptr %4068, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror_debug(i32 noundef %4069, ptr noundef @.str.16)
  %4071 = call ptr @__errno_location() #13
  %4072 = load i32, ptr %4071, align 4, !tbaa !5
  %4073 = call ptr @strerror(i32 noundef %4072) #12
  %4074 = call ptr @__errno_location() #13
  %4075 = load i32, ptr %4074, align 4, !tbaa !5
  %4076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4063, ptr noundef @.str.17, i32 noundef %4064, ptr noundef @.str.67, ptr noundef @.str.13, i32 noundef 254, ptr noundef %4067, ptr noundef %4070, ptr noundef %4073, i32 noundef %4075) #12
  br label %4077

4077:                                             ; preds = %4060, %4043
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #12
  br label %4078

4078:                                             ; preds = %4077
  br label %4079

4079:                                             ; preds = %4078
  call void @exit(i32 noundef 1) #14
  unreachable

4080:                                             ; No predecessors!
  br label %4081

4081:                                             ; preds = %4080
  br label %4082

4082:                                             ; preds = %4081, %4024
  br label %4083

4083:                                             ; preds = %4082
  br label %4084

4084:                                             ; preds = %4083
  call void @llvm.lifetime.start.p0(i64 40, ptr %86) #12
  call void @llvm.memset.p0.i64(ptr align 8 %86, i8 0, i64 40, i1 false)
  br label %4085

4085:                                             ; preds = %4084
  %4086 = load i32, ptr @test_count, align 4, !tbaa !5
  %4087 = add nsw i32 %4086, 1
  store i32 %4087, ptr @test_count, align 4, !tbaa !5
  %4088 = call i32 @s2n_stuffer_init(ptr noundef %86, ptr noundef %84)
  %4089 = icmp eq i32 %4088, -1
  br i1 %4089, label %4090, label %4143

4090:                                             ; preds = %4085
  br label %4091

4091:                                             ; preds = %4090
  br label %4092

4092:                                             ; preds = %4091
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #12
  %4093 = call ptr @__errno_location() #13
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  store i32 %4094, ptr %87, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @s2n_print_stacktrace(ptr noundef %4095)
  %4097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4098 = trunc i8 %4097 to i1
  br i1 %4098, label %4099, label %4121

4099:                                             ; preds = %4092
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @fileno(ptr noundef %4100) #12
  %4102 = call i32 @isatty(i32 noundef %4101) #12
  %4103 = icmp ne i32 %4102, 0
  br i1 %4103, label %4104, label %4121

4104:                                             ; preds = %4099
  %4105 = load i32, ptr %87, align 4, !tbaa !5
  %4106 = call ptr @__errno_location() #13
  store i32 %4105, ptr %4106, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror(i32 noundef %4110, ptr noundef @.str.16)
  %4112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @s2n_strerror_debug(i32 noundef %4113, ptr noundef @.str.16)
  %4115 = call ptr @__errno_location() #13
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @strerror(i32 noundef %4116) #12
  %4118 = call ptr @__errno_location() #13
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4107, ptr noundef @.str.14, i32 noundef %4108, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 256, ptr noundef %4111, ptr noundef %4114, ptr noundef %4117, i32 noundef %4119) #12
  br label %4138

4121:                                             ; preds = %4099, %4092
  %4122 = load i32, ptr %87, align 4, !tbaa !5
  %4123 = call ptr @__errno_location() #13
  store i32 %4122, ptr %4123, align 4, !tbaa !5
  %4124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4125 = load i32, ptr @test_count, align 4, !tbaa !5
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror(i32 noundef %4127, ptr noundef @.str.16)
  %4129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @s2n_strerror_debug(i32 noundef %4130, ptr noundef @.str.16)
  %4132 = call ptr @__errno_location() #13
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call ptr @strerror(i32 noundef %4133) #12
  %4135 = call ptr @__errno_location() #13
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4124, ptr noundef @.str.17, i32 noundef %4125, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 256, ptr noundef %4128, ptr noundef %4131, ptr noundef %4134, i32 noundef %4136) #12
  br label %4138

4138:                                             ; preds = %4121, %4104
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #12
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  call void @exit(i32 noundef 1) #14
  unreachable

4141:                                             ; No predecessors!
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142, %4085
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  br label %4146

4146:                                             ; preds = %4145
  %4147 = load i32, ptr @test_count, align 4, !tbaa !5
  %4148 = add nsw i32 %4147, 1
  store i32 %4148, ptr @test_count, align 4, !tbaa !5
  %4149 = call i32 @s2n_kem_send_public_key(ptr noundef %86, ptr noundef %83)
  %4150 = icmp eq i32 %4149, -1
  br i1 %4150, label %4151, label %4204

4151:                                             ; preds = %4146
  br label %4152

4152:                                             ; preds = %4151
  br label %4153

4153:                                             ; preds = %4152
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #12
  %4154 = call ptr @__errno_location() #13
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  store i32 %4155, ptr %88, align 4, !tbaa !5
  %4156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4157 = call i32 @s2n_print_stacktrace(ptr noundef %4156)
  %4158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4159 = trunc i8 %4158 to i1
  br i1 %4159, label %4160, label %4182

4160:                                             ; preds = %4153
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @fileno(ptr noundef %4161) #12
  %4163 = call i32 @isatty(i32 noundef %4162) #12
  %4164 = icmp ne i32 %4163, 0
  br i1 %4164, label %4165, label %4182

4165:                                             ; preds = %4160
  %4166 = load i32, ptr %88, align 4, !tbaa !5
  %4167 = call ptr @__errno_location() #13
  store i32 %4166, ptr %4167, align 4, !tbaa !5
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = load i32, ptr @test_count, align 4, !tbaa !5
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror(i32 noundef %4171, ptr noundef @.str.16)
  %4173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @s2n_strerror_debug(i32 noundef %4174, ptr noundef @.str.16)
  %4176 = call ptr @__errno_location() #13
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call ptr @strerror(i32 noundef %4177) #12
  %4179 = call ptr @__errno_location() #13
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4168, ptr noundef @.str.14, i32 noundef %4169, ptr noundef @.str.69, ptr noundef @.str.13, i32 noundef 258, ptr noundef %4172, ptr noundef %4175, ptr noundef %4178, i32 noundef %4180) #12
  br label %4199

4182:                                             ; preds = %4160, %4153
  %4183 = load i32, ptr %88, align 4, !tbaa !5
  %4184 = call ptr @__errno_location() #13
  store i32 %4183, ptr %4184, align 4, !tbaa !5
  %4185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4186 = load i32, ptr @test_count, align 4, !tbaa !5
  %4187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror(i32 noundef %4188, ptr noundef @.str.16)
  %4190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @s2n_strerror_debug(i32 noundef %4191, ptr noundef @.str.16)
  %4193 = call ptr @__errno_location() #13
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call ptr @strerror(i32 noundef %4194) #12
  %4196 = call ptr @__errno_location() #13
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4185, ptr noundef @.str.17, i32 noundef %4186, ptr noundef @.str.69, ptr noundef @.str.13, i32 noundef 258, ptr noundef %4189, ptr noundef %4192, ptr noundef %4195, i32 noundef %4197) #12
  br label %4199

4199:                                             ; preds = %4182, %4165
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #12
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200
  call void @exit(i32 noundef 1) #14
  unreachable

4202:                                             ; No predecessors!
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

4204:                                             ; preds = %4203, %4146
  br label %4205

4205:                                             ; preds = %4204
  br label %4206

4206:                                             ; preds = %4205
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %89, ptr align 1 @__const.main.prefixed_output, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 2, ptr %90) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %90, ptr align 1 @__const.main.unprefixed_output, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #12
  %4207 = getelementptr inbounds [2 x i8], ptr %90, i64 0, i64 0
  store ptr %4207, ptr %91, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %92) #12
  store i16 2, ptr %92, align 2, !tbaa !29
  %4208 = load i32, ptr %48, align 4, !tbaa !5
  %4209 = icmp ne i32 %4208, 0
  br i1 %4209, label %4210, label %4212

4210:                                             ; preds = %4206
  %4211 = getelementptr inbounds [4 x i8], ptr %89, i64 0, i64 0
  store ptr %4211, ptr %91, align 8, !tbaa !9
  store i16 4, ptr %92, align 2, !tbaa !29
  br label %4212

4212:                                             ; preds = %4210, %4206
  br label %4213

4213:                                             ; preds = %4212
  %4214 = load i16, ptr %92, align 2, !tbaa !29
  %4215 = zext i16 %4214 to i32
  %4216 = icmp ne i32 %4215, 0
  br i1 %4216, label %4217, label %4285

4217:                                             ; preds = %4213
  br label %4218

4218:                                             ; preds = %4217
  %4219 = load i32, ptr @test_count, align 4, !tbaa !5
  %4220 = add nsw i32 %4219, 1
  store i32 %4220, ptr @test_count, align 4, !tbaa !5
  %4221 = getelementptr inbounds %struct.s2n_stuffer, ptr %86, i32 0, i32 0
  %4222 = getelementptr inbounds %struct.s2n_blob, ptr %4221, i32 0, i32 0
  %4223 = load ptr, ptr %4222, align 8, !tbaa !44
  %4224 = load ptr, ptr %91, align 8, !tbaa !9
  %4225 = load i16, ptr %92, align 2, !tbaa !29
  %4226 = zext i16 %4225 to i64
  %4227 = call i32 @memcmp(ptr noundef %4223, ptr noundef %4224, i64 noundef %4226) #15
  %4228 = icmp eq i32 %4227, 0
  br i1 %4228, label %4282, label %4229

4229:                                             ; preds = %4218
  br label %4230

4230:                                             ; preds = %4229
  br label %4231

4231:                                             ; preds = %4230
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #12
  %4232 = call ptr @__errno_location() #13
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  store i32 %4233, ptr %93, align 4, !tbaa !5
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = call i32 @s2n_print_stacktrace(ptr noundef %4234)
  %4236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4237 = trunc i8 %4236 to i1
  br i1 %4237, label %4238, label %4260

4238:                                             ; preds = %4231
  %4239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4240 = call i32 @fileno(ptr noundef %4239) #12
  %4241 = call i32 @isatty(i32 noundef %4240) #12
  %4242 = icmp ne i32 %4241, 0
  br i1 %4242, label %4243, label %4260

4243:                                             ; preds = %4238
  %4244 = load i32, ptr %93, align 4, !tbaa !5
  %4245 = call ptr @__errno_location() #13
  store i32 %4244, ptr %4245, align 4, !tbaa !5
  %4246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4247 = load i32, ptr @test_count, align 4, !tbaa !5
  %4248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call ptr @s2n_strerror(i32 noundef %4249, ptr noundef @.str.16)
  %4251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @s2n_strerror_debug(i32 noundef %4252, ptr noundef @.str.16)
  %4254 = call ptr @__errno_location() #13
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call ptr @strerror(i32 noundef %4255) #12
  %4257 = call ptr @__errno_location() #13
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4246, ptr noundef @.str.14, i32 noundef %4247, ptr noundef @.str.70, ptr noundef @.str.13, i32 noundef 273, ptr noundef %4250, ptr noundef %4253, ptr noundef %4256, i32 noundef %4258) #12
  br label %4277

4260:                                             ; preds = %4238, %4231
  %4261 = load i32, ptr %93, align 4, !tbaa !5
  %4262 = call ptr @__errno_location() #13
  store i32 %4261, ptr %4262, align 4, !tbaa !5
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = load i32, ptr @test_count, align 4, !tbaa !5
  %4265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  %4267 = call ptr @s2n_strerror(i32 noundef %4266, ptr noundef @.str.16)
  %4268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4269 = load i32, ptr %4268, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror_debug(i32 noundef %4269, ptr noundef @.str.16)
  %4271 = call ptr @__errno_location() #13
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  %4273 = call ptr @strerror(i32 noundef %4272) #12
  %4274 = call ptr @__errno_location() #13
  %4275 = load i32, ptr %4274, align 4, !tbaa !5
  %4276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4263, ptr noundef @.str.17, i32 noundef %4264, ptr noundef @.str.70, ptr noundef @.str.13, i32 noundef 273, ptr noundef %4267, ptr noundef %4270, ptr noundef %4273, i32 noundef %4275) #12
  br label %4277

4277:                                             ; preds = %4260, %4243
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #12
  br label %4278

4278:                                             ; preds = %4277
  br label %4279

4279:                                             ; preds = %4278
  call void @exit(i32 noundef 1) #14
  unreachable

4280:                                             ; No predecessors!
  br label %4281

4281:                                             ; preds = %4280
  br label %4282

4282:                                             ; preds = %4281, %4218
  br label %4283

4283:                                             ; preds = %4282
  br label %4284

4284:                                             ; preds = %4283
  br label %4285

4285:                                             ; preds = %4284, %4213
  br label %4286

4286:                                             ; preds = %4285
  br label %4287

4287:                                             ; preds = %4286
  br label %4288

4288:                                             ; preds = %4287
  %4289 = load i32, ptr @test_count, align 4, !tbaa !5
  %4290 = add nsw i32 %4289, 1
  store i32 %4290, ptr @test_count, align 4, !tbaa !5
  %4291 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 2
  %4292 = getelementptr inbounds %struct.s2n_blob, ptr %4291, i32 0, i32 1
  %4293 = load i32, ptr %4292, align 8, !tbaa !35
  %4294 = icmp eq i32 %4293, 3
  br i1 %4294, label %4348, label %4295

4295:                                             ; preds = %4288
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #12
  %4298 = call ptr @__errno_location() #13
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  store i32 %4299, ptr %94, align 4, !tbaa !5
  %4300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4301 = call i32 @s2n_print_stacktrace(ptr noundef %4300)
  %4302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4303 = trunc i8 %4302 to i1
  br i1 %4303, label %4304, label %4326

4304:                                             ; preds = %4297
  %4305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4306 = call i32 @fileno(ptr noundef %4305) #12
  %4307 = call i32 @isatty(i32 noundef %4306) #12
  %4308 = icmp ne i32 %4307, 0
  br i1 %4308, label %4309, label %4326

4309:                                             ; preds = %4304
  %4310 = load i32, ptr %94, align 4, !tbaa !5
  %4311 = call ptr @__errno_location() #13
  store i32 %4310, ptr %4311, align 4, !tbaa !5
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = load i32, ptr @test_count, align 4, !tbaa !5
  %4314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror(i32 noundef %4315, ptr noundef @.str.16)
  %4317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror_debug(i32 noundef %4318, ptr noundef @.str.16)
  %4320 = call ptr @__errno_location() #13
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call ptr @strerror(i32 noundef %4321) #12
  %4323 = call ptr @__errno_location() #13
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4312, ptr noundef @.str.14, i32 noundef %4313, ptr noundef @.str.71, ptr noundef @.str.13, i32 noundef 275, ptr noundef %4316, ptr noundef %4319, ptr noundef %4322, i32 noundef %4324) #12
  br label %4343

4326:                                             ; preds = %4304, %4297
  %4327 = load i32, ptr %94, align 4, !tbaa !5
  %4328 = call ptr @__errno_location() #13
  store i32 %4327, ptr %4328, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = load i32, ptr @test_count, align 4, !tbaa !5
  %4331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call ptr @s2n_strerror(i32 noundef %4332, ptr noundef @.str.16)
  %4334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call ptr @s2n_strerror_debug(i32 noundef %4335, ptr noundef @.str.16)
  %4337 = call ptr @__errno_location() #13
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call ptr @strerror(i32 noundef %4338) #12
  %4340 = call ptr @__errno_location() #13
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4329, ptr noundef @.str.17, i32 noundef %4330, ptr noundef @.str.71, ptr noundef @.str.13, i32 noundef 275, ptr noundef %4333, ptr noundef %4336, ptr noundef %4339, i32 noundef %4341) #12
  br label %4343

4343:                                             ; preds = %4326, %4309
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #12
  br label %4344

4344:                                             ; preds = %4343
  br label %4345

4345:                                             ; preds = %4344
  call void @exit(i32 noundef 1) #14
  unreachable

4346:                                             ; No predecessors!
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347, %4288
  br label %4349

4349:                                             ; preds = %4348
  br label %4350

4350:                                             ; preds = %4349
  br label %4351

4351:                                             ; preds = %4350
  br label %4352

4352:                                             ; preds = %4351
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = add nsw i32 %4353, 1
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 2
  %4356 = getelementptr inbounds %struct.s2n_blob, ptr %4355, i32 0, i32 0
  %4357 = load ptr, ptr %4356, align 8, !tbaa !37
  %4358 = call i32 @memcmp(ptr noundef %4357, ptr noundef @TEST_PRIVATE_KEY, i64 noundef 3) #15
  %4359 = icmp eq i32 %4358, 0
  br i1 %4359, label %4413, label %4360

4360:                                             ; preds = %4352
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #12
  %4363 = call ptr @__errno_location() #13
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  store i32 %4364, ptr %95, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365)
  %4367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4368 = trunc i8 %4367 to i1
  br i1 %4368, label %4369, label %4391

4369:                                             ; preds = %4362
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = call i32 @fileno(ptr noundef %4370) #12
  %4372 = call i32 @isatty(i32 noundef %4371) #12
  %4373 = icmp ne i32 %4372, 0
  br i1 %4373, label %4374, label %4391

4374:                                             ; preds = %4369
  %4375 = load i32, ptr %95, align 4, !tbaa !5
  %4376 = call ptr @__errno_location() #13
  store i32 %4375, ptr %4376, align 4, !tbaa !5
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = load i32, ptr @test_count, align 4, !tbaa !5
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror(i32 noundef %4380, ptr noundef @.str.16)
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror_debug(i32 noundef %4383, ptr noundef @.str.16)
  %4385 = call ptr @__errno_location() #13
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @strerror(i32 noundef %4386) #12
  %4388 = call ptr @__errno_location() #13
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4377, ptr noundef @.str.14, i32 noundef %4378, ptr noundef @.str.72, ptr noundef @.str.13, i32 noundef 276, ptr noundef %4381, ptr noundef %4384, ptr noundef %4387, i32 noundef %4389) #12
  br label %4408

4391:                                             ; preds = %4369, %4362
  %4392 = load i32, ptr %95, align 4, !tbaa !5
  %4393 = call ptr @__errno_location() #13
  store i32 %4392, ptr %4393, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef @.str.16)
  %4399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef @.str.16)
  %4402 = call ptr @__errno_location() #13
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call ptr @strerror(i32 noundef %4403) #12
  %4405 = call ptr @__errno_location() #13
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef @.str.17, i32 noundef %4395, ptr noundef @.str.72, ptr noundef @.str.13, i32 noundef 276, ptr noundef %4398, ptr noundef %4401, ptr noundef %4404, i32 noundef %4406) #12
  br label %4408

4408:                                             ; preds = %4391, %4374
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #12
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  call void @exit(i32 noundef 1) #14
  unreachable

4411:                                             ; No predecessors!
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412, %4352
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

4415:                                             ; preds = %4414
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416
  br label %4418

4418:                                             ; preds = %4417
  %4419 = load i32, ptr @test_count, align 4, !tbaa !5
  %4420 = add nsw i32 %4419, 1
  store i32 %4420, ptr @test_count, align 4, !tbaa !5
  %4421 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 1
  %4422 = getelementptr inbounds %struct.s2n_blob, ptr %4421, i32 0, i32 1
  %4423 = load i32, ptr %4422, align 8, !tbaa !34
  %4424 = icmp eq i32 %4423, 0
  br i1 %4424, label %4478, label %4425

4425:                                             ; preds = %4418
  br label %4426

4426:                                             ; preds = %4425
  br label %4427

4427:                                             ; preds = %4426
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #12
  %4428 = call ptr @__errno_location() #13
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  store i32 %4429, ptr %96, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = call i32 @s2n_print_stacktrace(ptr noundef %4430)
  %4432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4433 = trunc i8 %4432 to i1
  br i1 %4433, label %4434, label %4456

4434:                                             ; preds = %4427
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = call i32 @fileno(ptr noundef %4435) #12
  %4437 = call i32 @isatty(i32 noundef %4436) #12
  %4438 = icmp ne i32 %4437, 0
  br i1 %4438, label %4439, label %4456

4439:                                             ; preds = %4434
  %4440 = load i32, ptr %96, align 4, !tbaa !5
  %4441 = call ptr @__errno_location() #13
  store i32 %4440, ptr %4441, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = load i32, ptr @test_count, align 4, !tbaa !5
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror(i32 noundef %4445, ptr noundef @.str.16)
  %4447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @s2n_strerror_debug(i32 noundef %4448, ptr noundef @.str.16)
  %4450 = call ptr @__errno_location() #13
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call ptr @strerror(i32 noundef %4451) #12
  %4453 = call ptr @__errno_location() #13
  %4454 = load i32, ptr %4453, align 4, !tbaa !5
  %4455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4442, ptr noundef @.str.14, i32 noundef %4443, ptr noundef @.str.73, ptr noundef @.str.13, i32 noundef 277, ptr noundef %4446, ptr noundef %4449, ptr noundef %4452, i32 noundef %4454) #12
  br label %4473

4456:                                             ; preds = %4434, %4427
  %4457 = load i32, ptr %96, align 4, !tbaa !5
  %4458 = call ptr @__errno_location() #13
  store i32 %4457, ptr %4458, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror(i32 noundef %4462, ptr noundef @.str.16)
  %4464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call ptr @s2n_strerror_debug(i32 noundef %4465, ptr noundef @.str.16)
  %4467 = call ptr @__errno_location() #13
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call ptr @strerror(i32 noundef %4468) #12
  %4470 = call ptr @__errno_location() #13
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4459, ptr noundef @.str.17, i32 noundef %4460, ptr noundef @.str.73, ptr noundef @.str.13, i32 noundef 277, ptr noundef %4463, ptr noundef %4466, ptr noundef %4469, i32 noundef %4471) #12
  br label %4473

4473:                                             ; preds = %4456, %4439
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #12
  br label %4474

4474:                                             ; preds = %4473
  br label %4475

4475:                                             ; preds = %4474
  call void @exit(i32 noundef 1) #14
  unreachable

4476:                                             ; No predecessors!
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

4478:                                             ; preds = %4477, %4418
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480
  %4482 = load i32, ptr @test_count, align 4, !tbaa !5
  %4483 = add nsw i32 %4482, 1
  store i32 %4483, ptr @test_count, align 4, !tbaa !5
  %4484 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 1
  %4485 = getelementptr inbounds %struct.s2n_blob, ptr %4484, i32 0, i32 0
  %4486 = load ptr, ptr %4485, align 8, !tbaa !36
  %4487 = icmp eq ptr %4486, null
  br i1 %4487, label %4541, label %4488

4488:                                             ; preds = %4481
  br label %4489

4489:                                             ; preds = %4488
  br label %4490

4490:                                             ; preds = %4489
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #12
  %4491 = call ptr @__errno_location() #13
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  store i32 %4492, ptr %97, align 4, !tbaa !5
  %4493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4494 = call i32 @s2n_print_stacktrace(ptr noundef %4493)
  %4495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4496 = trunc i8 %4495 to i1
  br i1 %4496, label %4497, label %4519

4497:                                             ; preds = %4490
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = call i32 @fileno(ptr noundef %4498) #12
  %4500 = call i32 @isatty(i32 noundef %4499) #12
  %4501 = icmp ne i32 %4500, 0
  br i1 %4501, label %4502, label %4519

4502:                                             ; preds = %4497
  %4503 = load i32, ptr %97, align 4, !tbaa !5
  %4504 = call ptr @__errno_location() #13
  store i32 %4503, ptr %4504, align 4, !tbaa !5
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = load i32, ptr @test_count, align 4, !tbaa !5
  %4507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call ptr @s2n_strerror(i32 noundef %4508, ptr noundef @.str.16)
  %4510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror_debug(i32 noundef %4511, ptr noundef @.str.16)
  %4513 = call ptr @__errno_location() #13
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @strerror(i32 noundef %4514) #12
  %4516 = call ptr @__errno_location() #13
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4505, ptr noundef @.str.14, i32 noundef %4506, ptr noundef @.str.74, ptr noundef @.str.13, i32 noundef 278, ptr noundef %4509, ptr noundef %4512, ptr noundef %4515, i32 noundef %4517) #12
  br label %4536

4519:                                             ; preds = %4497, %4490
  %4520 = load i32, ptr %97, align 4, !tbaa !5
  %4521 = call ptr @__errno_location() #13
  store i32 %4520, ptr %4521, align 4, !tbaa !5
  %4522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4523 = load i32, ptr @test_count, align 4, !tbaa !5
  %4524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4525 = load i32, ptr %4524, align 4, !tbaa !5
  %4526 = call ptr @s2n_strerror(i32 noundef %4525, ptr noundef @.str.16)
  %4527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4528 = load i32, ptr %4527, align 4, !tbaa !5
  %4529 = call ptr @s2n_strerror_debug(i32 noundef %4528, ptr noundef @.str.16)
  %4530 = call ptr @__errno_location() #13
  %4531 = load i32, ptr %4530, align 4, !tbaa !5
  %4532 = call ptr @strerror(i32 noundef %4531) #12
  %4533 = call ptr @__errno_location() #13
  %4534 = load i32, ptr %4533, align 4, !tbaa !5
  %4535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4522, ptr noundef @.str.17, i32 noundef %4523, ptr noundef @.str.74, ptr noundef @.str.13, i32 noundef 278, ptr noundef %4526, ptr noundef %4529, ptr noundef %4532, i32 noundef %4534) #12
  br label %4536

4536:                                             ; preds = %4519, %4502
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #12
  br label %4537

4537:                                             ; preds = %4536
  br label %4538

4538:                                             ; preds = %4537
  call void @exit(i32 noundef 1) #14
  unreachable

4539:                                             ; No predecessors!
  br label %4540

4540:                                             ; preds = %4539
  br label %4541

4541:                                             ; preds = %4540, %4481
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

4544:                                             ; preds = %4543
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = add nsw i32 %4545, 1
  store i32 %4546, ptr @test_count, align 4, !tbaa !5
  %4547 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 3
  %4548 = getelementptr inbounds %struct.s2n_blob, ptr %4547, i32 0, i32 1
  %4549 = load i32, ptr %4548, align 8, !tbaa !38
  %4550 = icmp eq i32 %4549, 0
  br i1 %4550, label %4604, label %4551

4551:                                             ; preds = %4544
  br label %4552

4552:                                             ; preds = %4551
  br label %4553

4553:                                             ; preds = %4552
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #12
  %4554 = call ptr @__errno_location() #13
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  store i32 %4555, ptr %98, align 4, !tbaa !5
  %4556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4557 = call i32 @s2n_print_stacktrace(ptr noundef %4556)
  %4558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4559 = trunc i8 %4558 to i1
  br i1 %4559, label %4560, label %4582

4560:                                             ; preds = %4553
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = call i32 @fileno(ptr noundef %4561) #12
  %4563 = call i32 @isatty(i32 noundef %4562) #12
  %4564 = icmp ne i32 %4563, 0
  br i1 %4564, label %4565, label %4582

4565:                                             ; preds = %4560
  %4566 = load i32, ptr %98, align 4, !tbaa !5
  %4567 = call ptr @__errno_location() #13
  store i32 %4566, ptr %4567, align 4, !tbaa !5
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = load i32, ptr @test_count, align 4, !tbaa !5
  %4570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror(i32 noundef %4571, ptr noundef @.str.16)
  %4573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror_debug(i32 noundef %4574, ptr noundef @.str.16)
  %4576 = call ptr @__errno_location() #13
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call ptr @strerror(i32 noundef %4577) #12
  %4579 = call ptr @__errno_location() #13
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4568, ptr noundef @.str.14, i32 noundef %4569, ptr noundef @.str.75, ptr noundef @.str.13, i32 noundef 279, ptr noundef %4572, ptr noundef %4575, ptr noundef %4578, i32 noundef %4580) #12
  br label %4599

4582:                                             ; preds = %4560, %4553
  %4583 = load i32, ptr %98, align 4, !tbaa !5
  %4584 = call ptr @__errno_location() #13
  store i32 %4583, ptr %4584, align 4, !tbaa !5
  %4585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4586 = load i32, ptr @test_count, align 4, !tbaa !5
  %4587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4588 = load i32, ptr %4587, align 4, !tbaa !5
  %4589 = call ptr @s2n_strerror(i32 noundef %4588, ptr noundef @.str.16)
  %4590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = call ptr @s2n_strerror_debug(i32 noundef %4591, ptr noundef @.str.16)
  %4593 = call ptr @__errno_location() #13
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  %4595 = call ptr @strerror(i32 noundef %4594) #12
  %4596 = call ptr @__errno_location() #13
  %4597 = load i32, ptr %4596, align 4, !tbaa !5
  %4598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4585, ptr noundef @.str.17, i32 noundef %4586, ptr noundef @.str.75, ptr noundef @.str.13, i32 noundef 279, ptr noundef %4589, ptr noundef %4592, ptr noundef %4595, i32 noundef %4597) #12
  br label %4599

4599:                                             ; preds = %4582, %4565
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #12
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

4601:                                             ; preds = %4600
  call void @exit(i32 noundef 1) #14
  unreachable

4602:                                             ; No predecessors!
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603, %4544
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606
  %4608 = load i32, ptr @test_count, align 4, !tbaa !5
  %4609 = add nsw i32 %4608, 1
  store i32 %4609, ptr @test_count, align 4, !tbaa !5
  %4610 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 3
  %4611 = getelementptr inbounds %struct.s2n_blob, ptr %4610, i32 0, i32 0
  %4612 = load ptr, ptr %4611, align 8, !tbaa !40
  %4613 = icmp eq ptr %4612, null
  br i1 %4613, label %4667, label %4614

4614:                                             ; preds = %4607
  br label %4615

4615:                                             ; preds = %4614
  br label %4616

4616:                                             ; preds = %4615
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #12
  %4617 = call ptr @__errno_location() #13
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  store i32 %4618, ptr %99, align 4, !tbaa !5
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @s2n_print_stacktrace(ptr noundef %4619)
  %4621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4622 = trunc i8 %4621 to i1
  br i1 %4622, label %4623, label %4645

4623:                                             ; preds = %4616
  %4624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4625 = call i32 @fileno(ptr noundef %4624) #12
  %4626 = call i32 @isatty(i32 noundef %4625) #12
  %4627 = icmp ne i32 %4626, 0
  br i1 %4627, label %4628, label %4645

4628:                                             ; preds = %4623
  %4629 = load i32, ptr %99, align 4, !tbaa !5
  %4630 = call ptr @__errno_location() #13
  store i32 %4629, ptr %4630, align 4, !tbaa !5
  %4631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4632 = load i32, ptr @test_count, align 4, !tbaa !5
  %4633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call ptr @s2n_strerror(i32 noundef %4634, ptr noundef @.str.16)
  %4636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4637 = load i32, ptr %4636, align 4, !tbaa !5
  %4638 = call ptr @s2n_strerror_debug(i32 noundef %4637, ptr noundef @.str.16)
  %4639 = call ptr @__errno_location() #13
  %4640 = load i32, ptr %4639, align 4, !tbaa !5
  %4641 = call ptr @strerror(i32 noundef %4640) #12
  %4642 = call ptr @__errno_location() #13
  %4643 = load i32, ptr %4642, align 4, !tbaa !5
  %4644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4631, ptr noundef @.str.14, i32 noundef %4632, ptr noundef @.str.76, ptr noundef @.str.13, i32 noundef 280, ptr noundef %4635, ptr noundef %4638, ptr noundef %4641, i32 noundef %4643) #12
  br label %4662

4645:                                             ; preds = %4623, %4616
  %4646 = load i32, ptr %99, align 4, !tbaa !5
  %4647 = call ptr @__errno_location() #13
  store i32 %4646, ptr %4647, align 4, !tbaa !5
  %4648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4649 = load i32, ptr @test_count, align 4, !tbaa !5
  %4650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror(i32 noundef %4651, ptr noundef @.str.16)
  %4653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror_debug(i32 noundef %4654, ptr noundef @.str.16)
  %4656 = call ptr @__errno_location() #13
  %4657 = load i32, ptr %4656, align 4, !tbaa !5
  %4658 = call ptr @strerror(i32 noundef %4657) #12
  %4659 = call ptr @__errno_location() #13
  %4660 = load i32, ptr %4659, align 4, !tbaa !5
  %4661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4648, ptr noundef @.str.17, i32 noundef %4649, ptr noundef @.str.76, ptr noundef @.str.13, i32 noundef 280, ptr noundef %4652, ptr noundef %4655, ptr noundef %4658, i32 noundef %4660) #12
  br label %4662

4662:                                             ; preds = %4645, %4628
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #12
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  call void @exit(i32 noundef 1) #14
  unreachable

4665:                                             ; No predecessors!
  br label %4666

4666:                                             ; preds = %4665
  br label %4667

4667:                                             ; preds = %4666, %4607
  br label %4668

4668:                                             ; preds = %4667
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = add nsw i32 %4671, 1
  store i32 %4672, ptr @test_count, align 4, !tbaa !5
  %4673 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 1
  %4674 = getelementptr inbounds %struct.s2n_blob, ptr %4673, i32 0, i32 2
  %4675 = load i32, ptr %4674, align 4, !tbaa !46
  %4676 = icmp eq i32 0, %4675
  br i1 %4676, label %4730, label %4677

4677:                                             ; preds = %4670
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

4679:                                             ; preds = %4678
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #12
  %4680 = call ptr @__errno_location() #13
  %4681 = load i32, ptr %4680, align 4, !tbaa !5
  store i32 %4681, ptr %100, align 4, !tbaa !5
  %4682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4683 = call i32 @s2n_print_stacktrace(ptr noundef %4682)
  %4684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4685 = trunc i8 %4684 to i1
  br i1 %4685, label %4686, label %4708

4686:                                             ; preds = %4679
  %4687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4688 = call i32 @fileno(ptr noundef %4687) #12
  %4689 = call i32 @isatty(i32 noundef %4688) #12
  %4690 = icmp ne i32 %4689, 0
  br i1 %4690, label %4691, label %4708

4691:                                             ; preds = %4686
  %4692 = load i32, ptr %100, align 4, !tbaa !5
  %4693 = call ptr @__errno_location() #13
  store i32 %4692, ptr %4693, align 4, !tbaa !5
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = load i32, ptr @test_count, align 4, !tbaa !5
  %4696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @s2n_strerror(i32 noundef %4697, ptr noundef @.str.16)
  %4699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror_debug(i32 noundef %4700, ptr noundef @.str.16)
  %4702 = call ptr @__errno_location() #13
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @strerror(i32 noundef %4703) #12
  %4705 = call ptr @__errno_location() #13
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4694, ptr noundef @.str.14, i32 noundef %4695, ptr noundef @.str.77, ptr noundef @.str.13, i32 noundef 284, ptr noundef %4698, ptr noundef %4701, ptr noundef %4704, i32 noundef %4706) #12
  br label %4725

4708:                                             ; preds = %4686, %4679
  %4709 = load i32, ptr %100, align 4, !tbaa !5
  %4710 = call ptr @__errno_location() #13
  store i32 %4709, ptr %4710, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = load i32, ptr @test_count, align 4, !tbaa !5
  %4713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @s2n_strerror(i32 noundef %4714, ptr noundef @.str.16)
  %4716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror_debug(i32 noundef %4717, ptr noundef @.str.16)
  %4719 = call ptr @__errno_location() #13
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #12
  %4722 = call ptr @__errno_location() #13
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4711, ptr noundef @.str.17, i32 noundef %4712, ptr noundef @.str.77, ptr noundef @.str.13, i32 noundef 284, ptr noundef %4715, ptr noundef %4718, ptr noundef %4721, i32 noundef %4723) #12
  br label %4725

4725:                                             ; preds = %4708, %4691
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #12
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

4727:                                             ; preds = %4726
  call void @exit(i32 noundef 1) #14
  unreachable

4728:                                             ; No predecessors!
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

4730:                                             ; preds = %4729, %4670
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

4733:                                             ; preds = %4732
  %4734 = load i32, ptr @test_count, align 4, !tbaa !5
  %4735 = add nsw i32 %4734, 1
  store i32 %4735, ptr @test_count, align 4, !tbaa !5
  %4736 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 3
  %4737 = getelementptr inbounds %struct.s2n_blob, ptr %4736, i32 0, i32 2
  %4738 = load i32, ptr %4737, align 4, !tbaa !39
  %4739 = icmp eq i32 0, %4738
  br i1 %4739, label %4793, label %4740

4740:                                             ; preds = %4733
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #12
  %4743 = call ptr @__errno_location() #13
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  store i32 %4744, ptr %101, align 4, !tbaa !5
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @s2n_print_stacktrace(ptr noundef %4745)
  %4747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4748 = trunc i8 %4747 to i1
  br i1 %4748, label %4749, label %4771

4749:                                             ; preds = %4742
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = call i32 @fileno(ptr noundef %4750) #12
  %4752 = call i32 @isatty(i32 noundef %4751) #12
  %4753 = icmp ne i32 %4752, 0
  br i1 %4753, label %4754, label %4771

4754:                                             ; preds = %4749
  %4755 = load i32, ptr %101, align 4, !tbaa !5
  %4756 = call ptr @__errno_location() #13
  store i32 %4755, ptr %4756, align 4, !tbaa !5
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = load i32, ptr @test_count, align 4, !tbaa !5
  %4759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  %4761 = call ptr @s2n_strerror(i32 noundef %4760, ptr noundef @.str.16)
  %4762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4763 = load i32, ptr %4762, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror_debug(i32 noundef %4763, ptr noundef @.str.16)
  %4765 = call ptr @__errno_location() #13
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @strerror(i32 noundef %4766) #12
  %4768 = call ptr @__errno_location() #13
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4757, ptr noundef @.str.14, i32 noundef %4758, ptr noundef @.str.78, ptr noundef @.str.13, i32 noundef 285, ptr noundef %4761, ptr noundef %4764, ptr noundef %4767, i32 noundef %4769) #12
  br label %4788

4771:                                             ; preds = %4749, %4742
  %4772 = load i32, ptr %101, align 4, !tbaa !5
  %4773 = call ptr @__errno_location() #13
  store i32 %4772, ptr %4773, align 4, !tbaa !5
  %4774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4775 = load i32, ptr @test_count, align 4, !tbaa !5
  %4776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4777 = load i32, ptr %4776, align 4, !tbaa !5
  %4778 = call ptr @s2n_strerror(i32 noundef %4777, ptr noundef @.str.16)
  %4779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4780 = load i32, ptr %4779, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror_debug(i32 noundef %4780, ptr noundef @.str.16)
  %4782 = call ptr @__errno_location() #13
  %4783 = load i32, ptr %4782, align 4, !tbaa !5
  %4784 = call ptr @strerror(i32 noundef %4783) #12
  %4785 = call ptr @__errno_location() #13
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4774, ptr noundef @.str.17, i32 noundef %4775, ptr noundef @.str.78, ptr noundef @.str.13, i32 noundef 285, ptr noundef %4778, ptr noundef %4781, ptr noundef %4784, i32 noundef %4786) #12
  br label %4788

4788:                                             ; preds = %4771, %4754
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #12
  br label %4789

4789:                                             ; preds = %4788
  br label %4790

4790:                                             ; preds = %4789
  call void @exit(i32 noundef 1) #14
  unreachable

4791:                                             ; No predecessors!
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792, %4733
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795
  %4797 = load i32, ptr @test_count, align 4, !tbaa !5
  %4798 = add nsw i32 %4797, 1
  store i32 %4798, ptr @test_count, align 4, !tbaa !5
  %4799 = getelementptr inbounds %struct.s2n_kem_params, ptr %83, i32 0, i32 2
  %4800 = getelementptr inbounds %struct.s2n_blob, ptr %4799, i32 0, i32 2
  %4801 = load i32, ptr %4800, align 4, !tbaa !43
  %4802 = icmp eq i32 0, %4801
  br i1 %4802, label %4803, label %4856

4803:                                             ; preds = %4796
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #12
  %4806 = call ptr @__errno_location() #13
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  store i32 %4807, ptr %102, align 4, !tbaa !5
  %4808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4809 = call i32 @s2n_print_stacktrace(ptr noundef %4808)
  %4810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4811 = trunc i8 %4810 to i1
  br i1 %4811, label %4812, label %4834

4812:                                             ; preds = %4805
  %4813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4814 = call i32 @fileno(ptr noundef %4813) #12
  %4815 = call i32 @isatty(i32 noundef %4814) #12
  %4816 = icmp ne i32 %4815, 0
  br i1 %4816, label %4817, label %4834

4817:                                             ; preds = %4812
  %4818 = load i32, ptr %102, align 4, !tbaa !5
  %4819 = call ptr @__errno_location() #13
  store i32 %4818, ptr %4819, align 4, !tbaa !5
  %4820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4821 = load i32, ptr @test_count, align 4, !tbaa !5
  %4822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call ptr @s2n_strerror(i32 noundef %4823, ptr noundef @.str.16)
  %4825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror_debug(i32 noundef %4826, ptr noundef @.str.16)
  %4828 = call ptr @__errno_location() #13
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call ptr @strerror(i32 noundef %4829) #12
  %4831 = call ptr @__errno_location() #13
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4820, ptr noundef @.str.14, i32 noundef %4821, ptr noundef @.str.79, ptr noundef @.str.13, i32 noundef 286, ptr noundef %4824, ptr noundef %4827, ptr noundef %4830, i32 noundef %4832) #12
  br label %4851

4834:                                             ; preds = %4812, %4805
  %4835 = load i32, ptr %102, align 4, !tbaa !5
  %4836 = call ptr @__errno_location() #13
  store i32 %4835, ptr %4836, align 4, !tbaa !5
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = load i32, ptr @test_count, align 4, !tbaa !5
  %4839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror(i32 noundef %4840, ptr noundef @.str.16)
  %4842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror_debug(i32 noundef %4843, ptr noundef @.str.16)
  %4845 = call ptr @__errno_location() #13
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @strerror(i32 noundef %4846) #12
  %4848 = call ptr @__errno_location() #13
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4837, ptr noundef @.str.17, i32 noundef %4838, ptr noundef @.str.79, ptr noundef @.str.13, i32 noundef 286, ptr noundef %4841, ptr noundef %4844, ptr noundef %4847, i32 noundef %4849) #12
  br label %4851

4851:                                             ; preds = %4834, %4817
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #12
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852
  call void @exit(i32 noundef 1) #14
  unreachable

4854:                                             ; No predecessors!
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

4856:                                             ; preds = %4855, %4796
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858
  %4860 = load i32, ptr @test_count, align 4, !tbaa !5
  %4861 = add nsw i32 %4860, 1
  store i32 %4861, ptr @test_count, align 4, !tbaa !5
  %4862 = call i32 @s2n_kem_free(ptr noundef %83)
  %4863 = icmp eq i32 %4862, -1
  br i1 %4863, label %4864, label %4917

4864:                                             ; preds = %4859
  br label %4865

4865:                                             ; preds = %4864
  br label %4866

4866:                                             ; preds = %4865
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #12
  %4867 = call ptr @__errno_location() #13
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  store i32 %4868, ptr %103, align 4, !tbaa !5
  %4869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4870 = call i32 @s2n_print_stacktrace(ptr noundef %4869)
  %4871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4872 = trunc i8 %4871 to i1
  br i1 %4872, label %4873, label %4895

4873:                                             ; preds = %4866
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = call i32 @fileno(ptr noundef %4874) #12
  %4876 = call i32 @isatty(i32 noundef %4875) #12
  %4877 = icmp ne i32 %4876, 0
  br i1 %4877, label %4878, label %4895

4878:                                             ; preds = %4873
  %4879 = load i32, ptr %103, align 4, !tbaa !5
  %4880 = call ptr @__errno_location() #13
  store i32 %4879, ptr %4880, align 4, !tbaa !5
  %4881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4882 = load i32, ptr @test_count, align 4, !tbaa !5
  %4883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror(i32 noundef %4884, ptr noundef @.str.16)
  %4886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @s2n_strerror_debug(i32 noundef %4887, ptr noundef @.str.16)
  %4889 = call ptr @__errno_location() #13
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call ptr @strerror(i32 noundef %4890) #12
  %4892 = call ptr @__errno_location() #13
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4881, ptr noundef @.str.14, i32 noundef %4882, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 287, ptr noundef %4885, ptr noundef %4888, ptr noundef %4891, i32 noundef %4893) #12
  br label %4912

4895:                                             ; preds = %4873, %4866
  %4896 = load i32, ptr %103, align 4, !tbaa !5
  %4897 = call ptr @__errno_location() #13
  store i32 %4896, ptr %4897, align 4, !tbaa !5
  %4898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call ptr @s2n_strerror(i32 noundef %4901, ptr noundef @.str.16)
  %4903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call ptr @s2n_strerror_debug(i32 noundef %4904, ptr noundef @.str.16)
  %4906 = call ptr @__errno_location() #13
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @strerror(i32 noundef %4907) #12
  %4909 = call ptr @__errno_location() #13
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4898, ptr noundef @.str.17, i32 noundef %4899, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 287, ptr noundef %4902, ptr noundef %4905, ptr noundef %4908, i32 noundef %4910) #12
  br label %4912

4912:                                             ; preds = %4895, %4878
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #12
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

4914:                                             ; preds = %4913
  call void @exit(i32 noundef 1) #14
  unreachable

4915:                                             ; No predecessors!
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916, %4859
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

4919:                                             ; preds = %4918
  call void @llvm.lifetime.end.p0(i64 2, ptr %92) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %90) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %86) #12
  %4920 = call i32 @s2n_free(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %83) #12
  br label %4921

4921:                                             ; preds = %4919
  br label %4922

4922:                                             ; preds = %4921
  br label %4923

4923:                                             ; preds = %4922
  %4924 = load i32, ptr @test_count, align 4, !tbaa !5
  %4925 = add nsw i32 %4924, 1
  store i32 %4925, ptr @test_count, align 4, !tbaa !5
  %4926 = call i32 @s2n_kem_send_public_key(ptr noundef null, ptr noundef null)
  %4927 = icmp eq i32 %4926, -1
  br i1 %4927, label %4981, label %4928

4928:                                             ; preds = %4923
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #12
  %4931 = call ptr @__errno_location() #13
  %4932 = load i32, ptr %4931, align 4, !tbaa !5
  store i32 %4932, ptr %104, align 4, !tbaa !5
  %4933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4934 = call i32 @s2n_print_stacktrace(ptr noundef %4933)
  %4935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4936 = trunc i8 %4935 to i1
  br i1 %4936, label %4937, label %4959

4937:                                             ; preds = %4930
  %4938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4939 = call i32 @fileno(ptr noundef %4938) #12
  %4940 = call i32 @isatty(i32 noundef %4939) #12
  %4941 = icmp ne i32 %4940, 0
  br i1 %4941, label %4942, label %4959

4942:                                             ; preds = %4937
  %4943 = load i32, ptr %104, align 4, !tbaa !5
  %4944 = call ptr @__errno_location() #13
  store i32 %4943, ptr %4944, align 4, !tbaa !5
  %4945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4946 = load i32, ptr @test_count, align 4, !tbaa !5
  %4947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror(i32 noundef %4948, ptr noundef @.str.16)
  %4950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call ptr @s2n_strerror_debug(i32 noundef %4951, ptr noundef @.str.16)
  %4953 = call ptr @__errno_location() #13
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call ptr @strerror(i32 noundef %4954) #12
  %4956 = call ptr @__errno_location() #13
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4945, ptr noundef @.str.14, i32 noundef %4946, ptr noundef @.str.80, ptr noundef @.str.13, i32 noundef 291, ptr noundef %4949, ptr noundef %4952, ptr noundef %4955, i32 noundef %4957) #12
  br label %4976

4959:                                             ; preds = %4937, %4930
  %4960 = load i32, ptr %104, align 4, !tbaa !5
  %4961 = call ptr @__errno_location() #13
  store i32 %4960, ptr %4961, align 4, !tbaa !5
  %4962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4963 = load i32, ptr @test_count, align 4, !tbaa !5
  %4964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @s2n_strerror(i32 noundef %4965, ptr noundef @.str.16)
  %4967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call ptr @s2n_strerror_debug(i32 noundef %4968, ptr noundef @.str.16)
  %4970 = call ptr @__errno_location() #13
  %4971 = load i32, ptr %4970, align 4, !tbaa !5
  %4972 = call ptr @strerror(i32 noundef %4971) #12
  %4973 = call ptr @__errno_location() #13
  %4974 = load i32, ptr %4973, align 4, !tbaa !5
  %4975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4962, ptr noundef @.str.17, i32 noundef %4963, ptr noundef @.str.80, ptr noundef @.str.13, i32 noundef 291, ptr noundef %4966, ptr noundef %4969, ptr noundef %4972, i32 noundef %4974) #12
  br label %4976

4976:                                             ; preds = %4959, %4942
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #12
  br label %4977

4977:                                             ; preds = %4976
  br label %4978

4978:                                             ; preds = %4977
  call void @exit(i32 noundef 1) #14
  unreachable

4979:                                             ; No predecessors!
  br label %4980

4980:                                             ; preds = %4979
  br label %4981

4981:                                             ; preds = %4980, %4923
  br label %4982

4982:                                             ; preds = %4981
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

4984:                                             ; preds = %4983
  %4985 = load i32, ptr @test_count, align 4, !tbaa !5
  %4986 = add nsw i32 %4985, 1
  store i32 %4986, ptr @test_count, align 4, !tbaa !5
  %4987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  %4989 = icmp eq i32 %4988, 402653193
  br i1 %4989, label %5043, label %4990

4990:                                             ; preds = %4984
  br label %4991

4991:                                             ; preds = %4990
  br label %4992

4992:                                             ; preds = %4991
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #12
  %4993 = call ptr @__errno_location() #13
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  store i32 %4994, ptr %105, align 4, !tbaa !5
  %4995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4996 = call i32 @s2n_print_stacktrace(ptr noundef %4995)
  %4997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4998 = trunc i8 %4997 to i1
  br i1 %4998, label %4999, label %5021

4999:                                             ; preds = %4992
  %5000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5001 = call i32 @fileno(ptr noundef %5000) #12
  %5002 = call i32 @isatty(i32 noundef %5001) #12
  %5003 = icmp ne i32 %5002, 0
  br i1 %5003, label %5004, label %5021

5004:                                             ; preds = %4999
  %5005 = load i32, ptr %105, align 4, !tbaa !5
  %5006 = call ptr @__errno_location() #13
  store i32 %5005, ptr %5006, align 4, !tbaa !5
  %5007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5008 = load i32, ptr @test_count, align 4, !tbaa !5
  %5009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5010 = load i32, ptr %5009, align 4, !tbaa !5
  %5011 = call ptr @s2n_strerror(i32 noundef %5010, ptr noundef @.str.16)
  %5012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5013 = load i32, ptr %5012, align 4, !tbaa !5
  %5014 = call ptr @s2n_strerror_debug(i32 noundef %5013, ptr noundef @.str.16)
  %5015 = call ptr @__errno_location() #13
  %5016 = load i32, ptr %5015, align 4, !tbaa !5
  %5017 = call ptr @strerror(i32 noundef %5016) #12
  %5018 = call ptr @__errno_location() #13
  %5019 = load i32, ptr %5018, align 4, !tbaa !5
  %5020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5007, ptr noundef @.str.14, i32 noundef %5008, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 291, ptr noundef %5011, ptr noundef %5014, ptr noundef %5017, i32 noundef %5019) #12
  br label %5038

5021:                                             ; preds = %4999, %4992
  %5022 = load i32, ptr %105, align 4, !tbaa !5
  %5023 = call ptr @__errno_location() #13
  store i32 %5022, ptr %5023, align 4, !tbaa !5
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = load i32, ptr @test_count, align 4, !tbaa !5
  %5026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call ptr @s2n_strerror(i32 noundef %5027, ptr noundef @.str.16)
  %5029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror_debug(i32 noundef %5030, ptr noundef @.str.16)
  %5032 = call ptr @__errno_location() #13
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #12
  %5035 = call ptr @__errno_location() #13
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5024, ptr noundef @.str.17, i32 noundef %5025, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 291, ptr noundef %5028, ptr noundef %5031, ptr noundef %5034, i32 noundef %5036) #12
  br label %5038

5038:                                             ; preds = %5021, %5004
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #12
  br label %5039

5039:                                             ; preds = %5038
  br label %5040

5040:                                             ; preds = %5039
  call void @exit(i32 noundef 1) #14
  unreachable

5041:                                             ; No predecessors!
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042, %4984
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

5045:                                             ; preds = %5044
  br label %5046

5046:                                             ; preds = %5045
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = add nsw i32 %5047, 1
  store i32 %5048, ptr @test_count, align 4, !tbaa !5
  %5049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror_debug(i32 noundef %5050, ptr noundef @.str.16)
  %5052 = icmp eq ptr %5051, null
  br i1 %5052, label %5053, label %5106

5053:                                             ; preds = %5046
  br label %5054

5054:                                             ; preds = %5053
  br label %5055

5055:                                             ; preds = %5054
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #12
  %5056 = call ptr @__errno_location() #13
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  store i32 %5057, ptr %106, align 4, !tbaa !5
  %5058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5059 = call i32 @s2n_print_stacktrace(ptr noundef %5058)
  %5060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5061 = trunc i8 %5060 to i1
  br i1 %5061, label %5062, label %5084

5062:                                             ; preds = %5055
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = call i32 @fileno(ptr noundef %5063) #12
  %5065 = call i32 @isatty(i32 noundef %5064) #12
  %5066 = icmp ne i32 %5065, 0
  br i1 %5066, label %5067, label %5084

5067:                                             ; preds = %5062
  %5068 = load i32, ptr %106, align 4, !tbaa !5
  %5069 = call ptr @__errno_location() #13
  store i32 %5068, ptr %5069, align 4, !tbaa !5
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call ptr @s2n_strerror(i32 noundef %5073, ptr noundef @.str.16)
  %5075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  %5077 = call ptr @s2n_strerror_debug(i32 noundef %5076, ptr noundef @.str.16)
  %5078 = call ptr @__errno_location() #13
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @strerror(i32 noundef %5079) #12
  %5081 = call ptr @__errno_location() #13
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5070, ptr noundef @.str.14, i32 noundef %5071, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 291, ptr noundef %5074, ptr noundef %5077, ptr noundef %5080, i32 noundef %5082) #12
  br label %5101

5084:                                             ; preds = %5062, %5055
  %5085 = load i32, ptr %106, align 4, !tbaa !5
  %5086 = call ptr @__errno_location() #13
  store i32 %5085, ptr %5086, align 4, !tbaa !5
  %5087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5088 = load i32, ptr @test_count, align 4, !tbaa !5
  %5089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call ptr @s2n_strerror(i32 noundef %5090, ptr noundef @.str.16)
  %5092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5093 = load i32, ptr %5092, align 4, !tbaa !5
  %5094 = call ptr @s2n_strerror_debug(i32 noundef %5093, ptr noundef @.str.16)
  %5095 = call ptr @__errno_location() #13
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @strerror(i32 noundef %5096) #12
  %5098 = call ptr @__errno_location() #13
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5087, ptr noundef @.str.17, i32 noundef %5088, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 291, ptr noundef %5091, ptr noundef %5094, ptr noundef %5097, i32 noundef %5099) #12
  br label %5101

5101:                                             ; preds = %5084, %5067
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #12
  br label %5102

5102:                                             ; preds = %5101
  br label %5103

5103:                                             ; preds = %5102
  call void @exit(i32 noundef 1) #14
  unreachable

5104:                                             ; No predecessors!
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

5106:                                             ; preds = %5105, %5046
  br label %5107

5107:                                             ; preds = %5106
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

5109:                                             ; preds = %5108
  br label %5110

5110:                                             ; preds = %5109
  br label %5111

5111:                                             ; preds = %5110
  %5112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5112, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5113 = call ptr @__errno_location() #13
  store i32 0, ptr %5113, align 4, !tbaa !5
  br label %5114

5114:                                             ; preds = %5111
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115
  br label %5117

5117:                                             ; preds = %5116
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #12
  call void @llvm.memset.p0.i64(ptr align 8 %107, i8 0, i64 24, i1 false)
  br label %5118

5118:                                             ; preds = %5117
  %5119 = load i32, ptr @test_count, align 4, !tbaa !5
  %5120 = add nsw i32 %5119, 1
  store i32 %5120, ptr @test_count, align 4, !tbaa !5
  %5121 = call i32 @s2n_alloc(ptr noundef %107, i32 noundef 1)
  %5122 = icmp eq i32 %5121, -1
  br i1 %5122, label %5123, label %5176

5123:                                             ; preds = %5118
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

5125:                                             ; preds = %5124
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #12
  %5126 = call ptr @__errno_location() #13
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  store i32 %5127, ptr %108, align 4, !tbaa !5
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = call i32 @s2n_print_stacktrace(ptr noundef %5128)
  %5130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5131 = trunc i8 %5130 to i1
  br i1 %5131, label %5132, label %5154

5132:                                             ; preds = %5125
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = call i32 @fileno(ptr noundef %5133) #12
  %5135 = call i32 @isatty(i32 noundef %5134) #12
  %5136 = icmp ne i32 %5135, 0
  br i1 %5136, label %5137, label %5154

5137:                                             ; preds = %5132
  %5138 = load i32, ptr %108, align 4, !tbaa !5
  %5139 = call ptr @__errno_location() #13
  store i32 %5138, ptr %5139, align 4, !tbaa !5
  %5140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5141 = load i32, ptr @test_count, align 4, !tbaa !5
  %5142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror(i32 noundef %5143, ptr noundef @.str.16)
  %5145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5146 = load i32, ptr %5145, align 4, !tbaa !5
  %5147 = call ptr @s2n_strerror_debug(i32 noundef %5146, ptr noundef @.str.16)
  %5148 = call ptr @__errno_location() #13
  %5149 = load i32, ptr %5148, align 4, !tbaa !5
  %5150 = call ptr @strerror(i32 noundef %5149) #12
  %5151 = call ptr @__errno_location() #13
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5140, ptr noundef @.str.14, i32 noundef %5141, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 294, ptr noundef %5144, ptr noundef %5147, ptr noundef %5150, i32 noundef %5152) #12
  br label %5171

5154:                                             ; preds = %5132, %5125
  %5155 = load i32, ptr %108, align 4, !tbaa !5
  %5156 = call ptr @__errno_location() #13
  store i32 %5155, ptr %5156, align 4, !tbaa !5
  %5157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5158 = load i32, ptr @test_count, align 4, !tbaa !5
  %5159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5160 = load i32, ptr %5159, align 4, !tbaa !5
  %5161 = call ptr @s2n_strerror(i32 noundef %5160, ptr noundef @.str.16)
  %5162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5163 = load i32, ptr %5162, align 4, !tbaa !5
  %5164 = call ptr @s2n_strerror_debug(i32 noundef %5163, ptr noundef @.str.16)
  %5165 = call ptr @__errno_location() #13
  %5166 = load i32, ptr %5165, align 4, !tbaa !5
  %5167 = call ptr @strerror(i32 noundef %5166) #12
  %5168 = call ptr @__errno_location() #13
  %5169 = load i32, ptr %5168, align 4, !tbaa !5
  %5170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5157, ptr noundef @.str.17, i32 noundef %5158, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 294, ptr noundef %5161, ptr noundef %5164, ptr noundef %5167, i32 noundef %5169) #12
  br label %5171

5171:                                             ; preds = %5154, %5137
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #12
  br label %5172

5172:                                             ; preds = %5171
  br label %5173

5173:                                             ; preds = %5172
  call void @exit(i32 noundef 1) #14
  unreachable

5174:                                             ; No predecessors!
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175, %5118
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

5178:                                             ; preds = %5177
  call void @llvm.lifetime.start.p0(i64 40, ptr %109) #12
  call void @llvm.memset.p0.i64(ptr align 8 %109, i8 0, i64 40, i1 false)
  br label %5179

5179:                                             ; preds = %5178
  %5180 = load i32, ptr @test_count, align 4, !tbaa !5
  %5181 = add nsw i32 %5180, 1
  store i32 %5181, ptr @test_count, align 4, !tbaa !5
  %5182 = call i32 @s2n_stuffer_init(ptr noundef %109, ptr noundef %107)
  %5183 = icmp eq i32 %5182, -1
  br i1 %5183, label %5184, label %5237

5184:                                             ; preds = %5179
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #12
  %5187 = call ptr @__errno_location() #13
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  store i32 %5188, ptr %110, align 4, !tbaa !5
  %5189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5190 = call i32 @s2n_print_stacktrace(ptr noundef %5189)
  %5191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5192 = trunc i8 %5191 to i1
  br i1 %5192, label %5193, label %5215

5193:                                             ; preds = %5186
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = call i32 @fileno(ptr noundef %5194) #12
  %5196 = call i32 @isatty(i32 noundef %5195) #12
  %5197 = icmp ne i32 %5196, 0
  br i1 %5197, label %5198, label %5215

5198:                                             ; preds = %5193
  %5199 = load i32, ptr %110, align 4, !tbaa !5
  %5200 = call ptr @__errno_location() #13
  store i32 %5199, ptr %5200, align 4, !tbaa !5
  %5201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5202 = load i32, ptr @test_count, align 4, !tbaa !5
  %5203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @s2n_strerror(i32 noundef %5204, ptr noundef @.str.16)
  %5206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call ptr @s2n_strerror_debug(i32 noundef %5207, ptr noundef @.str.16)
  %5209 = call ptr @__errno_location() #13
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @strerror(i32 noundef %5210) #12
  %5212 = call ptr @__errno_location() #13
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5201, ptr noundef @.str.14, i32 noundef %5202, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 296, ptr noundef %5205, ptr noundef %5208, ptr noundef %5211, i32 noundef %5213) #12
  br label %5232

5215:                                             ; preds = %5193, %5186
  %5216 = load i32, ptr %110, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #13
  store i32 %5216, ptr %5217, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef @.str.16)
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror_debug(i32 noundef %5224, ptr noundef @.str.16)
  %5226 = call ptr @__errno_location() #13
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #12
  %5229 = call ptr @__errno_location() #13
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.17, i32 noundef %5219, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 296, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #12
  br label %5232

5232:                                             ; preds = %5215, %5198
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #12
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

5234:                                             ; preds = %5233
  call void @exit(i32 noundef 1) #14
  unreachable

5235:                                             ; No predecessors!
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236, %5179
  br label %5238

5238:                                             ; preds = %5237
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  %5243 = load i32, ptr @test_count, align 4, !tbaa !5
  %5244 = add nsw i32 %5243, 1
  store i32 %5244, ptr @test_count, align 4, !tbaa !5
  %5245 = call i32 @s2n_kem_send_public_key(ptr noundef %109, ptr noundef null)
  %5246 = icmp eq i32 %5245, -1
  br i1 %5246, label %5300, label %5247

5247:                                             ; preds = %5242
  br label %5248

5248:                                             ; preds = %5247
  br label %5249

5249:                                             ; preds = %5248
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #12
  %5250 = call ptr @__errno_location() #13
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  store i32 %5251, ptr %111, align 4, !tbaa !5
  %5252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5253 = call i32 @s2n_print_stacktrace(ptr noundef %5252)
  %5254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5255 = trunc i8 %5254 to i1
  br i1 %5255, label %5256, label %5278

5256:                                             ; preds = %5249
  %5257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5258 = call i32 @fileno(ptr noundef %5257) #12
  %5259 = call i32 @isatty(i32 noundef %5258) #12
  %5260 = icmp ne i32 %5259, 0
  br i1 %5260, label %5261, label %5278

5261:                                             ; preds = %5256
  %5262 = load i32, ptr %111, align 4, !tbaa !5
  %5263 = call ptr @__errno_location() #13
  store i32 %5262, ptr %5263, align 4, !tbaa !5
  %5264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5265 = load i32, ptr @test_count, align 4, !tbaa !5
  %5266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5267 = load i32, ptr %5266, align 4, !tbaa !5
  %5268 = call ptr @s2n_strerror(i32 noundef %5267, ptr noundef @.str.16)
  %5269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5270 = load i32, ptr %5269, align 4, !tbaa !5
  %5271 = call ptr @s2n_strerror_debug(i32 noundef %5270, ptr noundef @.str.16)
  %5272 = call ptr @__errno_location() #13
  %5273 = load i32, ptr %5272, align 4, !tbaa !5
  %5274 = call ptr @strerror(i32 noundef %5273) #12
  %5275 = call ptr @__errno_location() #13
  %5276 = load i32, ptr %5275, align 4, !tbaa !5
  %5277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5264, ptr noundef @.str.14, i32 noundef %5265, ptr noundef @.str.83, ptr noundef @.str.13, i32 noundef 298, ptr noundef %5268, ptr noundef %5271, ptr noundef %5274, i32 noundef %5276) #12
  br label %5295

5278:                                             ; preds = %5256, %5249
  %5279 = load i32, ptr %111, align 4, !tbaa !5
  %5280 = call ptr @__errno_location() #13
  store i32 %5279, ptr %5280, align 4, !tbaa !5
  %5281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5282 = load i32, ptr @test_count, align 4, !tbaa !5
  %5283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5284 = load i32, ptr %5283, align 4, !tbaa !5
  %5285 = call ptr @s2n_strerror(i32 noundef %5284, ptr noundef @.str.16)
  %5286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5287 = load i32, ptr %5286, align 4, !tbaa !5
  %5288 = call ptr @s2n_strerror_debug(i32 noundef %5287, ptr noundef @.str.16)
  %5289 = call ptr @__errno_location() #13
  %5290 = load i32, ptr %5289, align 4, !tbaa !5
  %5291 = call ptr @strerror(i32 noundef %5290) #12
  %5292 = call ptr @__errno_location() #13
  %5293 = load i32, ptr %5292, align 4, !tbaa !5
  %5294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5281, ptr noundef @.str.17, i32 noundef %5282, ptr noundef @.str.83, ptr noundef @.str.13, i32 noundef 298, ptr noundef %5285, ptr noundef %5288, ptr noundef %5291, i32 noundef %5293) #12
  br label %5295

5295:                                             ; preds = %5278, %5261
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #12
  br label %5296

5296:                                             ; preds = %5295
  br label %5297

5297:                                             ; preds = %5296
  call void @exit(i32 noundef 1) #14
  unreachable

5298:                                             ; No predecessors!
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299, %5242
  br label %5301

5301:                                             ; preds = %5300
  br label %5302

5302:                                             ; preds = %5301
  br label %5303

5303:                                             ; preds = %5302
  %5304 = load i32, ptr @test_count, align 4, !tbaa !5
  %5305 = add nsw i32 %5304, 1
  store i32 %5305, ptr @test_count, align 4, !tbaa !5
  %5306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5307 = load i32, ptr %5306, align 4, !tbaa !5
  %5308 = icmp eq i32 %5307, 402653193
  br i1 %5308, label %5362, label %5309

5309:                                             ; preds = %5303
  br label %5310

5310:                                             ; preds = %5309
  br label %5311

5311:                                             ; preds = %5310
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #12
  %5312 = call ptr @__errno_location() #13
  %5313 = load i32, ptr %5312, align 4, !tbaa !5
  store i32 %5313, ptr %112, align 4, !tbaa !5
  %5314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5315 = call i32 @s2n_print_stacktrace(ptr noundef %5314)
  %5316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5317 = trunc i8 %5316 to i1
  br i1 %5317, label %5318, label %5340

5318:                                             ; preds = %5311
  %5319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5320 = call i32 @fileno(ptr noundef %5319) #12
  %5321 = call i32 @isatty(i32 noundef %5320) #12
  %5322 = icmp ne i32 %5321, 0
  br i1 %5322, label %5323, label %5340

5323:                                             ; preds = %5318
  %5324 = load i32, ptr %112, align 4, !tbaa !5
  %5325 = call ptr @__errno_location() #13
  store i32 %5324, ptr %5325, align 4, !tbaa !5
  %5326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5327 = load i32, ptr @test_count, align 4, !tbaa !5
  %5328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5329 = load i32, ptr %5328, align 4, !tbaa !5
  %5330 = call ptr @s2n_strerror(i32 noundef %5329, ptr noundef @.str.16)
  %5331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5332 = load i32, ptr %5331, align 4, !tbaa !5
  %5333 = call ptr @s2n_strerror_debug(i32 noundef %5332, ptr noundef @.str.16)
  %5334 = call ptr @__errno_location() #13
  %5335 = load i32, ptr %5334, align 4, !tbaa !5
  %5336 = call ptr @strerror(i32 noundef %5335) #12
  %5337 = call ptr @__errno_location() #13
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5326, ptr noundef @.str.14, i32 noundef %5327, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 298, ptr noundef %5330, ptr noundef %5333, ptr noundef %5336, i32 noundef %5338) #12
  br label %5357

5340:                                             ; preds = %5318, %5311
  %5341 = load i32, ptr %112, align 4, !tbaa !5
  %5342 = call ptr @__errno_location() #13
  store i32 %5341, ptr %5342, align 4, !tbaa !5
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = load i32, ptr @test_count, align 4, !tbaa !5
  %5345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5346 = load i32, ptr %5345, align 4, !tbaa !5
  %5347 = call ptr @s2n_strerror(i32 noundef %5346, ptr noundef @.str.16)
  %5348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5349 = load i32, ptr %5348, align 4, !tbaa !5
  %5350 = call ptr @s2n_strerror_debug(i32 noundef %5349, ptr noundef @.str.16)
  %5351 = call ptr @__errno_location() #13
  %5352 = load i32, ptr %5351, align 4, !tbaa !5
  %5353 = call ptr @strerror(i32 noundef %5352) #12
  %5354 = call ptr @__errno_location() #13
  %5355 = load i32, ptr %5354, align 4, !tbaa !5
  %5356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5343, ptr noundef @.str.17, i32 noundef %5344, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 298, ptr noundef %5347, ptr noundef %5350, ptr noundef %5353, i32 noundef %5355) #12
  br label %5357

5357:                                             ; preds = %5340, %5323
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #12
  br label %5358

5358:                                             ; preds = %5357
  br label %5359

5359:                                             ; preds = %5358
  call void @exit(i32 noundef 1) #14
  unreachable

5360:                                             ; No predecessors!
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

5362:                                             ; preds = %5361, %5303
  br label %5363

5363:                                             ; preds = %5362
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364
  %5366 = load i32, ptr @test_count, align 4, !tbaa !5
  %5367 = add nsw i32 %5366, 1
  store i32 %5367, ptr @test_count, align 4, !tbaa !5
  %5368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5369 = load i32, ptr %5368, align 4, !tbaa !5
  %5370 = call ptr @s2n_strerror_debug(i32 noundef %5369, ptr noundef @.str.16)
  %5371 = icmp eq ptr %5370, null
  br i1 %5371, label %5372, label %5425

5372:                                             ; preds = %5365
  br label %5373

5373:                                             ; preds = %5372
  br label %5374

5374:                                             ; preds = %5373
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #12
  %5375 = call ptr @__errno_location() #13
  %5376 = load i32, ptr %5375, align 4, !tbaa !5
  store i32 %5376, ptr %113, align 4, !tbaa !5
  %5377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5378 = call i32 @s2n_print_stacktrace(ptr noundef %5377)
  %5379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5380 = trunc i8 %5379 to i1
  br i1 %5380, label %5381, label %5403

5381:                                             ; preds = %5374
  %5382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5383 = call i32 @fileno(ptr noundef %5382) #12
  %5384 = call i32 @isatty(i32 noundef %5383) #12
  %5385 = icmp ne i32 %5384, 0
  br i1 %5385, label %5386, label %5403

5386:                                             ; preds = %5381
  %5387 = load i32, ptr %113, align 4, !tbaa !5
  %5388 = call ptr @__errno_location() #13
  store i32 %5387, ptr %5388, align 4, !tbaa !5
  %5389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5390 = load i32, ptr @test_count, align 4, !tbaa !5
  %5391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5392 = load i32, ptr %5391, align 4, !tbaa !5
  %5393 = call ptr @s2n_strerror(i32 noundef %5392, ptr noundef @.str.16)
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror_debug(i32 noundef %5395, ptr noundef @.str.16)
  %5397 = call ptr @__errno_location() #13
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @strerror(i32 noundef %5398) #12
  %5400 = call ptr @__errno_location() #13
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5389, ptr noundef @.str.14, i32 noundef %5390, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 298, ptr noundef %5393, ptr noundef %5396, ptr noundef %5399, i32 noundef %5401) #12
  br label %5420

5403:                                             ; preds = %5381, %5374
  %5404 = load i32, ptr %113, align 4, !tbaa !5
  %5405 = call ptr @__errno_location() #13
  store i32 %5404, ptr %5405, align 4, !tbaa !5
  %5406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5407 = load i32, ptr @test_count, align 4, !tbaa !5
  %5408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  %5410 = call ptr @s2n_strerror(i32 noundef %5409, ptr noundef @.str.16)
  %5411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  %5413 = call ptr @s2n_strerror_debug(i32 noundef %5412, ptr noundef @.str.16)
  %5414 = call ptr @__errno_location() #13
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call ptr @strerror(i32 noundef %5415) #12
  %5417 = call ptr @__errno_location() #13
  %5418 = load i32, ptr %5417, align 4, !tbaa !5
  %5419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5406, ptr noundef @.str.17, i32 noundef %5407, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 298, ptr noundef %5410, ptr noundef %5413, ptr noundef %5416, i32 noundef %5418) #12
  br label %5420

5420:                                             ; preds = %5403, %5386
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #12
  br label %5421

5421:                                             ; preds = %5420
  br label %5422

5422:                                             ; preds = %5421
  call void @exit(i32 noundef 1) #14
  unreachable

5423:                                             ; No predecessors!
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424, %5365
  br label %5426

5426:                                             ; preds = %5425
  br label %5427

5427:                                             ; preds = %5426
  br label %5428

5428:                                             ; preds = %5427
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429
  %5431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5431, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5432 = call ptr @__errno_location() #13
  store i32 0, ptr %5432, align 4, !tbaa !5
  br label %5433

5433:                                             ; preds = %5430
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434
  br label %5436

5436:                                             ; preds = %5435
  call void @llvm.lifetime.start.p0(i64 88, ptr %114) #12
  call void @llvm.memset.p0.i64(ptr align 8 %114, i8 0, i64 88, i1 false)
  %5437 = load i32, ptr %48, align 4, !tbaa !5
  %5438 = icmp ne i32 %5437, 0
  %5439 = getelementptr inbounds %struct.s2n_kem_params, ptr %114, i32 0, i32 4
  %5440 = zext i1 %5438 to i8
  store i8 %5440, ptr %5439, align 8, !tbaa !33
  br label %5441

5441:                                             ; preds = %5436
  br label %5442

5442:                                             ; preds = %5441
  br label %5443

5443:                                             ; preds = %5442
  %5444 = load i32, ptr @test_count, align 4, !tbaa !5
  %5445 = add nsw i32 %5444, 1
  store i32 %5445, ptr @test_count, align 4, !tbaa !5
  %5446 = call i32 @s2n_kem_send_public_key(ptr noundef %109, ptr noundef %114)
  %5447 = icmp eq i32 %5446, -1
  br i1 %5447, label %5501, label %5448

5448:                                             ; preds = %5443
  br label %5449

5449:                                             ; preds = %5448
  br label %5450

5450:                                             ; preds = %5449
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #12
  %5451 = call ptr @__errno_location() #13
  %5452 = load i32, ptr %5451, align 4, !tbaa !5
  store i32 %5452, ptr %115, align 4, !tbaa !5
  %5453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5454 = call i32 @s2n_print_stacktrace(ptr noundef %5453)
  %5455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5456 = trunc i8 %5455 to i1
  br i1 %5456, label %5457, label %5479

5457:                                             ; preds = %5450
  %5458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5459 = call i32 @fileno(ptr noundef %5458) #12
  %5460 = call i32 @isatty(i32 noundef %5459) #12
  %5461 = icmp ne i32 %5460, 0
  br i1 %5461, label %5462, label %5479

5462:                                             ; preds = %5457
  %5463 = load i32, ptr %115, align 4, !tbaa !5
  %5464 = call ptr @__errno_location() #13
  store i32 %5463, ptr %5464, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = load i32, ptr @test_count, align 4, !tbaa !5
  %5467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef @.str.16)
  %5470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @s2n_strerror_debug(i32 noundef %5471, ptr noundef @.str.16)
  %5473 = call ptr @__errno_location() #13
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @strerror(i32 noundef %5474) #12
  %5476 = call ptr @__errno_location() #13
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5465, ptr noundef @.str.14, i32 noundef %5466, ptr noundef @.str.84, ptr noundef @.str.13, i32 noundef 302, ptr noundef %5469, ptr noundef %5472, ptr noundef %5475, i32 noundef %5477) #12
  br label %5496

5479:                                             ; preds = %5457, %5450
  %5480 = load i32, ptr %115, align 4, !tbaa !5
  %5481 = call ptr @__errno_location() #13
  store i32 %5480, ptr %5481, align 4, !tbaa !5
  %5482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5483 = load i32, ptr @test_count, align 4, !tbaa !5
  %5484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5485 = load i32, ptr %5484, align 4, !tbaa !5
  %5486 = call ptr @s2n_strerror(i32 noundef %5485, ptr noundef @.str.16)
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror_debug(i32 noundef %5488, ptr noundef @.str.16)
  %5490 = call ptr @__errno_location() #13
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @strerror(i32 noundef %5491) #12
  %5493 = call ptr @__errno_location() #13
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5482, ptr noundef @.str.17, i32 noundef %5483, ptr noundef @.str.84, ptr noundef @.str.13, i32 noundef 302, ptr noundef %5486, ptr noundef %5489, ptr noundef %5492, i32 noundef %5494) #12
  br label %5496

5496:                                             ; preds = %5479, %5462
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #12
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  call void @exit(i32 noundef 1) #14
  unreachable

5499:                                             ; No predecessors!
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

5501:                                             ; preds = %5500, %5443
  br label %5502

5502:                                             ; preds = %5501
  br label %5503

5503:                                             ; preds = %5502
  br label %5504

5504:                                             ; preds = %5503
  %5505 = load i32, ptr @test_count, align 4, !tbaa !5
  %5506 = add nsw i32 %5505, 1
  store i32 %5506, ptr @test_count, align 4, !tbaa !5
  %5507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5508 = load i32, ptr %5507, align 4, !tbaa !5
  %5509 = icmp eq i32 %5508, 402653193
  br i1 %5509, label %5563, label %5510

5510:                                             ; preds = %5504
  br label %5511

5511:                                             ; preds = %5510
  br label %5512

5512:                                             ; preds = %5511
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #12
  %5513 = call ptr @__errno_location() #13
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  store i32 %5514, ptr %116, align 4, !tbaa !5
  %5515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5516 = call i32 @s2n_print_stacktrace(ptr noundef %5515)
  %5517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5518 = trunc i8 %5517 to i1
  br i1 %5518, label %5519, label %5541

5519:                                             ; preds = %5512
  %5520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5521 = call i32 @fileno(ptr noundef %5520) #12
  %5522 = call i32 @isatty(i32 noundef %5521) #12
  %5523 = icmp ne i32 %5522, 0
  br i1 %5523, label %5524, label %5541

5524:                                             ; preds = %5519
  %5525 = load i32, ptr %116, align 4, !tbaa !5
  %5526 = call ptr @__errno_location() #13
  store i32 %5525, ptr %5526, align 4, !tbaa !5
  %5527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5528 = load i32, ptr @test_count, align 4, !tbaa !5
  %5529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  %5531 = call ptr @s2n_strerror(i32 noundef %5530, ptr noundef @.str.16)
  %5532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror_debug(i32 noundef %5533, ptr noundef @.str.16)
  %5535 = call ptr @__errno_location() #13
  %5536 = load i32, ptr %5535, align 4, !tbaa !5
  %5537 = call ptr @strerror(i32 noundef %5536) #12
  %5538 = call ptr @__errno_location() #13
  %5539 = load i32, ptr %5538, align 4, !tbaa !5
  %5540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5527, ptr noundef @.str.14, i32 noundef %5528, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 302, ptr noundef %5531, ptr noundef %5534, ptr noundef %5537, i32 noundef %5539) #12
  br label %5558

5541:                                             ; preds = %5519, %5512
  %5542 = load i32, ptr %116, align 4, !tbaa !5
  %5543 = call ptr @__errno_location() #13
  store i32 %5542, ptr %5543, align 4, !tbaa !5
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5547 = load i32, ptr %5546, align 4, !tbaa !5
  %5548 = call ptr @s2n_strerror(i32 noundef %5547, ptr noundef @.str.16)
  %5549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5550 = load i32, ptr %5549, align 4, !tbaa !5
  %5551 = call ptr @s2n_strerror_debug(i32 noundef %5550, ptr noundef @.str.16)
  %5552 = call ptr @__errno_location() #13
  %5553 = load i32, ptr %5552, align 4, !tbaa !5
  %5554 = call ptr @strerror(i32 noundef %5553) #12
  %5555 = call ptr @__errno_location() #13
  %5556 = load i32, ptr %5555, align 4, !tbaa !5
  %5557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5544, ptr noundef @.str.17, i32 noundef %5545, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 302, ptr noundef %5548, ptr noundef %5551, ptr noundef %5554, i32 noundef %5556) #12
  br label %5558

5558:                                             ; preds = %5541, %5524
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #12
  br label %5559

5559:                                             ; preds = %5558
  br label %5560

5560:                                             ; preds = %5559
  call void @exit(i32 noundef 1) #14
  unreachable

5561:                                             ; No predecessors!
  br label %5562

5562:                                             ; preds = %5561
  br label %5563

5563:                                             ; preds = %5562, %5504
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

5565:                                             ; preds = %5564
  br label %5566

5566:                                             ; preds = %5565
  %5567 = load i32, ptr @test_count, align 4, !tbaa !5
  %5568 = add nsw i32 %5567, 1
  store i32 %5568, ptr @test_count, align 4, !tbaa !5
  %5569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5570 = load i32, ptr %5569, align 4, !tbaa !5
  %5571 = call ptr @s2n_strerror_debug(i32 noundef %5570, ptr noundef @.str.16)
  %5572 = icmp eq ptr %5571, null
  br i1 %5572, label %5573, label %5626

5573:                                             ; preds = %5566
  br label %5574

5574:                                             ; preds = %5573
  br label %5575

5575:                                             ; preds = %5574
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #12
  %5576 = call ptr @__errno_location() #13
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  store i32 %5577, ptr %117, align 4, !tbaa !5
  %5578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5579 = call i32 @s2n_print_stacktrace(ptr noundef %5578)
  %5580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5581 = trunc i8 %5580 to i1
  br i1 %5581, label %5582, label %5604

5582:                                             ; preds = %5575
  %5583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5584 = call i32 @fileno(ptr noundef %5583) #12
  %5585 = call i32 @isatty(i32 noundef %5584) #12
  %5586 = icmp ne i32 %5585, 0
  br i1 %5586, label %5587, label %5604

5587:                                             ; preds = %5582
  %5588 = load i32, ptr %117, align 4, !tbaa !5
  %5589 = call ptr @__errno_location() #13
  store i32 %5588, ptr %5589, align 4, !tbaa !5
  %5590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5591 = load i32, ptr @test_count, align 4, !tbaa !5
  %5592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @s2n_strerror(i32 noundef %5593, ptr noundef @.str.16)
  %5595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call ptr @s2n_strerror_debug(i32 noundef %5596, ptr noundef @.str.16)
  %5598 = call ptr @__errno_location() #13
  %5599 = load i32, ptr %5598, align 4, !tbaa !5
  %5600 = call ptr @strerror(i32 noundef %5599) #12
  %5601 = call ptr @__errno_location() #13
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  %5603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5590, ptr noundef @.str.14, i32 noundef %5591, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 302, ptr noundef %5594, ptr noundef %5597, ptr noundef %5600, i32 noundef %5602) #12
  br label %5621

5604:                                             ; preds = %5582, %5575
  %5605 = load i32, ptr %117, align 4, !tbaa !5
  %5606 = call ptr @__errno_location() #13
  store i32 %5605, ptr %5606, align 4, !tbaa !5
  %5607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5608 = load i32, ptr @test_count, align 4, !tbaa !5
  %5609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5610 = load i32, ptr %5609, align 4, !tbaa !5
  %5611 = call ptr @s2n_strerror(i32 noundef %5610, ptr noundef @.str.16)
  %5612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5613 = load i32, ptr %5612, align 4, !tbaa !5
  %5614 = call ptr @s2n_strerror_debug(i32 noundef %5613, ptr noundef @.str.16)
  %5615 = call ptr @__errno_location() #13
  %5616 = load i32, ptr %5615, align 4, !tbaa !5
  %5617 = call ptr @strerror(i32 noundef %5616) #12
  %5618 = call ptr @__errno_location() #13
  %5619 = load i32, ptr %5618, align 4, !tbaa !5
  %5620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5607, ptr noundef @.str.17, i32 noundef %5608, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 302, ptr noundef %5611, ptr noundef %5614, ptr noundef %5617, i32 noundef %5619) #12
  br label %5621

5621:                                             ; preds = %5604, %5587
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #12
  br label %5622

5622:                                             ; preds = %5621
  br label %5623

5623:                                             ; preds = %5622
  call void @exit(i32 noundef 1) #14
  unreachable

5624:                                             ; No predecessors!
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

5626:                                             ; preds = %5625, %5566
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

5630:                                             ; preds = %5629
  br label %5631

5631:                                             ; preds = %5630
  %5632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5632, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5633 = call ptr @__errno_location() #13
  store i32 0, ptr %5633, align 4, !tbaa !5
  br label %5634

5634:                                             ; preds = %5631
  br label %5635

5635:                                             ; preds = %5634
  br label %5636

5636:                                             ; preds = %5635
  br label %5637

5637:                                             ; preds = %5636
  call void @llvm.lifetime.end.p0(i64 88, ptr %114) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %109) #12
  %5638 = call i32 @s2n_free(ptr noundef %107)
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %118) #12
  call void @llvm.memset.p0.i64(ptr align 8 %118, i8 0, i64 88, i1 false)
  %5639 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %5639, align 8, !tbaa !32
  %5640 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %5641 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 2
  %5642 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 3
  %5643 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 4
  %5644 = load i32, ptr %48, align 4, !tbaa !5
  %5645 = icmp ne i32 %5644, 0
  %5646 = zext i1 %5645 to i8
  store i8 %5646, ptr %5643, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 24, ptr %119) #12
  call void @llvm.memset.p0.i64(ptr align 8 %119, i8 0, i64 24, i1 false)
  br label %5647

5647:                                             ; preds = %5637
  %5648 = load i32, ptr @test_count, align 4, !tbaa !5
  %5649 = add nsw i32 %5648, 1
  store i32 %5649, ptr @test_count, align 4, !tbaa !5
  %5650 = call i32 @s2n_alloc(ptr noundef %119, i32 noundef 7)
  %5651 = icmp eq i32 %5650, -1
  br i1 %5651, label %5652, label %5705

5652:                                             ; preds = %5647
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

5654:                                             ; preds = %5653
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #12
  %5655 = call ptr @__errno_location() #13
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  store i32 %5656, ptr %120, align 4, !tbaa !5
  %5657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5658 = call i32 @s2n_print_stacktrace(ptr noundef %5657)
  %5659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5660 = trunc i8 %5659 to i1
  br i1 %5660, label %5661, label %5683

5661:                                             ; preds = %5654
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = call i32 @fileno(ptr noundef %5662) #12
  %5664 = call i32 @isatty(i32 noundef %5663) #12
  %5665 = icmp ne i32 %5664, 0
  br i1 %5665, label %5666, label %5683

5666:                                             ; preds = %5661
  %5667 = load i32, ptr %120, align 4, !tbaa !5
  %5668 = call ptr @__errno_location() #13
  store i32 %5667, ptr %5668, align 4, !tbaa !5
  %5669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5670 = load i32, ptr @test_count, align 4, !tbaa !5
  %5671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call ptr @s2n_strerror(i32 noundef %5672, ptr noundef @.str.16)
  %5674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call ptr @s2n_strerror_debug(i32 noundef %5675, ptr noundef @.str.16)
  %5677 = call ptr @__errno_location() #13
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @strerror(i32 noundef %5678) #12
  %5680 = call ptr @__errno_location() #13
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5669, ptr noundef @.str.14, i32 noundef %5670, ptr noundef @.str.85, ptr noundef @.str.13, i32 noundef 309, ptr noundef %5673, ptr noundef %5676, ptr noundef %5679, i32 noundef %5681) #12
  br label %5700

5683:                                             ; preds = %5661, %5654
  %5684 = load i32, ptr %120, align 4, !tbaa !5
  %5685 = call ptr @__errno_location() #13
  store i32 %5684, ptr %5685, align 4, !tbaa !5
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = load i32, ptr @test_count, align 4, !tbaa !5
  %5688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  %5690 = call ptr @s2n_strerror(i32 noundef %5689, ptr noundef @.str.16)
  %5691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call ptr @s2n_strerror_debug(i32 noundef %5692, ptr noundef @.str.16)
  %5694 = call ptr @__errno_location() #13
  %5695 = load i32, ptr %5694, align 4, !tbaa !5
  %5696 = call ptr @strerror(i32 noundef %5695) #12
  %5697 = call ptr @__errno_location() #13
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  %5699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5686, ptr noundef @.str.17, i32 noundef %5687, ptr noundef @.str.85, ptr noundef @.str.13, i32 noundef 309, ptr noundef %5690, ptr noundef %5693, ptr noundef %5696, i32 noundef %5698) #12
  br label %5700

5700:                                             ; preds = %5683, %5666
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #12
  br label %5701

5701:                                             ; preds = %5700
  br label %5702

5702:                                             ; preds = %5701
  call void @exit(i32 noundef 1) #14
  unreachable

5703:                                             ; No predecessors!
  br label %5704

5704:                                             ; preds = %5703
  br label %5705

5705:                                             ; preds = %5704, %5647
  br label %5706

5706:                                             ; preds = %5705
  br label %5707

5707:                                             ; preds = %5706
  call void @llvm.lifetime.start.p0(i64 40, ptr %121) #12
  call void @llvm.memset.p0.i64(ptr align 8 %121, i8 0, i64 40, i1 false)
  br label %5708

5708:                                             ; preds = %5707
  %5709 = load i32, ptr @test_count, align 4, !tbaa !5
  %5710 = add nsw i32 %5709, 1
  store i32 %5710, ptr @test_count, align 4, !tbaa !5
  %5711 = call i32 @s2n_stuffer_init(ptr noundef %121, ptr noundef %119)
  %5712 = icmp eq i32 %5711, -1
  br i1 %5712, label %5713, label %5766

5713:                                             ; preds = %5708
  br label %5714

5714:                                             ; preds = %5713
  br label %5715

5715:                                             ; preds = %5714
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #12
  %5716 = call ptr @__errno_location() #13
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  store i32 %5717, ptr %122, align 4, !tbaa !5
  %5718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5719 = call i32 @s2n_print_stacktrace(ptr noundef %5718)
  %5720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5721 = trunc i8 %5720 to i1
  br i1 %5721, label %5722, label %5744

5722:                                             ; preds = %5715
  %5723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5724 = call i32 @fileno(ptr noundef %5723) #12
  %5725 = call i32 @isatty(i32 noundef %5724) #12
  %5726 = icmp ne i32 %5725, 0
  br i1 %5726, label %5727, label %5744

5727:                                             ; preds = %5722
  %5728 = load i32, ptr %122, align 4, !tbaa !5
  %5729 = call ptr @__errno_location() #13
  store i32 %5728, ptr %5729, align 4, !tbaa !5
  %5730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5731 = load i32, ptr @test_count, align 4, !tbaa !5
  %5732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5733 = load i32, ptr %5732, align 4, !tbaa !5
  %5734 = call ptr @s2n_strerror(i32 noundef %5733, ptr noundef @.str.16)
  %5735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5736 = load i32, ptr %5735, align 4, !tbaa !5
  %5737 = call ptr @s2n_strerror_debug(i32 noundef %5736, ptr noundef @.str.16)
  %5738 = call ptr @__errno_location() #13
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call ptr @strerror(i32 noundef %5739) #12
  %5741 = call ptr @__errno_location() #13
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  %5743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5730, ptr noundef @.str.14, i32 noundef %5731, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 311, ptr noundef %5734, ptr noundef %5737, ptr noundef %5740, i32 noundef %5742) #12
  br label %5761

5744:                                             ; preds = %5722, %5715
  %5745 = load i32, ptr %122, align 4, !tbaa !5
  %5746 = call ptr @__errno_location() #13
  store i32 %5745, ptr %5746, align 4, !tbaa !5
  %5747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5748 = load i32, ptr @test_count, align 4, !tbaa !5
  %5749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5750 = load i32, ptr %5749, align 4, !tbaa !5
  %5751 = call ptr @s2n_strerror(i32 noundef %5750, ptr noundef @.str.16)
  %5752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5753 = load i32, ptr %5752, align 4, !tbaa !5
  %5754 = call ptr @s2n_strerror_debug(i32 noundef %5753, ptr noundef @.str.16)
  %5755 = call ptr @__errno_location() #13
  %5756 = load i32, ptr %5755, align 4, !tbaa !5
  %5757 = call ptr @strerror(i32 noundef %5756) #12
  %5758 = call ptr @__errno_location() #13
  %5759 = load i32, ptr %5758, align 4, !tbaa !5
  %5760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5747, ptr noundef @.str.17, i32 noundef %5748, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 311, ptr noundef %5751, ptr noundef %5754, ptr noundef %5757, i32 noundef %5759) #12
  br label %5761

5761:                                             ; preds = %5744, %5727
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #12
  br label %5762

5762:                                             ; preds = %5761
  br label %5763

5763:                                             ; preds = %5762
  call void @exit(i32 noundef 1) #14
  unreachable

5764:                                             ; No predecessors!
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

5766:                                             ; preds = %5765, %5708
  br label %5767

5767:                                             ; preds = %5766
  br label %5768

5768:                                             ; preds = %5767
  br label %5769

5769:                                             ; preds = %5768
  %5770 = load i32, ptr @test_count, align 4, !tbaa !5
  %5771 = add nsw i32 %5770, 1
  store i32 %5771, ptr @test_count, align 4, !tbaa !5
  %5772 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %5773 = call i32 @s2n_alloc(ptr noundef %5772, i32 noundef 2)
  %5774 = icmp eq i32 %5773, -1
  br i1 %5774, label %5775, label %5828

5775:                                             ; preds = %5769
  br label %5776

5776:                                             ; preds = %5775
  br label %5777

5777:                                             ; preds = %5776
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #12
  %5778 = call ptr @__errno_location() #13
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  store i32 %5779, ptr %123, align 4, !tbaa !5
  %5780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5781 = call i32 @s2n_print_stacktrace(ptr noundef %5780)
  %5782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5783 = trunc i8 %5782 to i1
  br i1 %5783, label %5784, label %5806

5784:                                             ; preds = %5777
  %5785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5786 = call i32 @fileno(ptr noundef %5785) #12
  %5787 = call i32 @isatty(i32 noundef %5786) #12
  %5788 = icmp ne i32 %5787, 0
  br i1 %5788, label %5789, label %5806

5789:                                             ; preds = %5784
  %5790 = load i32, ptr %123, align 4, !tbaa !5
  %5791 = call ptr @__errno_location() #13
  store i32 %5790, ptr %5791, align 4, !tbaa !5
  %5792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5793 = load i32, ptr @test_count, align 4, !tbaa !5
  %5794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  %5796 = call ptr @s2n_strerror(i32 noundef %5795, ptr noundef @.str.16)
  %5797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5798 = load i32, ptr %5797, align 4, !tbaa !5
  %5799 = call ptr @s2n_strerror_debug(i32 noundef %5798, ptr noundef @.str.16)
  %5800 = call ptr @__errno_location() #13
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  %5802 = call ptr @strerror(i32 noundef %5801) #12
  %5803 = call ptr @__errno_location() #13
  %5804 = load i32, ptr %5803, align 4, !tbaa !5
  %5805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5792, ptr noundef @.str.14, i32 noundef %5793, ptr noundef @.str.86, ptr noundef @.str.13, i32 noundef 313, ptr noundef %5796, ptr noundef %5799, ptr noundef %5802, i32 noundef %5804) #12
  br label %5823

5806:                                             ; preds = %5784, %5777
  %5807 = load i32, ptr %123, align 4, !tbaa !5
  %5808 = call ptr @__errno_location() #13
  store i32 %5807, ptr %5808, align 4, !tbaa !5
  %5809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5810 = load i32, ptr @test_count, align 4, !tbaa !5
  %5811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  %5813 = call ptr @s2n_strerror(i32 noundef %5812, ptr noundef @.str.16)
  %5814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5815 = load i32, ptr %5814, align 4, !tbaa !5
  %5816 = call ptr @s2n_strerror_debug(i32 noundef %5815, ptr noundef @.str.16)
  %5817 = call ptr @__errno_location() #13
  %5818 = load i32, ptr %5817, align 4, !tbaa !5
  %5819 = call ptr @strerror(i32 noundef %5818) #12
  %5820 = call ptr @__errno_location() #13
  %5821 = load i32, ptr %5820, align 4, !tbaa !5
  %5822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5809, ptr noundef @.str.17, i32 noundef %5810, ptr noundef @.str.86, ptr noundef @.str.13, i32 noundef 313, ptr noundef %5813, ptr noundef %5816, ptr noundef %5819, i32 noundef %5821) #12
  br label %5823

5823:                                             ; preds = %5806, %5789
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #12
  br label %5824

5824:                                             ; preds = %5823
  br label %5825

5825:                                             ; preds = %5824
  call void @exit(i32 noundef 1) #14
  unreachable

5826:                                             ; No predecessors!
  br label %5827

5827:                                             ; preds = %5826
  br label %5828

5828:                                             ; preds = %5827, %5769
  br label %5829

5829:                                             ; preds = %5828
  br label %5830

5830:                                             ; preds = %5829
  br label %5831

5831:                                             ; preds = %5830
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #12
  store i32 2, ptr %124, align 4, !tbaa !5
  %5832 = load i32, ptr %124, align 4, !tbaa !5
  %5833 = icmp ne i32 %5832, 0
  %5834 = xor i1 %5833, true
  %5835 = xor i1 %5834, true
  %5836 = zext i1 %5835 to i32
  %5837 = sext i32 %5836 to i64
  %5838 = call i64 @llvm.expect.i64(i64 %5837, i64 1)
  %5839 = icmp ne i64 %5838, 0
  br i1 %5839, label %5840, label %5889

5840:                                             ; preds = %5831
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #12
  %5841 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %5842 = getelementptr inbounds %struct.s2n_blob, ptr %5841, i32 0, i32 0
  %5843 = load ptr, ptr %5842, align 8, !tbaa !36
  %5844 = load i32, ptr %124, align 4, !tbaa !5
  %5845 = sext i32 %5844 to i64
  %5846 = call ptr @s2n_ensure_memmove_trace(ptr noundef %5843, ptr noundef @TEST_PUBLIC_KEY, i64 noundef %5845)
  store ptr %5846, ptr %125, align 8, !tbaa !9
  br label %5847

5847:                                             ; preds = %5840
  %5848 = load ptr, ptr %125, align 8, !tbaa !9
  %5849 = icmp ne ptr %5848, null
  br i1 %5849, label %5883, label %5850

5850:                                             ; preds = %5847
  br label %5851

5851:                                             ; preds = %5850
  br label %5852

5852:                                             ; preds = %5851
  %5853 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5854 = getelementptr inbounds %struct.s2n_debug_info, ptr %5853, i32 0, i32 0
  store ptr @.str.87, ptr %5854, align 8, !tbaa !47
  %5855 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5856 = getelementptr inbounds %struct.s2n_debug_info, ptr %5855, i32 0, i32 0
  %5857 = load ptr, ptr %5856, align 8, !tbaa !47
  %5858 = getelementptr inbounds i8, ptr %5857, i64 21
  %5859 = call ptr @strrchr(ptr noundef %5858, i32 noundef 47) #15
  %5860 = icmp ne ptr %5859, null
  br i1 %5860, label %5861, label %5868

5861:                                             ; preds = %5852
  %5862 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5863 = getelementptr inbounds %struct.s2n_debug_info, ptr %5862, i32 0, i32 0
  %5864 = load ptr, ptr %5863, align 8, !tbaa !47
  %5865 = getelementptr inbounds i8, ptr %5864, i64 21
  %5866 = call ptr @strrchr(ptr noundef %5865, i32 noundef 47) #15
  %5867 = getelementptr inbounds i8, ptr %5866, i64 1
  br label %5873

5868:                                             ; preds = %5852
  %5869 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5870 = getelementptr inbounds %struct.s2n_debug_info, ptr %5869, i32 0, i32 0
  %5871 = load ptr, ptr %5870, align 8, !tbaa !47
  %5872 = getelementptr inbounds i8, ptr %5871, i64 21
  br label %5873

5873:                                             ; preds = %5868, %5861
  %5874 = phi ptr [ %5867, %5861 ], [ %5872, %5868 ]
  %5875 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5876 = getelementptr inbounds %struct.s2n_debug_info, ptr %5875, i32 0, i32 1
  store ptr %5874, ptr %5876, align 8, !tbaa !49
  %5877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %5877, align 4, !tbaa !5
  %5878 = call i32 @s2n_calculate_stacktrace()
  br label %5879

5879:                                             ; preds = %5873
  br label %5880

5880:                                             ; preds = %5879
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %5886

5881:                                             ; No predecessors!
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882, %5847
  br label %5884

5884:                                             ; preds = %5883
  br label %5885

5885:                                             ; preds = %5884
  store i32 0, ptr %30, align 4
  br label %5886

5886:                                             ; preds = %5885, %5880
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #12
  %5887 = load i32, ptr %30, align 4
  switch i32 %5887, label %5890 [
    i32 0, label %5888
  ]

5888:                                             ; preds = %5886
  br label %5889

5889:                                             ; preds = %5888, %5831
  store i32 0, ptr %30, align 4
  br label %5890

5890:                                             ; preds = %5889, %5886
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #12
  %5891 = load i32, ptr %30, align 4
  switch i32 %5891, label %6673 [
    i32 0, label %5892
  ]

5892:                                             ; preds = %5890
  br label %5893

5893:                                             ; preds = %5892
  br label %5894

5894:                                             ; preds = %5893
  br label %5895

5895:                                             ; preds = %5894
  %5896 = load i32, ptr @test_count, align 4, !tbaa !5
  %5897 = add nsw i32 %5896, 1
  store i32 %5897, ptr @test_count, align 4, !tbaa !5
  %5898 = call i32 @s2n_kem_send_ciphertext(ptr noundef %121, ptr noundef %118)
  %5899 = icmp eq i32 %5898, -1
  br i1 %5899, label %5900, label %5953

5900:                                             ; preds = %5895
  br label %5901

5901:                                             ; preds = %5900
  br label %5902

5902:                                             ; preds = %5901
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #12
  %5903 = call ptr @__errno_location() #13
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  store i32 %5904, ptr %126, align 4, !tbaa !5
  %5905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5906 = call i32 @s2n_print_stacktrace(ptr noundef %5905)
  %5907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5908 = trunc i8 %5907 to i1
  br i1 %5908, label %5909, label %5931

5909:                                             ; preds = %5902
  %5910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5911 = call i32 @fileno(ptr noundef %5910) #12
  %5912 = call i32 @isatty(i32 noundef %5911) #12
  %5913 = icmp ne i32 %5912, 0
  br i1 %5913, label %5914, label %5931

5914:                                             ; preds = %5909
  %5915 = load i32, ptr %126, align 4, !tbaa !5
  %5916 = call ptr @__errno_location() #13
  store i32 %5915, ptr %5916, align 4, !tbaa !5
  %5917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5918 = load i32, ptr @test_count, align 4, !tbaa !5
  %5919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5920 = load i32, ptr %5919, align 4, !tbaa !5
  %5921 = call ptr @s2n_strerror(i32 noundef %5920, ptr noundef @.str.16)
  %5922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5923 = load i32, ptr %5922, align 4, !tbaa !5
  %5924 = call ptr @s2n_strerror_debug(i32 noundef %5923, ptr noundef @.str.16)
  %5925 = call ptr @__errno_location() #13
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call ptr @strerror(i32 noundef %5926) #12
  %5928 = call ptr @__errno_location() #13
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5917, ptr noundef @.str.14, i32 noundef %5918, ptr noundef @.str.88, ptr noundef @.str.13, i32 noundef 316, ptr noundef %5921, ptr noundef %5924, ptr noundef %5927, i32 noundef %5929) #12
  br label %5948

5931:                                             ; preds = %5909, %5902
  %5932 = load i32, ptr %126, align 4, !tbaa !5
  %5933 = call ptr @__errno_location() #13
  store i32 %5932, ptr %5933, align 4, !tbaa !5
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror(i32 noundef %5937, ptr noundef @.str.16)
  %5939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @s2n_strerror_debug(i32 noundef %5940, ptr noundef @.str.16)
  %5942 = call ptr @__errno_location() #13
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call ptr @strerror(i32 noundef %5943) #12
  %5945 = call ptr @__errno_location() #13
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5934, ptr noundef @.str.17, i32 noundef %5935, ptr noundef @.str.88, ptr noundef @.str.13, i32 noundef 316, ptr noundef %5938, ptr noundef %5941, ptr noundef %5944, i32 noundef %5946) #12
  br label %5948

5948:                                             ; preds = %5931, %5914
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #12
  br label %5949

5949:                                             ; preds = %5948
  br label %5950

5950:                                             ; preds = %5949
  call void @exit(i32 noundef 1) #14
  unreachable

5951:                                             ; No predecessors!
  br label %5952

5952:                                             ; preds = %5951
  br label %5953

5953:                                             ; preds = %5952, %5895
  br label %5954

5954:                                             ; preds = %5953
  br label %5955

5955:                                             ; preds = %5954
  call void @llvm.lifetime.start.p0(i64 7, ptr %127) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %127, ptr align 1 @__const.main.prefixed_output.89, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 5, ptr %128) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %128, ptr align 1 @__const.main.unprefixed_output.90, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #12
  %5956 = getelementptr inbounds [5 x i8], ptr %128, i64 0, i64 0
  store ptr %5956, ptr %129, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %130) #12
  store i16 5, ptr %130, align 2, !tbaa !29
  %5957 = load i32, ptr %48, align 4, !tbaa !5
  %5958 = icmp ne i32 %5957, 0
  br i1 %5958, label %5959, label %5961

5959:                                             ; preds = %5955
  %5960 = getelementptr inbounds [7 x i8], ptr %127, i64 0, i64 0
  store ptr %5960, ptr %129, align 8, !tbaa !9
  store i16 7, ptr %130, align 2, !tbaa !29
  br label %5961

5961:                                             ; preds = %5959, %5955
  br label %5962

5962:                                             ; preds = %5961
  %5963 = load i16, ptr %130, align 2, !tbaa !29
  %5964 = zext i16 %5963 to i32
  %5965 = icmp ne i32 %5964, 0
  br i1 %5965, label %5966, label %6034

5966:                                             ; preds = %5962
  br label %5967

5967:                                             ; preds = %5966
  %5968 = load i32, ptr @test_count, align 4, !tbaa !5
  %5969 = add nsw i32 %5968, 1
  store i32 %5969, ptr @test_count, align 4, !tbaa !5
  %5970 = getelementptr inbounds %struct.s2n_stuffer, ptr %121, i32 0, i32 0
  %5971 = getelementptr inbounds %struct.s2n_blob, ptr %5970, i32 0, i32 0
  %5972 = load ptr, ptr %5971, align 8, !tbaa !44
  %5973 = load ptr, ptr %129, align 8, !tbaa !9
  %5974 = load i16, ptr %130, align 2, !tbaa !29
  %5975 = zext i16 %5974 to i64
  %5976 = call i32 @memcmp(ptr noundef %5972, ptr noundef %5973, i64 noundef %5975) #15
  %5977 = icmp eq i32 %5976, 0
  br i1 %5977, label %6031, label %5978

5978:                                             ; preds = %5967
  br label %5979

5979:                                             ; preds = %5978
  br label %5980

5980:                                             ; preds = %5979
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #12
  %5981 = call ptr @__errno_location() #13
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  store i32 %5982, ptr %131, align 4, !tbaa !5
  %5983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5984 = call i32 @s2n_print_stacktrace(ptr noundef %5983)
  %5985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5986 = trunc i8 %5985 to i1
  br i1 %5986, label %5987, label %6009

5987:                                             ; preds = %5980
  %5988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5989 = call i32 @fileno(ptr noundef %5988) #12
  %5990 = call i32 @isatty(i32 noundef %5989) #12
  %5991 = icmp ne i32 %5990, 0
  br i1 %5991, label %5992, label %6009

5992:                                             ; preds = %5987
  %5993 = load i32, ptr %131, align 4, !tbaa !5
  %5994 = call ptr @__errno_location() #13
  store i32 %5993, ptr %5994, align 4, !tbaa !5
  %5995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5996 = load i32, ptr @test_count, align 4, !tbaa !5
  %5997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5998 = load i32, ptr %5997, align 4, !tbaa !5
  %5999 = call ptr @s2n_strerror(i32 noundef %5998, ptr noundef @.str.16)
  %6000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror_debug(i32 noundef %6001, ptr noundef @.str.16)
  %6003 = call ptr @__errno_location() #13
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @strerror(i32 noundef %6004) #12
  %6006 = call ptr @__errno_location() #13
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5995, ptr noundef @.str.14, i32 noundef %5996, ptr noundef @.str.70, ptr noundef @.str.13, i32 noundef 331, ptr noundef %5999, ptr noundef %6002, ptr noundef %6005, i32 noundef %6007) #12
  br label %6026

6009:                                             ; preds = %5987, %5980
  %6010 = load i32, ptr %131, align 4, !tbaa !5
  %6011 = call ptr @__errno_location() #13
  store i32 %6010, ptr %6011, align 4, !tbaa !5
  %6012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6013 = load i32, ptr @test_count, align 4, !tbaa !5
  %6014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  %6016 = call ptr @s2n_strerror(i32 noundef %6015, ptr noundef @.str.16)
  %6017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call ptr @s2n_strerror_debug(i32 noundef %6018, ptr noundef @.str.16)
  %6020 = call ptr @__errno_location() #13
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  %6022 = call ptr @strerror(i32 noundef %6021) #12
  %6023 = call ptr @__errno_location() #13
  %6024 = load i32, ptr %6023, align 4, !tbaa !5
  %6025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6012, ptr noundef @.str.17, i32 noundef %6013, ptr noundef @.str.70, ptr noundef @.str.13, i32 noundef 331, ptr noundef %6016, ptr noundef %6019, ptr noundef %6022, i32 noundef %6024) #12
  br label %6026

6026:                                             ; preds = %6009, %5992
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #12
  br label %6027

6027:                                             ; preds = %6026
  br label %6028

6028:                                             ; preds = %6027
  call void @exit(i32 noundef 1) #14
  unreachable

6029:                                             ; No predecessors!
  br label %6030

6030:                                             ; preds = %6029
  br label %6031

6031:                                             ; preds = %6030, %5967
  br label %6032

6032:                                             ; preds = %6031
  br label %6033

6033:                                             ; preds = %6032
  br label %6034

6034:                                             ; preds = %6033, %5962
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035
  br label %6037

6037:                                             ; preds = %6036
  %6038 = load i32, ptr @test_count, align 4, !tbaa !5
  %6039 = add nsw i32 %6038, 1
  store i32 %6039, ptr @test_count, align 4, !tbaa !5
  %6040 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 3
  %6041 = getelementptr inbounds %struct.s2n_blob, ptr %6040, i32 0, i32 1
  %6042 = load i32, ptr %6041, align 8, !tbaa !38
  %6043 = icmp eq i32 %6042, 4
  br i1 %6043, label %6097, label %6044

6044:                                             ; preds = %6037
  br label %6045

6045:                                             ; preds = %6044
  br label %6046

6046:                                             ; preds = %6045
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #12
  %6047 = call ptr @__errno_location() #13
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  store i32 %6048, ptr %132, align 4, !tbaa !5
  %6049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6050 = call i32 @s2n_print_stacktrace(ptr noundef %6049)
  %6051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6052 = trunc i8 %6051 to i1
  br i1 %6052, label %6053, label %6075

6053:                                             ; preds = %6046
  %6054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6055 = call i32 @fileno(ptr noundef %6054) #12
  %6056 = call i32 @isatty(i32 noundef %6055) #12
  %6057 = icmp ne i32 %6056, 0
  br i1 %6057, label %6058, label %6075

6058:                                             ; preds = %6053
  %6059 = load i32, ptr %132, align 4, !tbaa !5
  %6060 = call ptr @__errno_location() #13
  store i32 %6059, ptr %6060, align 4, !tbaa !5
  %6061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6062 = load i32, ptr @test_count, align 4, !tbaa !5
  %6063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6064 = load i32, ptr %6063, align 4, !tbaa !5
  %6065 = call ptr @s2n_strerror(i32 noundef %6064, ptr noundef @.str.16)
  %6066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6067 = load i32, ptr %6066, align 4, !tbaa !5
  %6068 = call ptr @s2n_strerror_debug(i32 noundef %6067, ptr noundef @.str.16)
  %6069 = call ptr @__errno_location() #13
  %6070 = load i32, ptr %6069, align 4, !tbaa !5
  %6071 = call ptr @strerror(i32 noundef %6070) #12
  %6072 = call ptr @__errno_location() #13
  %6073 = load i32, ptr %6072, align 4, !tbaa !5
  %6074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6061, ptr noundef @.str.14, i32 noundef %6062, ptr noundef @.str.91, ptr noundef @.str.13, i32 noundef 333, ptr noundef %6065, ptr noundef %6068, ptr noundef %6071, i32 noundef %6073) #12
  br label %6092

6075:                                             ; preds = %6053, %6046
  %6076 = load i32, ptr %132, align 4, !tbaa !5
  %6077 = call ptr @__errno_location() #13
  store i32 %6076, ptr %6077, align 4, !tbaa !5
  %6078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6079 = load i32, ptr @test_count, align 4, !tbaa !5
  %6080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6081 = load i32, ptr %6080, align 4, !tbaa !5
  %6082 = call ptr @s2n_strerror(i32 noundef %6081, ptr noundef @.str.16)
  %6083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6084 = load i32, ptr %6083, align 4, !tbaa !5
  %6085 = call ptr @s2n_strerror_debug(i32 noundef %6084, ptr noundef @.str.16)
  %6086 = call ptr @__errno_location() #13
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  %6088 = call ptr @strerror(i32 noundef %6087) #12
  %6089 = call ptr @__errno_location() #13
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  %6091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6078, ptr noundef @.str.17, i32 noundef %6079, ptr noundef @.str.91, ptr noundef @.str.13, i32 noundef 333, ptr noundef %6082, ptr noundef %6085, ptr noundef %6088, i32 noundef %6090) #12
  br label %6092

6092:                                             ; preds = %6075, %6058
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #12
  br label %6093

6093:                                             ; preds = %6092
  br label %6094

6094:                                             ; preds = %6093
  call void @exit(i32 noundef 1) #14
  unreachable

6095:                                             ; No predecessors!
  br label %6096

6096:                                             ; preds = %6095
  br label %6097

6097:                                             ; preds = %6096, %6037
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

6099:                                             ; preds = %6098
  br label %6100

6100:                                             ; preds = %6099
  br label %6101

6101:                                             ; preds = %6100
  %6102 = load i32, ptr @test_count, align 4, !tbaa !5
  %6103 = add nsw i32 %6102, 1
  store i32 %6103, ptr @test_count, align 4, !tbaa !5
  %6104 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 3
  %6105 = getelementptr inbounds %struct.s2n_blob, ptr %6104, i32 0, i32 0
  %6106 = load ptr, ptr %6105, align 8, !tbaa !40
  %6107 = call i32 @memcmp(ptr noundef %6106, ptr noundef @TEST_SHARED_SECRET, i64 noundef 4) #15
  %6108 = icmp eq i32 %6107, 0
  br i1 %6108, label %6162, label %6109

6109:                                             ; preds = %6101
  br label %6110

6110:                                             ; preds = %6109
  br label %6111

6111:                                             ; preds = %6110
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #12
  %6112 = call ptr @__errno_location() #13
  %6113 = load i32, ptr %6112, align 4, !tbaa !5
  store i32 %6113, ptr %133, align 4, !tbaa !5
  %6114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6115 = call i32 @s2n_print_stacktrace(ptr noundef %6114)
  %6116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6117 = trunc i8 %6116 to i1
  br i1 %6117, label %6118, label %6140

6118:                                             ; preds = %6111
  %6119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6120 = call i32 @fileno(ptr noundef %6119) #12
  %6121 = call i32 @isatty(i32 noundef %6120) #12
  %6122 = icmp ne i32 %6121, 0
  br i1 %6122, label %6123, label %6140

6123:                                             ; preds = %6118
  %6124 = load i32, ptr %133, align 4, !tbaa !5
  %6125 = call ptr @__errno_location() #13
  store i32 %6124, ptr %6125, align 4, !tbaa !5
  %6126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6127 = load i32, ptr @test_count, align 4, !tbaa !5
  %6128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call ptr @s2n_strerror(i32 noundef %6129, ptr noundef @.str.16)
  %6131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  %6133 = call ptr @s2n_strerror_debug(i32 noundef %6132, ptr noundef @.str.16)
  %6134 = call ptr @__errno_location() #13
  %6135 = load i32, ptr %6134, align 4, !tbaa !5
  %6136 = call ptr @strerror(i32 noundef %6135) #12
  %6137 = call ptr @__errno_location() #13
  %6138 = load i32, ptr %6137, align 4, !tbaa !5
  %6139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6126, ptr noundef @.str.14, i32 noundef %6127, ptr noundef @.str.92, ptr noundef @.str.13, i32 noundef 334, ptr noundef %6130, ptr noundef %6133, ptr noundef %6136, i32 noundef %6138) #12
  br label %6157

6140:                                             ; preds = %6118, %6111
  %6141 = load i32, ptr %133, align 4, !tbaa !5
  %6142 = call ptr @__errno_location() #13
  store i32 %6141, ptr %6142, align 4, !tbaa !5
  %6143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6144 = load i32, ptr @test_count, align 4, !tbaa !5
  %6145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call ptr @s2n_strerror(i32 noundef %6146, ptr noundef @.str.16)
  %6148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  %6150 = call ptr @s2n_strerror_debug(i32 noundef %6149, ptr noundef @.str.16)
  %6151 = call ptr @__errno_location() #13
  %6152 = load i32, ptr %6151, align 4, !tbaa !5
  %6153 = call ptr @strerror(i32 noundef %6152) #12
  %6154 = call ptr @__errno_location() #13
  %6155 = load i32, ptr %6154, align 4, !tbaa !5
  %6156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6143, ptr noundef @.str.17, i32 noundef %6144, ptr noundef @.str.92, ptr noundef @.str.13, i32 noundef 334, ptr noundef %6147, ptr noundef %6150, ptr noundef %6153, i32 noundef %6155) #12
  br label %6157

6157:                                             ; preds = %6140, %6123
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #12
  br label %6158

6158:                                             ; preds = %6157
  br label %6159

6159:                                             ; preds = %6158
  call void @exit(i32 noundef 1) #14
  unreachable

6160:                                             ; No predecessors!
  br label %6161

6161:                                             ; preds = %6160
  br label %6162

6162:                                             ; preds = %6161, %6101
  br label %6163

6163:                                             ; preds = %6162
  br label %6164

6164:                                             ; preds = %6163
  br label %6165

6165:                                             ; preds = %6164
  br label %6166

6166:                                             ; preds = %6165
  br label %6167

6167:                                             ; preds = %6166
  %6168 = load i32, ptr @test_count, align 4, !tbaa !5
  %6169 = add nsw i32 %6168, 1
  store i32 %6169, ptr @test_count, align 4, !tbaa !5
  %6170 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %6171 = getelementptr inbounds %struct.s2n_blob, ptr %6170, i32 0, i32 1
  %6172 = load i32, ptr %6171, align 8, !tbaa !34
  %6173 = icmp eq i32 %6172, 2
  br i1 %6173, label %6227, label %6174

6174:                                             ; preds = %6167
  br label %6175

6175:                                             ; preds = %6174
  br label %6176

6176:                                             ; preds = %6175
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #12
  %6177 = call ptr @__errno_location() #13
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  store i32 %6178, ptr %134, align 4, !tbaa !5
  %6179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6180 = call i32 @s2n_print_stacktrace(ptr noundef %6179)
  %6181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6182 = trunc i8 %6181 to i1
  br i1 %6182, label %6183, label %6205

6183:                                             ; preds = %6176
  %6184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6185 = call i32 @fileno(ptr noundef %6184) #12
  %6186 = call i32 @isatty(i32 noundef %6185) #12
  %6187 = icmp ne i32 %6186, 0
  br i1 %6187, label %6188, label %6205

6188:                                             ; preds = %6183
  %6189 = load i32, ptr %134, align 4, !tbaa !5
  %6190 = call ptr @__errno_location() #13
  store i32 %6189, ptr %6190, align 4, !tbaa !5
  %6191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6192 = load i32, ptr @test_count, align 4, !tbaa !5
  %6193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6194 = load i32, ptr %6193, align 4, !tbaa !5
  %6195 = call ptr @s2n_strerror(i32 noundef %6194, ptr noundef @.str.16)
  %6196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  %6198 = call ptr @s2n_strerror_debug(i32 noundef %6197, ptr noundef @.str.16)
  %6199 = call ptr @__errno_location() #13
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call ptr @strerror(i32 noundef %6200) #12
  %6202 = call ptr @__errno_location() #13
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6191, ptr noundef @.str.14, i32 noundef %6192, ptr noundef @.str.93, ptr noundef @.str.13, i32 noundef 335, ptr noundef %6195, ptr noundef %6198, ptr noundef %6201, i32 noundef %6203) #12
  br label %6222

6205:                                             ; preds = %6183, %6176
  %6206 = load i32, ptr %134, align 4, !tbaa !5
  %6207 = call ptr @__errno_location() #13
  store i32 %6206, ptr %6207, align 4, !tbaa !5
  %6208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6209 = load i32, ptr @test_count, align 4, !tbaa !5
  %6210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  %6212 = call ptr @s2n_strerror(i32 noundef %6211, ptr noundef @.str.16)
  %6213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6214 = load i32, ptr %6213, align 4, !tbaa !5
  %6215 = call ptr @s2n_strerror_debug(i32 noundef %6214, ptr noundef @.str.16)
  %6216 = call ptr @__errno_location() #13
  %6217 = load i32, ptr %6216, align 4, !tbaa !5
  %6218 = call ptr @strerror(i32 noundef %6217) #12
  %6219 = call ptr @__errno_location() #13
  %6220 = load i32, ptr %6219, align 4, !tbaa !5
  %6221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6208, ptr noundef @.str.17, i32 noundef %6209, ptr noundef @.str.93, ptr noundef @.str.13, i32 noundef 335, ptr noundef %6212, ptr noundef %6215, ptr noundef %6218, i32 noundef %6220) #12
  br label %6222

6222:                                             ; preds = %6205, %6188
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #12
  br label %6223

6223:                                             ; preds = %6222
  br label %6224

6224:                                             ; preds = %6223
  call void @exit(i32 noundef 1) #14
  unreachable

6225:                                             ; No predecessors!
  br label %6226

6226:                                             ; preds = %6225
  br label %6227

6227:                                             ; preds = %6226, %6167
  br label %6228

6228:                                             ; preds = %6227
  br label %6229

6229:                                             ; preds = %6228
  br label %6230

6230:                                             ; preds = %6229
  br label %6231

6231:                                             ; preds = %6230
  %6232 = load i32, ptr @test_count, align 4, !tbaa !5
  %6233 = add nsw i32 %6232, 1
  store i32 %6233, ptr @test_count, align 4, !tbaa !5
  %6234 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %6235 = getelementptr inbounds %struct.s2n_blob, ptr %6234, i32 0, i32 0
  %6236 = load ptr, ptr %6235, align 8, !tbaa !36
  %6237 = call i32 @memcmp(ptr noundef %6236, ptr noundef @TEST_PUBLIC_KEY, i64 noundef 2) #15
  %6238 = icmp eq i32 %6237, 0
  br i1 %6238, label %6292, label %6239

6239:                                             ; preds = %6231
  br label %6240

6240:                                             ; preds = %6239
  br label %6241

6241:                                             ; preds = %6240
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #12
  %6242 = call ptr @__errno_location() #13
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  store i32 %6243, ptr %135, align 4, !tbaa !5
  %6244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6245 = call i32 @s2n_print_stacktrace(ptr noundef %6244)
  %6246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6247 = trunc i8 %6246 to i1
  br i1 %6247, label %6248, label %6270

6248:                                             ; preds = %6241
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = call i32 @fileno(ptr noundef %6249) #12
  %6251 = call i32 @isatty(i32 noundef %6250) #12
  %6252 = icmp ne i32 %6251, 0
  br i1 %6252, label %6253, label %6270

6253:                                             ; preds = %6248
  %6254 = load i32, ptr %135, align 4, !tbaa !5
  %6255 = call ptr @__errno_location() #13
  store i32 %6254, ptr %6255, align 4, !tbaa !5
  %6256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6257 = load i32, ptr @test_count, align 4, !tbaa !5
  %6258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6259 = load i32, ptr %6258, align 4, !tbaa !5
  %6260 = call ptr @s2n_strerror(i32 noundef %6259, ptr noundef @.str.16)
  %6261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6262 = load i32, ptr %6261, align 4, !tbaa !5
  %6263 = call ptr @s2n_strerror_debug(i32 noundef %6262, ptr noundef @.str.16)
  %6264 = call ptr @__errno_location() #13
  %6265 = load i32, ptr %6264, align 4, !tbaa !5
  %6266 = call ptr @strerror(i32 noundef %6265) #12
  %6267 = call ptr @__errno_location() #13
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6256, ptr noundef @.str.14, i32 noundef %6257, ptr noundef @.str.94, ptr noundef @.str.13, i32 noundef 336, ptr noundef %6260, ptr noundef %6263, ptr noundef %6266, i32 noundef %6268) #12
  br label %6287

6270:                                             ; preds = %6248, %6241
  %6271 = load i32, ptr %135, align 4, !tbaa !5
  %6272 = call ptr @__errno_location() #13
  store i32 %6271, ptr %6272, align 4, !tbaa !5
  %6273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6274 = load i32, ptr @test_count, align 4, !tbaa !5
  %6275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  %6277 = call ptr @s2n_strerror(i32 noundef %6276, ptr noundef @.str.16)
  %6278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6279 = load i32, ptr %6278, align 4, !tbaa !5
  %6280 = call ptr @s2n_strerror_debug(i32 noundef %6279, ptr noundef @.str.16)
  %6281 = call ptr @__errno_location() #13
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call ptr @strerror(i32 noundef %6282) #12
  %6284 = call ptr @__errno_location() #13
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6273, ptr noundef @.str.17, i32 noundef %6274, ptr noundef @.str.94, ptr noundef @.str.13, i32 noundef 336, ptr noundef %6277, ptr noundef %6280, ptr noundef %6283, i32 noundef %6285) #12
  br label %6287

6287:                                             ; preds = %6270, %6253
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #12
  br label %6288

6288:                                             ; preds = %6287
  br label %6289

6289:                                             ; preds = %6288
  call void @exit(i32 noundef 1) #14
  unreachable

6290:                                             ; No predecessors!
  br label %6291

6291:                                             ; preds = %6290
  br label %6292

6292:                                             ; preds = %6291, %6231
  br label %6293

6293:                                             ; preds = %6292
  br label %6294

6294:                                             ; preds = %6293
  br label %6295

6295:                                             ; preds = %6294
  br label %6296

6296:                                             ; preds = %6295
  br label %6297

6297:                                             ; preds = %6296
  %6298 = load i32, ptr @test_count, align 4, !tbaa !5
  %6299 = add nsw i32 %6298, 1
  store i32 %6299, ptr @test_count, align 4, !tbaa !5
  %6300 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 2
  %6301 = getelementptr inbounds %struct.s2n_blob, ptr %6300, i32 0, i32 1
  %6302 = load i32, ptr %6301, align 8, !tbaa !35
  %6303 = icmp eq i32 %6302, 0
  br i1 %6303, label %6357, label %6304

6304:                                             ; preds = %6297
  br label %6305

6305:                                             ; preds = %6304
  br label %6306

6306:                                             ; preds = %6305
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #12
  %6307 = call ptr @__errno_location() #13
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  store i32 %6308, ptr %136, align 4, !tbaa !5
  %6309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6310 = call i32 @s2n_print_stacktrace(ptr noundef %6309)
  %6311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6312 = trunc i8 %6311 to i1
  br i1 %6312, label %6313, label %6335

6313:                                             ; preds = %6306
  %6314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6315 = call i32 @fileno(ptr noundef %6314) #12
  %6316 = call i32 @isatty(i32 noundef %6315) #12
  %6317 = icmp ne i32 %6316, 0
  br i1 %6317, label %6318, label %6335

6318:                                             ; preds = %6313
  %6319 = load i32, ptr %136, align 4, !tbaa !5
  %6320 = call ptr @__errno_location() #13
  store i32 %6319, ptr %6320, align 4, !tbaa !5
  %6321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6322 = load i32, ptr @test_count, align 4, !tbaa !5
  %6323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call ptr @s2n_strerror(i32 noundef %6324, ptr noundef @.str.16)
  %6326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6327 = load i32, ptr %6326, align 4, !tbaa !5
  %6328 = call ptr @s2n_strerror_debug(i32 noundef %6327, ptr noundef @.str.16)
  %6329 = call ptr @__errno_location() #13
  %6330 = load i32, ptr %6329, align 4, !tbaa !5
  %6331 = call ptr @strerror(i32 noundef %6330) #12
  %6332 = call ptr @__errno_location() #13
  %6333 = load i32, ptr %6332, align 4, !tbaa !5
  %6334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6321, ptr noundef @.str.14, i32 noundef %6322, ptr noundef @.str.95, ptr noundef @.str.13, i32 noundef 337, ptr noundef %6325, ptr noundef %6328, ptr noundef %6331, i32 noundef %6333) #12
  br label %6352

6335:                                             ; preds = %6313, %6306
  %6336 = load i32, ptr %136, align 4, !tbaa !5
  %6337 = call ptr @__errno_location() #13
  store i32 %6336, ptr %6337, align 4, !tbaa !5
  %6338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6339 = load i32, ptr @test_count, align 4, !tbaa !5
  %6340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6341 = load i32, ptr %6340, align 4, !tbaa !5
  %6342 = call ptr @s2n_strerror(i32 noundef %6341, ptr noundef @.str.16)
  %6343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6344 = load i32, ptr %6343, align 4, !tbaa !5
  %6345 = call ptr @s2n_strerror_debug(i32 noundef %6344, ptr noundef @.str.16)
  %6346 = call ptr @__errno_location() #13
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  %6348 = call ptr @strerror(i32 noundef %6347) #12
  %6349 = call ptr @__errno_location() #13
  %6350 = load i32, ptr %6349, align 4, !tbaa !5
  %6351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6338, ptr noundef @.str.17, i32 noundef %6339, ptr noundef @.str.95, ptr noundef @.str.13, i32 noundef 337, ptr noundef %6342, ptr noundef %6345, ptr noundef %6348, i32 noundef %6350) #12
  br label %6352

6352:                                             ; preds = %6335, %6318
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #12
  br label %6353

6353:                                             ; preds = %6352
  br label %6354

6354:                                             ; preds = %6353
  call void @exit(i32 noundef 1) #14
  unreachable

6355:                                             ; No predecessors!
  br label %6356

6356:                                             ; preds = %6355
  br label %6357

6357:                                             ; preds = %6356, %6297
  br label %6358

6358:                                             ; preds = %6357
  br label %6359

6359:                                             ; preds = %6358
  br label %6360

6360:                                             ; preds = %6359
  %6361 = load i32, ptr @test_count, align 4, !tbaa !5
  %6362 = add nsw i32 %6361, 1
  store i32 %6362, ptr @test_count, align 4, !tbaa !5
  %6363 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 2
  %6364 = getelementptr inbounds %struct.s2n_blob, ptr %6363, i32 0, i32 0
  %6365 = load ptr, ptr %6364, align 8, !tbaa !37
  %6366 = icmp eq ptr %6365, null
  br i1 %6366, label %6420, label %6367

6367:                                             ; preds = %6360
  br label %6368

6368:                                             ; preds = %6367
  br label %6369

6369:                                             ; preds = %6368
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #12
  %6370 = call ptr @__errno_location() #13
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  store i32 %6371, ptr %137, align 4, !tbaa !5
  %6372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6373 = call i32 @s2n_print_stacktrace(ptr noundef %6372)
  %6374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6375 = trunc i8 %6374 to i1
  br i1 %6375, label %6376, label %6398

6376:                                             ; preds = %6369
  %6377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6378 = call i32 @fileno(ptr noundef %6377) #12
  %6379 = call i32 @isatty(i32 noundef %6378) #12
  %6380 = icmp ne i32 %6379, 0
  br i1 %6380, label %6381, label %6398

6381:                                             ; preds = %6376
  %6382 = load i32, ptr %137, align 4, !tbaa !5
  %6383 = call ptr @__errno_location() #13
  store i32 %6382, ptr %6383, align 4, !tbaa !5
  %6384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6385 = load i32, ptr @test_count, align 4, !tbaa !5
  %6386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6387 = load i32, ptr %6386, align 4, !tbaa !5
  %6388 = call ptr @s2n_strerror(i32 noundef %6387, ptr noundef @.str.16)
  %6389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  %6391 = call ptr @s2n_strerror_debug(i32 noundef %6390, ptr noundef @.str.16)
  %6392 = call ptr @__errno_location() #13
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @strerror(i32 noundef %6393) #12
  %6395 = call ptr @__errno_location() #13
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6384, ptr noundef @.str.14, i32 noundef %6385, ptr noundef @.str.96, ptr noundef @.str.13, i32 noundef 338, ptr noundef %6388, ptr noundef %6391, ptr noundef %6394, i32 noundef %6396) #12
  br label %6415

6398:                                             ; preds = %6376, %6369
  %6399 = load i32, ptr %137, align 4, !tbaa !5
  %6400 = call ptr @__errno_location() #13
  store i32 %6399, ptr %6400, align 4, !tbaa !5
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = load i32, ptr @test_count, align 4, !tbaa !5
  %6403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6404 = load i32, ptr %6403, align 4, !tbaa !5
  %6405 = call ptr @s2n_strerror(i32 noundef %6404, ptr noundef @.str.16)
  %6406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call ptr @s2n_strerror_debug(i32 noundef %6407, ptr noundef @.str.16)
  %6409 = call ptr @__errno_location() #13
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call ptr @strerror(i32 noundef %6410) #12
  %6412 = call ptr @__errno_location() #13
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  %6414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6401, ptr noundef @.str.17, i32 noundef %6402, ptr noundef @.str.96, ptr noundef @.str.13, i32 noundef 338, ptr noundef %6405, ptr noundef %6408, ptr noundef %6411, i32 noundef %6413) #12
  br label %6415

6415:                                             ; preds = %6398, %6381
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #12
  br label %6416

6416:                                             ; preds = %6415
  br label %6417

6417:                                             ; preds = %6416
  call void @exit(i32 noundef 1) #14
  unreachable

6418:                                             ; No predecessors!
  br label %6419

6419:                                             ; preds = %6418
  br label %6420

6420:                                             ; preds = %6419, %6360
  br label %6421

6421:                                             ; preds = %6420
  br label %6422

6422:                                             ; preds = %6421
  br label %6423

6423:                                             ; preds = %6422
  %6424 = load i32, ptr @test_count, align 4, !tbaa !5
  %6425 = add nsw i32 %6424, 1
  store i32 %6425, ptr @test_count, align 4, !tbaa !5
  %6426 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 2
  %6427 = getelementptr inbounds %struct.s2n_blob, ptr %6426, i32 0, i32 2
  %6428 = load i32, ptr %6427, align 4, !tbaa !43
  %6429 = icmp eq i32 0, %6428
  br i1 %6429, label %6483, label %6430

6430:                                             ; preds = %6423
  br label %6431

6431:                                             ; preds = %6430
  br label %6432

6432:                                             ; preds = %6431
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #12
  %6433 = call ptr @__errno_location() #13
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  store i32 %6434, ptr %138, align 4, !tbaa !5
  %6435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6436 = call i32 @s2n_print_stacktrace(ptr noundef %6435)
  %6437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6438 = trunc i8 %6437 to i1
  br i1 %6438, label %6439, label %6461

6439:                                             ; preds = %6432
  %6440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6441 = call i32 @fileno(ptr noundef %6440) #12
  %6442 = call i32 @isatty(i32 noundef %6441) #12
  %6443 = icmp ne i32 %6442, 0
  br i1 %6443, label %6444, label %6461

6444:                                             ; preds = %6439
  %6445 = load i32, ptr %138, align 4, !tbaa !5
  %6446 = call ptr @__errno_location() #13
  store i32 %6445, ptr %6446, align 4, !tbaa !5
  %6447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6448 = load i32, ptr @test_count, align 4, !tbaa !5
  %6449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  %6451 = call ptr @s2n_strerror(i32 noundef %6450, ptr noundef @.str.16)
  %6452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6453 = load i32, ptr %6452, align 4, !tbaa !5
  %6454 = call ptr @s2n_strerror_debug(i32 noundef %6453, ptr noundef @.str.16)
  %6455 = call ptr @__errno_location() #13
  %6456 = load i32, ptr %6455, align 4, !tbaa !5
  %6457 = call ptr @strerror(i32 noundef %6456) #12
  %6458 = call ptr @__errno_location() #13
  %6459 = load i32, ptr %6458, align 4, !tbaa !5
  %6460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6447, ptr noundef @.str.14, i32 noundef %6448, ptr noundef @.str.97, ptr noundef @.str.13, i32 noundef 342, ptr noundef %6451, ptr noundef %6454, ptr noundef %6457, i32 noundef %6459) #12
  br label %6478

6461:                                             ; preds = %6439, %6432
  %6462 = load i32, ptr %138, align 4, !tbaa !5
  %6463 = call ptr @__errno_location() #13
  store i32 %6462, ptr %6463, align 4, !tbaa !5
  %6464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6465 = load i32, ptr @test_count, align 4, !tbaa !5
  %6466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6467 = load i32, ptr %6466, align 4, !tbaa !5
  %6468 = call ptr @s2n_strerror(i32 noundef %6467, ptr noundef @.str.16)
  %6469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6470 = load i32, ptr %6469, align 4, !tbaa !5
  %6471 = call ptr @s2n_strerror_debug(i32 noundef %6470, ptr noundef @.str.16)
  %6472 = call ptr @__errno_location() #13
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call ptr @strerror(i32 noundef %6473) #12
  %6475 = call ptr @__errno_location() #13
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  %6477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6464, ptr noundef @.str.17, i32 noundef %6465, ptr noundef @.str.97, ptr noundef @.str.13, i32 noundef 342, ptr noundef %6468, ptr noundef %6471, ptr noundef %6474, i32 noundef %6476) #12
  br label %6478

6478:                                             ; preds = %6461, %6444
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #12
  br label %6479

6479:                                             ; preds = %6478
  br label %6480

6480:                                             ; preds = %6479
  call void @exit(i32 noundef 1) #14
  unreachable

6481:                                             ; No predecessors!
  br label %6482

6482:                                             ; preds = %6481
  br label %6483

6483:                                             ; preds = %6482, %6423
  br label %6484

6484:                                             ; preds = %6483
  br label %6485

6485:                                             ; preds = %6484
  br label %6486

6486:                                             ; preds = %6485
  %6487 = load i32, ptr @test_count, align 4, !tbaa !5
  %6488 = add nsw i32 %6487, 1
  store i32 %6488, ptr @test_count, align 4, !tbaa !5
  %6489 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %6490 = getelementptr inbounds %struct.s2n_blob, ptr %6489, i32 0, i32 2
  %6491 = load i32, ptr %6490, align 4, !tbaa !46
  %6492 = icmp eq i32 0, %6491
  br i1 %6492, label %6493, label %6546

6493:                                             ; preds = %6486
  br label %6494

6494:                                             ; preds = %6493
  br label %6495

6495:                                             ; preds = %6494
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #12
  %6496 = call ptr @__errno_location() #13
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  store i32 %6497, ptr %139, align 4, !tbaa !5
  %6498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6499 = call i32 @s2n_print_stacktrace(ptr noundef %6498)
  %6500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6501 = trunc i8 %6500 to i1
  br i1 %6501, label %6502, label %6524

6502:                                             ; preds = %6495
  %6503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6504 = call i32 @fileno(ptr noundef %6503) #12
  %6505 = call i32 @isatty(i32 noundef %6504) #12
  %6506 = icmp ne i32 %6505, 0
  br i1 %6506, label %6507, label %6524

6507:                                             ; preds = %6502
  %6508 = load i32, ptr %139, align 4, !tbaa !5
  %6509 = call ptr @__errno_location() #13
  store i32 %6508, ptr %6509, align 4, !tbaa !5
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = load i32, ptr @test_count, align 4, !tbaa !5
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror(i32 noundef %6513, ptr noundef @.str.16)
  %6515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @s2n_strerror_debug(i32 noundef %6516, ptr noundef @.str.16)
  %6518 = call ptr @__errno_location() #13
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call ptr @strerror(i32 noundef %6519) #12
  %6521 = call ptr @__errno_location() #13
  %6522 = load i32, ptr %6521, align 4, !tbaa !5
  %6523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6510, ptr noundef @.str.14, i32 noundef %6511, ptr noundef @.str.98, ptr noundef @.str.13, i32 noundef 343, ptr noundef %6514, ptr noundef %6517, ptr noundef %6520, i32 noundef %6522) #12
  br label %6541

6524:                                             ; preds = %6502, %6495
  %6525 = load i32, ptr %139, align 4, !tbaa !5
  %6526 = call ptr @__errno_location() #13
  store i32 %6525, ptr %6526, align 4, !tbaa !5
  %6527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6528 = load i32, ptr @test_count, align 4, !tbaa !5
  %6529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call ptr @s2n_strerror(i32 noundef %6530, ptr noundef @.str.16)
  %6532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6533 = load i32, ptr %6532, align 4, !tbaa !5
  %6534 = call ptr @s2n_strerror_debug(i32 noundef %6533, ptr noundef @.str.16)
  %6535 = call ptr @__errno_location() #13
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call ptr @strerror(i32 noundef %6536) #12
  %6538 = call ptr @__errno_location() #13
  %6539 = load i32, ptr %6538, align 4, !tbaa !5
  %6540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6527, ptr noundef @.str.17, i32 noundef %6528, ptr noundef @.str.98, ptr noundef @.str.13, i32 noundef 343, ptr noundef %6531, ptr noundef %6534, ptr noundef %6537, i32 noundef %6539) #12
  br label %6541

6541:                                             ; preds = %6524, %6507
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #12
  br label %6542

6542:                                             ; preds = %6541
  br label %6543

6543:                                             ; preds = %6542
  call void @exit(i32 noundef 1) #14
  unreachable

6544:                                             ; No predecessors!
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

6546:                                             ; preds = %6545, %6486
  br label %6547

6547:                                             ; preds = %6546
  br label %6548

6548:                                             ; preds = %6547
  br label %6549

6549:                                             ; preds = %6548
  %6550 = load i32, ptr @test_count, align 4, !tbaa !5
  %6551 = add nsw i32 %6550, 1
  store i32 %6551, ptr @test_count, align 4, !tbaa !5
  %6552 = getelementptr inbounds %struct.s2n_kem_params, ptr %118, i32 0, i32 1
  %6553 = getelementptr inbounds %struct.s2n_blob, ptr %6552, i32 0, i32 2
  %6554 = load i32, ptr %6553, align 4, !tbaa !46
  %6555 = icmp eq i32 0, %6554
  br i1 %6555, label %6556, label %6609

6556:                                             ; preds = %6549
  br label %6557

6557:                                             ; preds = %6556
  br label %6558

6558:                                             ; preds = %6557
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #12
  %6559 = call ptr @__errno_location() #13
  %6560 = load i32, ptr %6559, align 4, !tbaa !5
  store i32 %6560, ptr %140, align 4, !tbaa !5
  %6561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6562 = call i32 @s2n_print_stacktrace(ptr noundef %6561)
  %6563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6564 = trunc i8 %6563 to i1
  br i1 %6564, label %6565, label %6587

6565:                                             ; preds = %6558
  %6566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6567 = call i32 @fileno(ptr noundef %6566) #12
  %6568 = call i32 @isatty(i32 noundef %6567) #12
  %6569 = icmp ne i32 %6568, 0
  br i1 %6569, label %6570, label %6587

6570:                                             ; preds = %6565
  %6571 = load i32, ptr %140, align 4, !tbaa !5
  %6572 = call ptr @__errno_location() #13
  store i32 %6571, ptr %6572, align 4, !tbaa !5
  %6573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6574 = load i32, ptr @test_count, align 4, !tbaa !5
  %6575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call ptr @s2n_strerror(i32 noundef %6576, ptr noundef @.str.16)
  %6578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  %6580 = call ptr @s2n_strerror_debug(i32 noundef %6579, ptr noundef @.str.16)
  %6581 = call ptr @__errno_location() #13
  %6582 = load i32, ptr %6581, align 4, !tbaa !5
  %6583 = call ptr @strerror(i32 noundef %6582) #12
  %6584 = call ptr @__errno_location() #13
  %6585 = load i32, ptr %6584, align 4, !tbaa !5
  %6586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6573, ptr noundef @.str.14, i32 noundef %6574, ptr noundef @.str.98, ptr noundef @.str.13, i32 noundef 344, ptr noundef %6577, ptr noundef %6580, ptr noundef %6583, i32 noundef %6585) #12
  br label %6604

6587:                                             ; preds = %6565, %6558
  %6588 = load i32, ptr %140, align 4, !tbaa !5
  %6589 = call ptr @__errno_location() #13
  store i32 %6588, ptr %6589, align 4, !tbaa !5
  %6590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6591 = load i32, ptr @test_count, align 4, !tbaa !5
  %6592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call ptr @s2n_strerror(i32 noundef %6593, ptr noundef @.str.16)
  %6595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror_debug(i32 noundef %6596, ptr noundef @.str.16)
  %6598 = call ptr @__errno_location() #13
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call ptr @strerror(i32 noundef %6599) #12
  %6601 = call ptr @__errno_location() #13
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6590, ptr noundef @.str.17, i32 noundef %6591, ptr noundef @.str.98, ptr noundef @.str.13, i32 noundef 344, ptr noundef %6594, ptr noundef %6597, ptr noundef %6600, i32 noundef %6602) #12
  br label %6604

6604:                                             ; preds = %6587, %6570
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #12
  br label %6605

6605:                                             ; preds = %6604
  br label %6606

6606:                                             ; preds = %6605
  call void @exit(i32 noundef 1) #14
  unreachable

6607:                                             ; No predecessors!
  br label %6608

6608:                                             ; preds = %6607
  br label %6609

6609:                                             ; preds = %6608, %6549
  br label %6610

6610:                                             ; preds = %6609
  br label %6611

6611:                                             ; preds = %6610
  br label %6612

6612:                                             ; preds = %6611
  %6613 = load i32, ptr @test_count, align 4, !tbaa !5
  %6614 = add nsw i32 %6613, 1
  store i32 %6614, ptr @test_count, align 4, !tbaa !5
  %6615 = call i32 @s2n_kem_free(ptr noundef %118)
  %6616 = icmp eq i32 %6615, -1
  br i1 %6616, label %6617, label %6670

6617:                                             ; preds = %6612
  br label %6618

6618:                                             ; preds = %6617
  br label %6619

6619:                                             ; preds = %6618
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #12
  %6620 = call ptr @__errno_location() #13
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  store i32 %6621, ptr %141, align 4, !tbaa !5
  %6622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6623 = call i32 @s2n_print_stacktrace(ptr noundef %6622)
  %6624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6625 = trunc i8 %6624 to i1
  br i1 %6625, label %6626, label %6648

6626:                                             ; preds = %6619
  %6627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6628 = call i32 @fileno(ptr noundef %6627) #12
  %6629 = call i32 @isatty(i32 noundef %6628) #12
  %6630 = icmp ne i32 %6629, 0
  br i1 %6630, label %6631, label %6648

6631:                                             ; preds = %6626
  %6632 = load i32, ptr %141, align 4, !tbaa !5
  %6633 = call ptr @__errno_location() #13
  store i32 %6632, ptr %6633, align 4, !tbaa !5
  %6634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6635 = load i32, ptr @test_count, align 4, !tbaa !5
  %6636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call ptr @s2n_strerror(i32 noundef %6637, ptr noundef @.str.16)
  %6639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call ptr @s2n_strerror_debug(i32 noundef %6640, ptr noundef @.str.16)
  %6642 = call ptr @__errno_location() #13
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @strerror(i32 noundef %6643) #12
  %6645 = call ptr @__errno_location() #13
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6634, ptr noundef @.str.14, i32 noundef %6635, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 345, ptr noundef %6638, ptr noundef %6641, ptr noundef %6644, i32 noundef %6646) #12
  br label %6665

6648:                                             ; preds = %6626, %6619
  %6649 = load i32, ptr %141, align 4, !tbaa !5
  %6650 = call ptr @__errno_location() #13
  store i32 %6649, ptr %6650, align 4, !tbaa !5
  %6651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6652 = load i32, ptr @test_count, align 4, !tbaa !5
  %6653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6654 = load i32, ptr %6653, align 4, !tbaa !5
  %6655 = call ptr @s2n_strerror(i32 noundef %6654, ptr noundef @.str.16)
  %6656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  %6658 = call ptr @s2n_strerror_debug(i32 noundef %6657, ptr noundef @.str.16)
  %6659 = call ptr @__errno_location() #13
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  %6661 = call ptr @strerror(i32 noundef %6660) #12
  %6662 = call ptr @__errno_location() #13
  %6663 = load i32, ptr %6662, align 4, !tbaa !5
  %6664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6651, ptr noundef @.str.17, i32 noundef %6652, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 345, ptr noundef %6655, ptr noundef %6658, ptr noundef %6661, i32 noundef %6663) #12
  br label %6665

6665:                                             ; preds = %6648, %6631
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #12
  br label %6666

6666:                                             ; preds = %6665
  br label %6667

6667:                                             ; preds = %6666
  call void @exit(i32 noundef 1) #14
  unreachable

6668:                                             ; No predecessors!
  br label %6669

6669:                                             ; preds = %6668
  br label %6670

6670:                                             ; preds = %6669, %6612
  br label %6671

6671:                                             ; preds = %6670
  br label %6672

6672:                                             ; preds = %6671
  call void @llvm.lifetime.end.p0(i64 2, ptr %130) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr %128) #12
  call void @llvm.lifetime.end.p0(i64 7, ptr %127) #12
  store i32 0, ptr %30, align 4
  br label %6673

6673:                                             ; preds = %6672, %5890
  call void @llvm.lifetime.end.p0(i64 40, ptr %121) #12
  %6674 = call i32 @s2n_free(ptr noundef %119)
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %118) #12
  %6675 = load i32, ptr %30, align 4
  switch i32 %6675, label %12165 [
    i32 0, label %6676
  ]

6676:                                             ; preds = %6673
  br label %6677

6677:                                             ; preds = %6676
  br label %6678

6678:                                             ; preds = %6677
  br label %6679

6679:                                             ; preds = %6678
  %6680 = load i32, ptr @test_count, align 4, !tbaa !5
  %6681 = add nsw i32 %6680, 1
  store i32 %6681, ptr @test_count, align 4, !tbaa !5
  %6682 = call i32 @s2n_kem_send_ciphertext(ptr noundef null, ptr noundef null)
  %6683 = icmp eq i32 %6682, -1
  br i1 %6683, label %6737, label %6684

6684:                                             ; preds = %6679
  br label %6685

6685:                                             ; preds = %6684
  br label %6686

6686:                                             ; preds = %6685
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #12
  %6687 = call ptr @__errno_location() #13
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  store i32 %6688, ptr %142, align 4, !tbaa !5
  %6689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6690 = call i32 @s2n_print_stacktrace(ptr noundef %6689)
  %6691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6692 = trunc i8 %6691 to i1
  br i1 %6692, label %6693, label %6715

6693:                                             ; preds = %6686
  %6694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6695 = call i32 @fileno(ptr noundef %6694) #12
  %6696 = call i32 @isatty(i32 noundef %6695) #12
  %6697 = icmp ne i32 %6696, 0
  br i1 %6697, label %6698, label %6715

6698:                                             ; preds = %6693
  %6699 = load i32, ptr %142, align 4, !tbaa !5
  %6700 = call ptr @__errno_location() #13
  store i32 %6699, ptr %6700, align 4, !tbaa !5
  %6701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6702 = load i32, ptr @test_count, align 4, !tbaa !5
  %6703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6704 = load i32, ptr %6703, align 4, !tbaa !5
  %6705 = call ptr @s2n_strerror(i32 noundef %6704, ptr noundef @.str.16)
  %6706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6707 = load i32, ptr %6706, align 4, !tbaa !5
  %6708 = call ptr @s2n_strerror_debug(i32 noundef %6707, ptr noundef @.str.16)
  %6709 = call ptr @__errno_location() #13
  %6710 = load i32, ptr %6709, align 4, !tbaa !5
  %6711 = call ptr @strerror(i32 noundef %6710) #12
  %6712 = call ptr @__errno_location() #13
  %6713 = load i32, ptr %6712, align 4, !tbaa !5
  %6714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6701, ptr noundef @.str.14, i32 noundef %6702, ptr noundef @.str.99, ptr noundef @.str.13, i32 noundef 349, ptr noundef %6705, ptr noundef %6708, ptr noundef %6711, i32 noundef %6713) #12
  br label %6732

6715:                                             ; preds = %6693, %6686
  %6716 = load i32, ptr %142, align 4, !tbaa !5
  %6717 = call ptr @__errno_location() #13
  store i32 %6716, ptr %6717, align 4, !tbaa !5
  %6718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6719 = load i32, ptr @test_count, align 4, !tbaa !5
  %6720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  %6722 = call ptr @s2n_strerror(i32 noundef %6721, ptr noundef @.str.16)
  %6723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6724 = load i32, ptr %6723, align 4, !tbaa !5
  %6725 = call ptr @s2n_strerror_debug(i32 noundef %6724, ptr noundef @.str.16)
  %6726 = call ptr @__errno_location() #13
  %6727 = load i32, ptr %6726, align 4, !tbaa !5
  %6728 = call ptr @strerror(i32 noundef %6727) #12
  %6729 = call ptr @__errno_location() #13
  %6730 = load i32, ptr %6729, align 4, !tbaa !5
  %6731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6718, ptr noundef @.str.17, i32 noundef %6719, ptr noundef @.str.99, ptr noundef @.str.13, i32 noundef 349, ptr noundef %6722, ptr noundef %6725, ptr noundef %6728, i32 noundef %6730) #12
  br label %6732

6732:                                             ; preds = %6715, %6698
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #12
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

6734:                                             ; preds = %6733
  call void @exit(i32 noundef 1) #14
  unreachable

6735:                                             ; No predecessors!
  br label %6736

6736:                                             ; preds = %6735
  br label %6737

6737:                                             ; preds = %6736, %6679
  br label %6738

6738:                                             ; preds = %6737
  br label %6739

6739:                                             ; preds = %6738
  br label %6740

6740:                                             ; preds = %6739
  %6741 = load i32, ptr @test_count, align 4, !tbaa !5
  %6742 = add nsw i32 %6741, 1
  store i32 %6742, ptr @test_count, align 4, !tbaa !5
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = icmp eq i32 %6744, 402653193
  br i1 %6745, label %6799, label %6746

6746:                                             ; preds = %6740
  br label %6747

6747:                                             ; preds = %6746
  br label %6748

6748:                                             ; preds = %6747
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #12
  %6749 = call ptr @__errno_location() #13
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  store i32 %6750, ptr %143, align 4, !tbaa !5
  %6751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6752 = call i32 @s2n_print_stacktrace(ptr noundef %6751)
  %6753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6754 = trunc i8 %6753 to i1
  br i1 %6754, label %6755, label %6777

6755:                                             ; preds = %6748
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = call i32 @fileno(ptr noundef %6756) #12
  %6758 = call i32 @isatty(i32 noundef %6757) #12
  %6759 = icmp ne i32 %6758, 0
  br i1 %6759, label %6760, label %6777

6760:                                             ; preds = %6755
  %6761 = load i32, ptr %143, align 4, !tbaa !5
  %6762 = call ptr @__errno_location() #13
  store i32 %6761, ptr %6762, align 4, !tbaa !5
  %6763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6764 = load i32, ptr @test_count, align 4, !tbaa !5
  %6765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call ptr @s2n_strerror(i32 noundef %6766, ptr noundef @.str.16)
  %6768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call ptr @s2n_strerror_debug(i32 noundef %6769, ptr noundef @.str.16)
  %6771 = call ptr @__errno_location() #13
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call ptr @strerror(i32 noundef %6772) #12
  %6774 = call ptr @__errno_location() #13
  %6775 = load i32, ptr %6774, align 4, !tbaa !5
  %6776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6763, ptr noundef @.str.14, i32 noundef %6764, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 349, ptr noundef %6767, ptr noundef %6770, ptr noundef %6773, i32 noundef %6775) #12
  br label %6794

6777:                                             ; preds = %6755, %6748
  %6778 = load i32, ptr %143, align 4, !tbaa !5
  %6779 = call ptr @__errno_location() #13
  store i32 %6778, ptr %6779, align 4, !tbaa !5
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = load i32, ptr @test_count, align 4, !tbaa !5
  %6782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  %6784 = call ptr @s2n_strerror(i32 noundef %6783, ptr noundef @.str.16)
  %6785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6786 = load i32, ptr %6785, align 4, !tbaa !5
  %6787 = call ptr @s2n_strerror_debug(i32 noundef %6786, ptr noundef @.str.16)
  %6788 = call ptr @__errno_location() #13
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  %6790 = call ptr @strerror(i32 noundef %6789) #12
  %6791 = call ptr @__errno_location() #13
  %6792 = load i32, ptr %6791, align 4, !tbaa !5
  %6793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6780, ptr noundef @.str.17, i32 noundef %6781, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 349, ptr noundef %6784, ptr noundef %6787, ptr noundef %6790, i32 noundef %6792) #12
  br label %6794

6794:                                             ; preds = %6777, %6760
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #12
  br label %6795

6795:                                             ; preds = %6794
  br label %6796

6796:                                             ; preds = %6795
  call void @exit(i32 noundef 1) #14
  unreachable

6797:                                             ; No predecessors!
  br label %6798

6798:                                             ; preds = %6797
  br label %6799

6799:                                             ; preds = %6798, %6740
  br label %6800

6800:                                             ; preds = %6799
  br label %6801

6801:                                             ; preds = %6800
  br label %6802

6802:                                             ; preds = %6801
  %6803 = load i32, ptr @test_count, align 4, !tbaa !5
  %6804 = add nsw i32 %6803, 1
  store i32 %6804, ptr @test_count, align 4, !tbaa !5
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror_debug(i32 noundef %6806, ptr noundef @.str.16)
  %6808 = icmp eq ptr %6807, null
  br i1 %6808, label %6809, label %6862

6809:                                             ; preds = %6802
  br label %6810

6810:                                             ; preds = %6809
  br label %6811

6811:                                             ; preds = %6810
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #12
  %6812 = call ptr @__errno_location() #13
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  store i32 %6813, ptr %144, align 4, !tbaa !5
  %6814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6815 = call i32 @s2n_print_stacktrace(ptr noundef %6814)
  %6816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6817 = trunc i8 %6816 to i1
  br i1 %6817, label %6818, label %6840

6818:                                             ; preds = %6811
  %6819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6820 = call i32 @fileno(ptr noundef %6819) #12
  %6821 = call i32 @isatty(i32 noundef %6820) #12
  %6822 = icmp ne i32 %6821, 0
  br i1 %6822, label %6823, label %6840

6823:                                             ; preds = %6818
  %6824 = load i32, ptr %144, align 4, !tbaa !5
  %6825 = call ptr @__errno_location() #13
  store i32 %6824, ptr %6825, align 4, !tbaa !5
  %6826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6827 = load i32, ptr @test_count, align 4, !tbaa !5
  %6828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call ptr @s2n_strerror(i32 noundef %6829, ptr noundef @.str.16)
  %6831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call ptr @s2n_strerror_debug(i32 noundef %6832, ptr noundef @.str.16)
  %6834 = call ptr @__errno_location() #13
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @strerror(i32 noundef %6835) #12
  %6837 = call ptr @__errno_location() #13
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6826, ptr noundef @.str.14, i32 noundef %6827, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 349, ptr noundef %6830, ptr noundef %6833, ptr noundef %6836, i32 noundef %6838) #12
  br label %6857

6840:                                             ; preds = %6818, %6811
  %6841 = load i32, ptr %144, align 4, !tbaa !5
  %6842 = call ptr @__errno_location() #13
  store i32 %6841, ptr %6842, align 4, !tbaa !5
  %6843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6844 = load i32, ptr @test_count, align 4, !tbaa !5
  %6845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6846 = load i32, ptr %6845, align 4, !tbaa !5
  %6847 = call ptr @s2n_strerror(i32 noundef %6846, ptr noundef @.str.16)
  %6848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6849 = load i32, ptr %6848, align 4, !tbaa !5
  %6850 = call ptr @s2n_strerror_debug(i32 noundef %6849, ptr noundef @.str.16)
  %6851 = call ptr @__errno_location() #13
  %6852 = load i32, ptr %6851, align 4, !tbaa !5
  %6853 = call ptr @strerror(i32 noundef %6852) #12
  %6854 = call ptr @__errno_location() #13
  %6855 = load i32, ptr %6854, align 4, !tbaa !5
  %6856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6843, ptr noundef @.str.17, i32 noundef %6844, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 349, ptr noundef %6847, ptr noundef %6850, ptr noundef %6853, i32 noundef %6855) #12
  br label %6857

6857:                                             ; preds = %6840, %6823
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #12
  br label %6858

6858:                                             ; preds = %6857
  br label %6859

6859:                                             ; preds = %6858
  call void @exit(i32 noundef 1) #14
  unreachable

6860:                                             ; No predecessors!
  br label %6861

6861:                                             ; preds = %6860
  br label %6862

6862:                                             ; preds = %6861, %6802
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

6864:                                             ; preds = %6863
  br label %6865

6865:                                             ; preds = %6864
  br label %6866

6866:                                             ; preds = %6865
  br label %6867

6867:                                             ; preds = %6866
  %6868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6868, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6869 = call ptr @__errno_location() #13
  store i32 0, ptr %6869, align 4, !tbaa !5
  br label %6870

6870:                                             ; preds = %6867
  br label %6871

6871:                                             ; preds = %6870
  br label %6872

6872:                                             ; preds = %6871
  br label %6873

6873:                                             ; preds = %6872
  call void @llvm.lifetime.start.p0(i64 24, ptr %145) #12
  call void @llvm.memset.p0.i64(ptr align 8 %145, i8 0, i64 24, i1 false)
  br label %6874

6874:                                             ; preds = %6873
  %6875 = load i32, ptr @test_count, align 4, !tbaa !5
  %6876 = add nsw i32 %6875, 1
  store i32 %6876, ptr @test_count, align 4, !tbaa !5
  %6877 = call i32 @s2n_alloc(ptr noundef %145, i32 noundef 1)
  %6878 = icmp eq i32 %6877, -1
  br i1 %6878, label %6879, label %6932

6879:                                             ; preds = %6874
  br label %6880

6880:                                             ; preds = %6879
  br label %6881

6881:                                             ; preds = %6880
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #12
  %6882 = call ptr @__errno_location() #13
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  store i32 %6883, ptr %146, align 4, !tbaa !5
  %6884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6885 = call i32 @s2n_print_stacktrace(ptr noundef %6884)
  %6886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6887 = trunc i8 %6886 to i1
  br i1 %6887, label %6888, label %6910

6888:                                             ; preds = %6881
  %6889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6890 = call i32 @fileno(ptr noundef %6889) #12
  %6891 = call i32 @isatty(i32 noundef %6890) #12
  %6892 = icmp ne i32 %6891, 0
  br i1 %6892, label %6893, label %6910

6893:                                             ; preds = %6888
  %6894 = load i32, ptr %146, align 4, !tbaa !5
  %6895 = call ptr @__errno_location() #13
  store i32 %6894, ptr %6895, align 4, !tbaa !5
  %6896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6897 = load i32, ptr @test_count, align 4, !tbaa !5
  %6898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @s2n_strerror(i32 noundef %6899, ptr noundef @.str.16)
  %6901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call ptr @s2n_strerror_debug(i32 noundef %6902, ptr noundef @.str.16)
  %6904 = call ptr @__errno_location() #13
  %6905 = load i32, ptr %6904, align 4, !tbaa !5
  %6906 = call ptr @strerror(i32 noundef %6905) #12
  %6907 = call ptr @__errno_location() #13
  %6908 = load i32, ptr %6907, align 4, !tbaa !5
  %6909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6896, ptr noundef @.str.14, i32 noundef %6897, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 352, ptr noundef %6900, ptr noundef %6903, ptr noundef %6906, i32 noundef %6908) #12
  br label %6927

6910:                                             ; preds = %6888, %6881
  %6911 = load i32, ptr %146, align 4, !tbaa !5
  %6912 = call ptr @__errno_location() #13
  store i32 %6911, ptr %6912, align 4, !tbaa !5
  %6913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6914 = load i32, ptr @test_count, align 4, !tbaa !5
  %6915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6916 = load i32, ptr %6915, align 4, !tbaa !5
  %6917 = call ptr @s2n_strerror(i32 noundef %6916, ptr noundef @.str.16)
  %6918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6919 = load i32, ptr %6918, align 4, !tbaa !5
  %6920 = call ptr @s2n_strerror_debug(i32 noundef %6919, ptr noundef @.str.16)
  %6921 = call ptr @__errno_location() #13
  %6922 = load i32, ptr %6921, align 4, !tbaa !5
  %6923 = call ptr @strerror(i32 noundef %6922) #12
  %6924 = call ptr @__errno_location() #13
  %6925 = load i32, ptr %6924, align 4, !tbaa !5
  %6926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6913, ptr noundef @.str.17, i32 noundef %6914, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 352, ptr noundef %6917, ptr noundef %6920, ptr noundef %6923, i32 noundef %6925) #12
  br label %6927

6927:                                             ; preds = %6910, %6893
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #12
  br label %6928

6928:                                             ; preds = %6927
  br label %6929

6929:                                             ; preds = %6928
  call void @exit(i32 noundef 1) #14
  unreachable

6930:                                             ; No predecessors!
  br label %6931

6931:                                             ; preds = %6930
  br label %6932

6932:                                             ; preds = %6931, %6874
  br label %6933

6933:                                             ; preds = %6932
  br label %6934

6934:                                             ; preds = %6933
  call void @llvm.lifetime.start.p0(i64 40, ptr %147) #12
  call void @llvm.memset.p0.i64(ptr align 8 %147, i8 0, i64 40, i1 false)
  br label %6935

6935:                                             ; preds = %6934
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = add nsw i32 %6936, 1
  store i32 %6937, ptr @test_count, align 4, !tbaa !5
  %6938 = call i32 @s2n_stuffer_init(ptr noundef %147, ptr noundef %145)
  %6939 = icmp eq i32 %6938, -1
  br i1 %6939, label %6940, label %6993

6940:                                             ; preds = %6935
  br label %6941

6941:                                             ; preds = %6940
  br label %6942

6942:                                             ; preds = %6941
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #12
  %6943 = call ptr @__errno_location() #13
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  store i32 %6944, ptr %148, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = call i32 @s2n_print_stacktrace(ptr noundef %6945)
  %6947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6948 = trunc i8 %6947 to i1
  br i1 %6948, label %6949, label %6971

6949:                                             ; preds = %6942
  %6950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6951 = call i32 @fileno(ptr noundef %6950) #12
  %6952 = call i32 @isatty(i32 noundef %6951) #12
  %6953 = icmp ne i32 %6952, 0
  br i1 %6953, label %6954, label %6971

6954:                                             ; preds = %6949
  %6955 = load i32, ptr %148, align 4, !tbaa !5
  %6956 = call ptr @__errno_location() #13
  store i32 %6955, ptr %6956, align 4, !tbaa !5
  %6957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6958 = load i32, ptr @test_count, align 4, !tbaa !5
  %6959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @s2n_strerror(i32 noundef %6960, ptr noundef @.str.16)
  %6962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @s2n_strerror_debug(i32 noundef %6963, ptr noundef @.str.16)
  %6965 = call ptr @__errno_location() #13
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call ptr @strerror(i32 noundef %6966) #12
  %6968 = call ptr @__errno_location() #13
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6957, ptr noundef @.str.14, i32 noundef %6958, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 354, ptr noundef %6961, ptr noundef %6964, ptr noundef %6967, i32 noundef %6969) #12
  br label %6988

6971:                                             ; preds = %6949, %6942
  %6972 = load i32, ptr %148, align 4, !tbaa !5
  %6973 = call ptr @__errno_location() #13
  store i32 %6972, ptr %6973, align 4, !tbaa !5
  %6974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6975 = load i32, ptr @test_count, align 4, !tbaa !5
  %6976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  %6978 = call ptr @s2n_strerror(i32 noundef %6977, ptr noundef @.str.16)
  %6979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror_debug(i32 noundef %6980, ptr noundef @.str.16)
  %6982 = call ptr @__errno_location() #13
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @strerror(i32 noundef %6983) #12
  %6985 = call ptr @__errno_location() #13
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6974, ptr noundef @.str.17, i32 noundef %6975, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 354, ptr noundef %6978, ptr noundef %6981, ptr noundef %6984, i32 noundef %6986) #12
  br label %6988

6988:                                             ; preds = %6971, %6954
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #12
  br label %6989

6989:                                             ; preds = %6988
  br label %6990

6990:                                             ; preds = %6989
  call void @exit(i32 noundef 1) #14
  unreachable

6991:                                             ; No predecessors!
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

6993:                                             ; preds = %6992, %6935
  br label %6994

6994:                                             ; preds = %6993
  br label %6995

6995:                                             ; preds = %6994
  br label %6996

6996:                                             ; preds = %6995
  br label %6997

6997:                                             ; preds = %6996
  br label %6998

6998:                                             ; preds = %6997
  %6999 = load i32, ptr @test_count, align 4, !tbaa !5
  %7000 = add nsw i32 %6999, 1
  store i32 %7000, ptr @test_count, align 4, !tbaa !5
  %7001 = call i32 @s2n_kem_send_ciphertext(ptr noundef %147, ptr noundef null)
  %7002 = icmp eq i32 %7001, -1
  br i1 %7002, label %7056, label %7003

7003:                                             ; preds = %6998
  br label %7004

7004:                                             ; preds = %7003
  br label %7005

7005:                                             ; preds = %7004
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #12
  %7006 = call ptr @__errno_location() #13
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  store i32 %7007, ptr %149, align 4, !tbaa !5
  %7008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7009 = call i32 @s2n_print_stacktrace(ptr noundef %7008)
  %7010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7011 = trunc i8 %7010 to i1
  br i1 %7011, label %7012, label %7034

7012:                                             ; preds = %7005
  %7013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7014 = call i32 @fileno(ptr noundef %7013) #12
  %7015 = call i32 @isatty(i32 noundef %7014) #12
  %7016 = icmp ne i32 %7015, 0
  br i1 %7016, label %7017, label %7034

7017:                                             ; preds = %7012
  %7018 = load i32, ptr %149, align 4, !tbaa !5
  %7019 = call ptr @__errno_location() #13
  store i32 %7018, ptr %7019, align 4, !tbaa !5
  %7020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7021 = load i32, ptr @test_count, align 4, !tbaa !5
  %7022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call ptr @s2n_strerror(i32 noundef %7023, ptr noundef @.str.16)
  %7025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call ptr @s2n_strerror_debug(i32 noundef %7026, ptr noundef @.str.16)
  %7028 = call ptr @__errno_location() #13
  %7029 = load i32, ptr %7028, align 4, !tbaa !5
  %7030 = call ptr @strerror(i32 noundef %7029) #12
  %7031 = call ptr @__errno_location() #13
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  %7033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7020, ptr noundef @.str.14, i32 noundef %7021, ptr noundef @.str.100, ptr noundef @.str.13, i32 noundef 356, ptr noundef %7024, ptr noundef %7027, ptr noundef %7030, i32 noundef %7032) #12
  br label %7051

7034:                                             ; preds = %7012, %7005
  %7035 = load i32, ptr %149, align 4, !tbaa !5
  %7036 = call ptr @__errno_location() #13
  store i32 %7035, ptr %7036, align 4, !tbaa !5
  %7037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7038 = load i32, ptr @test_count, align 4, !tbaa !5
  %7039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7040 = load i32, ptr %7039, align 4, !tbaa !5
  %7041 = call ptr @s2n_strerror(i32 noundef %7040, ptr noundef @.str.16)
  %7042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7043 = load i32, ptr %7042, align 4, !tbaa !5
  %7044 = call ptr @s2n_strerror_debug(i32 noundef %7043, ptr noundef @.str.16)
  %7045 = call ptr @__errno_location() #13
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  %7047 = call ptr @strerror(i32 noundef %7046) #12
  %7048 = call ptr @__errno_location() #13
  %7049 = load i32, ptr %7048, align 4, !tbaa !5
  %7050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7037, ptr noundef @.str.17, i32 noundef %7038, ptr noundef @.str.100, ptr noundef @.str.13, i32 noundef 356, ptr noundef %7041, ptr noundef %7044, ptr noundef %7047, i32 noundef %7049) #12
  br label %7051

7051:                                             ; preds = %7034, %7017
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #12
  br label %7052

7052:                                             ; preds = %7051
  br label %7053

7053:                                             ; preds = %7052
  call void @exit(i32 noundef 1) #14
  unreachable

7054:                                             ; No predecessors!
  br label %7055

7055:                                             ; preds = %7054
  br label %7056

7056:                                             ; preds = %7055, %6998
  br label %7057

7057:                                             ; preds = %7056
  br label %7058

7058:                                             ; preds = %7057
  br label %7059

7059:                                             ; preds = %7058
  %7060 = load i32, ptr @test_count, align 4, !tbaa !5
  %7061 = add nsw i32 %7060, 1
  store i32 %7061, ptr @test_count, align 4, !tbaa !5
  %7062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = icmp eq i32 %7063, 402653193
  br i1 %7064, label %7118, label %7065

7065:                                             ; preds = %7059
  br label %7066

7066:                                             ; preds = %7065
  br label %7067

7067:                                             ; preds = %7066
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #12
  %7068 = call ptr @__errno_location() #13
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  store i32 %7069, ptr %150, align 4, !tbaa !5
  %7070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7071 = call i32 @s2n_print_stacktrace(ptr noundef %7070)
  %7072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7073 = trunc i8 %7072 to i1
  br i1 %7073, label %7074, label %7096

7074:                                             ; preds = %7067
  %7075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7076 = call i32 @fileno(ptr noundef %7075) #12
  %7077 = call i32 @isatty(i32 noundef %7076) #12
  %7078 = icmp ne i32 %7077, 0
  br i1 %7078, label %7079, label %7096

7079:                                             ; preds = %7074
  %7080 = load i32, ptr %150, align 4, !tbaa !5
  %7081 = call ptr @__errno_location() #13
  store i32 %7080, ptr %7081, align 4, !tbaa !5
  %7082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7083 = load i32, ptr @test_count, align 4, !tbaa !5
  %7084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7085 = load i32, ptr %7084, align 4, !tbaa !5
  %7086 = call ptr @s2n_strerror(i32 noundef %7085, ptr noundef @.str.16)
  %7087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call ptr @s2n_strerror_debug(i32 noundef %7088, ptr noundef @.str.16)
  %7090 = call ptr @__errno_location() #13
  %7091 = load i32, ptr %7090, align 4, !tbaa !5
  %7092 = call ptr @strerror(i32 noundef %7091) #12
  %7093 = call ptr @__errno_location() #13
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7082, ptr noundef @.str.14, i32 noundef %7083, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 356, ptr noundef %7086, ptr noundef %7089, ptr noundef %7092, i32 noundef %7094) #12
  br label %7113

7096:                                             ; preds = %7074, %7067
  %7097 = load i32, ptr %150, align 4, !tbaa !5
  %7098 = call ptr @__errno_location() #13
  store i32 %7097, ptr %7098, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @s2n_strerror(i32 noundef %7102, ptr noundef @.str.16)
  %7104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call ptr @s2n_strerror_debug(i32 noundef %7105, ptr noundef @.str.16)
  %7107 = call ptr @__errno_location() #13
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @strerror(i32 noundef %7108) #12
  %7110 = call ptr @__errno_location() #13
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7099, ptr noundef @.str.17, i32 noundef %7100, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 356, ptr noundef %7103, ptr noundef %7106, ptr noundef %7109, i32 noundef %7111) #12
  br label %7113

7113:                                             ; preds = %7096, %7079
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #12
  br label %7114

7114:                                             ; preds = %7113
  br label %7115

7115:                                             ; preds = %7114
  call void @exit(i32 noundef 1) #14
  unreachable

7116:                                             ; No predecessors!
  br label %7117

7117:                                             ; preds = %7116
  br label %7118

7118:                                             ; preds = %7117, %7059
  br label %7119

7119:                                             ; preds = %7118
  br label %7120

7120:                                             ; preds = %7119
  br label %7121

7121:                                             ; preds = %7120
  %7122 = load i32, ptr @test_count, align 4, !tbaa !5
  %7123 = add nsw i32 %7122, 1
  store i32 %7123, ptr @test_count, align 4, !tbaa !5
  %7124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call ptr @s2n_strerror_debug(i32 noundef %7125, ptr noundef @.str.16)
  %7127 = icmp eq ptr %7126, null
  br i1 %7127, label %7128, label %7181

7128:                                             ; preds = %7121
  br label %7129

7129:                                             ; preds = %7128
  br label %7130

7130:                                             ; preds = %7129
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #12
  %7131 = call ptr @__errno_location() #13
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  store i32 %7132, ptr %151, align 4, !tbaa !5
  %7133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7134 = call i32 @s2n_print_stacktrace(ptr noundef %7133)
  %7135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7136 = trunc i8 %7135 to i1
  br i1 %7136, label %7137, label %7159

7137:                                             ; preds = %7130
  %7138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7139 = call i32 @fileno(ptr noundef %7138) #12
  %7140 = call i32 @isatty(i32 noundef %7139) #12
  %7141 = icmp ne i32 %7140, 0
  br i1 %7141, label %7142, label %7159

7142:                                             ; preds = %7137
  %7143 = load i32, ptr %151, align 4, !tbaa !5
  %7144 = call ptr @__errno_location() #13
  store i32 %7143, ptr %7144, align 4, !tbaa !5
  %7145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7146 = load i32, ptr @test_count, align 4, !tbaa !5
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror(i32 noundef %7148, ptr noundef @.str.16)
  %7150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @s2n_strerror_debug(i32 noundef %7151, ptr noundef @.str.16)
  %7153 = call ptr @__errno_location() #13
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call ptr @strerror(i32 noundef %7154) #12
  %7156 = call ptr @__errno_location() #13
  %7157 = load i32, ptr %7156, align 4, !tbaa !5
  %7158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7145, ptr noundef @.str.14, i32 noundef %7146, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 356, ptr noundef %7149, ptr noundef %7152, ptr noundef %7155, i32 noundef %7157) #12
  br label %7176

7159:                                             ; preds = %7137, %7130
  %7160 = load i32, ptr %151, align 4, !tbaa !5
  %7161 = call ptr @__errno_location() #13
  store i32 %7160, ptr %7161, align 4, !tbaa !5
  %7162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7163 = load i32, ptr @test_count, align 4, !tbaa !5
  %7164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7165 = load i32, ptr %7164, align 4, !tbaa !5
  %7166 = call ptr @s2n_strerror(i32 noundef %7165, ptr noundef @.str.16)
  %7167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call ptr @s2n_strerror_debug(i32 noundef %7168, ptr noundef @.str.16)
  %7170 = call ptr @__errno_location() #13
  %7171 = load i32, ptr %7170, align 4, !tbaa !5
  %7172 = call ptr @strerror(i32 noundef %7171) #12
  %7173 = call ptr @__errno_location() #13
  %7174 = load i32, ptr %7173, align 4, !tbaa !5
  %7175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7162, ptr noundef @.str.17, i32 noundef %7163, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 356, ptr noundef %7166, ptr noundef %7169, ptr noundef %7172, i32 noundef %7174) #12
  br label %7176

7176:                                             ; preds = %7159, %7142
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #12
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  call void @exit(i32 noundef 1) #14
  unreachable

7179:                                             ; No predecessors!
  br label %7180

7180:                                             ; preds = %7179
  br label %7181

7181:                                             ; preds = %7180, %7121
  br label %7182

7182:                                             ; preds = %7181
  br label %7183

7183:                                             ; preds = %7182
  br label %7184

7184:                                             ; preds = %7183
  br label %7185

7185:                                             ; preds = %7184
  br label %7186

7186:                                             ; preds = %7185
  %7187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7187, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7188 = call ptr @__errno_location() #13
  store i32 0, ptr %7188, align 4, !tbaa !5
  br label %7189

7189:                                             ; preds = %7186
  br label %7190

7190:                                             ; preds = %7189
  br label %7191

7191:                                             ; preds = %7190
  br label %7192

7192:                                             ; preds = %7191
  call void @llvm.lifetime.start.p0(i64 88, ptr %152) #12
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 88, i1 false)
  %7193 = load i32, ptr %48, align 4, !tbaa !5
  %7194 = icmp ne i32 %7193, 0
  %7195 = getelementptr inbounds %struct.s2n_kem_params, ptr %152, i32 0, i32 4
  %7196 = zext i1 %7194 to i8
  store i8 %7196, ptr %7195, align 8, !tbaa !33
  br label %7197

7197:                                             ; preds = %7192
  br label %7198

7198:                                             ; preds = %7197
  br label %7199

7199:                                             ; preds = %7198
  %7200 = load i32, ptr @test_count, align 4, !tbaa !5
  %7201 = add nsw i32 %7200, 1
  store i32 %7201, ptr @test_count, align 4, !tbaa !5
  %7202 = call i32 @s2n_kem_send_ciphertext(ptr noundef %147, ptr noundef %152)
  %7203 = icmp eq i32 %7202, -1
  br i1 %7203, label %7257, label %7204

7204:                                             ; preds = %7199
  br label %7205

7205:                                             ; preds = %7204
  br label %7206

7206:                                             ; preds = %7205
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #12
  %7207 = call ptr @__errno_location() #13
  %7208 = load i32, ptr %7207, align 4, !tbaa !5
  store i32 %7208, ptr %153, align 4, !tbaa !5
  %7209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7210 = call i32 @s2n_print_stacktrace(ptr noundef %7209)
  %7211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7212 = trunc i8 %7211 to i1
  br i1 %7212, label %7213, label %7235

7213:                                             ; preds = %7206
  %7214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7215 = call i32 @fileno(ptr noundef %7214) #12
  %7216 = call i32 @isatty(i32 noundef %7215) #12
  %7217 = icmp ne i32 %7216, 0
  br i1 %7217, label %7218, label %7235

7218:                                             ; preds = %7213
  %7219 = load i32, ptr %153, align 4, !tbaa !5
  %7220 = call ptr @__errno_location() #13
  store i32 %7219, ptr %7220, align 4, !tbaa !5
  %7221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7222 = load i32, ptr @test_count, align 4, !tbaa !5
  %7223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7224 = load i32, ptr %7223, align 4, !tbaa !5
  %7225 = call ptr @s2n_strerror(i32 noundef %7224, ptr noundef @.str.16)
  %7226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  %7228 = call ptr @s2n_strerror_debug(i32 noundef %7227, ptr noundef @.str.16)
  %7229 = call ptr @__errno_location() #13
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = call ptr @strerror(i32 noundef %7230) #12
  %7232 = call ptr @__errno_location() #13
  %7233 = load i32, ptr %7232, align 4, !tbaa !5
  %7234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7221, ptr noundef @.str.14, i32 noundef %7222, ptr noundef @.str.101, ptr noundef @.str.13, i32 noundef 360, ptr noundef %7225, ptr noundef %7228, ptr noundef %7231, i32 noundef %7233) #12
  br label %7252

7235:                                             ; preds = %7213, %7206
  %7236 = load i32, ptr %153, align 4, !tbaa !5
  %7237 = call ptr @__errno_location() #13
  store i32 %7236, ptr %7237, align 4, !tbaa !5
  %7238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7239 = load i32, ptr @test_count, align 4, !tbaa !5
  %7240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7241 = load i32, ptr %7240, align 4, !tbaa !5
  %7242 = call ptr @s2n_strerror(i32 noundef %7241, ptr noundef @.str.16)
  %7243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7244 = load i32, ptr %7243, align 4, !tbaa !5
  %7245 = call ptr @s2n_strerror_debug(i32 noundef %7244, ptr noundef @.str.16)
  %7246 = call ptr @__errno_location() #13
  %7247 = load i32, ptr %7246, align 4, !tbaa !5
  %7248 = call ptr @strerror(i32 noundef %7247) #12
  %7249 = call ptr @__errno_location() #13
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  %7251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7238, ptr noundef @.str.17, i32 noundef %7239, ptr noundef @.str.101, ptr noundef @.str.13, i32 noundef 360, ptr noundef %7242, ptr noundef %7245, ptr noundef %7248, i32 noundef %7250) #12
  br label %7252

7252:                                             ; preds = %7235, %7218
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #12
  br label %7253

7253:                                             ; preds = %7252
  br label %7254

7254:                                             ; preds = %7253
  call void @exit(i32 noundef 1) #14
  unreachable

7255:                                             ; No predecessors!
  br label %7256

7256:                                             ; preds = %7255
  br label %7257

7257:                                             ; preds = %7256, %7199
  br label %7258

7258:                                             ; preds = %7257
  br label %7259

7259:                                             ; preds = %7258
  br label %7260

7260:                                             ; preds = %7259
  %7261 = load i32, ptr @test_count, align 4, !tbaa !5
  %7262 = add nsw i32 %7261, 1
  store i32 %7262, ptr @test_count, align 4, !tbaa !5
  %7263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7264 = load i32, ptr %7263, align 4, !tbaa !5
  %7265 = icmp eq i32 %7264, 402653193
  br i1 %7265, label %7319, label %7266

7266:                                             ; preds = %7260
  br label %7267

7267:                                             ; preds = %7266
  br label %7268

7268:                                             ; preds = %7267
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #12
  %7269 = call ptr @__errno_location() #13
  %7270 = load i32, ptr %7269, align 4, !tbaa !5
  store i32 %7270, ptr %154, align 4, !tbaa !5
  %7271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7272 = call i32 @s2n_print_stacktrace(ptr noundef %7271)
  %7273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7274 = trunc i8 %7273 to i1
  br i1 %7274, label %7275, label %7297

7275:                                             ; preds = %7268
  %7276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7277 = call i32 @fileno(ptr noundef %7276) #12
  %7278 = call i32 @isatty(i32 noundef %7277) #12
  %7279 = icmp ne i32 %7278, 0
  br i1 %7279, label %7280, label %7297

7280:                                             ; preds = %7275
  %7281 = load i32, ptr %154, align 4, !tbaa !5
  %7282 = call ptr @__errno_location() #13
  store i32 %7281, ptr %7282, align 4, !tbaa !5
  %7283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7284 = load i32, ptr @test_count, align 4, !tbaa !5
  %7285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call ptr @s2n_strerror(i32 noundef %7286, ptr noundef @.str.16)
  %7288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  %7290 = call ptr @s2n_strerror_debug(i32 noundef %7289, ptr noundef @.str.16)
  %7291 = call ptr @__errno_location() #13
  %7292 = load i32, ptr %7291, align 4, !tbaa !5
  %7293 = call ptr @strerror(i32 noundef %7292) #12
  %7294 = call ptr @__errno_location() #13
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  %7296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7283, ptr noundef @.str.14, i32 noundef %7284, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 360, ptr noundef %7287, ptr noundef %7290, ptr noundef %7293, i32 noundef %7295) #12
  br label %7314

7297:                                             ; preds = %7275, %7268
  %7298 = load i32, ptr %154, align 4, !tbaa !5
  %7299 = call ptr @__errno_location() #13
  store i32 %7298, ptr %7299, align 4, !tbaa !5
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = load i32, ptr @test_count, align 4, !tbaa !5
  %7302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7303 = load i32, ptr %7302, align 4, !tbaa !5
  %7304 = call ptr @s2n_strerror(i32 noundef %7303, ptr noundef @.str.16)
  %7305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7306 = load i32, ptr %7305, align 4, !tbaa !5
  %7307 = call ptr @s2n_strerror_debug(i32 noundef %7306, ptr noundef @.str.16)
  %7308 = call ptr @__errno_location() #13
  %7309 = load i32, ptr %7308, align 4, !tbaa !5
  %7310 = call ptr @strerror(i32 noundef %7309) #12
  %7311 = call ptr @__errno_location() #13
  %7312 = load i32, ptr %7311, align 4, !tbaa !5
  %7313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7300, ptr noundef @.str.17, i32 noundef %7301, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 360, ptr noundef %7304, ptr noundef %7307, ptr noundef %7310, i32 noundef %7312) #12
  br label %7314

7314:                                             ; preds = %7297, %7280
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #12
  br label %7315

7315:                                             ; preds = %7314
  br label %7316

7316:                                             ; preds = %7315
  call void @exit(i32 noundef 1) #14
  unreachable

7317:                                             ; No predecessors!
  br label %7318

7318:                                             ; preds = %7317
  br label %7319

7319:                                             ; preds = %7318, %7260
  br label %7320

7320:                                             ; preds = %7319
  br label %7321

7321:                                             ; preds = %7320
  br label %7322

7322:                                             ; preds = %7321
  %7323 = load i32, ptr @test_count, align 4, !tbaa !5
  %7324 = add nsw i32 %7323, 1
  store i32 %7324, ptr @test_count, align 4, !tbaa !5
  %7325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7326 = load i32, ptr %7325, align 4, !tbaa !5
  %7327 = call ptr @s2n_strerror_debug(i32 noundef %7326, ptr noundef @.str.16)
  %7328 = icmp eq ptr %7327, null
  br i1 %7328, label %7329, label %7382

7329:                                             ; preds = %7322
  br label %7330

7330:                                             ; preds = %7329
  br label %7331

7331:                                             ; preds = %7330
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #12
  %7332 = call ptr @__errno_location() #13
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  store i32 %7333, ptr %155, align 4, !tbaa !5
  %7334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7335 = call i32 @s2n_print_stacktrace(ptr noundef %7334)
  %7336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7337 = trunc i8 %7336 to i1
  br i1 %7337, label %7338, label %7360

7338:                                             ; preds = %7331
  %7339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7340 = call i32 @fileno(ptr noundef %7339) #12
  %7341 = call i32 @isatty(i32 noundef %7340) #12
  %7342 = icmp ne i32 %7341, 0
  br i1 %7342, label %7343, label %7360

7343:                                             ; preds = %7338
  %7344 = load i32, ptr %155, align 4, !tbaa !5
  %7345 = call ptr @__errno_location() #13
  store i32 %7344, ptr %7345, align 4, !tbaa !5
  %7346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7347 = load i32, ptr @test_count, align 4, !tbaa !5
  %7348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7349 = load i32, ptr %7348, align 4, !tbaa !5
  %7350 = call ptr @s2n_strerror(i32 noundef %7349, ptr noundef @.str.16)
  %7351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  %7353 = call ptr @s2n_strerror_debug(i32 noundef %7352, ptr noundef @.str.16)
  %7354 = call ptr @__errno_location() #13
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call ptr @strerror(i32 noundef %7355) #12
  %7357 = call ptr @__errno_location() #13
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7346, ptr noundef @.str.14, i32 noundef %7347, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 360, ptr noundef %7350, ptr noundef %7353, ptr noundef %7356, i32 noundef %7358) #12
  br label %7377

7360:                                             ; preds = %7338, %7331
  %7361 = load i32, ptr %155, align 4, !tbaa !5
  %7362 = call ptr @__errno_location() #13
  store i32 %7361, ptr %7362, align 4, !tbaa !5
  %7363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7364 = load i32, ptr @test_count, align 4, !tbaa !5
  %7365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7366 = load i32, ptr %7365, align 4, !tbaa !5
  %7367 = call ptr @s2n_strerror(i32 noundef %7366, ptr noundef @.str.16)
  %7368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7369 = load i32, ptr %7368, align 4, !tbaa !5
  %7370 = call ptr @s2n_strerror_debug(i32 noundef %7369, ptr noundef @.str.16)
  %7371 = call ptr @__errno_location() #13
  %7372 = load i32, ptr %7371, align 4, !tbaa !5
  %7373 = call ptr @strerror(i32 noundef %7372) #12
  %7374 = call ptr @__errno_location() #13
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7363, ptr noundef @.str.17, i32 noundef %7364, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 360, ptr noundef %7367, ptr noundef %7370, ptr noundef %7373, i32 noundef %7375) #12
  br label %7377

7377:                                             ; preds = %7360, %7343
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #12
  br label %7378

7378:                                             ; preds = %7377
  br label %7379

7379:                                             ; preds = %7378
  call void @exit(i32 noundef 1) #14
  unreachable

7380:                                             ; No predecessors!
  br label %7381

7381:                                             ; preds = %7380
  br label %7382

7382:                                             ; preds = %7381, %7322
  br label %7383

7383:                                             ; preds = %7382
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

7385:                                             ; preds = %7384
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  %7388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7388, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7389 = call ptr @__errno_location() #13
  store i32 0, ptr %7389, align 4, !tbaa !5
  br label %7390

7390:                                             ; preds = %7387
  br label %7391

7391:                                             ; preds = %7390
  br label %7392

7392:                                             ; preds = %7391
  br label %7393

7393:                                             ; preds = %7392
  %7394 = getelementptr inbounds %struct.s2n_kem_params, ptr %152, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %7394, align 8, !tbaa !32
  br label %7395

7395:                                             ; preds = %7393
  br label %7396

7396:                                             ; preds = %7395
  br label %7397

7397:                                             ; preds = %7396
  %7398 = load i32, ptr @test_count, align 4, !tbaa !5
  %7399 = add nsw i32 %7398, 1
  store i32 %7399, ptr @test_count, align 4, !tbaa !5
  %7400 = call i32 @s2n_kem_send_ciphertext(ptr noundef %147, ptr noundef %152)
  %7401 = icmp eq i32 %7400, -1
  br i1 %7401, label %7455, label %7402

7402:                                             ; preds = %7397
  br label %7403

7403:                                             ; preds = %7402
  br label %7404

7404:                                             ; preds = %7403
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #12
  %7405 = call ptr @__errno_location() #13
  %7406 = load i32, ptr %7405, align 4, !tbaa !5
  store i32 %7406, ptr %156, align 4, !tbaa !5
  %7407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7408 = call i32 @s2n_print_stacktrace(ptr noundef %7407)
  %7409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7410 = trunc i8 %7409 to i1
  br i1 %7410, label %7411, label %7433

7411:                                             ; preds = %7404
  %7412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7413 = call i32 @fileno(ptr noundef %7412) #12
  %7414 = call i32 @isatty(i32 noundef %7413) #12
  %7415 = icmp ne i32 %7414, 0
  br i1 %7415, label %7416, label %7433

7416:                                             ; preds = %7411
  %7417 = load i32, ptr %156, align 4, !tbaa !5
  %7418 = call ptr @__errno_location() #13
  store i32 %7417, ptr %7418, align 4, !tbaa !5
  %7419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7420 = load i32, ptr @test_count, align 4, !tbaa !5
  %7421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call ptr @s2n_strerror(i32 noundef %7422, ptr noundef @.str.16)
  %7424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  %7426 = call ptr @s2n_strerror_debug(i32 noundef %7425, ptr noundef @.str.16)
  %7427 = call ptr @__errno_location() #13
  %7428 = load i32, ptr %7427, align 4, !tbaa !5
  %7429 = call ptr @strerror(i32 noundef %7428) #12
  %7430 = call ptr @__errno_location() #13
  %7431 = load i32, ptr %7430, align 4, !tbaa !5
  %7432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7419, ptr noundef @.str.14, i32 noundef %7420, ptr noundef @.str.101, ptr noundef @.str.13, i32 noundef 363, ptr noundef %7423, ptr noundef %7426, ptr noundef %7429, i32 noundef %7431) #12
  br label %7450

7433:                                             ; preds = %7411, %7404
  %7434 = load i32, ptr %156, align 4, !tbaa !5
  %7435 = call ptr @__errno_location() #13
  store i32 %7434, ptr %7435, align 4, !tbaa !5
  %7436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7437 = load i32, ptr @test_count, align 4, !tbaa !5
  %7438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call ptr @s2n_strerror(i32 noundef %7439, ptr noundef @.str.16)
  %7441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror_debug(i32 noundef %7442, ptr noundef @.str.16)
  %7444 = call ptr @__errno_location() #13
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call ptr @strerror(i32 noundef %7445) #12
  %7447 = call ptr @__errno_location() #13
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  %7449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7436, ptr noundef @.str.17, i32 noundef %7437, ptr noundef @.str.101, ptr noundef @.str.13, i32 noundef 363, ptr noundef %7440, ptr noundef %7443, ptr noundef %7446, i32 noundef %7448) #12
  br label %7450

7450:                                             ; preds = %7433, %7416
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #12
  br label %7451

7451:                                             ; preds = %7450
  br label %7452

7452:                                             ; preds = %7451
  call void @exit(i32 noundef 1) #14
  unreachable

7453:                                             ; No predecessors!
  br label %7454

7454:                                             ; preds = %7453
  br label %7455

7455:                                             ; preds = %7454, %7397
  br label %7456

7456:                                             ; preds = %7455
  br label %7457

7457:                                             ; preds = %7456
  br label %7458

7458:                                             ; preds = %7457
  %7459 = load i32, ptr @test_count, align 4, !tbaa !5
  %7460 = add nsw i32 %7459, 1
  store i32 %7460, ptr @test_count, align 4, !tbaa !5
  %7461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = icmp eq i32 %7462, 402653193
  br i1 %7463, label %7517, label %7464

7464:                                             ; preds = %7458
  br label %7465

7465:                                             ; preds = %7464
  br label %7466

7466:                                             ; preds = %7465
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #12
  %7467 = call ptr @__errno_location() #13
  %7468 = load i32, ptr %7467, align 4, !tbaa !5
  store i32 %7468, ptr %157, align 4, !tbaa !5
  %7469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7470 = call i32 @s2n_print_stacktrace(ptr noundef %7469)
  %7471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7472 = trunc i8 %7471 to i1
  br i1 %7472, label %7473, label %7495

7473:                                             ; preds = %7466
  %7474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7475 = call i32 @fileno(ptr noundef %7474) #12
  %7476 = call i32 @isatty(i32 noundef %7475) #12
  %7477 = icmp ne i32 %7476, 0
  br i1 %7477, label %7478, label %7495

7478:                                             ; preds = %7473
  %7479 = load i32, ptr %157, align 4, !tbaa !5
  %7480 = call ptr @__errno_location() #13
  store i32 %7479, ptr %7480, align 4, !tbaa !5
  %7481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7482 = load i32, ptr @test_count, align 4, !tbaa !5
  %7483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror(i32 noundef %7484, ptr noundef @.str.16)
  %7486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call ptr @s2n_strerror_debug(i32 noundef %7487, ptr noundef @.str.16)
  %7489 = call ptr @__errno_location() #13
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  %7491 = call ptr @strerror(i32 noundef %7490) #12
  %7492 = call ptr @__errno_location() #13
  %7493 = load i32, ptr %7492, align 4, !tbaa !5
  %7494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7481, ptr noundef @.str.14, i32 noundef %7482, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 363, ptr noundef %7485, ptr noundef %7488, ptr noundef %7491, i32 noundef %7493) #12
  br label %7512

7495:                                             ; preds = %7473, %7466
  %7496 = load i32, ptr %157, align 4, !tbaa !5
  %7497 = call ptr @__errno_location() #13
  store i32 %7496, ptr %7497, align 4, !tbaa !5
  %7498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7499 = load i32, ptr @test_count, align 4, !tbaa !5
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror(i32 noundef %7501, ptr noundef @.str.16)
  %7503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror_debug(i32 noundef %7504, ptr noundef @.str.16)
  %7506 = call ptr @__errno_location() #13
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @strerror(i32 noundef %7507) #12
  %7509 = call ptr @__errno_location() #13
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7498, ptr noundef @.str.17, i32 noundef %7499, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 363, ptr noundef %7502, ptr noundef %7505, ptr noundef %7508, i32 noundef %7510) #12
  br label %7512

7512:                                             ; preds = %7495, %7478
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #12
  br label %7513

7513:                                             ; preds = %7512
  br label %7514

7514:                                             ; preds = %7513
  call void @exit(i32 noundef 1) #14
  unreachable

7515:                                             ; No predecessors!
  br label %7516

7516:                                             ; preds = %7515
  br label %7517

7517:                                             ; preds = %7516, %7458
  br label %7518

7518:                                             ; preds = %7517
  br label %7519

7519:                                             ; preds = %7518
  br label %7520

7520:                                             ; preds = %7519
  %7521 = load i32, ptr @test_count, align 4, !tbaa !5
  %7522 = add nsw i32 %7521, 1
  store i32 %7522, ptr @test_count, align 4, !tbaa !5
  %7523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @s2n_strerror_debug(i32 noundef %7524, ptr noundef @.str.16)
  %7526 = icmp eq ptr %7525, null
  br i1 %7526, label %7527, label %7580

7527:                                             ; preds = %7520
  br label %7528

7528:                                             ; preds = %7527
  br label %7529

7529:                                             ; preds = %7528
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #12
  %7530 = call ptr @__errno_location() #13
  %7531 = load i32, ptr %7530, align 4, !tbaa !5
  store i32 %7531, ptr %158, align 4, !tbaa !5
  %7532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7533 = call i32 @s2n_print_stacktrace(ptr noundef %7532)
  %7534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7535 = trunc i8 %7534 to i1
  br i1 %7535, label %7536, label %7558

7536:                                             ; preds = %7529
  %7537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7538 = call i32 @fileno(ptr noundef %7537) #12
  %7539 = call i32 @isatty(i32 noundef %7538) #12
  %7540 = icmp ne i32 %7539, 0
  br i1 %7540, label %7541, label %7558

7541:                                             ; preds = %7536
  %7542 = load i32, ptr %158, align 4, !tbaa !5
  %7543 = call ptr @__errno_location() #13
  store i32 %7542, ptr %7543, align 4, !tbaa !5
  %7544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7545 = load i32, ptr @test_count, align 4, !tbaa !5
  %7546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  %7548 = call ptr @s2n_strerror(i32 noundef %7547, ptr noundef @.str.16)
  %7549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  %7551 = call ptr @s2n_strerror_debug(i32 noundef %7550, ptr noundef @.str.16)
  %7552 = call ptr @__errno_location() #13
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  %7554 = call ptr @strerror(i32 noundef %7553) #12
  %7555 = call ptr @__errno_location() #13
  %7556 = load i32, ptr %7555, align 4, !tbaa !5
  %7557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7544, ptr noundef @.str.14, i32 noundef %7545, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 363, ptr noundef %7548, ptr noundef %7551, ptr noundef %7554, i32 noundef %7556) #12
  br label %7575

7558:                                             ; preds = %7536, %7529
  %7559 = load i32, ptr %158, align 4, !tbaa !5
  %7560 = call ptr @__errno_location() #13
  store i32 %7559, ptr %7560, align 4, !tbaa !5
  %7561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7562 = load i32, ptr @test_count, align 4, !tbaa !5
  %7563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call ptr @s2n_strerror(i32 noundef %7564, ptr noundef @.str.16)
  %7566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @s2n_strerror_debug(i32 noundef %7567, ptr noundef @.str.16)
  %7569 = call ptr @__errno_location() #13
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call ptr @strerror(i32 noundef %7570) #12
  %7572 = call ptr @__errno_location() #13
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  %7574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7561, ptr noundef @.str.17, i32 noundef %7562, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 363, ptr noundef %7565, ptr noundef %7568, ptr noundef %7571, i32 noundef %7573) #12
  br label %7575

7575:                                             ; preds = %7558, %7541
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #12
  br label %7576

7576:                                             ; preds = %7575
  br label %7577

7577:                                             ; preds = %7576
  call void @exit(i32 noundef 1) #14
  unreachable

7578:                                             ; No predecessors!
  br label %7579

7579:                                             ; preds = %7578
  br label %7580

7580:                                             ; preds = %7579, %7520
  br label %7581

7581:                                             ; preds = %7580
  br label %7582

7582:                                             ; preds = %7581
  br label %7583

7583:                                             ; preds = %7582
  br label %7584

7584:                                             ; preds = %7583
  br label %7585

7585:                                             ; preds = %7584
  %7586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7586, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7587 = call ptr @__errno_location() #13
  store i32 0, ptr %7587, align 4, !tbaa !5
  br label %7588

7588:                                             ; preds = %7585
  br label %7589

7589:                                             ; preds = %7588
  br label %7590

7590:                                             ; preds = %7589
  br label %7591

7591:                                             ; preds = %7590
  call void @llvm.lifetime.end.p0(i64 88, ptr %152) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %147) #12
  %7592 = call i32 @s2n_free(ptr noundef %145)
  call void @llvm.lifetime.end.p0(i64 24, ptr %145) #12
  call void @llvm.lifetime.start.p0(i64 88, ptr %159) #12
  call void @llvm.memset.p0.i64(ptr align 8 %159, i8 0, i64 88, i1 false)
  %7593 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %7593, align 8, !tbaa !32
  %7594 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 1
  %7595 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 2
  %7596 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 3
  %7597 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 4
  %7598 = load i32, ptr %48, align 4, !tbaa !5
  %7599 = icmp ne i32 %7598, 0
  %7600 = zext i1 %7599 to i8
  store i8 %7600, ptr %7597, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 24, ptr %160) #12
  call void @llvm.memset.p0.i64(ptr align 8 %160, i8 0, i64 24, i1 false)
  br label %7601

7601:                                             ; preds = %7591
  %7602 = load i32, ptr @test_count, align 4, !tbaa !5
  %7603 = add nsw i32 %7602, 1
  store i32 %7603, ptr @test_count, align 4, !tbaa !5
  %7604 = call i32 @s2n_alloc(ptr noundef %160, i32 noundef 7)
  %7605 = icmp eq i32 %7604, -1
  br i1 %7605, label %7606, label %7659

7606:                                             ; preds = %7601
  br label %7607

7607:                                             ; preds = %7606
  br label %7608

7608:                                             ; preds = %7607
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #12
  %7609 = call ptr @__errno_location() #13
  %7610 = load i32, ptr %7609, align 4, !tbaa !5
  store i32 %7610, ptr %161, align 4, !tbaa !5
  %7611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7612 = call i32 @s2n_print_stacktrace(ptr noundef %7611)
  %7613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7614 = trunc i8 %7613 to i1
  br i1 %7614, label %7615, label %7637

7615:                                             ; preds = %7608
  %7616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7617 = call i32 @fileno(ptr noundef %7616) #12
  %7618 = call i32 @isatty(i32 noundef %7617) #12
  %7619 = icmp ne i32 %7618, 0
  br i1 %7619, label %7620, label %7637

7620:                                             ; preds = %7615
  %7621 = load i32, ptr %161, align 4, !tbaa !5
  %7622 = call ptr @__errno_location() #13
  store i32 %7621, ptr %7622, align 4, !tbaa !5
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = load i32, ptr @test_count, align 4, !tbaa !5
  %7625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @s2n_strerror(i32 noundef %7626, ptr noundef @.str.16)
  %7628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @s2n_strerror_debug(i32 noundef %7629, ptr noundef @.str.16)
  %7631 = call ptr @__errno_location() #13
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @strerror(i32 noundef %7632) #12
  %7634 = call ptr @__errno_location() #13
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7623, ptr noundef @.str.14, i32 noundef %7624, ptr noundef @.str.85, ptr noundef @.str.13, i32 noundef 370, ptr noundef %7627, ptr noundef %7630, ptr noundef %7633, i32 noundef %7635) #12
  br label %7654

7637:                                             ; preds = %7615, %7608
  %7638 = load i32, ptr %161, align 4, !tbaa !5
  %7639 = call ptr @__errno_location() #13
  store i32 %7638, ptr %7639, align 4, !tbaa !5
  %7640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7641 = load i32, ptr @test_count, align 4, !tbaa !5
  %7642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7643 = load i32, ptr %7642, align 4, !tbaa !5
  %7644 = call ptr @s2n_strerror(i32 noundef %7643, ptr noundef @.str.16)
  %7645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7646 = load i32, ptr %7645, align 4, !tbaa !5
  %7647 = call ptr @s2n_strerror_debug(i32 noundef %7646, ptr noundef @.str.16)
  %7648 = call ptr @__errno_location() #13
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call ptr @strerror(i32 noundef %7649) #12
  %7651 = call ptr @__errno_location() #13
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7640, ptr noundef @.str.17, i32 noundef %7641, ptr noundef @.str.85, ptr noundef @.str.13, i32 noundef 370, ptr noundef %7644, ptr noundef %7647, ptr noundef %7650, i32 noundef %7652) #12
  br label %7654

7654:                                             ; preds = %7637, %7620
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #12
  br label %7655

7655:                                             ; preds = %7654
  br label %7656

7656:                                             ; preds = %7655
  call void @exit(i32 noundef 1) #14
  unreachable

7657:                                             ; No predecessors!
  br label %7658

7658:                                             ; preds = %7657
  br label %7659

7659:                                             ; preds = %7658, %7601
  br label %7660

7660:                                             ; preds = %7659
  br label %7661

7661:                                             ; preds = %7660
  call void @llvm.lifetime.start.p0(i64 40, ptr %162) #12
  call void @llvm.memset.p0.i64(ptr align 8 %162, i8 0, i64 40, i1 false)
  br label %7662

7662:                                             ; preds = %7661
  %7663 = load i32, ptr @test_count, align 4, !tbaa !5
  %7664 = add nsw i32 %7663, 1
  store i32 %7664, ptr @test_count, align 4, !tbaa !5
  %7665 = call i32 @s2n_stuffer_init(ptr noundef %162, ptr noundef %160)
  %7666 = icmp eq i32 %7665, -1
  br i1 %7666, label %7667, label %7720

7667:                                             ; preds = %7662
  br label %7668

7668:                                             ; preds = %7667
  br label %7669

7669:                                             ; preds = %7668
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #12
  %7670 = call ptr @__errno_location() #13
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  store i32 %7671, ptr %163, align 4, !tbaa !5
  %7672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7673 = call i32 @s2n_print_stacktrace(ptr noundef %7672)
  %7674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7675 = trunc i8 %7674 to i1
  br i1 %7675, label %7676, label %7698

7676:                                             ; preds = %7669
  %7677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7678 = call i32 @fileno(ptr noundef %7677) #12
  %7679 = call i32 @isatty(i32 noundef %7678) #12
  %7680 = icmp ne i32 %7679, 0
  br i1 %7680, label %7681, label %7698

7681:                                             ; preds = %7676
  %7682 = load i32, ptr %163, align 4, !tbaa !5
  %7683 = call ptr @__errno_location() #13
  store i32 %7682, ptr %7683, align 4, !tbaa !5
  %7684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7685 = load i32, ptr @test_count, align 4, !tbaa !5
  %7686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7687 = load i32, ptr %7686, align 4, !tbaa !5
  %7688 = call ptr @s2n_strerror(i32 noundef %7687, ptr noundef @.str.16)
  %7689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7690 = load i32, ptr %7689, align 4, !tbaa !5
  %7691 = call ptr @s2n_strerror_debug(i32 noundef %7690, ptr noundef @.str.16)
  %7692 = call ptr @__errno_location() #13
  %7693 = load i32, ptr %7692, align 4, !tbaa !5
  %7694 = call ptr @strerror(i32 noundef %7693) #12
  %7695 = call ptr @__errno_location() #13
  %7696 = load i32, ptr %7695, align 4, !tbaa !5
  %7697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7684, ptr noundef @.str.14, i32 noundef %7685, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 372, ptr noundef %7688, ptr noundef %7691, ptr noundef %7694, i32 noundef %7696) #12
  br label %7715

7698:                                             ; preds = %7676, %7669
  %7699 = load i32, ptr %163, align 4, !tbaa !5
  %7700 = call ptr @__errno_location() #13
  store i32 %7699, ptr %7700, align 4, !tbaa !5
  %7701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7702 = load i32, ptr @test_count, align 4, !tbaa !5
  %7703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7704 = load i32, ptr %7703, align 4, !tbaa !5
  %7705 = call ptr @s2n_strerror(i32 noundef %7704, ptr noundef @.str.16)
  %7706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7707 = load i32, ptr %7706, align 4, !tbaa !5
  %7708 = call ptr @s2n_strerror_debug(i32 noundef %7707, ptr noundef @.str.16)
  %7709 = call ptr @__errno_location() #13
  %7710 = load i32, ptr %7709, align 4, !tbaa !5
  %7711 = call ptr @strerror(i32 noundef %7710) #12
  %7712 = call ptr @__errno_location() #13
  %7713 = load i32, ptr %7712, align 4, !tbaa !5
  %7714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7701, ptr noundef @.str.17, i32 noundef %7702, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 372, ptr noundef %7705, ptr noundef %7708, ptr noundef %7711, i32 noundef %7713) #12
  br label %7715

7715:                                             ; preds = %7698, %7681
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #12
  br label %7716

7716:                                             ; preds = %7715
  br label %7717

7717:                                             ; preds = %7716
  call void @exit(i32 noundef 1) #14
  unreachable

7718:                                             ; No predecessors!
  br label %7719

7719:                                             ; preds = %7718
  br label %7720

7720:                                             ; preds = %7719, %7662
  br label %7721

7721:                                             ; preds = %7720
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722
  %7724 = load i32, ptr @test_count, align 4, !tbaa !5
  %7725 = add nsw i32 %7724, 1
  store i32 %7725, ptr @test_count, align 4, !tbaa !5
  %7726 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 2
  %7727 = call i32 @s2n_alloc(ptr noundef %7726, i32 noundef 3)
  %7728 = icmp eq i32 %7727, -1
  br i1 %7728, label %7729, label %7782

7729:                                             ; preds = %7723
  br label %7730

7730:                                             ; preds = %7729
  br label %7731

7731:                                             ; preds = %7730
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #12
  %7732 = call ptr @__errno_location() #13
  %7733 = load i32, ptr %7732, align 4, !tbaa !5
  store i32 %7733, ptr %164, align 4, !tbaa !5
  %7734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7735 = call i32 @s2n_print_stacktrace(ptr noundef %7734)
  %7736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7737 = trunc i8 %7736 to i1
  br i1 %7737, label %7738, label %7760

7738:                                             ; preds = %7731
  %7739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7740 = call i32 @fileno(ptr noundef %7739) #12
  %7741 = call i32 @isatty(i32 noundef %7740) #12
  %7742 = icmp ne i32 %7741, 0
  br i1 %7742, label %7743, label %7760

7743:                                             ; preds = %7738
  %7744 = load i32, ptr %164, align 4, !tbaa !5
  %7745 = call ptr @__errno_location() #13
  store i32 %7744, ptr %7745, align 4, !tbaa !5
  %7746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7747 = load i32, ptr @test_count, align 4, !tbaa !5
  %7748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call ptr @s2n_strerror(i32 noundef %7749, ptr noundef @.str.16)
  %7751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = call ptr @s2n_strerror_debug(i32 noundef %7752, ptr noundef @.str.16)
  %7754 = call ptr @__errno_location() #13
  %7755 = load i32, ptr %7754, align 4, !tbaa !5
  %7756 = call ptr @strerror(i32 noundef %7755) #12
  %7757 = call ptr @__errno_location() #13
  %7758 = load i32, ptr %7757, align 4, !tbaa !5
  %7759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7746, ptr noundef @.str.14, i32 noundef %7747, ptr noundef @.str.102, ptr noundef @.str.13, i32 noundef 374, ptr noundef %7750, ptr noundef %7753, ptr noundef %7756, i32 noundef %7758) #12
  br label %7777

7760:                                             ; preds = %7738, %7731
  %7761 = load i32, ptr %164, align 4, !tbaa !5
  %7762 = call ptr @__errno_location() #13
  store i32 %7761, ptr %7762, align 4, !tbaa !5
  %7763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7764 = load i32, ptr @test_count, align 4, !tbaa !5
  %7765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call ptr @s2n_strerror(i32 noundef %7766, ptr noundef @.str.16)
  %7768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7769 = load i32, ptr %7768, align 4, !tbaa !5
  %7770 = call ptr @s2n_strerror_debug(i32 noundef %7769, ptr noundef @.str.16)
  %7771 = call ptr @__errno_location() #13
  %7772 = load i32, ptr %7771, align 4, !tbaa !5
  %7773 = call ptr @strerror(i32 noundef %7772) #12
  %7774 = call ptr @__errno_location() #13
  %7775 = load i32, ptr %7774, align 4, !tbaa !5
  %7776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7763, ptr noundef @.str.17, i32 noundef %7764, ptr noundef @.str.102, ptr noundef @.str.13, i32 noundef 374, ptr noundef %7767, ptr noundef %7770, ptr noundef %7773, i32 noundef %7775) #12
  br label %7777

7777:                                             ; preds = %7760, %7743
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #12
  br label %7778

7778:                                             ; preds = %7777
  br label %7779

7779:                                             ; preds = %7778
  call void @exit(i32 noundef 1) #14
  unreachable

7780:                                             ; No predecessors!
  br label %7781

7781:                                             ; preds = %7780
  br label %7782

7782:                                             ; preds = %7781, %7723
  br label %7783

7783:                                             ; preds = %7782
  br label %7784

7784:                                             ; preds = %7783
  br label %7785

7785:                                             ; preds = %7784
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #12
  store i32 3, ptr %165, align 4, !tbaa !5
  %7786 = load i32, ptr %165, align 4, !tbaa !5
  %7787 = icmp ne i32 %7786, 0
  %7788 = xor i1 %7787, true
  %7789 = xor i1 %7788, true
  %7790 = zext i1 %7789 to i32
  %7791 = sext i32 %7790 to i64
  %7792 = call i64 @llvm.expect.i64(i64 %7791, i64 1)
  %7793 = icmp ne i64 %7792, 0
  br i1 %7793, label %7794, label %7843

7794:                                             ; preds = %7785
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #12
  %7795 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 2
  %7796 = getelementptr inbounds %struct.s2n_blob, ptr %7795, i32 0, i32 0
  %7797 = load ptr, ptr %7796, align 8, !tbaa !37
  %7798 = load i32, ptr %165, align 4, !tbaa !5
  %7799 = sext i32 %7798 to i64
  %7800 = call ptr @s2n_ensure_memmove_trace(ptr noundef %7797, ptr noundef @TEST_PRIVATE_KEY, i64 noundef %7799)
  store ptr %7800, ptr %166, align 8, !tbaa !9
  br label %7801

7801:                                             ; preds = %7794
  %7802 = load ptr, ptr %166, align 8, !tbaa !9
  %7803 = icmp ne ptr %7802, null
  br i1 %7803, label %7837, label %7804

7804:                                             ; preds = %7801
  br label %7805

7805:                                             ; preds = %7804
  br label %7806

7806:                                             ; preds = %7805
  %7807 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7808 = getelementptr inbounds %struct.s2n_debug_info, ptr %7807, i32 0, i32 0
  store ptr @.str.103, ptr %7808, align 8, !tbaa !47
  %7809 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7810 = getelementptr inbounds %struct.s2n_debug_info, ptr %7809, i32 0, i32 0
  %7811 = load ptr, ptr %7810, align 8, !tbaa !47
  %7812 = getelementptr inbounds i8, ptr %7811, i64 21
  %7813 = call ptr @strrchr(ptr noundef %7812, i32 noundef 47) #15
  %7814 = icmp ne ptr %7813, null
  br i1 %7814, label %7815, label %7822

7815:                                             ; preds = %7806
  %7816 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7817 = getelementptr inbounds %struct.s2n_debug_info, ptr %7816, i32 0, i32 0
  %7818 = load ptr, ptr %7817, align 8, !tbaa !47
  %7819 = getelementptr inbounds i8, ptr %7818, i64 21
  %7820 = call ptr @strrchr(ptr noundef %7819, i32 noundef 47) #15
  %7821 = getelementptr inbounds i8, ptr %7820, i64 1
  br label %7827

7822:                                             ; preds = %7806
  %7823 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7824 = getelementptr inbounds %struct.s2n_debug_info, ptr %7823, i32 0, i32 0
  %7825 = load ptr, ptr %7824, align 8, !tbaa !47
  %7826 = getelementptr inbounds i8, ptr %7825, i64 21
  br label %7827

7827:                                             ; preds = %7822, %7815
  %7828 = phi ptr [ %7821, %7815 ], [ %7826, %7822 ]
  %7829 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7830 = getelementptr inbounds %struct.s2n_debug_info, ptr %7829, i32 0, i32 1
  store ptr %7828, ptr %7830, align 8, !tbaa !49
  %7831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %7831, align 4, !tbaa !5
  %7832 = call i32 @s2n_calculate_stacktrace()
  br label %7833

7833:                                             ; preds = %7827
  br label %7834

7834:                                             ; preds = %7833
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %7840

7835:                                             ; No predecessors!
  br label %7836

7836:                                             ; preds = %7835
  br label %7837

7837:                                             ; preds = %7836, %7801
  br label %7838

7838:                                             ; preds = %7837
  br label %7839

7839:                                             ; preds = %7838
  store i32 0, ptr %30, align 4
  br label %7840

7840:                                             ; preds = %7839, %7834
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #12
  %7841 = load i32, ptr %30, align 4
  switch i32 %7841, label %7844 [
    i32 0, label %7842
  ]

7842:                                             ; preds = %7840
  br label %7843

7843:                                             ; preds = %7842, %7785
  store i32 0, ptr %30, align 4
  br label %7844

7844:                                             ; preds = %7843, %7840
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #12
  %7845 = load i32, ptr %30, align 4
  switch i32 %7845, label %8547 [
    i32 0, label %7846
  ]

7846:                                             ; preds = %7844
  br label %7847

7847:                                             ; preds = %7846
  br label %7848

7848:                                             ; preds = %7847
  call void @llvm.lifetime.start.p0(i64 7, ptr %167) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %167, ptr align 1 @__const.main.prefixed_input, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 5, ptr %168) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %168, ptr align 1 @__const.main.unprefixed_input, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #12
  %7849 = getelementptr inbounds [5 x i8], ptr %168, i64 0, i64 0
  store ptr %7849, ptr %169, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %170) #12
  store i16 5, ptr %170, align 2, !tbaa !29
  %7850 = load i32, ptr %48, align 4, !tbaa !5
  %7851 = icmp ne i32 %7850, 0
  br i1 %7851, label %7852, label %7854

7852:                                             ; preds = %7848
  %7853 = getelementptr inbounds [7 x i8], ptr %167, i64 0, i64 0
  store ptr %7853, ptr %169, align 8, !tbaa !9
  store i16 7, ptr %170, align 2, !tbaa !29
  br label %7854

7854:                                             ; preds = %7852, %7848
  br label %7855

7855:                                             ; preds = %7854
  %7856 = load i32, ptr @test_count, align 4, !tbaa !5
  %7857 = add nsw i32 %7856, 1
  store i32 %7857, ptr @test_count, align 4, !tbaa !5
  %7858 = load ptr, ptr %169, align 8, !tbaa !9
  %7859 = load i16, ptr %170, align 2, !tbaa !29
  %7860 = zext i16 %7859 to i32
  %7861 = call i32 @s2n_stuffer_write_bytes(ptr noundef %162, ptr noundef %7858, i32 noundef %7860)
  %7862 = icmp eq i32 %7861, -1
  br i1 %7862, label %7863, label %7916

7863:                                             ; preds = %7855
  br label %7864

7864:                                             ; preds = %7863
  br label %7865

7865:                                             ; preds = %7864
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #12
  %7866 = call ptr @__errno_location() #13
  %7867 = load i32, ptr %7866, align 4, !tbaa !5
  store i32 %7867, ptr %171, align 4, !tbaa !5
  %7868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7869 = call i32 @s2n_print_stacktrace(ptr noundef %7868)
  %7870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7871 = trunc i8 %7870 to i1
  br i1 %7871, label %7872, label %7894

7872:                                             ; preds = %7865
  %7873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7874 = call i32 @fileno(ptr noundef %7873) #12
  %7875 = call i32 @isatty(i32 noundef %7874) #12
  %7876 = icmp ne i32 %7875, 0
  br i1 %7876, label %7877, label %7894

7877:                                             ; preds = %7872
  %7878 = load i32, ptr %171, align 4, !tbaa !5
  %7879 = call ptr @__errno_location() #13
  store i32 %7878, ptr %7879, align 4, !tbaa !5
  %7880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7881 = load i32, ptr @test_count, align 4, !tbaa !5
  %7882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call ptr @s2n_strerror(i32 noundef %7883, ptr noundef @.str.16)
  %7885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7886 = load i32, ptr %7885, align 4, !tbaa !5
  %7887 = call ptr @s2n_strerror_debug(i32 noundef %7886, ptr noundef @.str.16)
  %7888 = call ptr @__errno_location() #13
  %7889 = load i32, ptr %7888, align 4, !tbaa !5
  %7890 = call ptr @strerror(i32 noundef %7889) #12
  %7891 = call ptr @__errno_location() #13
  %7892 = load i32, ptr %7891, align 4, !tbaa !5
  %7893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7880, ptr noundef @.str.14, i32 noundef %7881, ptr noundef @.str.104, ptr noundef @.str.13, i32 noundef 389, ptr noundef %7884, ptr noundef %7887, ptr noundef %7890, i32 noundef %7892) #12
  br label %7911

7894:                                             ; preds = %7872, %7865
  %7895 = load i32, ptr %171, align 4, !tbaa !5
  %7896 = call ptr @__errno_location() #13
  store i32 %7895, ptr %7896, align 4, !tbaa !5
  %7897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7898 = load i32, ptr @test_count, align 4, !tbaa !5
  %7899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  %7901 = call ptr @s2n_strerror(i32 noundef %7900, ptr noundef @.str.16)
  %7902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  %7904 = call ptr @s2n_strerror_debug(i32 noundef %7903, ptr noundef @.str.16)
  %7905 = call ptr @__errno_location() #13
  %7906 = load i32, ptr %7905, align 4, !tbaa !5
  %7907 = call ptr @strerror(i32 noundef %7906) #12
  %7908 = call ptr @__errno_location() #13
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  %7910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7897, ptr noundef @.str.17, i32 noundef %7898, ptr noundef @.str.104, ptr noundef @.str.13, i32 noundef 389, ptr noundef %7901, ptr noundef %7904, ptr noundef %7907, i32 noundef %7909) #12
  br label %7911

7911:                                             ; preds = %7894, %7877
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #12
  br label %7912

7912:                                             ; preds = %7911
  br label %7913

7913:                                             ; preds = %7912
  call void @exit(i32 noundef 1) #14
  unreachable

7914:                                             ; No predecessors!
  br label %7915

7915:                                             ; preds = %7914
  br label %7916

7916:                                             ; preds = %7915, %7855
  br label %7917

7917:                                             ; preds = %7916
  br label %7918

7918:                                             ; preds = %7917
  br label %7919

7919:                                             ; preds = %7918
  %7920 = load i32, ptr @test_count, align 4, !tbaa !5
  %7921 = add nsw i32 %7920, 1
  store i32 %7921, ptr @test_count, align 4, !tbaa !5
  %7922 = call i32 @s2n_stuffer_reread(ptr noundef %162)
  %7923 = icmp eq i32 %7922, -1
  br i1 %7923, label %7924, label %7977

7924:                                             ; preds = %7919
  br label %7925

7925:                                             ; preds = %7924
  br label %7926

7926:                                             ; preds = %7925
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #12
  %7927 = call ptr @__errno_location() #13
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  store i32 %7928, ptr %172, align 4, !tbaa !5
  %7929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7930 = call i32 @s2n_print_stacktrace(ptr noundef %7929)
  %7931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7932 = trunc i8 %7931 to i1
  br i1 %7932, label %7933, label %7955

7933:                                             ; preds = %7926
  %7934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7935 = call i32 @fileno(ptr noundef %7934) #12
  %7936 = call i32 @isatty(i32 noundef %7935) #12
  %7937 = icmp ne i32 %7936, 0
  br i1 %7937, label %7938, label %7955

7938:                                             ; preds = %7933
  %7939 = load i32, ptr %172, align 4, !tbaa !5
  %7940 = call ptr @__errno_location() #13
  store i32 %7939, ptr %7940, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = load i32, ptr @test_count, align 4, !tbaa !5
  %7943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call ptr @s2n_strerror(i32 noundef %7944, ptr noundef @.str.16)
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef @.str.16)
  %7949 = call ptr @__errno_location() #13
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #12
  %7952 = call ptr @__errno_location() #13
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7941, ptr noundef @.str.14, i32 noundef %7942, ptr noundef @.str.105, ptr noundef @.str.13, i32 noundef 390, ptr noundef %7945, ptr noundef %7948, ptr noundef %7951, i32 noundef %7953) #12
  br label %7972

7955:                                             ; preds = %7933, %7926
  %7956 = load i32, ptr %172, align 4, !tbaa !5
  %7957 = call ptr @__errno_location() #13
  store i32 %7956, ptr %7957, align 4, !tbaa !5
  %7958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7959 = load i32, ptr @test_count, align 4, !tbaa !5
  %7960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7961 = load i32, ptr %7960, align 4, !tbaa !5
  %7962 = call ptr @s2n_strerror(i32 noundef %7961, ptr noundef @.str.16)
  %7963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7964 = load i32, ptr %7963, align 4, !tbaa !5
  %7965 = call ptr @s2n_strerror_debug(i32 noundef %7964, ptr noundef @.str.16)
  %7966 = call ptr @__errno_location() #13
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call ptr @strerror(i32 noundef %7967) #12
  %7969 = call ptr @__errno_location() #13
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7958, ptr noundef @.str.17, i32 noundef %7959, ptr noundef @.str.105, ptr noundef @.str.13, i32 noundef 390, ptr noundef %7962, ptr noundef %7965, ptr noundef %7968, i32 noundef %7970) #12
  br label %7972

7972:                                             ; preds = %7955, %7938
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #12
  br label %7973

7973:                                             ; preds = %7972
  br label %7974

7974:                                             ; preds = %7973
  call void @exit(i32 noundef 1) #14
  unreachable

7975:                                             ; No predecessors!
  br label %7976

7976:                                             ; preds = %7975
  br label %7977

7977:                                             ; preds = %7976, %7919
  br label %7978

7978:                                             ; preds = %7977
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

7980:                                             ; preds = %7979
  %7981 = load i32, ptr @test_count, align 4, !tbaa !5
  %7982 = add nsw i32 %7981, 1
  store i32 %7982, ptr @test_count, align 4, !tbaa !5
  %7983 = call i32 @s2n_kem_recv_ciphertext(ptr noundef %162, ptr noundef %159)
  %7984 = icmp eq i32 %7983, -1
  br i1 %7984, label %7985, label %8038

7985:                                             ; preds = %7980
  br label %7986

7986:                                             ; preds = %7985
  br label %7987

7987:                                             ; preds = %7986
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #12
  %7988 = call ptr @__errno_location() #13
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  store i32 %7989, ptr %173, align 4, !tbaa !5
  %7990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7991 = call i32 @s2n_print_stacktrace(ptr noundef %7990)
  %7992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7993 = trunc i8 %7992 to i1
  br i1 %7993, label %7994, label %8016

7994:                                             ; preds = %7987
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = call i32 @fileno(ptr noundef %7995) #12
  %7997 = call i32 @isatty(i32 noundef %7996) #12
  %7998 = icmp ne i32 %7997, 0
  br i1 %7998, label %7999, label %8016

7999:                                             ; preds = %7994
  %8000 = load i32, ptr %173, align 4, !tbaa !5
  %8001 = call ptr @__errno_location() #13
  store i32 %8000, ptr %8001, align 4, !tbaa !5
  %8002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8003 = load i32, ptr @test_count, align 4, !tbaa !5
  %8004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8005 = load i32, ptr %8004, align 4, !tbaa !5
  %8006 = call ptr @s2n_strerror(i32 noundef %8005, ptr noundef @.str.16)
  %8007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8008 = load i32, ptr %8007, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror_debug(i32 noundef %8008, ptr noundef @.str.16)
  %8010 = call ptr @__errno_location() #13
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @strerror(i32 noundef %8011) #12
  %8013 = call ptr @__errno_location() #13
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8002, ptr noundef @.str.14, i32 noundef %8003, ptr noundef @.str.106, ptr noundef @.str.13, i32 noundef 392, ptr noundef %8006, ptr noundef %8009, ptr noundef %8012, i32 noundef %8014) #12
  br label %8033

8016:                                             ; preds = %7994, %7987
  %8017 = load i32, ptr %173, align 4, !tbaa !5
  %8018 = call ptr @__errno_location() #13
  store i32 %8017, ptr %8018, align 4, !tbaa !5
  %8019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8020 = load i32, ptr @test_count, align 4, !tbaa !5
  %8021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8022 = load i32, ptr %8021, align 4, !tbaa !5
  %8023 = call ptr @s2n_strerror(i32 noundef %8022, ptr noundef @.str.16)
  %8024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  %8026 = call ptr @s2n_strerror_debug(i32 noundef %8025, ptr noundef @.str.16)
  %8027 = call ptr @__errno_location() #13
  %8028 = load i32, ptr %8027, align 4, !tbaa !5
  %8029 = call ptr @strerror(i32 noundef %8028) #12
  %8030 = call ptr @__errno_location() #13
  %8031 = load i32, ptr %8030, align 4, !tbaa !5
  %8032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8019, ptr noundef @.str.17, i32 noundef %8020, ptr noundef @.str.106, ptr noundef @.str.13, i32 noundef 392, ptr noundef %8023, ptr noundef %8026, ptr noundef %8029, i32 noundef %8031) #12
  br label %8033

8033:                                             ; preds = %8016, %7999
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #12
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

8035:                                             ; preds = %8034
  call void @exit(i32 noundef 1) #14
  unreachable

8036:                                             ; No predecessors!
  br label %8037

8037:                                             ; preds = %8036
  br label %8038

8038:                                             ; preds = %8037, %7980
  br label %8039

8039:                                             ; preds = %8038
  br label %8040

8040:                                             ; preds = %8039
  br label %8041

8041:                                             ; preds = %8040
  %8042 = load i32, ptr @test_count, align 4, !tbaa !5
  %8043 = add nsw i32 %8042, 1
  store i32 %8043, ptr @test_count, align 4, !tbaa !5
  %8044 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 3
  %8045 = getelementptr inbounds %struct.s2n_blob, ptr %8044, i32 0, i32 1
  %8046 = load i32, ptr %8045, align 8, !tbaa !38
  %8047 = icmp eq i32 %8046, 4
  br i1 %8047, label %8101, label %8048

8048:                                             ; preds = %8041
  br label %8049

8049:                                             ; preds = %8048
  br label %8050

8050:                                             ; preds = %8049
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #12
  %8051 = call ptr @__errno_location() #13
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  store i32 %8052, ptr %174, align 4, !tbaa !5
  %8053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8054 = call i32 @s2n_print_stacktrace(ptr noundef %8053)
  %8055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8056 = trunc i8 %8055 to i1
  br i1 %8056, label %8057, label %8079

8057:                                             ; preds = %8050
  %8058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8059 = call i32 @fileno(ptr noundef %8058) #12
  %8060 = call i32 @isatty(i32 noundef %8059) #12
  %8061 = icmp ne i32 %8060, 0
  br i1 %8061, label %8062, label %8079

8062:                                             ; preds = %8057
  %8063 = load i32, ptr %174, align 4, !tbaa !5
  %8064 = call ptr @__errno_location() #13
  store i32 %8063, ptr %8064, align 4, !tbaa !5
  %8065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8066 = load i32, ptr @test_count, align 4, !tbaa !5
  %8067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  %8069 = call ptr @s2n_strerror(i32 noundef %8068, ptr noundef @.str.16)
  %8070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8071 = load i32, ptr %8070, align 4, !tbaa !5
  %8072 = call ptr @s2n_strerror_debug(i32 noundef %8071, ptr noundef @.str.16)
  %8073 = call ptr @__errno_location() #13
  %8074 = load i32, ptr %8073, align 4, !tbaa !5
  %8075 = call ptr @strerror(i32 noundef %8074) #12
  %8076 = call ptr @__errno_location() #13
  %8077 = load i32, ptr %8076, align 4, !tbaa !5
  %8078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8065, ptr noundef @.str.14, i32 noundef %8066, ptr noundef @.str.91, ptr noundef @.str.13, i32 noundef 394, ptr noundef %8069, ptr noundef %8072, ptr noundef %8075, i32 noundef %8077) #12
  br label %8096

8079:                                             ; preds = %8057, %8050
  %8080 = load i32, ptr %174, align 4, !tbaa !5
  %8081 = call ptr @__errno_location() #13
  store i32 %8080, ptr %8081, align 4, !tbaa !5
  %8082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8083 = load i32, ptr @test_count, align 4, !tbaa !5
  %8084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @s2n_strerror(i32 noundef %8085, ptr noundef @.str.16)
  %8087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call ptr @s2n_strerror_debug(i32 noundef %8088, ptr noundef @.str.16)
  %8090 = call ptr @__errno_location() #13
  %8091 = load i32, ptr %8090, align 4, !tbaa !5
  %8092 = call ptr @strerror(i32 noundef %8091) #12
  %8093 = call ptr @__errno_location() #13
  %8094 = load i32, ptr %8093, align 4, !tbaa !5
  %8095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8082, ptr noundef @.str.17, i32 noundef %8083, ptr noundef @.str.91, ptr noundef @.str.13, i32 noundef 394, ptr noundef %8086, ptr noundef %8089, ptr noundef %8092, i32 noundef %8094) #12
  br label %8096

8096:                                             ; preds = %8079, %8062
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #12
  br label %8097

8097:                                             ; preds = %8096
  br label %8098

8098:                                             ; preds = %8097
  call void @exit(i32 noundef 1) #14
  unreachable

8099:                                             ; No predecessors!
  br label %8100

8100:                                             ; preds = %8099
  br label %8101

8101:                                             ; preds = %8100, %8041
  br label %8102

8102:                                             ; preds = %8101
  br label %8103

8103:                                             ; preds = %8102
  br label %8104

8104:                                             ; preds = %8103
  br label %8105

8105:                                             ; preds = %8104
  %8106 = load i32, ptr @test_count, align 4, !tbaa !5
  %8107 = add nsw i32 %8106, 1
  store i32 %8107, ptr @test_count, align 4, !tbaa !5
  %8108 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 3
  %8109 = getelementptr inbounds %struct.s2n_blob, ptr %8108, i32 0, i32 0
  %8110 = load ptr, ptr %8109, align 8, !tbaa !40
  %8111 = call i32 @memcmp(ptr noundef %8110, ptr noundef @TEST_SHARED_SECRET, i64 noundef 4) #15
  %8112 = icmp eq i32 %8111, 0
  br i1 %8112, label %8166, label %8113

8113:                                             ; preds = %8105
  br label %8114

8114:                                             ; preds = %8113
  br label %8115

8115:                                             ; preds = %8114
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #12
  %8116 = call ptr @__errno_location() #13
  %8117 = load i32, ptr %8116, align 4, !tbaa !5
  store i32 %8117, ptr %175, align 4, !tbaa !5
  %8118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8119 = call i32 @s2n_print_stacktrace(ptr noundef %8118)
  %8120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8121 = trunc i8 %8120 to i1
  br i1 %8121, label %8122, label %8144

8122:                                             ; preds = %8115
  %8123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8124 = call i32 @fileno(ptr noundef %8123) #12
  %8125 = call i32 @isatty(i32 noundef %8124) #12
  %8126 = icmp ne i32 %8125, 0
  br i1 %8126, label %8127, label %8144

8127:                                             ; preds = %8122
  %8128 = load i32, ptr %175, align 4, !tbaa !5
  %8129 = call ptr @__errno_location() #13
  store i32 %8128, ptr %8129, align 4, !tbaa !5
  %8130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8131 = load i32, ptr @test_count, align 4, !tbaa !5
  %8132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8133 = load i32, ptr %8132, align 4, !tbaa !5
  %8134 = call ptr @s2n_strerror(i32 noundef %8133, ptr noundef @.str.16)
  %8135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call ptr @s2n_strerror_debug(i32 noundef %8136, ptr noundef @.str.16)
  %8138 = call ptr @__errno_location() #13
  %8139 = load i32, ptr %8138, align 4, !tbaa !5
  %8140 = call ptr @strerror(i32 noundef %8139) #12
  %8141 = call ptr @__errno_location() #13
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8130, ptr noundef @.str.14, i32 noundef %8131, ptr noundef @.str.92, ptr noundef @.str.13, i32 noundef 395, ptr noundef %8134, ptr noundef %8137, ptr noundef %8140, i32 noundef %8142) #12
  br label %8161

8144:                                             ; preds = %8122, %8115
  %8145 = load i32, ptr %175, align 4, !tbaa !5
  %8146 = call ptr @__errno_location() #13
  store i32 %8145, ptr %8146, align 4, !tbaa !5
  %8147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8148 = load i32, ptr @test_count, align 4, !tbaa !5
  %8149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @s2n_strerror(i32 noundef %8150, ptr noundef @.str.16)
  %8152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call ptr @s2n_strerror_debug(i32 noundef %8153, ptr noundef @.str.16)
  %8155 = call ptr @__errno_location() #13
  %8156 = load i32, ptr %8155, align 4, !tbaa !5
  %8157 = call ptr @strerror(i32 noundef %8156) #12
  %8158 = call ptr @__errno_location() #13
  %8159 = load i32, ptr %8158, align 4, !tbaa !5
  %8160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8147, ptr noundef @.str.17, i32 noundef %8148, ptr noundef @.str.92, ptr noundef @.str.13, i32 noundef 395, ptr noundef %8151, ptr noundef %8154, ptr noundef %8157, i32 noundef %8159) #12
  br label %8161

8161:                                             ; preds = %8144, %8127
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #12
  br label %8162

8162:                                             ; preds = %8161
  br label %8163

8163:                                             ; preds = %8162
  call void @exit(i32 noundef 1) #14
  unreachable

8164:                                             ; No predecessors!
  br label %8165

8165:                                             ; preds = %8164
  br label %8166

8166:                                             ; preds = %8165, %8105
  br label %8167

8167:                                             ; preds = %8166
  br label %8168

8168:                                             ; preds = %8167
  br label %8169

8169:                                             ; preds = %8168
  br label %8170

8170:                                             ; preds = %8169
  br label %8171

8171:                                             ; preds = %8170
  %8172 = load i32, ptr @test_count, align 4, !tbaa !5
  %8173 = add nsw i32 %8172, 1
  store i32 %8173, ptr @test_count, align 4, !tbaa !5
  %8174 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 1
  %8175 = getelementptr inbounds %struct.s2n_blob, ptr %8174, i32 0, i32 1
  %8176 = load i32, ptr %8175, align 8, !tbaa !34
  %8177 = icmp eq i32 0, %8176
  br i1 %8177, label %8231, label %8178

8178:                                             ; preds = %8171
  br label %8179

8179:                                             ; preds = %8178
  br label %8180

8180:                                             ; preds = %8179
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #12
  %8181 = call ptr @__errno_location() #13
  %8182 = load i32, ptr %8181, align 4, !tbaa !5
  store i32 %8182, ptr %176, align 4, !tbaa !5
  %8183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8184 = call i32 @s2n_print_stacktrace(ptr noundef %8183)
  %8185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8186 = trunc i8 %8185 to i1
  br i1 %8186, label %8187, label %8209

8187:                                             ; preds = %8180
  %8188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8189 = call i32 @fileno(ptr noundef %8188) #12
  %8190 = call i32 @isatty(i32 noundef %8189) #12
  %8191 = icmp ne i32 %8190, 0
  br i1 %8191, label %8192, label %8209

8192:                                             ; preds = %8187
  %8193 = load i32, ptr %176, align 4, !tbaa !5
  %8194 = call ptr @__errno_location() #13
  store i32 %8193, ptr %8194, align 4, !tbaa !5
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = load i32, ptr @test_count, align 4, !tbaa !5
  %8197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8198 = load i32, ptr %8197, align 4, !tbaa !5
  %8199 = call ptr @s2n_strerror(i32 noundef %8198, ptr noundef @.str.16)
  %8200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8201 = load i32, ptr %8200, align 4, !tbaa !5
  %8202 = call ptr @s2n_strerror_debug(i32 noundef %8201, ptr noundef @.str.16)
  %8203 = call ptr @__errno_location() #13
  %8204 = load i32, ptr %8203, align 4, !tbaa !5
  %8205 = call ptr @strerror(i32 noundef %8204) #12
  %8206 = call ptr @__errno_location() #13
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8195, ptr noundef @.str.14, i32 noundef %8196, ptr noundef @.str.107, ptr noundef @.str.13, i32 noundef 396, ptr noundef %8199, ptr noundef %8202, ptr noundef %8205, i32 noundef %8207) #12
  br label %8226

8209:                                             ; preds = %8187, %8180
  %8210 = load i32, ptr %176, align 4, !tbaa !5
  %8211 = call ptr @__errno_location() #13
  store i32 %8210, ptr %8211, align 4, !tbaa !5
  %8212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8213 = load i32, ptr @test_count, align 4, !tbaa !5
  %8214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8215 = load i32, ptr %8214, align 4, !tbaa !5
  %8216 = call ptr @s2n_strerror(i32 noundef %8215, ptr noundef @.str.16)
  %8217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8218 = load i32, ptr %8217, align 4, !tbaa !5
  %8219 = call ptr @s2n_strerror_debug(i32 noundef %8218, ptr noundef @.str.16)
  %8220 = call ptr @__errno_location() #13
  %8221 = load i32, ptr %8220, align 4, !tbaa !5
  %8222 = call ptr @strerror(i32 noundef %8221) #12
  %8223 = call ptr @__errno_location() #13
  %8224 = load i32, ptr %8223, align 4, !tbaa !5
  %8225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8212, ptr noundef @.str.17, i32 noundef %8213, ptr noundef @.str.107, ptr noundef @.str.13, i32 noundef 396, ptr noundef %8216, ptr noundef %8219, ptr noundef %8222, i32 noundef %8224) #12
  br label %8226

8226:                                             ; preds = %8209, %8192
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #12
  br label %8227

8227:                                             ; preds = %8226
  br label %8228

8228:                                             ; preds = %8227
  call void @exit(i32 noundef 1) #14
  unreachable

8229:                                             ; No predecessors!
  br label %8230

8230:                                             ; preds = %8229
  br label %8231

8231:                                             ; preds = %8230, %8171
  br label %8232

8232:                                             ; preds = %8231
  br label %8233

8233:                                             ; preds = %8232
  br label %8234

8234:                                             ; preds = %8233
  %8235 = load i32, ptr @test_count, align 4, !tbaa !5
  %8236 = add nsw i32 %8235, 1
  store i32 %8236, ptr @test_count, align 4, !tbaa !5
  %8237 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 1
  %8238 = getelementptr inbounds %struct.s2n_blob, ptr %8237, i32 0, i32 0
  %8239 = load ptr, ptr %8238, align 8, !tbaa !36
  %8240 = icmp eq ptr %8239, null
  br i1 %8240, label %8294, label %8241

8241:                                             ; preds = %8234
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #12
  %8244 = call ptr @__errno_location() #13
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  store i32 %8245, ptr %177, align 4, !tbaa !5
  %8246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8247 = call i32 @s2n_print_stacktrace(ptr noundef %8246)
  %8248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8249 = trunc i8 %8248 to i1
  br i1 %8249, label %8250, label %8272

8250:                                             ; preds = %8243
  %8251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8252 = call i32 @fileno(ptr noundef %8251) #12
  %8253 = call i32 @isatty(i32 noundef %8252) #12
  %8254 = icmp ne i32 %8253, 0
  br i1 %8254, label %8255, label %8272

8255:                                             ; preds = %8250
  %8256 = load i32, ptr %177, align 4, !tbaa !5
  %8257 = call ptr @__errno_location() #13
  store i32 %8256, ptr %8257, align 4, !tbaa !5
  %8258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8259 = load i32, ptr @test_count, align 4, !tbaa !5
  %8260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8261 = load i32, ptr %8260, align 4, !tbaa !5
  %8262 = call ptr @s2n_strerror(i32 noundef %8261, ptr noundef @.str.16)
  %8263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8264 = load i32, ptr %8263, align 4, !tbaa !5
  %8265 = call ptr @s2n_strerror_debug(i32 noundef %8264, ptr noundef @.str.16)
  %8266 = call ptr @__errno_location() #13
  %8267 = load i32, ptr %8266, align 4, !tbaa !5
  %8268 = call ptr @strerror(i32 noundef %8267) #12
  %8269 = call ptr @__errno_location() #13
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  %8271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8258, ptr noundef @.str.14, i32 noundef %8259, ptr noundef @.str.74, ptr noundef @.str.13, i32 noundef 397, ptr noundef %8262, ptr noundef %8265, ptr noundef %8268, i32 noundef %8270) #12
  br label %8289

8272:                                             ; preds = %8250, %8243
  %8273 = load i32, ptr %177, align 4, !tbaa !5
  %8274 = call ptr @__errno_location() #13
  store i32 %8273, ptr %8274, align 4, !tbaa !5
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = load i32, ptr @test_count, align 4, !tbaa !5
  %8277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @s2n_strerror(i32 noundef %8278, ptr noundef @.str.16)
  %8280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call ptr @s2n_strerror_debug(i32 noundef %8281, ptr noundef @.str.16)
  %8283 = call ptr @__errno_location() #13
  %8284 = load i32, ptr %8283, align 4, !tbaa !5
  %8285 = call ptr @strerror(i32 noundef %8284) #12
  %8286 = call ptr @__errno_location() #13
  %8287 = load i32, ptr %8286, align 4, !tbaa !5
  %8288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8275, ptr noundef @.str.17, i32 noundef %8276, ptr noundef @.str.74, ptr noundef @.str.13, i32 noundef 397, ptr noundef %8279, ptr noundef %8282, ptr noundef %8285, i32 noundef %8287) #12
  br label %8289

8289:                                             ; preds = %8272, %8255
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #12
  br label %8290

8290:                                             ; preds = %8289
  br label %8291

8291:                                             ; preds = %8290
  call void @exit(i32 noundef 1) #14
  unreachable

8292:                                             ; No predecessors!
  br label %8293

8293:                                             ; preds = %8292
  br label %8294

8294:                                             ; preds = %8293, %8234
  br label %8295

8295:                                             ; preds = %8294
  br label %8296

8296:                                             ; preds = %8295
  br label %8297

8297:                                             ; preds = %8296
  %8298 = load i32, ptr @test_count, align 4, !tbaa !5
  %8299 = add nsw i32 %8298, 1
  store i32 %8299, ptr @test_count, align 4, !tbaa !5
  %8300 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 1
  %8301 = getelementptr inbounds %struct.s2n_blob, ptr %8300, i32 0, i32 2
  %8302 = load i32, ptr %8301, align 4, !tbaa !46
  %8303 = icmp eq i32 0, %8302
  br i1 %8303, label %8357, label %8304

8304:                                             ; preds = %8297
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #12
  %8307 = call ptr @__errno_location() #13
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  store i32 %8308, ptr %178, align 4, !tbaa !5
  %8309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8310 = call i32 @s2n_print_stacktrace(ptr noundef %8309)
  %8311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8312 = trunc i8 %8311 to i1
  br i1 %8312, label %8313, label %8335

8313:                                             ; preds = %8306
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = call i32 @fileno(ptr noundef %8314) #12
  %8316 = call i32 @isatty(i32 noundef %8315) #12
  %8317 = icmp ne i32 %8316, 0
  br i1 %8317, label %8318, label %8335

8318:                                             ; preds = %8313
  %8319 = load i32, ptr %178, align 4, !tbaa !5
  %8320 = call ptr @__errno_location() #13
  store i32 %8319, ptr %8320, align 4, !tbaa !5
  %8321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8322 = load i32, ptr @test_count, align 4, !tbaa !5
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror(i32 noundef %8324, ptr noundef @.str.16)
  %8326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror_debug(i32 noundef %8327, ptr noundef @.str.16)
  %8329 = call ptr @__errno_location() #13
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @strerror(i32 noundef %8330) #12
  %8332 = call ptr @__errno_location() #13
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8321, ptr noundef @.str.14, i32 noundef %8322, ptr noundef @.str.77, ptr noundef @.str.13, i32 noundef 401, ptr noundef %8325, ptr noundef %8328, ptr noundef %8331, i32 noundef %8333) #12
  br label %8352

8335:                                             ; preds = %8313, %8306
  %8336 = load i32, ptr %178, align 4, !tbaa !5
  %8337 = call ptr @__errno_location() #13
  store i32 %8336, ptr %8337, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = load i32, ptr @test_count, align 4, !tbaa !5
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror(i32 noundef %8341, ptr noundef @.str.16)
  %8343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @s2n_strerror_debug(i32 noundef %8344, ptr noundef @.str.16)
  %8346 = call ptr @__errno_location() #13
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call ptr @strerror(i32 noundef %8347) #12
  %8349 = call ptr @__errno_location() #13
  %8350 = load i32, ptr %8349, align 4, !tbaa !5
  %8351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8338, ptr noundef @.str.17, i32 noundef %8339, ptr noundef @.str.77, ptr noundef @.str.13, i32 noundef 401, ptr noundef %8342, ptr noundef %8345, ptr noundef %8348, i32 noundef %8350) #12
  br label %8352

8352:                                             ; preds = %8335, %8318
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #12
  br label %8353

8353:                                             ; preds = %8352
  br label %8354

8354:                                             ; preds = %8353
  call void @exit(i32 noundef 1) #14
  unreachable

8355:                                             ; No predecessors!
  br label %8356

8356:                                             ; preds = %8355
  br label %8357

8357:                                             ; preds = %8356, %8297
  br label %8358

8358:                                             ; preds = %8357
  br label %8359

8359:                                             ; preds = %8358
  br label %8360

8360:                                             ; preds = %8359
  %8361 = load i32, ptr @test_count, align 4, !tbaa !5
  %8362 = add nsw i32 %8361, 1
  store i32 %8362, ptr @test_count, align 4, !tbaa !5
  %8363 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 2
  %8364 = getelementptr inbounds %struct.s2n_blob, ptr %8363, i32 0, i32 2
  %8365 = load i32, ptr %8364, align 4, !tbaa !43
  %8366 = icmp eq i32 0, %8365
  br i1 %8366, label %8367, label %8420

8367:                                             ; preds = %8360
  br label %8368

8368:                                             ; preds = %8367
  br label %8369

8369:                                             ; preds = %8368
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #12
  %8370 = call ptr @__errno_location() #13
  %8371 = load i32, ptr %8370, align 4, !tbaa !5
  store i32 %8371, ptr %179, align 4, !tbaa !5
  %8372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8373 = call i32 @s2n_print_stacktrace(ptr noundef %8372)
  %8374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8375 = trunc i8 %8374 to i1
  br i1 %8375, label %8376, label %8398

8376:                                             ; preds = %8369
  %8377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8378 = call i32 @fileno(ptr noundef %8377) #12
  %8379 = call i32 @isatty(i32 noundef %8378) #12
  %8380 = icmp ne i32 %8379, 0
  br i1 %8380, label %8381, label %8398

8381:                                             ; preds = %8376
  %8382 = load i32, ptr %179, align 4, !tbaa !5
  %8383 = call ptr @__errno_location() #13
  store i32 %8382, ptr %8383, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = load i32, ptr @test_count, align 4, !tbaa !5
  %8386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @s2n_strerror(i32 noundef %8387, ptr noundef @.str.16)
  %8389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @s2n_strerror_debug(i32 noundef %8390, ptr noundef @.str.16)
  %8392 = call ptr @__errno_location() #13
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call ptr @strerror(i32 noundef %8393) #12
  %8395 = call ptr @__errno_location() #13
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8384, ptr noundef @.str.14, i32 noundef %8385, ptr noundef @.str.79, ptr noundef @.str.13, i32 noundef 402, ptr noundef %8388, ptr noundef %8391, ptr noundef %8394, i32 noundef %8396) #12
  br label %8415

8398:                                             ; preds = %8376, %8369
  %8399 = load i32, ptr %179, align 4, !tbaa !5
  %8400 = call ptr @__errno_location() #13
  store i32 %8399, ptr %8400, align 4, !tbaa !5
  %8401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8402 = load i32, ptr @test_count, align 4, !tbaa !5
  %8403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8404 = load i32, ptr %8403, align 4, !tbaa !5
  %8405 = call ptr @s2n_strerror(i32 noundef %8404, ptr noundef @.str.16)
  %8406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8407 = load i32, ptr %8406, align 4, !tbaa !5
  %8408 = call ptr @s2n_strerror_debug(i32 noundef %8407, ptr noundef @.str.16)
  %8409 = call ptr @__errno_location() #13
  %8410 = load i32, ptr %8409, align 4, !tbaa !5
  %8411 = call ptr @strerror(i32 noundef %8410) #12
  %8412 = call ptr @__errno_location() #13
  %8413 = load i32, ptr %8412, align 4, !tbaa !5
  %8414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8401, ptr noundef @.str.17, i32 noundef %8402, ptr noundef @.str.79, ptr noundef @.str.13, i32 noundef 402, ptr noundef %8405, ptr noundef %8408, ptr noundef %8411, i32 noundef %8413) #12
  br label %8415

8415:                                             ; preds = %8398, %8381
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #12
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

8417:                                             ; preds = %8416
  call void @exit(i32 noundef 1) #14
  unreachable

8418:                                             ; No predecessors!
  br label %8419

8419:                                             ; preds = %8418
  br label %8420

8420:                                             ; preds = %8419, %8360
  br label %8421

8421:                                             ; preds = %8420
  br label %8422

8422:                                             ; preds = %8421
  br label %8423

8423:                                             ; preds = %8422
  %8424 = load i32, ptr @test_count, align 4, !tbaa !5
  %8425 = add nsw i32 %8424, 1
  store i32 %8425, ptr @test_count, align 4, !tbaa !5
  %8426 = getelementptr inbounds %struct.s2n_kem_params, ptr %159, i32 0, i32 3
  %8427 = getelementptr inbounds %struct.s2n_blob, ptr %8426, i32 0, i32 2
  %8428 = load i32, ptr %8427, align 4, !tbaa !39
  %8429 = icmp eq i32 0, %8428
  br i1 %8429, label %8430, label %8483

8430:                                             ; preds = %8423
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #12
  %8433 = call ptr @__errno_location() #13
  %8434 = load i32, ptr %8433, align 4, !tbaa !5
  store i32 %8434, ptr %180, align 4, !tbaa !5
  %8435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8436 = call i32 @s2n_print_stacktrace(ptr noundef %8435)
  %8437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8438 = trunc i8 %8437 to i1
  br i1 %8438, label %8439, label %8461

8439:                                             ; preds = %8432
  %8440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8441 = call i32 @fileno(ptr noundef %8440) #12
  %8442 = call i32 @isatty(i32 noundef %8441) #12
  %8443 = icmp ne i32 %8442, 0
  br i1 %8443, label %8444, label %8461

8444:                                             ; preds = %8439
  %8445 = load i32, ptr %180, align 4, !tbaa !5
  %8446 = call ptr @__errno_location() #13
  store i32 %8445, ptr %8446, align 4, !tbaa !5
  %8447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8448 = load i32, ptr @test_count, align 4, !tbaa !5
  %8449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call ptr @s2n_strerror(i32 noundef %8450, ptr noundef @.str.16)
  %8452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8453 = load i32, ptr %8452, align 4, !tbaa !5
  %8454 = call ptr @s2n_strerror_debug(i32 noundef %8453, ptr noundef @.str.16)
  %8455 = call ptr @__errno_location() #13
  %8456 = load i32, ptr %8455, align 4, !tbaa !5
  %8457 = call ptr @strerror(i32 noundef %8456) #12
  %8458 = call ptr @__errno_location() #13
  %8459 = load i32, ptr %8458, align 4, !tbaa !5
  %8460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8447, ptr noundef @.str.14, i32 noundef %8448, ptr noundef @.str.108, ptr noundef @.str.13, i32 noundef 403, ptr noundef %8451, ptr noundef %8454, ptr noundef %8457, i32 noundef %8459) #12
  br label %8478

8461:                                             ; preds = %8439, %8432
  %8462 = load i32, ptr %180, align 4, !tbaa !5
  %8463 = call ptr @__errno_location() #13
  store i32 %8462, ptr %8463, align 4, !tbaa !5
  %8464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8465 = load i32, ptr @test_count, align 4, !tbaa !5
  %8466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8467 = load i32, ptr %8466, align 4, !tbaa !5
  %8468 = call ptr @s2n_strerror(i32 noundef %8467, ptr noundef @.str.16)
  %8469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8470 = load i32, ptr %8469, align 4, !tbaa !5
  %8471 = call ptr @s2n_strerror_debug(i32 noundef %8470, ptr noundef @.str.16)
  %8472 = call ptr @__errno_location() #13
  %8473 = load i32, ptr %8472, align 4, !tbaa !5
  %8474 = call ptr @strerror(i32 noundef %8473) #12
  %8475 = call ptr @__errno_location() #13
  %8476 = load i32, ptr %8475, align 4, !tbaa !5
  %8477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8464, ptr noundef @.str.17, i32 noundef %8465, ptr noundef @.str.108, ptr noundef @.str.13, i32 noundef 403, ptr noundef %8468, ptr noundef %8471, ptr noundef %8474, i32 noundef %8476) #12
  br label %8478

8478:                                             ; preds = %8461, %8444
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #12
  br label %8479

8479:                                             ; preds = %8478
  br label %8480

8480:                                             ; preds = %8479
  call void @exit(i32 noundef 1) #14
  unreachable

8481:                                             ; No predecessors!
  br label %8482

8482:                                             ; preds = %8481
  br label %8483

8483:                                             ; preds = %8482, %8423
  br label %8484

8484:                                             ; preds = %8483
  br label %8485

8485:                                             ; preds = %8484
  br label %8486

8486:                                             ; preds = %8485
  %8487 = load i32, ptr @test_count, align 4, !tbaa !5
  %8488 = add nsw i32 %8487, 1
  store i32 %8488, ptr @test_count, align 4, !tbaa !5
  %8489 = call i32 @s2n_kem_free(ptr noundef %159)
  %8490 = icmp eq i32 %8489, -1
  br i1 %8490, label %8491, label %8544

8491:                                             ; preds = %8486
  br label %8492

8492:                                             ; preds = %8491
  br label %8493

8493:                                             ; preds = %8492
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #12
  %8494 = call ptr @__errno_location() #13
  %8495 = load i32, ptr %8494, align 4, !tbaa !5
  store i32 %8495, ptr %181, align 4, !tbaa !5
  %8496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8497 = call i32 @s2n_print_stacktrace(ptr noundef %8496)
  %8498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8499 = trunc i8 %8498 to i1
  br i1 %8499, label %8500, label %8522

8500:                                             ; preds = %8493
  %8501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8502 = call i32 @fileno(ptr noundef %8501) #12
  %8503 = call i32 @isatty(i32 noundef %8502) #12
  %8504 = icmp ne i32 %8503, 0
  br i1 %8504, label %8505, label %8522

8505:                                             ; preds = %8500
  %8506 = load i32, ptr %181, align 4, !tbaa !5
  %8507 = call ptr @__errno_location() #13
  store i32 %8506, ptr %8507, align 4, !tbaa !5
  %8508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8509 = load i32, ptr @test_count, align 4, !tbaa !5
  %8510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8511 = load i32, ptr %8510, align 4, !tbaa !5
  %8512 = call ptr @s2n_strerror(i32 noundef %8511, ptr noundef @.str.16)
  %8513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8514 = load i32, ptr %8513, align 4, !tbaa !5
  %8515 = call ptr @s2n_strerror_debug(i32 noundef %8514, ptr noundef @.str.16)
  %8516 = call ptr @__errno_location() #13
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  %8518 = call ptr @strerror(i32 noundef %8517) #12
  %8519 = call ptr @__errno_location() #13
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  %8521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8508, ptr noundef @.str.14, i32 noundef %8509, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 404, ptr noundef %8512, ptr noundef %8515, ptr noundef %8518, i32 noundef %8520) #12
  br label %8539

8522:                                             ; preds = %8500, %8493
  %8523 = load i32, ptr %181, align 4, !tbaa !5
  %8524 = call ptr @__errno_location() #13
  store i32 %8523, ptr %8524, align 4, !tbaa !5
  %8525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8526 = load i32, ptr @test_count, align 4, !tbaa !5
  %8527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8528 = load i32, ptr %8527, align 4, !tbaa !5
  %8529 = call ptr @s2n_strerror(i32 noundef %8528, ptr noundef @.str.16)
  %8530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call ptr @s2n_strerror_debug(i32 noundef %8531, ptr noundef @.str.16)
  %8533 = call ptr @__errno_location() #13
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call ptr @strerror(i32 noundef %8534) #12
  %8536 = call ptr @__errno_location() #13
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8525, ptr noundef @.str.17, i32 noundef %8526, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 404, ptr noundef %8529, ptr noundef %8532, ptr noundef %8535, i32 noundef %8537) #12
  br label %8539

8539:                                             ; preds = %8522, %8505
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #12
  br label %8540

8540:                                             ; preds = %8539
  br label %8541

8541:                                             ; preds = %8540
  call void @exit(i32 noundef 1) #14
  unreachable

8542:                                             ; No predecessors!
  br label %8543

8543:                                             ; preds = %8542
  br label %8544

8544:                                             ; preds = %8543, %8486
  br label %8545

8545:                                             ; preds = %8544
  br label %8546

8546:                                             ; preds = %8545
  call void @llvm.lifetime.end.p0(i64 2, ptr %170) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr %168) #12
  call void @llvm.lifetime.end.p0(i64 7, ptr %167) #12
  store i32 0, ptr %30, align 4
  br label %8547

8547:                                             ; preds = %8546, %7844
  call void @llvm.lifetime.end.p0(i64 40, ptr %162) #12
  %8548 = call i32 @s2n_free(ptr noundef %160)
  call void @llvm.lifetime.end.p0(i64 24, ptr %160) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %159) #12
  %8549 = load i32, ptr %30, align 4
  switch i32 %8549, label %12165 [
    i32 0, label %8550
  ]

8550:                                             ; preds = %8547
  br label %8551

8551:                                             ; preds = %8550
  br label %8552

8552:                                             ; preds = %8551
  br label %8553

8553:                                             ; preds = %8552
  %8554 = load i32, ptr @test_count, align 4, !tbaa !5
  %8555 = add nsw i32 %8554, 1
  store i32 %8555, ptr @test_count, align 4, !tbaa !5
  %8556 = call i32 @s2n_kem_recv_ciphertext(ptr noundef null, ptr noundef null)
  %8557 = icmp eq i32 %8556, -1
  br i1 %8557, label %8611, label %8558

8558:                                             ; preds = %8553
  br label %8559

8559:                                             ; preds = %8558
  br label %8560

8560:                                             ; preds = %8559
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #12
  %8561 = call ptr @__errno_location() #13
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  store i32 %8562, ptr %182, align 4, !tbaa !5
  %8563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8564 = call i32 @s2n_print_stacktrace(ptr noundef %8563)
  %8565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8566 = trunc i8 %8565 to i1
  br i1 %8566, label %8567, label %8589

8567:                                             ; preds = %8560
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = call i32 @fileno(ptr noundef %8568) #12
  %8570 = call i32 @isatty(i32 noundef %8569) #12
  %8571 = icmp ne i32 %8570, 0
  br i1 %8571, label %8572, label %8589

8572:                                             ; preds = %8567
  %8573 = load i32, ptr %182, align 4, !tbaa !5
  %8574 = call ptr @__errno_location() #13
  store i32 %8573, ptr %8574, align 4, !tbaa !5
  %8575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8576 = load i32, ptr @test_count, align 4, !tbaa !5
  %8577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8578 = load i32, ptr %8577, align 4, !tbaa !5
  %8579 = call ptr @s2n_strerror(i32 noundef %8578, ptr noundef @.str.16)
  %8580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8581 = load i32, ptr %8580, align 4, !tbaa !5
  %8582 = call ptr @s2n_strerror_debug(i32 noundef %8581, ptr noundef @.str.16)
  %8583 = call ptr @__errno_location() #13
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  %8585 = call ptr @strerror(i32 noundef %8584) #12
  %8586 = call ptr @__errno_location() #13
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8575, ptr noundef @.str.14, i32 noundef %8576, ptr noundef @.str.109, ptr noundef @.str.13, i32 noundef 408, ptr noundef %8579, ptr noundef %8582, ptr noundef %8585, i32 noundef %8587) #12
  br label %8606

8589:                                             ; preds = %8567, %8560
  %8590 = load i32, ptr %182, align 4, !tbaa !5
  %8591 = call ptr @__errno_location() #13
  store i32 %8590, ptr %8591, align 4, !tbaa !5
  %8592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8593 = load i32, ptr @test_count, align 4, !tbaa !5
  %8594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call ptr @s2n_strerror(i32 noundef %8595, ptr noundef @.str.16)
  %8597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call ptr @s2n_strerror_debug(i32 noundef %8598, ptr noundef @.str.16)
  %8600 = call ptr @__errno_location() #13
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call ptr @strerror(i32 noundef %8601) #12
  %8603 = call ptr @__errno_location() #13
  %8604 = load i32, ptr %8603, align 4, !tbaa !5
  %8605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8592, ptr noundef @.str.17, i32 noundef %8593, ptr noundef @.str.109, ptr noundef @.str.13, i32 noundef 408, ptr noundef %8596, ptr noundef %8599, ptr noundef %8602, i32 noundef %8604) #12
  br label %8606

8606:                                             ; preds = %8589, %8572
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #12
  br label %8607

8607:                                             ; preds = %8606
  br label %8608

8608:                                             ; preds = %8607
  call void @exit(i32 noundef 1) #14
  unreachable

8609:                                             ; No predecessors!
  br label %8610

8610:                                             ; preds = %8609
  br label %8611

8611:                                             ; preds = %8610, %8553
  br label %8612

8612:                                             ; preds = %8611
  br label %8613

8613:                                             ; preds = %8612
  br label %8614

8614:                                             ; preds = %8613
  %8615 = load i32, ptr @test_count, align 4, !tbaa !5
  %8616 = add nsw i32 %8615, 1
  store i32 %8616, ptr @test_count, align 4, !tbaa !5
  %8617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8618 = load i32, ptr %8617, align 4, !tbaa !5
  %8619 = icmp eq i32 %8618, 402653193
  br i1 %8619, label %8673, label %8620

8620:                                             ; preds = %8614
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

8622:                                             ; preds = %8621
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #12
  %8623 = call ptr @__errno_location() #13
  %8624 = load i32, ptr %8623, align 4, !tbaa !5
  store i32 %8624, ptr %183, align 4, !tbaa !5
  %8625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8626 = call i32 @s2n_print_stacktrace(ptr noundef %8625)
  %8627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8628 = trunc i8 %8627 to i1
  br i1 %8628, label %8629, label %8651

8629:                                             ; preds = %8622
  %8630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8631 = call i32 @fileno(ptr noundef %8630) #12
  %8632 = call i32 @isatty(i32 noundef %8631) #12
  %8633 = icmp ne i32 %8632, 0
  br i1 %8633, label %8634, label %8651

8634:                                             ; preds = %8629
  %8635 = load i32, ptr %183, align 4, !tbaa !5
  %8636 = call ptr @__errno_location() #13
  store i32 %8635, ptr %8636, align 4, !tbaa !5
  %8637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8638 = load i32, ptr @test_count, align 4, !tbaa !5
  %8639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  %8641 = call ptr @s2n_strerror(i32 noundef %8640, ptr noundef @.str.16)
  %8642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8643 = load i32, ptr %8642, align 4, !tbaa !5
  %8644 = call ptr @s2n_strerror_debug(i32 noundef %8643, ptr noundef @.str.16)
  %8645 = call ptr @__errno_location() #13
  %8646 = load i32, ptr %8645, align 4, !tbaa !5
  %8647 = call ptr @strerror(i32 noundef %8646) #12
  %8648 = call ptr @__errno_location() #13
  %8649 = load i32, ptr %8648, align 4, !tbaa !5
  %8650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8637, ptr noundef @.str.14, i32 noundef %8638, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 408, ptr noundef %8641, ptr noundef %8644, ptr noundef %8647, i32 noundef %8649) #12
  br label %8668

8651:                                             ; preds = %8629, %8622
  %8652 = load i32, ptr %183, align 4, !tbaa !5
  %8653 = call ptr @__errno_location() #13
  store i32 %8652, ptr %8653, align 4, !tbaa !5
  %8654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8655 = load i32, ptr @test_count, align 4, !tbaa !5
  %8656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8657 = load i32, ptr %8656, align 4, !tbaa !5
  %8658 = call ptr @s2n_strerror(i32 noundef %8657, ptr noundef @.str.16)
  %8659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8660 = load i32, ptr %8659, align 4, !tbaa !5
  %8661 = call ptr @s2n_strerror_debug(i32 noundef %8660, ptr noundef @.str.16)
  %8662 = call ptr @__errno_location() #13
  %8663 = load i32, ptr %8662, align 4, !tbaa !5
  %8664 = call ptr @strerror(i32 noundef %8663) #12
  %8665 = call ptr @__errno_location() #13
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8654, ptr noundef @.str.17, i32 noundef %8655, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 408, ptr noundef %8658, ptr noundef %8661, ptr noundef %8664, i32 noundef %8666) #12
  br label %8668

8668:                                             ; preds = %8651, %8634
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #12
  br label %8669

8669:                                             ; preds = %8668
  br label %8670

8670:                                             ; preds = %8669
  call void @exit(i32 noundef 1) #14
  unreachable

8671:                                             ; No predecessors!
  br label %8672

8672:                                             ; preds = %8671
  br label %8673

8673:                                             ; preds = %8672, %8614
  br label %8674

8674:                                             ; preds = %8673
  br label %8675

8675:                                             ; preds = %8674
  br label %8676

8676:                                             ; preds = %8675
  %8677 = load i32, ptr @test_count, align 4, !tbaa !5
  %8678 = add nsw i32 %8677, 1
  store i32 %8678, ptr @test_count, align 4, !tbaa !5
  %8679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8680 = load i32, ptr %8679, align 4, !tbaa !5
  %8681 = call ptr @s2n_strerror_debug(i32 noundef %8680, ptr noundef @.str.16)
  %8682 = icmp eq ptr %8681, null
  br i1 %8682, label %8683, label %8736

8683:                                             ; preds = %8676
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

8685:                                             ; preds = %8684
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #12
  %8686 = call ptr @__errno_location() #13
  %8687 = load i32, ptr %8686, align 4, !tbaa !5
  store i32 %8687, ptr %184, align 4, !tbaa !5
  %8688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8689 = call i32 @s2n_print_stacktrace(ptr noundef %8688)
  %8690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8691 = trunc i8 %8690 to i1
  br i1 %8691, label %8692, label %8714

8692:                                             ; preds = %8685
  %8693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8694 = call i32 @fileno(ptr noundef %8693) #12
  %8695 = call i32 @isatty(i32 noundef %8694) #12
  %8696 = icmp ne i32 %8695, 0
  br i1 %8696, label %8697, label %8714

8697:                                             ; preds = %8692
  %8698 = load i32, ptr %184, align 4, !tbaa !5
  %8699 = call ptr @__errno_location() #13
  store i32 %8698, ptr %8699, align 4, !tbaa !5
  %8700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8701 = load i32, ptr @test_count, align 4, !tbaa !5
  %8702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8703 = load i32, ptr %8702, align 4, !tbaa !5
  %8704 = call ptr @s2n_strerror(i32 noundef %8703, ptr noundef @.str.16)
  %8705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8706 = load i32, ptr %8705, align 4, !tbaa !5
  %8707 = call ptr @s2n_strerror_debug(i32 noundef %8706, ptr noundef @.str.16)
  %8708 = call ptr @__errno_location() #13
  %8709 = load i32, ptr %8708, align 4, !tbaa !5
  %8710 = call ptr @strerror(i32 noundef %8709) #12
  %8711 = call ptr @__errno_location() #13
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  %8713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8700, ptr noundef @.str.14, i32 noundef %8701, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 408, ptr noundef %8704, ptr noundef %8707, ptr noundef %8710, i32 noundef %8712) #12
  br label %8731

8714:                                             ; preds = %8692, %8685
  %8715 = load i32, ptr %184, align 4, !tbaa !5
  %8716 = call ptr @__errno_location() #13
  store i32 %8715, ptr %8716, align 4, !tbaa !5
  %8717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8718 = load i32, ptr @test_count, align 4, !tbaa !5
  %8719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8720 = load i32, ptr %8719, align 4, !tbaa !5
  %8721 = call ptr @s2n_strerror(i32 noundef %8720, ptr noundef @.str.16)
  %8722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8723 = load i32, ptr %8722, align 4, !tbaa !5
  %8724 = call ptr @s2n_strerror_debug(i32 noundef %8723, ptr noundef @.str.16)
  %8725 = call ptr @__errno_location() #13
  %8726 = load i32, ptr %8725, align 4, !tbaa !5
  %8727 = call ptr @strerror(i32 noundef %8726) #12
  %8728 = call ptr @__errno_location() #13
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8717, ptr noundef @.str.17, i32 noundef %8718, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 408, ptr noundef %8721, ptr noundef %8724, ptr noundef %8727, i32 noundef %8729) #12
  br label %8731

8731:                                             ; preds = %8714, %8697
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #12
  br label %8732

8732:                                             ; preds = %8731
  br label %8733

8733:                                             ; preds = %8732
  call void @exit(i32 noundef 1) #14
  unreachable

8734:                                             ; No predecessors!
  br label %8735

8735:                                             ; preds = %8734
  br label %8736

8736:                                             ; preds = %8735, %8676
  br label %8737

8737:                                             ; preds = %8736
  br label %8738

8738:                                             ; preds = %8737
  br label %8739

8739:                                             ; preds = %8738
  br label %8740

8740:                                             ; preds = %8739
  br label %8741

8741:                                             ; preds = %8740
  %8742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8742, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8743 = call ptr @__errno_location() #13
  store i32 0, ptr %8743, align 4, !tbaa !5
  br label %8744

8744:                                             ; preds = %8741
  br label %8745

8745:                                             ; preds = %8744
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746
  call void @llvm.lifetime.start.p0(i64 24, ptr %185) #12
  call void @llvm.memset.p0.i64(ptr align 8 %185, i8 0, i64 24, i1 false)
  br label %8748

8748:                                             ; preds = %8747
  %8749 = load i32, ptr @test_count, align 4, !tbaa !5
  %8750 = add nsw i32 %8749, 1
  store i32 %8750, ptr @test_count, align 4, !tbaa !5
  %8751 = call i32 @s2n_alloc(ptr noundef %185, i32 noundef 1)
  %8752 = icmp eq i32 %8751, -1
  br i1 %8752, label %8753, label %8806

8753:                                             ; preds = %8748
  br label %8754

8754:                                             ; preds = %8753
  br label %8755

8755:                                             ; preds = %8754
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #12
  %8756 = call ptr @__errno_location() #13
  %8757 = load i32, ptr %8756, align 4, !tbaa !5
  store i32 %8757, ptr %186, align 4, !tbaa !5
  %8758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8759 = call i32 @s2n_print_stacktrace(ptr noundef %8758)
  %8760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8761 = trunc i8 %8760 to i1
  br i1 %8761, label %8762, label %8784

8762:                                             ; preds = %8755
  %8763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8764 = call i32 @fileno(ptr noundef %8763) #12
  %8765 = call i32 @isatty(i32 noundef %8764) #12
  %8766 = icmp ne i32 %8765, 0
  br i1 %8766, label %8767, label %8784

8767:                                             ; preds = %8762
  %8768 = load i32, ptr %186, align 4, !tbaa !5
  %8769 = call ptr @__errno_location() #13
  store i32 %8768, ptr %8769, align 4, !tbaa !5
  %8770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8771 = load i32, ptr @test_count, align 4, !tbaa !5
  %8772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8773 = load i32, ptr %8772, align 4, !tbaa !5
  %8774 = call ptr @s2n_strerror(i32 noundef %8773, ptr noundef @.str.16)
  %8775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8776 = load i32, ptr %8775, align 4, !tbaa !5
  %8777 = call ptr @s2n_strerror_debug(i32 noundef %8776, ptr noundef @.str.16)
  %8778 = call ptr @__errno_location() #13
  %8779 = load i32, ptr %8778, align 4, !tbaa !5
  %8780 = call ptr @strerror(i32 noundef %8779) #12
  %8781 = call ptr @__errno_location() #13
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  %8783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8770, ptr noundef @.str.14, i32 noundef %8771, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 411, ptr noundef %8774, ptr noundef %8777, ptr noundef %8780, i32 noundef %8782) #12
  br label %8801

8784:                                             ; preds = %8762, %8755
  %8785 = load i32, ptr %186, align 4, !tbaa !5
  %8786 = call ptr @__errno_location() #13
  store i32 %8785, ptr %8786, align 4, !tbaa !5
  %8787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8788 = load i32, ptr @test_count, align 4, !tbaa !5
  %8789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8790 = load i32, ptr %8789, align 4, !tbaa !5
  %8791 = call ptr @s2n_strerror(i32 noundef %8790, ptr noundef @.str.16)
  %8792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @s2n_strerror_debug(i32 noundef %8793, ptr noundef @.str.16)
  %8795 = call ptr @__errno_location() #13
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call ptr @strerror(i32 noundef %8796) #12
  %8798 = call ptr @__errno_location() #13
  %8799 = load i32, ptr %8798, align 4, !tbaa !5
  %8800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8787, ptr noundef @.str.17, i32 noundef %8788, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 411, ptr noundef %8791, ptr noundef %8794, ptr noundef %8797, i32 noundef %8799) #12
  br label %8801

8801:                                             ; preds = %8784, %8767
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #12
  br label %8802

8802:                                             ; preds = %8801
  br label %8803

8803:                                             ; preds = %8802
  call void @exit(i32 noundef 1) #14
  unreachable

8804:                                             ; No predecessors!
  br label %8805

8805:                                             ; preds = %8804
  br label %8806

8806:                                             ; preds = %8805, %8748
  br label %8807

8807:                                             ; preds = %8806
  br label %8808

8808:                                             ; preds = %8807
  call void @llvm.lifetime.start.p0(i64 40, ptr %187) #12
  call void @llvm.memset.p0.i64(ptr align 8 %187, i8 0, i64 40, i1 false)
  br label %8809

8809:                                             ; preds = %8808
  %8810 = load i32, ptr @test_count, align 4, !tbaa !5
  %8811 = add nsw i32 %8810, 1
  store i32 %8811, ptr @test_count, align 4, !tbaa !5
  %8812 = call i32 @s2n_stuffer_init(ptr noundef %187, ptr noundef %185)
  %8813 = icmp eq i32 %8812, -1
  br i1 %8813, label %8814, label %8867

8814:                                             ; preds = %8809
  br label %8815

8815:                                             ; preds = %8814
  br label %8816

8816:                                             ; preds = %8815
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #12
  %8817 = call ptr @__errno_location() #13
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  store i32 %8818, ptr %188, align 4, !tbaa !5
  %8819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8820 = call i32 @s2n_print_stacktrace(ptr noundef %8819)
  %8821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8822 = trunc i8 %8821 to i1
  br i1 %8822, label %8823, label %8845

8823:                                             ; preds = %8816
  %8824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8825 = call i32 @fileno(ptr noundef %8824) #12
  %8826 = call i32 @isatty(i32 noundef %8825) #12
  %8827 = icmp ne i32 %8826, 0
  br i1 %8827, label %8828, label %8845

8828:                                             ; preds = %8823
  %8829 = load i32, ptr %188, align 4, !tbaa !5
  %8830 = call ptr @__errno_location() #13
  store i32 %8829, ptr %8830, align 4, !tbaa !5
  %8831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8832 = load i32, ptr @test_count, align 4, !tbaa !5
  %8833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  %8835 = call ptr @s2n_strerror(i32 noundef %8834, ptr noundef @.str.16)
  %8836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call ptr @s2n_strerror_debug(i32 noundef %8837, ptr noundef @.str.16)
  %8839 = call ptr @__errno_location() #13
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  %8841 = call ptr @strerror(i32 noundef %8840) #12
  %8842 = call ptr @__errno_location() #13
  %8843 = load i32, ptr %8842, align 4, !tbaa !5
  %8844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8831, ptr noundef @.str.14, i32 noundef %8832, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 413, ptr noundef %8835, ptr noundef %8838, ptr noundef %8841, i32 noundef %8843) #12
  br label %8862

8845:                                             ; preds = %8823, %8816
  %8846 = load i32, ptr %188, align 4, !tbaa !5
  %8847 = call ptr @__errno_location() #13
  store i32 %8846, ptr %8847, align 4, !tbaa !5
  %8848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8849 = load i32, ptr @test_count, align 4, !tbaa !5
  %8850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @s2n_strerror(i32 noundef %8851, ptr noundef @.str.16)
  %8853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @s2n_strerror_debug(i32 noundef %8854, ptr noundef @.str.16)
  %8856 = call ptr @__errno_location() #13
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call ptr @strerror(i32 noundef %8857) #12
  %8859 = call ptr @__errno_location() #13
  %8860 = load i32, ptr %8859, align 4, !tbaa !5
  %8861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8848, ptr noundef @.str.17, i32 noundef %8849, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 413, ptr noundef %8852, ptr noundef %8855, ptr noundef %8858, i32 noundef %8860) #12
  br label %8862

8862:                                             ; preds = %8845, %8828
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #12
  br label %8863

8863:                                             ; preds = %8862
  br label %8864

8864:                                             ; preds = %8863
  call void @exit(i32 noundef 1) #14
  unreachable

8865:                                             ; No predecessors!
  br label %8866

8866:                                             ; preds = %8865
  br label %8867

8867:                                             ; preds = %8866, %8809
  br label %8868

8868:                                             ; preds = %8867
  br label %8869

8869:                                             ; preds = %8868
  br label %8870

8870:                                             ; preds = %8869
  br label %8871

8871:                                             ; preds = %8870
  br label %8872

8872:                                             ; preds = %8871
  %8873 = load i32, ptr @test_count, align 4, !tbaa !5
  %8874 = add nsw i32 %8873, 1
  store i32 %8874, ptr @test_count, align 4, !tbaa !5
  %8875 = call i32 @s2n_kem_recv_ciphertext(ptr noundef %187, ptr noundef null)
  %8876 = icmp eq i32 %8875, -1
  br i1 %8876, label %8930, label %8877

8877:                                             ; preds = %8872
  br label %8878

8878:                                             ; preds = %8877
  br label %8879

8879:                                             ; preds = %8878
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #12
  %8880 = call ptr @__errno_location() #13
  %8881 = load i32, ptr %8880, align 4, !tbaa !5
  store i32 %8881, ptr %189, align 4, !tbaa !5
  %8882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8883 = call i32 @s2n_print_stacktrace(ptr noundef %8882)
  %8884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8885 = trunc i8 %8884 to i1
  br i1 %8885, label %8886, label %8908

8886:                                             ; preds = %8879
  %8887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8888 = call i32 @fileno(ptr noundef %8887) #12
  %8889 = call i32 @isatty(i32 noundef %8888) #12
  %8890 = icmp ne i32 %8889, 0
  br i1 %8890, label %8891, label %8908

8891:                                             ; preds = %8886
  %8892 = load i32, ptr %189, align 4, !tbaa !5
  %8893 = call ptr @__errno_location() #13
  store i32 %8892, ptr %8893, align 4, !tbaa !5
  %8894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8895 = load i32, ptr @test_count, align 4, !tbaa !5
  %8896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8897 = load i32, ptr %8896, align 4, !tbaa !5
  %8898 = call ptr @s2n_strerror(i32 noundef %8897, ptr noundef @.str.16)
  %8899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8900 = load i32, ptr %8899, align 4, !tbaa !5
  %8901 = call ptr @s2n_strerror_debug(i32 noundef %8900, ptr noundef @.str.16)
  %8902 = call ptr @__errno_location() #13
  %8903 = load i32, ptr %8902, align 4, !tbaa !5
  %8904 = call ptr @strerror(i32 noundef %8903) #12
  %8905 = call ptr @__errno_location() #13
  %8906 = load i32, ptr %8905, align 4, !tbaa !5
  %8907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8894, ptr noundef @.str.14, i32 noundef %8895, ptr noundef @.str.110, ptr noundef @.str.13, i32 noundef 415, ptr noundef %8898, ptr noundef %8901, ptr noundef %8904, i32 noundef %8906) #12
  br label %8925

8908:                                             ; preds = %8886, %8879
  %8909 = load i32, ptr %189, align 4, !tbaa !5
  %8910 = call ptr @__errno_location() #13
  store i32 %8909, ptr %8910, align 4, !tbaa !5
  %8911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8912 = load i32, ptr @test_count, align 4, !tbaa !5
  %8913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call ptr @s2n_strerror(i32 noundef %8914, ptr noundef @.str.16)
  %8916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @s2n_strerror_debug(i32 noundef %8917, ptr noundef @.str.16)
  %8919 = call ptr @__errno_location() #13
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call ptr @strerror(i32 noundef %8920) #12
  %8922 = call ptr @__errno_location() #13
  %8923 = load i32, ptr %8922, align 4, !tbaa !5
  %8924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8911, ptr noundef @.str.17, i32 noundef %8912, ptr noundef @.str.110, ptr noundef @.str.13, i32 noundef 415, ptr noundef %8915, ptr noundef %8918, ptr noundef %8921, i32 noundef %8923) #12
  br label %8925

8925:                                             ; preds = %8908, %8891
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #12
  br label %8926

8926:                                             ; preds = %8925
  br label %8927

8927:                                             ; preds = %8926
  call void @exit(i32 noundef 1) #14
  unreachable

8928:                                             ; No predecessors!
  br label %8929

8929:                                             ; preds = %8928
  br label %8930

8930:                                             ; preds = %8929, %8872
  br label %8931

8931:                                             ; preds = %8930
  br label %8932

8932:                                             ; preds = %8931
  br label %8933

8933:                                             ; preds = %8932
  %8934 = load i32, ptr @test_count, align 4, !tbaa !5
  %8935 = add nsw i32 %8934, 1
  store i32 %8935, ptr @test_count, align 4, !tbaa !5
  %8936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = icmp eq i32 %8937, 402653193
  br i1 %8938, label %8992, label %8939

8939:                                             ; preds = %8933
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

8941:                                             ; preds = %8940
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #12
  %8942 = call ptr @__errno_location() #13
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  store i32 %8943, ptr %190, align 4, !tbaa !5
  %8944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8945 = call i32 @s2n_print_stacktrace(ptr noundef %8944)
  %8946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8947 = trunc i8 %8946 to i1
  br i1 %8947, label %8948, label %8970

8948:                                             ; preds = %8941
  %8949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8950 = call i32 @fileno(ptr noundef %8949) #12
  %8951 = call i32 @isatty(i32 noundef %8950) #12
  %8952 = icmp ne i32 %8951, 0
  br i1 %8952, label %8953, label %8970

8953:                                             ; preds = %8948
  %8954 = load i32, ptr %190, align 4, !tbaa !5
  %8955 = call ptr @__errno_location() #13
  store i32 %8954, ptr %8955, align 4, !tbaa !5
  %8956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8957 = load i32, ptr @test_count, align 4, !tbaa !5
  %8958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  %8960 = call ptr @s2n_strerror(i32 noundef %8959, ptr noundef @.str.16)
  %8961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8962 = load i32, ptr %8961, align 4, !tbaa !5
  %8963 = call ptr @s2n_strerror_debug(i32 noundef %8962, ptr noundef @.str.16)
  %8964 = call ptr @__errno_location() #13
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  %8966 = call ptr @strerror(i32 noundef %8965) #12
  %8967 = call ptr @__errno_location() #13
  %8968 = load i32, ptr %8967, align 4, !tbaa !5
  %8969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8956, ptr noundef @.str.14, i32 noundef %8957, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 415, ptr noundef %8960, ptr noundef %8963, ptr noundef %8966, i32 noundef %8968) #12
  br label %8987

8970:                                             ; preds = %8948, %8941
  %8971 = load i32, ptr %190, align 4, !tbaa !5
  %8972 = call ptr @__errno_location() #13
  store i32 %8971, ptr %8972, align 4, !tbaa !5
  %8973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8974 = load i32, ptr @test_count, align 4, !tbaa !5
  %8975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call ptr @s2n_strerror(i32 noundef %8976, ptr noundef @.str.16)
  %8978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call ptr @s2n_strerror_debug(i32 noundef %8979, ptr noundef @.str.16)
  %8981 = call ptr @__errno_location() #13
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call ptr @strerror(i32 noundef %8982) #12
  %8984 = call ptr @__errno_location() #13
  %8985 = load i32, ptr %8984, align 4, !tbaa !5
  %8986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8973, ptr noundef @.str.17, i32 noundef %8974, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 415, ptr noundef %8977, ptr noundef %8980, ptr noundef %8983, i32 noundef %8985) #12
  br label %8987

8987:                                             ; preds = %8970, %8953
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #12
  br label %8988

8988:                                             ; preds = %8987
  br label %8989

8989:                                             ; preds = %8988
  call void @exit(i32 noundef 1) #14
  unreachable

8990:                                             ; No predecessors!
  br label %8991

8991:                                             ; preds = %8990
  br label %8992

8992:                                             ; preds = %8991, %8933
  br label %8993

8993:                                             ; preds = %8992
  br label %8994

8994:                                             ; preds = %8993
  br label %8995

8995:                                             ; preds = %8994
  %8996 = load i32, ptr @test_count, align 4, !tbaa !5
  %8997 = add nsw i32 %8996, 1
  store i32 %8997, ptr @test_count, align 4, !tbaa !5
  %8998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8999 = load i32, ptr %8998, align 4, !tbaa !5
  %9000 = call ptr @s2n_strerror_debug(i32 noundef %8999, ptr noundef @.str.16)
  %9001 = icmp eq ptr %9000, null
  br i1 %9001, label %9002, label %9055

9002:                                             ; preds = %8995
  br label %9003

9003:                                             ; preds = %9002
  br label %9004

9004:                                             ; preds = %9003
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #12
  %9005 = call ptr @__errno_location() #13
  %9006 = load i32, ptr %9005, align 4, !tbaa !5
  store i32 %9006, ptr %191, align 4, !tbaa !5
  %9007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9008 = call i32 @s2n_print_stacktrace(ptr noundef %9007)
  %9009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9010 = trunc i8 %9009 to i1
  br i1 %9010, label %9011, label %9033

9011:                                             ; preds = %9004
  %9012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9013 = call i32 @fileno(ptr noundef %9012) #12
  %9014 = call i32 @isatty(i32 noundef %9013) #12
  %9015 = icmp ne i32 %9014, 0
  br i1 %9015, label %9016, label %9033

9016:                                             ; preds = %9011
  %9017 = load i32, ptr %191, align 4, !tbaa !5
  %9018 = call ptr @__errno_location() #13
  store i32 %9017, ptr %9018, align 4, !tbaa !5
  %9019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9020 = load i32, ptr @test_count, align 4, !tbaa !5
  %9021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9022 = load i32, ptr %9021, align 4, !tbaa !5
  %9023 = call ptr @s2n_strerror(i32 noundef %9022, ptr noundef @.str.16)
  %9024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  %9026 = call ptr @s2n_strerror_debug(i32 noundef %9025, ptr noundef @.str.16)
  %9027 = call ptr @__errno_location() #13
  %9028 = load i32, ptr %9027, align 4, !tbaa !5
  %9029 = call ptr @strerror(i32 noundef %9028) #12
  %9030 = call ptr @__errno_location() #13
  %9031 = load i32, ptr %9030, align 4, !tbaa !5
  %9032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9019, ptr noundef @.str.14, i32 noundef %9020, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 415, ptr noundef %9023, ptr noundef %9026, ptr noundef %9029, i32 noundef %9031) #12
  br label %9050

9033:                                             ; preds = %9011, %9004
  %9034 = load i32, ptr %191, align 4, !tbaa !5
  %9035 = call ptr @__errno_location() #13
  store i32 %9034, ptr %9035, align 4, !tbaa !5
  %9036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9037 = load i32, ptr @test_count, align 4, !tbaa !5
  %9038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9039 = load i32, ptr %9038, align 4, !tbaa !5
  %9040 = call ptr @s2n_strerror(i32 noundef %9039, ptr noundef @.str.16)
  %9041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9042 = load i32, ptr %9041, align 4, !tbaa !5
  %9043 = call ptr @s2n_strerror_debug(i32 noundef %9042, ptr noundef @.str.16)
  %9044 = call ptr @__errno_location() #13
  %9045 = load i32, ptr %9044, align 4, !tbaa !5
  %9046 = call ptr @strerror(i32 noundef %9045) #12
  %9047 = call ptr @__errno_location() #13
  %9048 = load i32, ptr %9047, align 4, !tbaa !5
  %9049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9036, ptr noundef @.str.17, i32 noundef %9037, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 415, ptr noundef %9040, ptr noundef %9043, ptr noundef %9046, i32 noundef %9048) #12
  br label %9050

9050:                                             ; preds = %9033, %9016
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #12
  br label %9051

9051:                                             ; preds = %9050
  br label %9052

9052:                                             ; preds = %9051
  call void @exit(i32 noundef 1) #14
  unreachable

9053:                                             ; No predecessors!
  br label %9054

9054:                                             ; preds = %9053
  br label %9055

9055:                                             ; preds = %9054, %8995
  br label %9056

9056:                                             ; preds = %9055
  br label %9057

9057:                                             ; preds = %9056
  br label %9058

9058:                                             ; preds = %9057
  br label %9059

9059:                                             ; preds = %9058
  br label %9060

9060:                                             ; preds = %9059
  %9061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9061, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9062 = call ptr @__errno_location() #13
  store i32 0, ptr %9062, align 4, !tbaa !5
  br label %9063

9063:                                             ; preds = %9060
  br label %9064

9064:                                             ; preds = %9063
  br label %9065

9065:                                             ; preds = %9064
  br label %9066

9066:                                             ; preds = %9065
  call void @llvm.lifetime.start.p0(i64 88, ptr %192) #12
  call void @llvm.memset.p0.i64(ptr align 8 %192, i8 0, i64 88, i1 false)
  %9067 = load i32, ptr %48, align 4, !tbaa !5
  %9068 = icmp ne i32 %9067, 0
  %9069 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 4
  %9070 = zext i1 %9068 to i8
  store i8 %9070, ptr %9069, align 8, !tbaa !33
  br label %9071

9071:                                             ; preds = %9066
  br label %9072

9072:                                             ; preds = %9071
  br label %9073

9073:                                             ; preds = %9072
  %9074 = load i32, ptr @test_count, align 4, !tbaa !5
  %9075 = add nsw i32 %9074, 1
  store i32 %9075, ptr @test_count, align 4, !tbaa !5
  %9076 = call i32 @s2n_kem_recv_ciphertext(ptr noundef %187, ptr noundef %192)
  %9077 = icmp eq i32 %9076, -1
  br i1 %9077, label %9131, label %9078

9078:                                             ; preds = %9073
  br label %9079

9079:                                             ; preds = %9078
  br label %9080

9080:                                             ; preds = %9079
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #12
  %9081 = call ptr @__errno_location() #13
  %9082 = load i32, ptr %9081, align 4, !tbaa !5
  store i32 %9082, ptr %193, align 4, !tbaa !5
  %9083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9084 = call i32 @s2n_print_stacktrace(ptr noundef %9083)
  %9085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9086 = trunc i8 %9085 to i1
  br i1 %9086, label %9087, label %9109

9087:                                             ; preds = %9080
  %9088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9089 = call i32 @fileno(ptr noundef %9088) #12
  %9090 = call i32 @isatty(i32 noundef %9089) #12
  %9091 = icmp ne i32 %9090, 0
  br i1 %9091, label %9092, label %9109

9092:                                             ; preds = %9087
  %9093 = load i32, ptr %193, align 4, !tbaa !5
  %9094 = call ptr @__errno_location() #13
  store i32 %9093, ptr %9094, align 4, !tbaa !5
  %9095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9096 = load i32, ptr @test_count, align 4, !tbaa !5
  %9097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  %9099 = call ptr @s2n_strerror(i32 noundef %9098, ptr noundef @.str.16)
  %9100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9101 = load i32, ptr %9100, align 4, !tbaa !5
  %9102 = call ptr @s2n_strerror_debug(i32 noundef %9101, ptr noundef @.str.16)
  %9103 = call ptr @__errno_location() #13
  %9104 = load i32, ptr %9103, align 4, !tbaa !5
  %9105 = call ptr @strerror(i32 noundef %9104) #12
  %9106 = call ptr @__errno_location() #13
  %9107 = load i32, ptr %9106, align 4, !tbaa !5
  %9108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9095, ptr noundef @.str.14, i32 noundef %9096, ptr noundef @.str.111, ptr noundef @.str.13, i32 noundef 419, ptr noundef %9099, ptr noundef %9102, ptr noundef %9105, i32 noundef %9107) #12
  br label %9126

9109:                                             ; preds = %9087, %9080
  %9110 = load i32, ptr %193, align 4, !tbaa !5
  %9111 = call ptr @__errno_location() #13
  store i32 %9110, ptr %9111, align 4, !tbaa !5
  %9112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9113 = load i32, ptr @test_count, align 4, !tbaa !5
  %9114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call ptr @s2n_strerror(i32 noundef %9115, ptr noundef @.str.16)
  %9117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9118 = load i32, ptr %9117, align 4, !tbaa !5
  %9119 = call ptr @s2n_strerror_debug(i32 noundef %9118, ptr noundef @.str.16)
  %9120 = call ptr @__errno_location() #13
  %9121 = load i32, ptr %9120, align 4, !tbaa !5
  %9122 = call ptr @strerror(i32 noundef %9121) #12
  %9123 = call ptr @__errno_location() #13
  %9124 = load i32, ptr %9123, align 4, !tbaa !5
  %9125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9112, ptr noundef @.str.17, i32 noundef %9113, ptr noundef @.str.111, ptr noundef @.str.13, i32 noundef 419, ptr noundef %9116, ptr noundef %9119, ptr noundef %9122, i32 noundef %9124) #12
  br label %9126

9126:                                             ; preds = %9109, %9092
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #12
  br label %9127

9127:                                             ; preds = %9126
  br label %9128

9128:                                             ; preds = %9127
  call void @exit(i32 noundef 1) #14
  unreachable

9129:                                             ; No predecessors!
  br label %9130

9130:                                             ; preds = %9129
  br label %9131

9131:                                             ; preds = %9130, %9073
  br label %9132

9132:                                             ; preds = %9131
  br label %9133

9133:                                             ; preds = %9132
  br label %9134

9134:                                             ; preds = %9133
  %9135 = load i32, ptr @test_count, align 4, !tbaa !5
  %9136 = add nsw i32 %9135, 1
  store i32 %9136, ptr @test_count, align 4, !tbaa !5
  %9137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9138 = load i32, ptr %9137, align 4, !tbaa !5
  %9139 = icmp eq i32 %9138, 402653193
  br i1 %9139, label %9193, label %9140

9140:                                             ; preds = %9134
  br label %9141

9141:                                             ; preds = %9140
  br label %9142

9142:                                             ; preds = %9141
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #12
  %9143 = call ptr @__errno_location() #13
  %9144 = load i32, ptr %9143, align 4, !tbaa !5
  store i32 %9144, ptr %194, align 4, !tbaa !5
  %9145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9146 = call i32 @s2n_print_stacktrace(ptr noundef %9145)
  %9147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9148 = trunc i8 %9147 to i1
  br i1 %9148, label %9149, label %9171

9149:                                             ; preds = %9142
  %9150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9151 = call i32 @fileno(ptr noundef %9150) #12
  %9152 = call i32 @isatty(i32 noundef %9151) #12
  %9153 = icmp ne i32 %9152, 0
  br i1 %9153, label %9154, label %9171

9154:                                             ; preds = %9149
  %9155 = load i32, ptr %194, align 4, !tbaa !5
  %9156 = call ptr @__errno_location() #13
  store i32 %9155, ptr %9156, align 4, !tbaa !5
  %9157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9158 = load i32, ptr @test_count, align 4, !tbaa !5
  %9159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9160 = load i32, ptr %9159, align 4, !tbaa !5
  %9161 = call ptr @s2n_strerror(i32 noundef %9160, ptr noundef @.str.16)
  %9162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9163 = load i32, ptr %9162, align 4, !tbaa !5
  %9164 = call ptr @s2n_strerror_debug(i32 noundef %9163, ptr noundef @.str.16)
  %9165 = call ptr @__errno_location() #13
  %9166 = load i32, ptr %9165, align 4, !tbaa !5
  %9167 = call ptr @strerror(i32 noundef %9166) #12
  %9168 = call ptr @__errno_location() #13
  %9169 = load i32, ptr %9168, align 4, !tbaa !5
  %9170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9157, ptr noundef @.str.14, i32 noundef %9158, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 419, ptr noundef %9161, ptr noundef %9164, ptr noundef %9167, i32 noundef %9169) #12
  br label %9188

9171:                                             ; preds = %9149, %9142
  %9172 = load i32, ptr %194, align 4, !tbaa !5
  %9173 = call ptr @__errno_location() #13
  store i32 %9172, ptr %9173, align 4, !tbaa !5
  %9174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9175 = load i32, ptr @test_count, align 4, !tbaa !5
  %9176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call ptr @s2n_strerror(i32 noundef %9177, ptr noundef @.str.16)
  %9179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9180 = load i32, ptr %9179, align 4, !tbaa !5
  %9181 = call ptr @s2n_strerror_debug(i32 noundef %9180, ptr noundef @.str.16)
  %9182 = call ptr @__errno_location() #13
  %9183 = load i32, ptr %9182, align 4, !tbaa !5
  %9184 = call ptr @strerror(i32 noundef %9183) #12
  %9185 = call ptr @__errno_location() #13
  %9186 = load i32, ptr %9185, align 4, !tbaa !5
  %9187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9174, ptr noundef @.str.17, i32 noundef %9175, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 419, ptr noundef %9178, ptr noundef %9181, ptr noundef %9184, i32 noundef %9186) #12
  br label %9188

9188:                                             ; preds = %9171, %9154
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #12
  br label %9189

9189:                                             ; preds = %9188
  br label %9190

9190:                                             ; preds = %9189
  call void @exit(i32 noundef 1) #14
  unreachable

9191:                                             ; No predecessors!
  br label %9192

9192:                                             ; preds = %9191
  br label %9193

9193:                                             ; preds = %9192, %9134
  br label %9194

9194:                                             ; preds = %9193
  br label %9195

9195:                                             ; preds = %9194
  br label %9196

9196:                                             ; preds = %9195
  %9197 = load i32, ptr @test_count, align 4, !tbaa !5
  %9198 = add nsw i32 %9197, 1
  store i32 %9198, ptr @test_count, align 4, !tbaa !5
  %9199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9200 = load i32, ptr %9199, align 4, !tbaa !5
  %9201 = call ptr @s2n_strerror_debug(i32 noundef %9200, ptr noundef @.str.16)
  %9202 = icmp eq ptr %9201, null
  br i1 %9202, label %9203, label %9256

9203:                                             ; preds = %9196
  br label %9204

9204:                                             ; preds = %9203
  br label %9205

9205:                                             ; preds = %9204
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #12
  %9206 = call ptr @__errno_location() #13
  %9207 = load i32, ptr %9206, align 4, !tbaa !5
  store i32 %9207, ptr %195, align 4, !tbaa !5
  %9208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9209 = call i32 @s2n_print_stacktrace(ptr noundef %9208)
  %9210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9211 = trunc i8 %9210 to i1
  br i1 %9211, label %9212, label %9234

9212:                                             ; preds = %9205
  %9213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9214 = call i32 @fileno(ptr noundef %9213) #12
  %9215 = call i32 @isatty(i32 noundef %9214) #12
  %9216 = icmp ne i32 %9215, 0
  br i1 %9216, label %9217, label %9234

9217:                                             ; preds = %9212
  %9218 = load i32, ptr %195, align 4, !tbaa !5
  %9219 = call ptr @__errno_location() #13
  store i32 %9218, ptr %9219, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = load i32, ptr @test_count, align 4, !tbaa !5
  %9222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9223 = load i32, ptr %9222, align 4, !tbaa !5
  %9224 = call ptr @s2n_strerror(i32 noundef %9223, ptr noundef @.str.16)
  %9225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9226 = load i32, ptr %9225, align 4, !tbaa !5
  %9227 = call ptr @s2n_strerror_debug(i32 noundef %9226, ptr noundef @.str.16)
  %9228 = call ptr @__errno_location() #13
  %9229 = load i32, ptr %9228, align 4, !tbaa !5
  %9230 = call ptr @strerror(i32 noundef %9229) #12
  %9231 = call ptr @__errno_location() #13
  %9232 = load i32, ptr %9231, align 4, !tbaa !5
  %9233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9220, ptr noundef @.str.14, i32 noundef %9221, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 419, ptr noundef %9224, ptr noundef %9227, ptr noundef %9230, i32 noundef %9232) #12
  br label %9251

9234:                                             ; preds = %9212, %9205
  %9235 = load i32, ptr %195, align 4, !tbaa !5
  %9236 = call ptr @__errno_location() #13
  store i32 %9235, ptr %9236, align 4, !tbaa !5
  %9237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9238 = load i32, ptr @test_count, align 4, !tbaa !5
  %9239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9240 = load i32, ptr %9239, align 4, !tbaa !5
  %9241 = call ptr @s2n_strerror(i32 noundef %9240, ptr noundef @.str.16)
  %9242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9243 = load i32, ptr %9242, align 4, !tbaa !5
  %9244 = call ptr @s2n_strerror_debug(i32 noundef %9243, ptr noundef @.str.16)
  %9245 = call ptr @__errno_location() #13
  %9246 = load i32, ptr %9245, align 4, !tbaa !5
  %9247 = call ptr @strerror(i32 noundef %9246) #12
  %9248 = call ptr @__errno_location() #13
  %9249 = load i32, ptr %9248, align 4, !tbaa !5
  %9250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9237, ptr noundef @.str.17, i32 noundef %9238, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 419, ptr noundef %9241, ptr noundef %9244, ptr noundef %9247, i32 noundef %9249) #12
  br label %9251

9251:                                             ; preds = %9234, %9217
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #12
  br label %9252

9252:                                             ; preds = %9251
  br label %9253

9253:                                             ; preds = %9252
  call void @exit(i32 noundef 1) #14
  unreachable

9254:                                             ; No predecessors!
  br label %9255

9255:                                             ; preds = %9254
  br label %9256

9256:                                             ; preds = %9255, %9196
  br label %9257

9257:                                             ; preds = %9256
  br label %9258

9258:                                             ; preds = %9257
  br label %9259

9259:                                             ; preds = %9258
  br label %9260

9260:                                             ; preds = %9259
  br label %9261

9261:                                             ; preds = %9260
  %9262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9262, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9263 = call ptr @__errno_location() #13
  store i32 0, ptr %9263, align 4, !tbaa !5
  br label %9264

9264:                                             ; preds = %9261
  br label %9265

9265:                                             ; preds = %9264
  br label %9266

9266:                                             ; preds = %9265
  br label %9267

9267:                                             ; preds = %9266
  %9268 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %9268, align 8, !tbaa !32
  br label %9269

9269:                                             ; preds = %9267
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  %9272 = load i32, ptr @test_count, align 4, !tbaa !5
  %9273 = add nsw i32 %9272, 1
  store i32 %9273, ptr @test_count, align 4, !tbaa !5
  %9274 = call i32 @s2n_kem_recv_ciphertext(ptr noundef %187, ptr noundef %192)
  %9275 = icmp eq i32 %9274, -1
  br i1 %9275, label %9329, label %9276

9276:                                             ; preds = %9271
  br label %9277

9277:                                             ; preds = %9276
  br label %9278

9278:                                             ; preds = %9277
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #12
  %9279 = call ptr @__errno_location() #13
  %9280 = load i32, ptr %9279, align 4, !tbaa !5
  store i32 %9280, ptr %196, align 4, !tbaa !5
  %9281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9282 = call i32 @s2n_print_stacktrace(ptr noundef %9281)
  %9283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9284 = trunc i8 %9283 to i1
  br i1 %9284, label %9285, label %9307

9285:                                             ; preds = %9278
  %9286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9287 = call i32 @fileno(ptr noundef %9286) #12
  %9288 = call i32 @isatty(i32 noundef %9287) #12
  %9289 = icmp ne i32 %9288, 0
  br i1 %9289, label %9290, label %9307

9290:                                             ; preds = %9285
  %9291 = load i32, ptr %196, align 4, !tbaa !5
  %9292 = call ptr @__errno_location() #13
  store i32 %9291, ptr %9292, align 4, !tbaa !5
  %9293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9294 = load i32, ptr @test_count, align 4, !tbaa !5
  %9295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9296 = load i32, ptr %9295, align 4, !tbaa !5
  %9297 = call ptr @s2n_strerror(i32 noundef %9296, ptr noundef @.str.16)
  %9298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  %9300 = call ptr @s2n_strerror_debug(i32 noundef %9299, ptr noundef @.str.16)
  %9301 = call ptr @__errno_location() #13
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call ptr @strerror(i32 noundef %9302) #12
  %9304 = call ptr @__errno_location() #13
  %9305 = load i32, ptr %9304, align 4, !tbaa !5
  %9306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9293, ptr noundef @.str.14, i32 noundef %9294, ptr noundef @.str.111, ptr noundef @.str.13, i32 noundef 422, ptr noundef %9297, ptr noundef %9300, ptr noundef %9303, i32 noundef %9305) #12
  br label %9324

9307:                                             ; preds = %9285, %9278
  %9308 = load i32, ptr %196, align 4, !tbaa !5
  %9309 = call ptr @__errno_location() #13
  store i32 %9308, ptr %9309, align 4, !tbaa !5
  %9310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9311 = load i32, ptr @test_count, align 4, !tbaa !5
  %9312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9313 = load i32, ptr %9312, align 4, !tbaa !5
  %9314 = call ptr @s2n_strerror(i32 noundef %9313, ptr noundef @.str.16)
  %9315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9316 = load i32, ptr %9315, align 4, !tbaa !5
  %9317 = call ptr @s2n_strerror_debug(i32 noundef %9316, ptr noundef @.str.16)
  %9318 = call ptr @__errno_location() #13
  %9319 = load i32, ptr %9318, align 4, !tbaa !5
  %9320 = call ptr @strerror(i32 noundef %9319) #12
  %9321 = call ptr @__errno_location() #13
  %9322 = load i32, ptr %9321, align 4, !tbaa !5
  %9323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9310, ptr noundef @.str.17, i32 noundef %9311, ptr noundef @.str.111, ptr noundef @.str.13, i32 noundef 422, ptr noundef %9314, ptr noundef %9317, ptr noundef %9320, i32 noundef %9322) #12
  br label %9324

9324:                                             ; preds = %9307, %9290
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #12
  br label %9325

9325:                                             ; preds = %9324
  br label %9326

9326:                                             ; preds = %9325
  call void @exit(i32 noundef 1) #14
  unreachable

9327:                                             ; No predecessors!
  br label %9328

9328:                                             ; preds = %9327
  br label %9329

9329:                                             ; preds = %9328, %9271
  br label %9330

9330:                                             ; preds = %9329
  br label %9331

9331:                                             ; preds = %9330
  br label %9332

9332:                                             ; preds = %9331
  %9333 = load i32, ptr @test_count, align 4, !tbaa !5
  %9334 = add nsw i32 %9333, 1
  store i32 %9334, ptr @test_count, align 4, !tbaa !5
  %9335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9336 = load i32, ptr %9335, align 4, !tbaa !5
  %9337 = icmp eq i32 %9336, 402653193
  br i1 %9337, label %9391, label %9338

9338:                                             ; preds = %9332
  br label %9339

9339:                                             ; preds = %9338
  br label %9340

9340:                                             ; preds = %9339
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #12
  %9341 = call ptr @__errno_location() #13
  %9342 = load i32, ptr %9341, align 4, !tbaa !5
  store i32 %9342, ptr %197, align 4, !tbaa !5
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = call i32 @s2n_print_stacktrace(ptr noundef %9343)
  %9345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9346 = trunc i8 %9345 to i1
  br i1 %9346, label %9347, label %9369

9347:                                             ; preds = %9340
  %9348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9349 = call i32 @fileno(ptr noundef %9348) #12
  %9350 = call i32 @isatty(i32 noundef %9349) #12
  %9351 = icmp ne i32 %9350, 0
  br i1 %9351, label %9352, label %9369

9352:                                             ; preds = %9347
  %9353 = load i32, ptr %197, align 4, !tbaa !5
  %9354 = call ptr @__errno_location() #13
  store i32 %9353, ptr %9354, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = load i32, ptr @test_count, align 4, !tbaa !5
  %9357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9358 = load i32, ptr %9357, align 4, !tbaa !5
  %9359 = call ptr @s2n_strerror(i32 noundef %9358, ptr noundef @.str.16)
  %9360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror_debug(i32 noundef %9361, ptr noundef @.str.16)
  %9363 = call ptr @__errno_location() #13
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @strerror(i32 noundef %9364) #12
  %9366 = call ptr @__errno_location() #13
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9355, ptr noundef @.str.14, i32 noundef %9356, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 422, ptr noundef %9359, ptr noundef %9362, ptr noundef %9365, i32 noundef %9367) #12
  br label %9386

9369:                                             ; preds = %9347, %9340
  %9370 = load i32, ptr %197, align 4, !tbaa !5
  %9371 = call ptr @__errno_location() #13
  store i32 %9370, ptr %9371, align 4, !tbaa !5
  %9372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9373 = load i32, ptr @test_count, align 4, !tbaa !5
  %9374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  %9376 = call ptr @s2n_strerror(i32 noundef %9375, ptr noundef @.str.16)
  %9377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9378 = load i32, ptr %9377, align 4, !tbaa !5
  %9379 = call ptr @s2n_strerror_debug(i32 noundef %9378, ptr noundef @.str.16)
  %9380 = call ptr @__errno_location() #13
  %9381 = load i32, ptr %9380, align 4, !tbaa !5
  %9382 = call ptr @strerror(i32 noundef %9381) #12
  %9383 = call ptr @__errno_location() #13
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9372, ptr noundef @.str.17, i32 noundef %9373, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 422, ptr noundef %9376, ptr noundef %9379, ptr noundef %9382, i32 noundef %9384) #12
  br label %9386

9386:                                             ; preds = %9369, %9352
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #12
  br label %9387

9387:                                             ; preds = %9386
  br label %9388

9388:                                             ; preds = %9387
  call void @exit(i32 noundef 1) #14
  unreachable

9389:                                             ; No predecessors!
  br label %9390

9390:                                             ; preds = %9389
  br label %9391

9391:                                             ; preds = %9390, %9332
  br label %9392

9392:                                             ; preds = %9391
  br label %9393

9393:                                             ; preds = %9392
  br label %9394

9394:                                             ; preds = %9393
  %9395 = load i32, ptr @test_count, align 4, !tbaa !5
  %9396 = add nsw i32 %9395, 1
  store i32 %9396, ptr @test_count, align 4, !tbaa !5
  %9397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9398 = load i32, ptr %9397, align 4, !tbaa !5
  %9399 = call ptr @s2n_strerror_debug(i32 noundef %9398, ptr noundef @.str.16)
  %9400 = icmp eq ptr %9399, null
  br i1 %9400, label %9401, label %9454

9401:                                             ; preds = %9394
  br label %9402

9402:                                             ; preds = %9401
  br label %9403

9403:                                             ; preds = %9402
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #12
  %9404 = call ptr @__errno_location() #13
  %9405 = load i32, ptr %9404, align 4, !tbaa !5
  store i32 %9405, ptr %198, align 4, !tbaa !5
  %9406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9407 = call i32 @s2n_print_stacktrace(ptr noundef %9406)
  %9408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9409 = trunc i8 %9408 to i1
  br i1 %9409, label %9410, label %9432

9410:                                             ; preds = %9403
  %9411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9412 = call i32 @fileno(ptr noundef %9411) #12
  %9413 = call i32 @isatty(i32 noundef %9412) #12
  %9414 = icmp ne i32 %9413, 0
  br i1 %9414, label %9415, label %9432

9415:                                             ; preds = %9410
  %9416 = load i32, ptr %198, align 4, !tbaa !5
  %9417 = call ptr @__errno_location() #13
  store i32 %9416, ptr %9417, align 4, !tbaa !5
  %9418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9419 = load i32, ptr @test_count, align 4, !tbaa !5
  %9420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9421 = load i32, ptr %9420, align 4, !tbaa !5
  %9422 = call ptr @s2n_strerror(i32 noundef %9421, ptr noundef @.str.16)
  %9423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9424 = load i32, ptr %9423, align 4, !tbaa !5
  %9425 = call ptr @s2n_strerror_debug(i32 noundef %9424, ptr noundef @.str.16)
  %9426 = call ptr @__errno_location() #13
  %9427 = load i32, ptr %9426, align 4, !tbaa !5
  %9428 = call ptr @strerror(i32 noundef %9427) #12
  %9429 = call ptr @__errno_location() #13
  %9430 = load i32, ptr %9429, align 4, !tbaa !5
  %9431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9418, ptr noundef @.str.14, i32 noundef %9419, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 422, ptr noundef %9422, ptr noundef %9425, ptr noundef %9428, i32 noundef %9430) #12
  br label %9449

9432:                                             ; preds = %9410, %9403
  %9433 = load i32, ptr %198, align 4, !tbaa !5
  %9434 = call ptr @__errno_location() #13
  store i32 %9433, ptr %9434, align 4, !tbaa !5
  %9435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9436 = load i32, ptr @test_count, align 4, !tbaa !5
  %9437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9438 = load i32, ptr %9437, align 4, !tbaa !5
  %9439 = call ptr @s2n_strerror(i32 noundef %9438, ptr noundef @.str.16)
  %9440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9441 = load i32, ptr %9440, align 4, !tbaa !5
  %9442 = call ptr @s2n_strerror_debug(i32 noundef %9441, ptr noundef @.str.16)
  %9443 = call ptr @__errno_location() #13
  %9444 = load i32, ptr %9443, align 4, !tbaa !5
  %9445 = call ptr @strerror(i32 noundef %9444) #12
  %9446 = call ptr @__errno_location() #13
  %9447 = load i32, ptr %9446, align 4, !tbaa !5
  %9448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9435, ptr noundef @.str.17, i32 noundef %9436, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 422, ptr noundef %9439, ptr noundef %9442, ptr noundef %9445, i32 noundef %9447) #12
  br label %9449

9449:                                             ; preds = %9432, %9415
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #12
  br label %9450

9450:                                             ; preds = %9449
  br label %9451

9451:                                             ; preds = %9450
  call void @exit(i32 noundef 1) #14
  unreachable

9452:                                             ; No predecessors!
  br label %9453

9453:                                             ; preds = %9452
  br label %9454

9454:                                             ; preds = %9453, %9394
  br label %9455

9455:                                             ; preds = %9454
  br label %9456

9456:                                             ; preds = %9455
  br label %9457

9457:                                             ; preds = %9456
  br label %9458

9458:                                             ; preds = %9457
  br label %9459

9459:                                             ; preds = %9458
  %9460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9460, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9461 = call ptr @__errno_location() #13
  store i32 0, ptr %9461, align 4, !tbaa !5
  br label %9462

9462:                                             ; preds = %9459
  br label %9463

9463:                                             ; preds = %9462
  br label %9464

9464:                                             ; preds = %9463
  br label %9465

9465:                                             ; preds = %9464
  br label %9466

9466:                                             ; preds = %9465
  %9467 = load i32, ptr @test_count, align 4, !tbaa !5
  %9468 = add nsw i32 %9467, 1
  store i32 %9468, ptr @test_count, align 4, !tbaa !5
  %9469 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 2
  %9470 = call i32 @s2n_alloc(ptr noundef %9469, i32 noundef 3)
  %9471 = icmp eq i32 %9470, -1
  br i1 %9471, label %9472, label %9525

9472:                                             ; preds = %9466
  br label %9473

9473:                                             ; preds = %9472
  br label %9474

9474:                                             ; preds = %9473
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #12
  %9475 = call ptr @__errno_location() #13
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  store i32 %9476, ptr %199, align 4, !tbaa !5
  %9477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9478 = call i32 @s2n_print_stacktrace(ptr noundef %9477)
  %9479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9480 = trunc i8 %9479 to i1
  br i1 %9480, label %9481, label %9503

9481:                                             ; preds = %9474
  %9482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9483 = call i32 @fileno(ptr noundef %9482) #12
  %9484 = call i32 @isatty(i32 noundef %9483) #12
  %9485 = icmp ne i32 %9484, 0
  br i1 %9485, label %9486, label %9503

9486:                                             ; preds = %9481
  %9487 = load i32, ptr %199, align 4, !tbaa !5
  %9488 = call ptr @__errno_location() #13
  store i32 %9487, ptr %9488, align 4, !tbaa !5
  %9489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9490 = load i32, ptr @test_count, align 4, !tbaa !5
  %9491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9492 = load i32, ptr %9491, align 4, !tbaa !5
  %9493 = call ptr @s2n_strerror(i32 noundef %9492, ptr noundef @.str.16)
  %9494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  %9496 = call ptr @s2n_strerror_debug(i32 noundef %9495, ptr noundef @.str.16)
  %9497 = call ptr @__errno_location() #13
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @strerror(i32 noundef %9498) #12
  %9500 = call ptr @__errno_location() #13
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9489, ptr noundef @.str.14, i32 noundef %9490, ptr noundef @.str.102, ptr noundef @.str.13, i32 noundef 425, ptr noundef %9493, ptr noundef %9496, ptr noundef %9499, i32 noundef %9501) #12
  br label %9520

9503:                                             ; preds = %9481, %9474
  %9504 = load i32, ptr %199, align 4, !tbaa !5
  %9505 = call ptr @__errno_location() #13
  store i32 %9504, ptr %9505, align 4, !tbaa !5
  %9506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9507 = load i32, ptr @test_count, align 4, !tbaa !5
  %9508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9509 = load i32, ptr %9508, align 4, !tbaa !5
  %9510 = call ptr @s2n_strerror(i32 noundef %9509, ptr noundef @.str.16)
  %9511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9512 = load i32, ptr %9511, align 4, !tbaa !5
  %9513 = call ptr @s2n_strerror_debug(i32 noundef %9512, ptr noundef @.str.16)
  %9514 = call ptr @__errno_location() #13
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call ptr @strerror(i32 noundef %9515) #12
  %9517 = call ptr @__errno_location() #13
  %9518 = load i32, ptr %9517, align 4, !tbaa !5
  %9519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9506, ptr noundef @.str.17, i32 noundef %9507, ptr noundef @.str.102, ptr noundef @.str.13, i32 noundef 425, ptr noundef %9510, ptr noundef %9513, ptr noundef %9516, i32 noundef %9518) #12
  br label %9520

9520:                                             ; preds = %9503, %9486
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #12
  br label %9521

9521:                                             ; preds = %9520
  br label %9522

9522:                                             ; preds = %9521
  call void @exit(i32 noundef 1) #14
  unreachable

9523:                                             ; No predecessors!
  br label %9524

9524:                                             ; preds = %9523
  br label %9525

9525:                                             ; preds = %9524, %9466
  br label %9526

9526:                                             ; preds = %9525
  br label %9527

9527:                                             ; preds = %9526
  br label %9528

9528:                                             ; preds = %9527
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #12
  store i32 3, ptr %200, align 4, !tbaa !5
  %9529 = load i32, ptr %200, align 4, !tbaa !5
  %9530 = icmp ne i32 %9529, 0
  %9531 = xor i1 %9530, true
  %9532 = xor i1 %9531, true
  %9533 = zext i1 %9532 to i32
  %9534 = sext i32 %9533 to i64
  %9535 = call i64 @llvm.expect.i64(i64 %9534, i64 1)
  %9536 = icmp ne i64 %9535, 0
  br i1 %9536, label %9537, label %9586

9537:                                             ; preds = %9528
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #12
  %9538 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 2
  %9539 = getelementptr inbounds %struct.s2n_blob, ptr %9538, i32 0, i32 0
  %9540 = load ptr, ptr %9539, align 8, !tbaa !37
  %9541 = load i32, ptr %200, align 4, !tbaa !5
  %9542 = sext i32 %9541 to i64
  %9543 = call ptr @s2n_ensure_memmove_trace(ptr noundef %9540, ptr noundef @TEST_PRIVATE_KEY, i64 noundef %9542)
  store ptr %9543, ptr %201, align 8, !tbaa !9
  br label %9544

9544:                                             ; preds = %9537
  %9545 = load ptr, ptr %201, align 8, !tbaa !9
  %9546 = icmp ne ptr %9545, null
  br i1 %9546, label %9580, label %9547

9547:                                             ; preds = %9544
  br label %9548

9548:                                             ; preds = %9547
  br label %9549

9549:                                             ; preds = %9548
  %9550 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9551 = getelementptr inbounds %struct.s2n_debug_info, ptr %9550, i32 0, i32 0
  store ptr @.str.112, ptr %9551, align 8, !tbaa !47
  %9552 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9553 = getelementptr inbounds %struct.s2n_debug_info, ptr %9552, i32 0, i32 0
  %9554 = load ptr, ptr %9553, align 8, !tbaa !47
  %9555 = getelementptr inbounds i8, ptr %9554, i64 21
  %9556 = call ptr @strrchr(ptr noundef %9555, i32 noundef 47) #15
  %9557 = icmp ne ptr %9556, null
  br i1 %9557, label %9558, label %9565

9558:                                             ; preds = %9549
  %9559 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9560 = getelementptr inbounds %struct.s2n_debug_info, ptr %9559, i32 0, i32 0
  %9561 = load ptr, ptr %9560, align 8, !tbaa !47
  %9562 = getelementptr inbounds i8, ptr %9561, i64 21
  %9563 = call ptr @strrchr(ptr noundef %9562, i32 noundef 47) #15
  %9564 = getelementptr inbounds i8, ptr %9563, i64 1
  br label %9570

9565:                                             ; preds = %9549
  %9566 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9567 = getelementptr inbounds %struct.s2n_debug_info, ptr %9566, i32 0, i32 0
  %9568 = load ptr, ptr %9567, align 8, !tbaa !47
  %9569 = getelementptr inbounds i8, ptr %9568, i64 21
  br label %9570

9570:                                             ; preds = %9565, %9558
  %9571 = phi ptr [ %9564, %9558 ], [ %9569, %9565 ]
  %9572 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9573 = getelementptr inbounds %struct.s2n_debug_info, ptr %9572, i32 0, i32 1
  store ptr %9571, ptr %9573, align 8, !tbaa !49
  %9574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %9574, align 4, !tbaa !5
  %9575 = call i32 @s2n_calculate_stacktrace()
  br label %9576

9576:                                             ; preds = %9570
  br label %9577

9577:                                             ; preds = %9576
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %30, align 4
  br label %9583

9578:                                             ; No predecessors!
  br label %9579

9579:                                             ; preds = %9578
  br label %9580

9580:                                             ; preds = %9579, %9544
  br label %9581

9581:                                             ; preds = %9580
  br label %9582

9582:                                             ; preds = %9581
  store i32 0, ptr %30, align 4
  br label %9583

9583:                                             ; preds = %9582, %9577
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #12
  %9584 = load i32, ptr %30, align 4
  switch i32 %9584, label %9587 [
    i32 0, label %9585
  ]

9585:                                             ; preds = %9583
  br label %9586

9586:                                             ; preds = %9585, %9528
  store i32 0, ptr %30, align 4
  br label %9587

9587:                                             ; preds = %9586, %9583
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #12
  %9588 = load i32, ptr %30, align 4
  switch i32 %9588, label %10289 [
    i32 0, label %9589
  ]

9589:                                             ; preds = %9587
  br label %9590

9590:                                             ; preds = %9589
  br label %9591

9591:                                             ; preds = %9590
  call void @llvm.lifetime.start.p0(i64 24, ptr %202) #12
  call void @llvm.memset.p0.i64(ptr align 8 %202, i8 0, i64 24, i1 false)
  br label %9592

9592:                                             ; preds = %9591
  %9593 = load i32, ptr @test_count, align 4, !tbaa !5
  %9594 = add nsw i32 %9593, 1
  store i32 %9594, ptr @test_count, align 4, !tbaa !5
  %9595 = call i32 @s2n_alloc(ptr noundef %202, i32 noundef 7)
  %9596 = icmp eq i32 %9595, -1
  br i1 %9596, label %9597, label %9650

9597:                                             ; preds = %9592
  br label %9598

9598:                                             ; preds = %9597
  br label %9599

9599:                                             ; preds = %9598
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #12
  %9600 = call ptr @__errno_location() #13
  %9601 = load i32, ptr %9600, align 4, !tbaa !5
  store i32 %9601, ptr %203, align 4, !tbaa !5
  %9602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9603 = call i32 @s2n_print_stacktrace(ptr noundef %9602)
  %9604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9605 = trunc i8 %9604 to i1
  br i1 %9605, label %9606, label %9628

9606:                                             ; preds = %9599
  %9607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9608 = call i32 @fileno(ptr noundef %9607) #12
  %9609 = call i32 @isatty(i32 noundef %9608) #12
  %9610 = icmp ne i32 %9609, 0
  br i1 %9610, label %9611, label %9628

9611:                                             ; preds = %9606
  %9612 = load i32, ptr %203, align 4, !tbaa !5
  %9613 = call ptr @__errno_location() #13
  store i32 %9612, ptr %9613, align 4, !tbaa !5
  %9614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9615 = load i32, ptr @test_count, align 4, !tbaa !5
  %9616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9617 = load i32, ptr %9616, align 4, !tbaa !5
  %9618 = call ptr @s2n_strerror(i32 noundef %9617, ptr noundef @.str.16)
  %9619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @s2n_strerror_debug(i32 noundef %9620, ptr noundef @.str.16)
  %9622 = call ptr @__errno_location() #13
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call ptr @strerror(i32 noundef %9623) #12
  %9625 = call ptr @__errno_location() #13
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  %9627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9614, ptr noundef @.str.14, i32 noundef %9615, ptr noundef @.str.113, ptr noundef @.str.13, i32 noundef 428, ptr noundef %9618, ptr noundef %9621, ptr noundef %9624, i32 noundef %9626) #12
  br label %9645

9628:                                             ; preds = %9606, %9599
  %9629 = load i32, ptr %203, align 4, !tbaa !5
  %9630 = call ptr @__errno_location() #13
  store i32 %9629, ptr %9630, align 4, !tbaa !5
  %9631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9632 = load i32, ptr @test_count, align 4, !tbaa !5
  %9633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9634 = load i32, ptr %9633, align 4, !tbaa !5
  %9635 = call ptr @s2n_strerror(i32 noundef %9634, ptr noundef @.str.16)
  %9636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @s2n_strerror_debug(i32 noundef %9637, ptr noundef @.str.16)
  %9639 = call ptr @__errno_location() #13
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call ptr @strerror(i32 noundef %9640) #12
  %9642 = call ptr @__errno_location() #13
  %9643 = load i32, ptr %9642, align 4, !tbaa !5
  %9644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9631, ptr noundef @.str.17, i32 noundef %9632, ptr noundef @.str.113, ptr noundef @.str.13, i32 noundef 428, ptr noundef %9635, ptr noundef %9638, ptr noundef %9641, i32 noundef %9643) #12
  br label %9645

9645:                                             ; preds = %9628, %9611
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #12
  br label %9646

9646:                                             ; preds = %9645
  br label %9647

9647:                                             ; preds = %9646
  call void @exit(i32 noundef 1) #14
  unreachable

9648:                                             ; No predecessors!
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

9650:                                             ; preds = %9649, %9592
  br label %9651

9651:                                             ; preds = %9650
  br label %9652

9652:                                             ; preds = %9651
  call void @llvm.lifetime.start.p0(i64 40, ptr %204) #12
  call void @llvm.memset.p0.i64(ptr align 8 %204, i8 0, i64 40, i1 false)
  br label %9653

9653:                                             ; preds = %9652
  %9654 = load i32, ptr @test_count, align 4, !tbaa !5
  %9655 = add nsw i32 %9654, 1
  store i32 %9655, ptr @test_count, align 4, !tbaa !5
  %9656 = call i32 @s2n_stuffer_init(ptr noundef %204, ptr noundef %202)
  %9657 = icmp eq i32 %9656, -1
  br i1 %9657, label %9658, label %9711

9658:                                             ; preds = %9653
  br label %9659

9659:                                             ; preds = %9658
  br label %9660

9660:                                             ; preds = %9659
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #12
  %9661 = call ptr @__errno_location() #13
  %9662 = load i32, ptr %9661, align 4, !tbaa !5
  store i32 %9662, ptr %205, align 4, !tbaa !5
  %9663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9664 = call i32 @s2n_print_stacktrace(ptr noundef %9663)
  %9665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9666 = trunc i8 %9665 to i1
  br i1 %9666, label %9667, label %9689

9667:                                             ; preds = %9660
  %9668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9669 = call i32 @fileno(ptr noundef %9668) #12
  %9670 = call i32 @isatty(i32 noundef %9669) #12
  %9671 = icmp ne i32 %9670, 0
  br i1 %9671, label %9672, label %9689

9672:                                             ; preds = %9667
  %9673 = load i32, ptr %205, align 4, !tbaa !5
  %9674 = call ptr @__errno_location() #13
  store i32 %9673, ptr %9674, align 4, !tbaa !5
  %9675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9676 = load i32, ptr @test_count, align 4, !tbaa !5
  %9677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  %9679 = call ptr @s2n_strerror(i32 noundef %9678, ptr noundef @.str.16)
  %9680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9681 = load i32, ptr %9680, align 4, !tbaa !5
  %9682 = call ptr @s2n_strerror_debug(i32 noundef %9681, ptr noundef @.str.16)
  %9683 = call ptr @__errno_location() #13
  %9684 = load i32, ptr %9683, align 4, !tbaa !5
  %9685 = call ptr @strerror(i32 noundef %9684) #12
  %9686 = call ptr @__errno_location() #13
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  %9688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9675, ptr noundef @.str.14, i32 noundef %9676, ptr noundef @.str.114, ptr noundef @.str.13, i32 noundef 430, ptr noundef %9679, ptr noundef %9682, ptr noundef %9685, i32 noundef %9687) #12
  br label %9706

9689:                                             ; preds = %9667, %9660
  %9690 = load i32, ptr %205, align 4, !tbaa !5
  %9691 = call ptr @__errno_location() #13
  store i32 %9690, ptr %9691, align 4, !tbaa !5
  %9692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9693 = load i32, ptr @test_count, align 4, !tbaa !5
  %9694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9695 = load i32, ptr %9694, align 4, !tbaa !5
  %9696 = call ptr @s2n_strerror(i32 noundef %9695, ptr noundef @.str.16)
  %9697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9698 = load i32, ptr %9697, align 4, !tbaa !5
  %9699 = call ptr @s2n_strerror_debug(i32 noundef %9698, ptr noundef @.str.16)
  %9700 = call ptr @__errno_location() #13
  %9701 = load i32, ptr %9700, align 4, !tbaa !5
  %9702 = call ptr @strerror(i32 noundef %9701) #12
  %9703 = call ptr @__errno_location() #13
  %9704 = load i32, ptr %9703, align 4, !tbaa !5
  %9705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9692, ptr noundef @.str.17, i32 noundef %9693, ptr noundef @.str.114, ptr noundef @.str.13, i32 noundef 430, ptr noundef %9696, ptr noundef %9699, ptr noundef %9702, i32 noundef %9704) #12
  br label %9706

9706:                                             ; preds = %9689, %9672
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #12
  br label %9707

9707:                                             ; preds = %9706
  br label %9708

9708:                                             ; preds = %9707
  call void @exit(i32 noundef 1) #14
  unreachable

9709:                                             ; No predecessors!
  br label %9710

9710:                                             ; preds = %9709
  br label %9711

9711:                                             ; preds = %9710, %9653
  br label %9712

9712:                                             ; preds = %9711
  br label %9713

9713:                                             ; preds = %9712
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %206, ptr align 1 @__const.main.bad_ct_input_3, i64 4, i1 false)
  br label %9714

9714:                                             ; preds = %9713
  %9715 = load i32, ptr @test_count, align 4, !tbaa !5
  %9716 = add nsw i32 %9715, 1
  store i32 %9716, ptr @test_count, align 4, !tbaa !5
  %9717 = getelementptr inbounds [4 x i8], ptr %206, i64 0, i64 0
  %9718 = call i32 @s2n_stuffer_write_bytes(ptr noundef %204, ptr noundef %9717, i32 noundef 4)
  %9719 = icmp eq i32 %9718, -1
  br i1 %9719, label %9720, label %9773

9720:                                             ; preds = %9714
  br label %9721

9721:                                             ; preds = %9720
  br label %9722

9722:                                             ; preds = %9721
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #12
  %9723 = call ptr @__errno_location() #13
  %9724 = load i32, ptr %9723, align 4, !tbaa !5
  store i32 %9724, ptr %207, align 4, !tbaa !5
  %9725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9726 = call i32 @s2n_print_stacktrace(ptr noundef %9725)
  %9727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9728 = trunc i8 %9727 to i1
  br i1 %9728, label %9729, label %9751

9729:                                             ; preds = %9722
  %9730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9731 = call i32 @fileno(ptr noundef %9730) #12
  %9732 = call i32 @isatty(i32 noundef %9731) #12
  %9733 = icmp ne i32 %9732, 0
  br i1 %9733, label %9734, label %9751

9734:                                             ; preds = %9729
  %9735 = load i32, ptr %207, align 4, !tbaa !5
  %9736 = call ptr @__errno_location() #13
  store i32 %9735, ptr %9736, align 4, !tbaa !5
  %9737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9738 = load i32, ptr @test_count, align 4, !tbaa !5
  %9739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9740 = load i32, ptr %9739, align 4, !tbaa !5
  %9741 = call ptr @s2n_strerror(i32 noundef %9740, ptr noundef @.str.16)
  %9742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9743 = load i32, ptr %9742, align 4, !tbaa !5
  %9744 = call ptr @s2n_strerror_debug(i32 noundef %9743, ptr noundef @.str.16)
  %9745 = call ptr @__errno_location() #13
  %9746 = load i32, ptr %9745, align 4, !tbaa !5
  %9747 = call ptr @strerror(i32 noundef %9746) #12
  %9748 = call ptr @__errno_location() #13
  %9749 = load i32, ptr %9748, align 4, !tbaa !5
  %9750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9737, ptr noundef @.str.14, i32 noundef %9738, ptr noundef @.str.115, ptr noundef @.str.13, i32 noundef 432, ptr noundef %9741, ptr noundef %9744, ptr noundef %9747, i32 noundef %9749) #12
  br label %9768

9751:                                             ; preds = %9729, %9722
  %9752 = load i32, ptr %207, align 4, !tbaa !5
  %9753 = call ptr @__errno_location() #13
  store i32 %9752, ptr %9753, align 4, !tbaa !5
  %9754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9755 = load i32, ptr @test_count, align 4, !tbaa !5
  %9756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  %9758 = call ptr @s2n_strerror(i32 noundef %9757, ptr noundef @.str.16)
  %9759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9760 = load i32, ptr %9759, align 4, !tbaa !5
  %9761 = call ptr @s2n_strerror_debug(i32 noundef %9760, ptr noundef @.str.16)
  %9762 = call ptr @__errno_location() #13
  %9763 = load i32, ptr %9762, align 4, !tbaa !5
  %9764 = call ptr @strerror(i32 noundef %9763) #12
  %9765 = call ptr @__errno_location() #13
  %9766 = load i32, ptr %9765, align 4, !tbaa !5
  %9767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9754, ptr noundef @.str.17, i32 noundef %9755, ptr noundef @.str.115, ptr noundef @.str.13, i32 noundef 432, ptr noundef %9758, ptr noundef %9761, ptr noundef %9764, i32 noundef %9766) #12
  br label %9768

9768:                                             ; preds = %9751, %9734
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #12
  br label %9769

9769:                                             ; preds = %9768
  br label %9770

9770:                                             ; preds = %9769
  call void @exit(i32 noundef 1) #14
  unreachable

9771:                                             ; No predecessors!
  br label %9772

9772:                                             ; preds = %9771
  br label %9773

9773:                                             ; preds = %9772, %9714
  br label %9774

9774:                                             ; preds = %9773
  br label %9775

9775:                                             ; preds = %9774
  br label %9776

9776:                                             ; preds = %9775
  %9777 = load i32, ptr @test_count, align 4, !tbaa !5
  %9778 = add nsw i32 %9777, 1
  store i32 %9778, ptr @test_count, align 4, !tbaa !5
  %9779 = call i32 @s2n_stuffer_reread(ptr noundef %204)
  %9780 = icmp eq i32 %9779, -1
  br i1 %9780, label %9781, label %9834

9781:                                             ; preds = %9776
  br label %9782

9782:                                             ; preds = %9781
  br label %9783

9783:                                             ; preds = %9782
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #12
  %9784 = call ptr @__errno_location() #13
  %9785 = load i32, ptr %9784, align 4, !tbaa !5
  store i32 %9785, ptr %208, align 4, !tbaa !5
  %9786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9787 = call i32 @s2n_print_stacktrace(ptr noundef %9786)
  %9788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9789 = trunc i8 %9788 to i1
  br i1 %9789, label %9790, label %9812

9790:                                             ; preds = %9783
  %9791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9792 = call i32 @fileno(ptr noundef %9791) #12
  %9793 = call i32 @isatty(i32 noundef %9792) #12
  %9794 = icmp ne i32 %9793, 0
  br i1 %9794, label %9795, label %9812

9795:                                             ; preds = %9790
  %9796 = load i32, ptr %208, align 4, !tbaa !5
  %9797 = call ptr @__errno_location() #13
  store i32 %9796, ptr %9797, align 4, !tbaa !5
  %9798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9799 = load i32, ptr @test_count, align 4, !tbaa !5
  %9800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9801 = load i32, ptr %9800, align 4, !tbaa !5
  %9802 = call ptr @s2n_strerror(i32 noundef %9801, ptr noundef @.str.16)
  %9803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9804 = load i32, ptr %9803, align 4, !tbaa !5
  %9805 = call ptr @s2n_strerror_debug(i32 noundef %9804, ptr noundef @.str.16)
  %9806 = call ptr @__errno_location() #13
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  %9808 = call ptr @strerror(i32 noundef %9807) #12
  %9809 = call ptr @__errno_location() #13
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9798, ptr noundef @.str.14, i32 noundef %9799, ptr noundef @.str.116, ptr noundef @.str.13, i32 noundef 433, ptr noundef %9802, ptr noundef %9805, ptr noundef %9808, i32 noundef %9810) #12
  br label %9829

9812:                                             ; preds = %9790, %9783
  %9813 = load i32, ptr %208, align 4, !tbaa !5
  %9814 = call ptr @__errno_location() #13
  store i32 %9813, ptr %9814, align 4, !tbaa !5
  %9815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9816 = load i32, ptr @test_count, align 4, !tbaa !5
  %9817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9818 = load i32, ptr %9817, align 4, !tbaa !5
  %9819 = call ptr @s2n_strerror(i32 noundef %9818, ptr noundef @.str.16)
  %9820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9821 = load i32, ptr %9820, align 4, !tbaa !5
  %9822 = call ptr @s2n_strerror_debug(i32 noundef %9821, ptr noundef @.str.16)
  %9823 = call ptr @__errno_location() #13
  %9824 = load i32, ptr %9823, align 4, !tbaa !5
  %9825 = call ptr @strerror(i32 noundef %9824) #12
  %9826 = call ptr @__errno_location() #13
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9815, ptr noundef @.str.17, i32 noundef %9816, ptr noundef @.str.116, ptr noundef @.str.13, i32 noundef 433, ptr noundef %9819, ptr noundef %9822, ptr noundef %9825, i32 noundef %9827) #12
  br label %9829

9829:                                             ; preds = %9812, %9795
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #12
  br label %9830

9830:                                             ; preds = %9829
  br label %9831

9831:                                             ; preds = %9830
  call void @exit(i32 noundef 1) #14
  unreachable

9832:                                             ; No predecessors!
  br label %9833

9833:                                             ; preds = %9832
  br label %9834

9834:                                             ; preds = %9833, %9776
  br label %9835

9835:                                             ; preds = %9834
  br label %9836

9836:                                             ; preds = %9835
  %9837 = load i32, ptr %48, align 4, !tbaa !5
  %9838 = icmp ne i32 %9837, 0
  br i1 %9838, label %9839, label %10037

9839:                                             ; preds = %9836
  br label %9840

9840:                                             ; preds = %9839
  br label %9841

9841:                                             ; preds = %9840
  br label %9842

9842:                                             ; preds = %9841
  %9843 = load i32, ptr @test_count, align 4, !tbaa !5
  %9844 = add nsw i32 %9843, 1
  store i32 %9844, ptr @test_count, align 4, !tbaa !5
  %9845 = call i32 @s2n_kem_recv_ciphertext(ptr noundef %204, ptr noundef %192)
  %9846 = icmp eq i32 %9845, -1
  br i1 %9846, label %9900, label %9847

9847:                                             ; preds = %9842
  br label %9848

9848:                                             ; preds = %9847
  br label %9849

9849:                                             ; preds = %9848
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #12
  %9850 = call ptr @__errno_location() #13
  %9851 = load i32, ptr %9850, align 4, !tbaa !5
  store i32 %9851, ptr %209, align 4, !tbaa !5
  %9852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9853 = call i32 @s2n_print_stacktrace(ptr noundef %9852)
  %9854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9855 = trunc i8 %9854 to i1
  br i1 %9855, label %9856, label %9878

9856:                                             ; preds = %9849
  %9857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9858 = call i32 @fileno(ptr noundef %9857) #12
  %9859 = call i32 @isatty(i32 noundef %9858) #12
  %9860 = icmp ne i32 %9859, 0
  br i1 %9860, label %9861, label %9878

9861:                                             ; preds = %9856
  %9862 = load i32, ptr %209, align 4, !tbaa !5
  %9863 = call ptr @__errno_location() #13
  store i32 %9862, ptr %9863, align 4, !tbaa !5
  %9864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9865 = load i32, ptr @test_count, align 4, !tbaa !5
  %9866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9867 = load i32, ptr %9866, align 4, !tbaa !5
  %9868 = call ptr @s2n_strerror(i32 noundef %9867, ptr noundef @.str.16)
  %9869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9870 = load i32, ptr %9869, align 4, !tbaa !5
  %9871 = call ptr @s2n_strerror_debug(i32 noundef %9870, ptr noundef @.str.16)
  %9872 = call ptr @__errno_location() #13
  %9873 = load i32, ptr %9872, align 4, !tbaa !5
  %9874 = call ptr @strerror(i32 noundef %9873) #12
  %9875 = call ptr @__errno_location() #13
  %9876 = load i32, ptr %9875, align 4, !tbaa !5
  %9877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9864, ptr noundef @.str.14, i32 noundef %9865, ptr noundef @.str.117, ptr noundef @.str.13, i32 noundef 436, ptr noundef %9868, ptr noundef %9871, ptr noundef %9874, i32 noundef %9876) #12
  br label %9895

9878:                                             ; preds = %9856, %9849
  %9879 = load i32, ptr %209, align 4, !tbaa !5
  %9880 = call ptr @__errno_location() #13
  store i32 %9879, ptr %9880, align 4, !tbaa !5
  %9881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9882 = load i32, ptr @test_count, align 4, !tbaa !5
  %9883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9884 = load i32, ptr %9883, align 4, !tbaa !5
  %9885 = call ptr @s2n_strerror(i32 noundef %9884, ptr noundef @.str.16)
  %9886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9887 = load i32, ptr %9886, align 4, !tbaa !5
  %9888 = call ptr @s2n_strerror_debug(i32 noundef %9887, ptr noundef @.str.16)
  %9889 = call ptr @__errno_location() #13
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  %9891 = call ptr @strerror(i32 noundef %9890) #12
  %9892 = call ptr @__errno_location() #13
  %9893 = load i32, ptr %9892, align 4, !tbaa !5
  %9894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9881, ptr noundef @.str.17, i32 noundef %9882, ptr noundef @.str.117, ptr noundef @.str.13, i32 noundef 436, ptr noundef %9885, ptr noundef %9888, ptr noundef %9891, i32 noundef %9893) #12
  br label %9895

9895:                                             ; preds = %9878, %9861
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #12
  br label %9896

9896:                                             ; preds = %9895
  br label %9897

9897:                                             ; preds = %9896
  call void @exit(i32 noundef 1) #14
  unreachable

9898:                                             ; No predecessors!
  br label %9899

9899:                                             ; preds = %9898
  br label %9900

9900:                                             ; preds = %9899, %9842
  br label %9901

9901:                                             ; preds = %9900
  br label %9902

9902:                                             ; preds = %9901
  br label %9903

9903:                                             ; preds = %9902
  %9904 = load i32, ptr @test_count, align 4, !tbaa !5
  %9905 = add nsw i32 %9904, 1
  store i32 %9905, ptr @test_count, align 4, !tbaa !5
  %9906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9907 = load i32, ptr %9906, align 4, !tbaa !5
  %9908 = icmp eq i32 %9907, 335544322
  br i1 %9908, label %9962, label %9909

9909:                                             ; preds = %9903
  br label %9910

9910:                                             ; preds = %9909
  br label %9911

9911:                                             ; preds = %9910
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #12
  %9912 = call ptr @__errno_location() #13
  %9913 = load i32, ptr %9912, align 4, !tbaa !5
  store i32 %9913, ptr %210, align 4, !tbaa !5
  %9914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9915 = call i32 @s2n_print_stacktrace(ptr noundef %9914)
  %9916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9917 = trunc i8 %9916 to i1
  br i1 %9917, label %9918, label %9940

9918:                                             ; preds = %9911
  %9919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9920 = call i32 @fileno(ptr noundef %9919) #12
  %9921 = call i32 @isatty(i32 noundef %9920) #12
  %9922 = icmp ne i32 %9921, 0
  br i1 %9922, label %9923, label %9940

9923:                                             ; preds = %9918
  %9924 = load i32, ptr %210, align 4, !tbaa !5
  %9925 = call ptr @__errno_location() #13
  store i32 %9924, ptr %9925, align 4, !tbaa !5
  %9926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9927 = load i32, ptr @test_count, align 4, !tbaa !5
  %9928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9929 = load i32, ptr %9928, align 4, !tbaa !5
  %9930 = call ptr @s2n_strerror(i32 noundef %9929, ptr noundef @.str.16)
  %9931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9932 = load i32, ptr %9931, align 4, !tbaa !5
  %9933 = call ptr @s2n_strerror_debug(i32 noundef %9932, ptr noundef @.str.16)
  %9934 = call ptr @__errno_location() #13
  %9935 = load i32, ptr %9934, align 4, !tbaa !5
  %9936 = call ptr @strerror(i32 noundef %9935) #12
  %9937 = call ptr @__errno_location() #13
  %9938 = load i32, ptr %9937, align 4, !tbaa !5
  %9939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9926, ptr noundef @.str.14, i32 noundef %9927, ptr noundef @.str.118, ptr noundef @.str.13, i32 noundef 436, ptr noundef %9930, ptr noundef %9933, ptr noundef %9936, i32 noundef %9938) #12
  br label %9957

9940:                                             ; preds = %9918, %9911
  %9941 = load i32, ptr %210, align 4, !tbaa !5
  %9942 = call ptr @__errno_location() #13
  store i32 %9941, ptr %9942, align 4, !tbaa !5
  %9943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9944 = load i32, ptr @test_count, align 4, !tbaa !5
  %9945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9946 = load i32, ptr %9945, align 4, !tbaa !5
  %9947 = call ptr @s2n_strerror(i32 noundef %9946, ptr noundef @.str.16)
  %9948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9949 = load i32, ptr %9948, align 4, !tbaa !5
  %9950 = call ptr @s2n_strerror_debug(i32 noundef %9949, ptr noundef @.str.16)
  %9951 = call ptr @__errno_location() #13
  %9952 = load i32, ptr %9951, align 4, !tbaa !5
  %9953 = call ptr @strerror(i32 noundef %9952) #12
  %9954 = call ptr @__errno_location() #13
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9943, ptr noundef @.str.17, i32 noundef %9944, ptr noundef @.str.118, ptr noundef @.str.13, i32 noundef 436, ptr noundef %9947, ptr noundef %9950, ptr noundef %9953, i32 noundef %9955) #12
  br label %9957

9957:                                             ; preds = %9940, %9923
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #12
  br label %9958

9958:                                             ; preds = %9957
  br label %9959

9959:                                             ; preds = %9958
  call void @exit(i32 noundef 1) #14
  unreachable

9960:                                             ; No predecessors!
  br label %9961

9961:                                             ; preds = %9960
  br label %9962

9962:                                             ; preds = %9961, %9903
  br label %9963

9963:                                             ; preds = %9962
  br label %9964

9964:                                             ; preds = %9963
  br label %9965

9965:                                             ; preds = %9964
  %9966 = load i32, ptr @test_count, align 4, !tbaa !5
  %9967 = add nsw i32 %9966, 1
  store i32 %9967, ptr @test_count, align 4, !tbaa !5
  %9968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9969 = load i32, ptr %9968, align 4, !tbaa !5
  %9970 = call ptr @s2n_strerror_debug(i32 noundef %9969, ptr noundef @.str.16)
  %9971 = icmp eq ptr %9970, null
  br i1 %9971, label %9972, label %10025

9972:                                             ; preds = %9965
  br label %9973

9973:                                             ; preds = %9972
  br label %9974

9974:                                             ; preds = %9973
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #12
  %9975 = call ptr @__errno_location() #13
  %9976 = load i32, ptr %9975, align 4, !tbaa !5
  store i32 %9976, ptr %211, align 4, !tbaa !5
  %9977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9978 = call i32 @s2n_print_stacktrace(ptr noundef %9977)
  %9979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9980 = trunc i8 %9979 to i1
  br i1 %9980, label %9981, label %10003

9981:                                             ; preds = %9974
  %9982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9983 = call i32 @fileno(ptr noundef %9982) #12
  %9984 = call i32 @isatty(i32 noundef %9983) #12
  %9985 = icmp ne i32 %9984, 0
  br i1 %9985, label %9986, label %10003

9986:                                             ; preds = %9981
  %9987 = load i32, ptr %211, align 4, !tbaa !5
  %9988 = call ptr @__errno_location() #13
  store i32 %9987, ptr %9988, align 4, !tbaa !5
  %9989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9990 = load i32, ptr @test_count, align 4, !tbaa !5
  %9991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9992 = load i32, ptr %9991, align 4, !tbaa !5
  %9993 = call ptr @s2n_strerror(i32 noundef %9992, ptr noundef @.str.16)
  %9994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call ptr @s2n_strerror_debug(i32 noundef %9995, ptr noundef @.str.16)
  %9997 = call ptr @__errno_location() #13
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call ptr @strerror(i32 noundef %9998) #12
  %10000 = call ptr @__errno_location() #13
  %10001 = load i32, ptr %10000, align 4, !tbaa !5
  %10002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9989, ptr noundef @.str.14, i32 noundef %9990, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 436, ptr noundef %9993, ptr noundef %9996, ptr noundef %9999, i32 noundef %10001) #12
  br label %10020

10003:                                            ; preds = %9981, %9974
  %10004 = load i32, ptr %211, align 4, !tbaa !5
  %10005 = call ptr @__errno_location() #13
  store i32 %10004, ptr %10005, align 4, !tbaa !5
  %10006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10007 = load i32, ptr @test_count, align 4, !tbaa !5
  %10008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10009 = load i32, ptr %10008, align 4, !tbaa !5
  %10010 = call ptr @s2n_strerror(i32 noundef %10009, ptr noundef @.str.16)
  %10011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10012 = load i32, ptr %10011, align 4, !tbaa !5
  %10013 = call ptr @s2n_strerror_debug(i32 noundef %10012, ptr noundef @.str.16)
  %10014 = call ptr @__errno_location() #13
  %10015 = load i32, ptr %10014, align 4, !tbaa !5
  %10016 = call ptr @strerror(i32 noundef %10015) #12
  %10017 = call ptr @__errno_location() #13
  %10018 = load i32, ptr %10017, align 4, !tbaa !5
  %10019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10006, ptr noundef @.str.17, i32 noundef %10007, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 436, ptr noundef %10010, ptr noundef %10013, ptr noundef %10016, i32 noundef %10018) #12
  br label %10020

10020:                                            ; preds = %10003, %9986
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #12
  br label %10021

10021:                                            ; preds = %10020
  br label %10022

10022:                                            ; preds = %10021
  call void @exit(i32 noundef 1) #14
  unreachable

10023:                                            ; No predecessors!
  br label %10024

10024:                                            ; preds = %10023
  br label %10025

10025:                                            ; preds = %10024, %9965
  br label %10026

10026:                                            ; preds = %10025
  br label %10027

10027:                                            ; preds = %10026
  br label %10028

10028:                                            ; preds = %10027
  br label %10029

10029:                                            ; preds = %10028
  br label %10030

10030:                                            ; preds = %10029
  %10031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10031, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10032 = call ptr @__errno_location() #13
  store i32 0, ptr %10032, align 4, !tbaa !5
  br label %10033

10033:                                            ; preds = %10030
  br label %10034

10034:                                            ; preds = %10033
  br label %10035

10035:                                            ; preds = %10034
  br label %10036

10036:                                            ; preds = %10035
  br label %10037

10037:                                            ; preds = %10036, %9836
  br label %10038

10038:                                            ; preds = %10037
  %10039 = load i32, ptr @test_count, align 4, !tbaa !5
  %10040 = add nsw i32 %10039, 1
  store i32 %10040, ptr @test_count, align 4, !tbaa !5
  %10041 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 2
  %10042 = getelementptr inbounds %struct.s2n_blob, ptr %10041, i32 0, i32 2
  %10043 = load i32, ptr %10042, align 4, !tbaa !43
  %10044 = icmp eq i32 0, %10043
  br i1 %10044, label %10045, label %10098

10045:                                            ; preds = %10038
  br label %10046

10046:                                            ; preds = %10045
  br label %10047

10047:                                            ; preds = %10046
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #12
  %10048 = call ptr @__errno_location() #13
  %10049 = load i32, ptr %10048, align 4, !tbaa !5
  store i32 %10049, ptr %212, align 4, !tbaa !5
  %10050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10051 = call i32 @s2n_print_stacktrace(ptr noundef %10050)
  %10052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10053 = trunc i8 %10052 to i1
  br i1 %10053, label %10054, label %10076

10054:                                            ; preds = %10047
  %10055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10056 = call i32 @fileno(ptr noundef %10055) #12
  %10057 = call i32 @isatty(i32 noundef %10056) #12
  %10058 = icmp ne i32 %10057, 0
  br i1 %10058, label %10059, label %10076

10059:                                            ; preds = %10054
  %10060 = load i32, ptr %212, align 4, !tbaa !5
  %10061 = call ptr @__errno_location() #13
  store i32 %10060, ptr %10061, align 4, !tbaa !5
  %10062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10063 = load i32, ptr @test_count, align 4, !tbaa !5
  %10064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10065 = load i32, ptr %10064, align 4, !tbaa !5
  %10066 = call ptr @s2n_strerror(i32 noundef %10065, ptr noundef @.str.16)
  %10067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10068 = load i32, ptr %10067, align 4, !tbaa !5
  %10069 = call ptr @s2n_strerror_debug(i32 noundef %10068, ptr noundef @.str.16)
  %10070 = call ptr @__errno_location() #13
  %10071 = load i32, ptr %10070, align 4, !tbaa !5
  %10072 = call ptr @strerror(i32 noundef %10071) #12
  %10073 = call ptr @__errno_location() #13
  %10074 = load i32, ptr %10073, align 4, !tbaa !5
  %10075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10062, ptr noundef @.str.14, i32 noundef %10063, ptr noundef @.str.79, ptr noundef @.str.13, i32 noundef 441, ptr noundef %10066, ptr noundef %10069, ptr noundef %10072, i32 noundef %10074) #12
  br label %10093

10076:                                            ; preds = %10054, %10047
  %10077 = load i32, ptr %212, align 4, !tbaa !5
  %10078 = call ptr @__errno_location() #13
  store i32 %10077, ptr %10078, align 4, !tbaa !5
  %10079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10080 = load i32, ptr @test_count, align 4, !tbaa !5
  %10081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10082 = load i32, ptr %10081, align 4, !tbaa !5
  %10083 = call ptr @s2n_strerror(i32 noundef %10082, ptr noundef @.str.16)
  %10084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10085 = load i32, ptr %10084, align 4, !tbaa !5
  %10086 = call ptr @s2n_strerror_debug(i32 noundef %10085, ptr noundef @.str.16)
  %10087 = call ptr @__errno_location() #13
  %10088 = load i32, ptr %10087, align 4, !tbaa !5
  %10089 = call ptr @strerror(i32 noundef %10088) #12
  %10090 = call ptr @__errno_location() #13
  %10091 = load i32, ptr %10090, align 4, !tbaa !5
  %10092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10079, ptr noundef @.str.17, i32 noundef %10080, ptr noundef @.str.79, ptr noundef @.str.13, i32 noundef 441, ptr noundef %10083, ptr noundef %10086, ptr noundef %10089, i32 noundef %10091) #12
  br label %10093

10093:                                            ; preds = %10076, %10059
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #12
  br label %10094

10094:                                            ; preds = %10093
  br label %10095

10095:                                            ; preds = %10094
  call void @exit(i32 noundef 1) #14
  unreachable

10096:                                            ; No predecessors!
  br label %10097

10097:                                            ; preds = %10096
  br label %10098

10098:                                            ; preds = %10097, %10038
  br label %10099

10099:                                            ; preds = %10098
  br label %10100

10100:                                            ; preds = %10099
  br label %10101

10101:                                            ; preds = %10100
  %10102 = load i32, ptr @test_count, align 4, !tbaa !5
  %10103 = add nsw i32 %10102, 1
  store i32 %10103, ptr @test_count, align 4, !tbaa !5
  %10104 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 1
  %10105 = getelementptr inbounds %struct.s2n_blob, ptr %10104, i32 0, i32 2
  %10106 = load i32, ptr %10105, align 4, !tbaa !46
  %10107 = icmp eq i32 0, %10106
  br i1 %10107, label %10161, label %10108

10108:                                            ; preds = %10101
  br label %10109

10109:                                            ; preds = %10108
  br label %10110

10110:                                            ; preds = %10109
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #12
  %10111 = call ptr @__errno_location() #13
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  store i32 %10112, ptr %213, align 4, !tbaa !5
  %10113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10114 = call i32 @s2n_print_stacktrace(ptr noundef %10113)
  %10115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10116 = trunc i8 %10115 to i1
  br i1 %10116, label %10117, label %10139

10117:                                            ; preds = %10110
  %10118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10119 = call i32 @fileno(ptr noundef %10118) #12
  %10120 = call i32 @isatty(i32 noundef %10119) #12
  %10121 = icmp ne i32 %10120, 0
  br i1 %10121, label %10122, label %10139

10122:                                            ; preds = %10117
  %10123 = load i32, ptr %213, align 4, !tbaa !5
  %10124 = call ptr @__errno_location() #13
  store i32 %10123, ptr %10124, align 4, !tbaa !5
  %10125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10126 = load i32, ptr @test_count, align 4, !tbaa !5
  %10127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10128 = load i32, ptr %10127, align 4, !tbaa !5
  %10129 = call ptr @s2n_strerror(i32 noundef %10128, ptr noundef @.str.16)
  %10130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10131 = load i32, ptr %10130, align 4, !tbaa !5
  %10132 = call ptr @s2n_strerror_debug(i32 noundef %10131, ptr noundef @.str.16)
  %10133 = call ptr @__errno_location() #13
  %10134 = load i32, ptr %10133, align 4, !tbaa !5
  %10135 = call ptr @strerror(i32 noundef %10134) #12
  %10136 = call ptr @__errno_location() #13
  %10137 = load i32, ptr %10136, align 4, !tbaa !5
  %10138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10125, ptr noundef @.str.14, i32 noundef %10126, ptr noundef @.str.77, ptr noundef @.str.13, i32 noundef 442, ptr noundef %10129, ptr noundef %10132, ptr noundef %10135, i32 noundef %10137) #12
  br label %10156

10139:                                            ; preds = %10117, %10110
  %10140 = load i32, ptr %213, align 4, !tbaa !5
  %10141 = call ptr @__errno_location() #13
  store i32 %10140, ptr %10141, align 4, !tbaa !5
  %10142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10143 = load i32, ptr @test_count, align 4, !tbaa !5
  %10144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10145 = load i32, ptr %10144, align 4, !tbaa !5
  %10146 = call ptr @s2n_strerror(i32 noundef %10145, ptr noundef @.str.16)
  %10147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10148 = load i32, ptr %10147, align 4, !tbaa !5
  %10149 = call ptr @s2n_strerror_debug(i32 noundef %10148, ptr noundef @.str.16)
  %10150 = call ptr @__errno_location() #13
  %10151 = load i32, ptr %10150, align 4, !tbaa !5
  %10152 = call ptr @strerror(i32 noundef %10151) #12
  %10153 = call ptr @__errno_location() #13
  %10154 = load i32, ptr %10153, align 4, !tbaa !5
  %10155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10142, ptr noundef @.str.17, i32 noundef %10143, ptr noundef @.str.77, ptr noundef @.str.13, i32 noundef 442, ptr noundef %10146, ptr noundef %10149, ptr noundef %10152, i32 noundef %10154) #12
  br label %10156

10156:                                            ; preds = %10139, %10122
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #12
  br label %10157

10157:                                            ; preds = %10156
  br label %10158

10158:                                            ; preds = %10157
  call void @exit(i32 noundef 1) #14
  unreachable

10159:                                            ; No predecessors!
  br label %10160

10160:                                            ; preds = %10159
  br label %10161

10161:                                            ; preds = %10160, %10101
  br label %10162

10162:                                            ; preds = %10161
  br label %10163

10163:                                            ; preds = %10162
  br label %10164

10164:                                            ; preds = %10163
  %10165 = load i32, ptr @test_count, align 4, !tbaa !5
  %10166 = add nsw i32 %10165, 1
  store i32 %10166, ptr @test_count, align 4, !tbaa !5
  %10167 = getelementptr inbounds %struct.s2n_kem_params, ptr %192, i32 0, i32 3
  %10168 = getelementptr inbounds %struct.s2n_blob, ptr %10167, i32 0, i32 2
  %10169 = load i32, ptr %10168, align 4, !tbaa !39
  %10170 = icmp eq i32 0, %10169
  br i1 %10170, label %10224, label %10171

10171:                                            ; preds = %10164
  br label %10172

10172:                                            ; preds = %10171
  br label %10173

10173:                                            ; preds = %10172
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #12
  %10174 = call ptr @__errno_location() #13
  %10175 = load i32, ptr %10174, align 4, !tbaa !5
  store i32 %10175, ptr %214, align 4, !tbaa !5
  %10176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10177 = call i32 @s2n_print_stacktrace(ptr noundef %10176)
  %10178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10179 = trunc i8 %10178 to i1
  br i1 %10179, label %10180, label %10202

10180:                                            ; preds = %10173
  %10181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10182 = call i32 @fileno(ptr noundef %10181) #12
  %10183 = call i32 @isatty(i32 noundef %10182) #12
  %10184 = icmp ne i32 %10183, 0
  br i1 %10184, label %10185, label %10202

10185:                                            ; preds = %10180
  %10186 = load i32, ptr %214, align 4, !tbaa !5
  %10187 = call ptr @__errno_location() #13
  store i32 %10186, ptr %10187, align 4, !tbaa !5
  %10188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10189 = load i32, ptr @test_count, align 4, !tbaa !5
  %10190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10191 = load i32, ptr %10190, align 4, !tbaa !5
  %10192 = call ptr @s2n_strerror(i32 noundef %10191, ptr noundef @.str.16)
  %10193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10194 = load i32, ptr %10193, align 4, !tbaa !5
  %10195 = call ptr @s2n_strerror_debug(i32 noundef %10194, ptr noundef @.str.16)
  %10196 = call ptr @__errno_location() #13
  %10197 = load i32, ptr %10196, align 4, !tbaa !5
  %10198 = call ptr @strerror(i32 noundef %10197) #12
  %10199 = call ptr @__errno_location() #13
  %10200 = load i32, ptr %10199, align 4, !tbaa !5
  %10201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10188, ptr noundef @.str.14, i32 noundef %10189, ptr noundef @.str.78, ptr noundef @.str.13, i32 noundef 443, ptr noundef %10192, ptr noundef %10195, ptr noundef %10198, i32 noundef %10200) #12
  br label %10219

10202:                                            ; preds = %10180, %10173
  %10203 = load i32, ptr %214, align 4, !tbaa !5
  %10204 = call ptr @__errno_location() #13
  store i32 %10203, ptr %10204, align 4, !tbaa !5
  %10205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10206 = load i32, ptr @test_count, align 4, !tbaa !5
  %10207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10208 = load i32, ptr %10207, align 4, !tbaa !5
  %10209 = call ptr @s2n_strerror(i32 noundef %10208, ptr noundef @.str.16)
  %10210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10211 = load i32, ptr %10210, align 4, !tbaa !5
  %10212 = call ptr @s2n_strerror_debug(i32 noundef %10211, ptr noundef @.str.16)
  %10213 = call ptr @__errno_location() #13
  %10214 = load i32, ptr %10213, align 4, !tbaa !5
  %10215 = call ptr @strerror(i32 noundef %10214) #12
  %10216 = call ptr @__errno_location() #13
  %10217 = load i32, ptr %10216, align 4, !tbaa !5
  %10218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10205, ptr noundef @.str.17, i32 noundef %10206, ptr noundef @.str.78, ptr noundef @.str.13, i32 noundef 443, ptr noundef %10209, ptr noundef %10212, ptr noundef %10215, i32 noundef %10217) #12
  br label %10219

10219:                                            ; preds = %10202, %10185
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #12
  br label %10220

10220:                                            ; preds = %10219
  br label %10221

10221:                                            ; preds = %10220
  call void @exit(i32 noundef 1) #14
  unreachable

10222:                                            ; No predecessors!
  br label %10223

10223:                                            ; preds = %10222
  br label %10224

10224:                                            ; preds = %10223, %10164
  br label %10225

10225:                                            ; preds = %10224
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226
  %10228 = load i32, ptr @test_count, align 4, !tbaa !5
  %10229 = add nsw i32 %10228, 1
  store i32 %10229, ptr @test_count, align 4, !tbaa !5
  %10230 = call i32 @s2n_kem_free(ptr noundef %192)
  %10231 = icmp eq i32 %10230, -1
  br i1 %10231, label %10232, label %10285

10232:                                            ; preds = %10227
  br label %10233

10233:                                            ; preds = %10232
  br label %10234

10234:                                            ; preds = %10233
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #12
  %10235 = call ptr @__errno_location() #13
  %10236 = load i32, ptr %10235, align 4, !tbaa !5
  store i32 %10236, ptr %215, align 4, !tbaa !5
  %10237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10238 = call i32 @s2n_print_stacktrace(ptr noundef %10237)
  %10239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10240 = trunc i8 %10239 to i1
  br i1 %10240, label %10241, label %10263

10241:                                            ; preds = %10234
  %10242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10243 = call i32 @fileno(ptr noundef %10242) #12
  %10244 = call i32 @isatty(i32 noundef %10243) #12
  %10245 = icmp ne i32 %10244, 0
  br i1 %10245, label %10246, label %10263

10246:                                            ; preds = %10241
  %10247 = load i32, ptr %215, align 4, !tbaa !5
  %10248 = call ptr @__errno_location() #13
  store i32 %10247, ptr %10248, align 4, !tbaa !5
  %10249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10250 = load i32, ptr @test_count, align 4, !tbaa !5
  %10251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10252 = load i32, ptr %10251, align 4, !tbaa !5
  %10253 = call ptr @s2n_strerror(i32 noundef %10252, ptr noundef @.str.16)
  %10254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10255 = load i32, ptr %10254, align 4, !tbaa !5
  %10256 = call ptr @s2n_strerror_debug(i32 noundef %10255, ptr noundef @.str.16)
  %10257 = call ptr @__errno_location() #13
  %10258 = load i32, ptr %10257, align 4, !tbaa !5
  %10259 = call ptr @strerror(i32 noundef %10258) #12
  %10260 = call ptr @__errno_location() #13
  %10261 = load i32, ptr %10260, align 4, !tbaa !5
  %10262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10249, ptr noundef @.str.14, i32 noundef %10250, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 444, ptr noundef %10253, ptr noundef %10256, ptr noundef %10259, i32 noundef %10261) #12
  br label %10280

10263:                                            ; preds = %10241, %10234
  %10264 = load i32, ptr %215, align 4, !tbaa !5
  %10265 = call ptr @__errno_location() #13
  store i32 %10264, ptr %10265, align 4, !tbaa !5
  %10266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10267 = load i32, ptr @test_count, align 4, !tbaa !5
  %10268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10269 = load i32, ptr %10268, align 4, !tbaa !5
  %10270 = call ptr @s2n_strerror(i32 noundef %10269, ptr noundef @.str.16)
  %10271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10272 = load i32, ptr %10271, align 4, !tbaa !5
  %10273 = call ptr @s2n_strerror_debug(i32 noundef %10272, ptr noundef @.str.16)
  %10274 = call ptr @__errno_location() #13
  %10275 = load i32, ptr %10274, align 4, !tbaa !5
  %10276 = call ptr @strerror(i32 noundef %10275) #12
  %10277 = call ptr @__errno_location() #13
  %10278 = load i32, ptr %10277, align 4, !tbaa !5
  %10279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10266, ptr noundef @.str.17, i32 noundef %10267, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 444, ptr noundef %10270, ptr noundef %10273, ptr noundef %10276, i32 noundef %10278) #12
  br label %10280

10280:                                            ; preds = %10263, %10246
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #12
  br label %10281

10281:                                            ; preds = %10280
  br label %10282

10282:                                            ; preds = %10281
  call void @exit(i32 noundef 1) #14
  unreachable

10283:                                            ; No predecessors!
  br label %10284

10284:                                            ; preds = %10283
  br label %10285

10285:                                            ; preds = %10284, %10227
  br label %10286

10286:                                            ; preds = %10285
  br label %10287

10287:                                            ; preds = %10286
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %204) #12
  %10288 = call i32 @s2n_free(ptr noundef %202)
  call void @llvm.lifetime.end.p0(i64 24, ptr %202) #12
  store i32 0, ptr %30, align 4
  br label %10289

10289:                                            ; preds = %10287, %9587
  call void @llvm.lifetime.end.p0(i64 88, ptr %192) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %187) #12
  %10290 = call i32 @s2n_free(ptr noundef %185)
  call void @llvm.lifetime.end.p0(i64 24, ptr %185) #12
  %10291 = load i32, ptr %30, align 4
  switch i32 %10291, label %12165 [
    i32 0, label %10292
  ]

10292:                                            ; preds = %10289
  call void @llvm.lifetime.start.p0(i64 88, ptr %216) #12
  call void @llvm.memset.p0.i64(ptr align 8 %216, i8 0, i64 88, i1 false)
  %10293 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %10293, align 8, !tbaa !32
  %10294 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 1
  %10295 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 2
  %10296 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 3
  %10297 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 4
  %10298 = load i32, ptr %48, align 4, !tbaa !5
  %10299 = icmp ne i32 %10298, 0
  %10300 = zext i1 %10299 to i8
  store i8 %10300, ptr %10297, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 24, ptr %217) #12
  call void @llvm.memset.p0.i64(ptr align 8 %217, i8 0, i64 24, i1 false)
  br label %10301

10301:                                            ; preds = %10292
  %10302 = load i32, ptr @test_count, align 4, !tbaa !5
  %10303 = add nsw i32 %10302, 1
  store i32 %10303, ptr @test_count, align 4, !tbaa !5
  %10304 = call i32 @s2n_alloc(ptr noundef %217, i32 noundef 4)
  %10305 = icmp eq i32 %10304, -1
  br i1 %10305, label %10306, label %10359

10306:                                            ; preds = %10301
  br label %10307

10307:                                            ; preds = %10306
  br label %10308

10308:                                            ; preds = %10307
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #12
  %10309 = call ptr @__errno_location() #13
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  store i32 %10310, ptr %218, align 4, !tbaa !5
  %10311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10312 = call i32 @s2n_print_stacktrace(ptr noundef %10311)
  %10313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10314 = trunc i8 %10313 to i1
  br i1 %10314, label %10315, label %10337

10315:                                            ; preds = %10308
  %10316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10317 = call i32 @fileno(ptr noundef %10316) #12
  %10318 = call i32 @isatty(i32 noundef %10317) #12
  %10319 = icmp ne i32 %10318, 0
  br i1 %10319, label %10320, label %10337

10320:                                            ; preds = %10315
  %10321 = load i32, ptr %218, align 4, !tbaa !5
  %10322 = call ptr @__errno_location() #13
  store i32 %10321, ptr %10322, align 4, !tbaa !5
  %10323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10324 = load i32, ptr @test_count, align 4, !tbaa !5
  %10325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10326 = load i32, ptr %10325, align 4, !tbaa !5
  %10327 = call ptr @s2n_strerror(i32 noundef %10326, ptr noundef @.str.16)
  %10328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10329 = load i32, ptr %10328, align 4, !tbaa !5
  %10330 = call ptr @s2n_strerror_debug(i32 noundef %10329, ptr noundef @.str.16)
  %10331 = call ptr @__errno_location() #13
  %10332 = load i32, ptr %10331, align 4, !tbaa !5
  %10333 = call ptr @strerror(i32 noundef %10332) #12
  %10334 = call ptr @__errno_location() #13
  %10335 = load i32, ptr %10334, align 4, !tbaa !5
  %10336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10323, ptr noundef @.str.14, i32 noundef %10324, ptr noundef @.str.67, ptr noundef @.str.13, i32 noundef 451, ptr noundef %10327, ptr noundef %10330, ptr noundef %10333, i32 noundef %10335) #12
  br label %10354

10337:                                            ; preds = %10315, %10308
  %10338 = load i32, ptr %218, align 4, !tbaa !5
  %10339 = call ptr @__errno_location() #13
  store i32 %10338, ptr %10339, align 4, !tbaa !5
  %10340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10341 = load i32, ptr @test_count, align 4, !tbaa !5
  %10342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10343 = load i32, ptr %10342, align 4, !tbaa !5
  %10344 = call ptr @s2n_strerror(i32 noundef %10343, ptr noundef @.str.16)
  %10345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10346 = load i32, ptr %10345, align 4, !tbaa !5
  %10347 = call ptr @s2n_strerror_debug(i32 noundef %10346, ptr noundef @.str.16)
  %10348 = call ptr @__errno_location() #13
  %10349 = load i32, ptr %10348, align 4, !tbaa !5
  %10350 = call ptr @strerror(i32 noundef %10349) #12
  %10351 = call ptr @__errno_location() #13
  %10352 = load i32, ptr %10351, align 4, !tbaa !5
  %10353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10340, ptr noundef @.str.17, i32 noundef %10341, ptr noundef @.str.67, ptr noundef @.str.13, i32 noundef 451, ptr noundef %10344, ptr noundef %10347, ptr noundef %10350, i32 noundef %10352) #12
  br label %10354

10354:                                            ; preds = %10337, %10320
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #12
  br label %10355

10355:                                            ; preds = %10354
  br label %10356

10356:                                            ; preds = %10355
  call void @exit(i32 noundef 1) #14
  unreachable

10357:                                            ; No predecessors!
  br label %10358

10358:                                            ; preds = %10357
  br label %10359

10359:                                            ; preds = %10358, %10301
  br label %10360

10360:                                            ; preds = %10359
  br label %10361

10361:                                            ; preds = %10360
  call void @llvm.lifetime.start.p0(i64 40, ptr %219) #12
  call void @llvm.memset.p0.i64(ptr align 8 %219, i8 0, i64 40, i1 false)
  br label %10362

10362:                                            ; preds = %10361
  %10363 = load i32, ptr @test_count, align 4, !tbaa !5
  %10364 = add nsw i32 %10363, 1
  store i32 %10364, ptr @test_count, align 4, !tbaa !5
  %10365 = call i32 @s2n_stuffer_init(ptr noundef %219, ptr noundef %217)
  %10366 = icmp eq i32 %10365, -1
  br i1 %10366, label %10367, label %10420

10367:                                            ; preds = %10362
  br label %10368

10368:                                            ; preds = %10367
  br label %10369

10369:                                            ; preds = %10368
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #12
  %10370 = call ptr @__errno_location() #13
  %10371 = load i32, ptr %10370, align 4, !tbaa !5
  store i32 %10371, ptr %220, align 4, !tbaa !5
  %10372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10373 = call i32 @s2n_print_stacktrace(ptr noundef %10372)
  %10374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10375 = trunc i8 %10374 to i1
  br i1 %10375, label %10376, label %10398

10376:                                            ; preds = %10369
  %10377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10378 = call i32 @fileno(ptr noundef %10377) #12
  %10379 = call i32 @isatty(i32 noundef %10378) #12
  %10380 = icmp ne i32 %10379, 0
  br i1 %10380, label %10381, label %10398

10381:                                            ; preds = %10376
  %10382 = load i32, ptr %220, align 4, !tbaa !5
  %10383 = call ptr @__errno_location() #13
  store i32 %10382, ptr %10383, align 4, !tbaa !5
  %10384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10385 = load i32, ptr @test_count, align 4, !tbaa !5
  %10386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10387 = load i32, ptr %10386, align 4, !tbaa !5
  %10388 = call ptr @s2n_strerror(i32 noundef %10387, ptr noundef @.str.16)
  %10389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10390 = load i32, ptr %10389, align 4, !tbaa !5
  %10391 = call ptr @s2n_strerror_debug(i32 noundef %10390, ptr noundef @.str.16)
  %10392 = call ptr @__errno_location() #13
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  %10394 = call ptr @strerror(i32 noundef %10393) #12
  %10395 = call ptr @__errno_location() #13
  %10396 = load i32, ptr %10395, align 4, !tbaa !5
  %10397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10384, ptr noundef @.str.14, i32 noundef %10385, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 453, ptr noundef %10388, ptr noundef %10391, ptr noundef %10394, i32 noundef %10396) #12
  br label %10415

10398:                                            ; preds = %10376, %10369
  %10399 = load i32, ptr %220, align 4, !tbaa !5
  %10400 = call ptr @__errno_location() #13
  store i32 %10399, ptr %10400, align 4, !tbaa !5
  %10401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10402 = load i32, ptr @test_count, align 4, !tbaa !5
  %10403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10404 = load i32, ptr %10403, align 4, !tbaa !5
  %10405 = call ptr @s2n_strerror(i32 noundef %10404, ptr noundef @.str.16)
  %10406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10407 = load i32, ptr %10406, align 4, !tbaa !5
  %10408 = call ptr @s2n_strerror_debug(i32 noundef %10407, ptr noundef @.str.16)
  %10409 = call ptr @__errno_location() #13
  %10410 = load i32, ptr %10409, align 4, !tbaa !5
  %10411 = call ptr @strerror(i32 noundef %10410) #12
  %10412 = call ptr @__errno_location() #13
  %10413 = load i32, ptr %10412, align 4, !tbaa !5
  %10414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10401, ptr noundef @.str.17, i32 noundef %10402, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 453, ptr noundef %10405, ptr noundef %10408, ptr noundef %10411, i32 noundef %10413) #12
  br label %10415

10415:                                            ; preds = %10398, %10381
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #12
  br label %10416

10416:                                            ; preds = %10415
  br label %10417

10417:                                            ; preds = %10416
  call void @exit(i32 noundef 1) #14
  unreachable

10418:                                            ; No predecessors!
  br label %10419

10419:                                            ; preds = %10418
  br label %10420

10420:                                            ; preds = %10419, %10362
  br label %10421

10421:                                            ; preds = %10420
  br label %10422

10422:                                            ; preds = %10421
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %221, ptr align 1 @__const.main.prefixed_input.119, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 2, ptr %222) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %222, ptr align 1 @__const.main.unprefixed_input.120, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #12
  %10423 = getelementptr inbounds [2 x i8], ptr %222, i64 0, i64 0
  store ptr %10423, ptr %223, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %224) #12
  store i16 2, ptr %224, align 2, !tbaa !29
  %10424 = load i32, ptr %48, align 4, !tbaa !5
  %10425 = icmp ne i32 %10424, 0
  br i1 %10425, label %10426, label %10428

10426:                                            ; preds = %10422
  %10427 = getelementptr inbounds [4 x i8], ptr %221, i64 0, i64 0
  store ptr %10427, ptr %223, align 8, !tbaa !9
  store i16 4, ptr %224, align 2, !tbaa !29
  br label %10428

10428:                                            ; preds = %10426, %10422
  br label %10429

10429:                                            ; preds = %10428
  %10430 = load i32, ptr @test_count, align 4, !tbaa !5
  %10431 = add nsw i32 %10430, 1
  store i32 %10431, ptr @test_count, align 4, !tbaa !5
  %10432 = load ptr, ptr %223, align 8, !tbaa !9
  %10433 = load i16, ptr %224, align 2, !tbaa !29
  %10434 = zext i16 %10433 to i32
  %10435 = call i32 @s2n_stuffer_write_bytes(ptr noundef %219, ptr noundef %10432, i32 noundef %10434)
  %10436 = icmp eq i32 %10435, -1
  br i1 %10436, label %10437, label %10490

10437:                                            ; preds = %10429
  br label %10438

10438:                                            ; preds = %10437
  br label %10439

10439:                                            ; preds = %10438
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #12
  %10440 = call ptr @__errno_location() #13
  %10441 = load i32, ptr %10440, align 4, !tbaa !5
  store i32 %10441, ptr %225, align 4, !tbaa !5
  %10442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10443 = call i32 @s2n_print_stacktrace(ptr noundef %10442)
  %10444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10445 = trunc i8 %10444 to i1
  br i1 %10445, label %10446, label %10468

10446:                                            ; preds = %10439
  %10447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10448 = call i32 @fileno(ptr noundef %10447) #12
  %10449 = call i32 @isatty(i32 noundef %10448) #12
  %10450 = icmp ne i32 %10449, 0
  br i1 %10450, label %10451, label %10468

10451:                                            ; preds = %10446
  %10452 = load i32, ptr %225, align 4, !tbaa !5
  %10453 = call ptr @__errno_location() #13
  store i32 %10452, ptr %10453, align 4, !tbaa !5
  %10454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10455 = load i32, ptr @test_count, align 4, !tbaa !5
  %10456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10457 = load i32, ptr %10456, align 4, !tbaa !5
  %10458 = call ptr @s2n_strerror(i32 noundef %10457, ptr noundef @.str.16)
  %10459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call ptr @s2n_strerror_debug(i32 noundef %10460, ptr noundef @.str.16)
  %10462 = call ptr @__errno_location() #13
  %10463 = load i32, ptr %10462, align 4, !tbaa !5
  %10464 = call ptr @strerror(i32 noundef %10463) #12
  %10465 = call ptr @__errno_location() #13
  %10466 = load i32, ptr %10465, align 4, !tbaa !5
  %10467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10454, ptr noundef @.str.14, i32 noundef %10455, ptr noundef @.str.104, ptr noundef @.str.13, i32 noundef 468, ptr noundef %10458, ptr noundef %10461, ptr noundef %10464, i32 noundef %10466) #12
  br label %10485

10468:                                            ; preds = %10446, %10439
  %10469 = load i32, ptr %225, align 4, !tbaa !5
  %10470 = call ptr @__errno_location() #13
  store i32 %10469, ptr %10470, align 4, !tbaa !5
  %10471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10472 = load i32, ptr @test_count, align 4, !tbaa !5
  %10473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  %10475 = call ptr @s2n_strerror(i32 noundef %10474, ptr noundef @.str.16)
  %10476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  %10478 = call ptr @s2n_strerror_debug(i32 noundef %10477, ptr noundef @.str.16)
  %10479 = call ptr @__errno_location() #13
  %10480 = load i32, ptr %10479, align 4, !tbaa !5
  %10481 = call ptr @strerror(i32 noundef %10480) #12
  %10482 = call ptr @__errno_location() #13
  %10483 = load i32, ptr %10482, align 4, !tbaa !5
  %10484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10471, ptr noundef @.str.17, i32 noundef %10472, ptr noundef @.str.104, ptr noundef @.str.13, i32 noundef 468, ptr noundef %10475, ptr noundef %10478, ptr noundef %10481, i32 noundef %10483) #12
  br label %10485

10485:                                            ; preds = %10468, %10451
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #12
  br label %10486

10486:                                            ; preds = %10485
  br label %10487

10487:                                            ; preds = %10486
  call void @exit(i32 noundef 1) #14
  unreachable

10488:                                            ; No predecessors!
  br label %10489

10489:                                            ; preds = %10488
  br label %10490

10490:                                            ; preds = %10489, %10429
  br label %10491

10491:                                            ; preds = %10490
  br label %10492

10492:                                            ; preds = %10491
  br label %10493

10493:                                            ; preds = %10492
  %10494 = load i32, ptr @test_count, align 4, !tbaa !5
  %10495 = add nsw i32 %10494, 1
  store i32 %10495, ptr @test_count, align 4, !tbaa !5
  %10496 = call i32 @s2n_stuffer_reread(ptr noundef %219)
  %10497 = icmp eq i32 %10496, -1
  br i1 %10497, label %10498, label %10551

10498:                                            ; preds = %10493
  br label %10499

10499:                                            ; preds = %10498
  br label %10500

10500:                                            ; preds = %10499
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #12
  %10501 = call ptr @__errno_location() #13
  %10502 = load i32, ptr %10501, align 4, !tbaa !5
  store i32 %10502, ptr %226, align 4, !tbaa !5
  %10503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10504 = call i32 @s2n_print_stacktrace(ptr noundef %10503)
  %10505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10506 = trunc i8 %10505 to i1
  br i1 %10506, label %10507, label %10529

10507:                                            ; preds = %10500
  %10508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10509 = call i32 @fileno(ptr noundef %10508) #12
  %10510 = call i32 @isatty(i32 noundef %10509) #12
  %10511 = icmp ne i32 %10510, 0
  br i1 %10511, label %10512, label %10529

10512:                                            ; preds = %10507
  %10513 = load i32, ptr %226, align 4, !tbaa !5
  %10514 = call ptr @__errno_location() #13
  store i32 %10513, ptr %10514, align 4, !tbaa !5
  %10515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10516 = load i32, ptr @test_count, align 4, !tbaa !5
  %10517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10518 = load i32, ptr %10517, align 4, !tbaa !5
  %10519 = call ptr @s2n_strerror(i32 noundef %10518, ptr noundef @.str.16)
  %10520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10521 = load i32, ptr %10520, align 4, !tbaa !5
  %10522 = call ptr @s2n_strerror_debug(i32 noundef %10521, ptr noundef @.str.16)
  %10523 = call ptr @__errno_location() #13
  %10524 = load i32, ptr %10523, align 4, !tbaa !5
  %10525 = call ptr @strerror(i32 noundef %10524) #12
  %10526 = call ptr @__errno_location() #13
  %10527 = load i32, ptr %10526, align 4, !tbaa !5
  %10528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10515, ptr noundef @.str.14, i32 noundef %10516, ptr noundef @.str.105, ptr noundef @.str.13, i32 noundef 469, ptr noundef %10519, ptr noundef %10522, ptr noundef %10525, i32 noundef %10527) #12
  br label %10546

10529:                                            ; preds = %10507, %10500
  %10530 = load i32, ptr %226, align 4, !tbaa !5
  %10531 = call ptr @__errno_location() #13
  store i32 %10530, ptr %10531, align 4, !tbaa !5
  %10532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10533 = load i32, ptr @test_count, align 4, !tbaa !5
  %10534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10535 = load i32, ptr %10534, align 4, !tbaa !5
  %10536 = call ptr @s2n_strerror(i32 noundef %10535, ptr noundef @.str.16)
  %10537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10538 = load i32, ptr %10537, align 4, !tbaa !5
  %10539 = call ptr @s2n_strerror_debug(i32 noundef %10538, ptr noundef @.str.16)
  %10540 = call ptr @__errno_location() #13
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  %10542 = call ptr @strerror(i32 noundef %10541) #12
  %10543 = call ptr @__errno_location() #13
  %10544 = load i32, ptr %10543, align 4, !tbaa !5
  %10545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10532, ptr noundef @.str.17, i32 noundef %10533, ptr noundef @.str.105, ptr noundef @.str.13, i32 noundef 469, ptr noundef %10536, ptr noundef %10539, ptr noundef %10542, i32 noundef %10544) #12
  br label %10546

10546:                                            ; preds = %10529, %10512
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #12
  br label %10547

10547:                                            ; preds = %10546
  br label %10548

10548:                                            ; preds = %10547
  call void @exit(i32 noundef 1) #14
  unreachable

10549:                                            ; No predecessors!
  br label %10550

10550:                                            ; preds = %10549
  br label %10551

10551:                                            ; preds = %10550, %10493
  br label %10552

10552:                                            ; preds = %10551
  br label %10553

10553:                                            ; preds = %10552
  br label %10554

10554:                                            ; preds = %10553
  %10555 = load i32, ptr @test_count, align 4, !tbaa !5
  %10556 = add nsw i32 %10555, 1
  store i32 %10556, ptr @test_count, align 4, !tbaa !5
  %10557 = call i32 @s2n_kem_recv_public_key(ptr noundef %219, ptr noundef %216)
  %10558 = icmp eq i32 %10557, -1
  br i1 %10558, label %10559, label %10612

10559:                                            ; preds = %10554
  br label %10560

10560:                                            ; preds = %10559
  br label %10561

10561:                                            ; preds = %10560
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #12
  %10562 = call ptr @__errno_location() #13
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  store i32 %10563, ptr %227, align 4, !tbaa !5
  %10564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10565 = call i32 @s2n_print_stacktrace(ptr noundef %10564)
  %10566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10567 = trunc i8 %10566 to i1
  br i1 %10567, label %10568, label %10590

10568:                                            ; preds = %10561
  %10569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10570 = call i32 @fileno(ptr noundef %10569) #12
  %10571 = call i32 @isatty(i32 noundef %10570) #12
  %10572 = icmp ne i32 %10571, 0
  br i1 %10572, label %10573, label %10590

10573:                                            ; preds = %10568
  %10574 = load i32, ptr %227, align 4, !tbaa !5
  %10575 = call ptr @__errno_location() #13
  store i32 %10574, ptr %10575, align 4, !tbaa !5
  %10576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10577 = load i32, ptr @test_count, align 4, !tbaa !5
  %10578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10579 = load i32, ptr %10578, align 4, !tbaa !5
  %10580 = call ptr @s2n_strerror(i32 noundef %10579, ptr noundef @.str.16)
  %10581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10582 = load i32, ptr %10581, align 4, !tbaa !5
  %10583 = call ptr @s2n_strerror_debug(i32 noundef %10582, ptr noundef @.str.16)
  %10584 = call ptr @__errno_location() #13
  %10585 = load i32, ptr %10584, align 4, !tbaa !5
  %10586 = call ptr @strerror(i32 noundef %10585) #12
  %10587 = call ptr @__errno_location() #13
  %10588 = load i32, ptr %10587, align 4, !tbaa !5
  %10589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10576, ptr noundef @.str.14, i32 noundef %10577, ptr noundef @.str.121, ptr noundef @.str.13, i32 noundef 471, ptr noundef %10580, ptr noundef %10583, ptr noundef %10586, i32 noundef %10588) #12
  br label %10607

10590:                                            ; preds = %10568, %10561
  %10591 = load i32, ptr %227, align 4, !tbaa !5
  %10592 = call ptr @__errno_location() #13
  store i32 %10591, ptr %10592, align 4, !tbaa !5
  %10593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10594 = load i32, ptr @test_count, align 4, !tbaa !5
  %10595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10596 = load i32, ptr %10595, align 4, !tbaa !5
  %10597 = call ptr @s2n_strerror(i32 noundef %10596, ptr noundef @.str.16)
  %10598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10599 = load i32, ptr %10598, align 4, !tbaa !5
  %10600 = call ptr @s2n_strerror_debug(i32 noundef %10599, ptr noundef @.str.16)
  %10601 = call ptr @__errno_location() #13
  %10602 = load i32, ptr %10601, align 4, !tbaa !5
  %10603 = call ptr @strerror(i32 noundef %10602) #12
  %10604 = call ptr @__errno_location() #13
  %10605 = load i32, ptr %10604, align 4, !tbaa !5
  %10606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10593, ptr noundef @.str.17, i32 noundef %10594, ptr noundef @.str.121, ptr noundef @.str.13, i32 noundef 471, ptr noundef %10597, ptr noundef %10600, ptr noundef %10603, i32 noundef %10605) #12
  br label %10607

10607:                                            ; preds = %10590, %10573
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #12
  br label %10608

10608:                                            ; preds = %10607
  br label %10609

10609:                                            ; preds = %10608
  call void @exit(i32 noundef 1) #14
  unreachable

10610:                                            ; No predecessors!
  br label %10611

10611:                                            ; preds = %10610
  br label %10612

10612:                                            ; preds = %10611, %10554
  br label %10613

10613:                                            ; preds = %10612
  br label %10614

10614:                                            ; preds = %10613
  br label %10615

10615:                                            ; preds = %10614
  %10616 = load i32, ptr @test_count, align 4, !tbaa !5
  %10617 = add nsw i32 %10616, 1
  store i32 %10617, ptr @test_count, align 4, !tbaa !5
  %10618 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 1
  %10619 = getelementptr inbounds %struct.s2n_blob, ptr %10618, i32 0, i32 1
  %10620 = load i32, ptr %10619, align 8, !tbaa !34
  %10621 = icmp eq i32 %10620, 2
  br i1 %10621, label %10675, label %10622

10622:                                            ; preds = %10615
  br label %10623

10623:                                            ; preds = %10622
  br label %10624

10624:                                            ; preds = %10623
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #12
  %10625 = call ptr @__errno_location() #13
  %10626 = load i32, ptr %10625, align 4, !tbaa !5
  store i32 %10626, ptr %228, align 4, !tbaa !5
  %10627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10628 = call i32 @s2n_print_stacktrace(ptr noundef %10627)
  %10629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10630 = trunc i8 %10629 to i1
  br i1 %10630, label %10631, label %10653

10631:                                            ; preds = %10624
  %10632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10633 = call i32 @fileno(ptr noundef %10632) #12
  %10634 = call i32 @isatty(i32 noundef %10633) #12
  %10635 = icmp ne i32 %10634, 0
  br i1 %10635, label %10636, label %10653

10636:                                            ; preds = %10631
  %10637 = load i32, ptr %228, align 4, !tbaa !5
  %10638 = call ptr @__errno_location() #13
  store i32 %10637, ptr %10638, align 4, !tbaa !5
  %10639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10640 = load i32, ptr @test_count, align 4, !tbaa !5
  %10641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10642 = load i32, ptr %10641, align 4, !tbaa !5
  %10643 = call ptr @s2n_strerror(i32 noundef %10642, ptr noundef @.str.16)
  %10644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10645 = load i32, ptr %10644, align 4, !tbaa !5
  %10646 = call ptr @s2n_strerror_debug(i32 noundef %10645, ptr noundef @.str.16)
  %10647 = call ptr @__errno_location() #13
  %10648 = load i32, ptr %10647, align 4, !tbaa !5
  %10649 = call ptr @strerror(i32 noundef %10648) #12
  %10650 = call ptr @__errno_location() #13
  %10651 = load i32, ptr %10650, align 4, !tbaa !5
  %10652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10639, ptr noundef @.str.14, i32 noundef %10640, ptr noundef @.str.93, ptr noundef @.str.13, i32 noundef 474, ptr noundef %10643, ptr noundef %10646, ptr noundef %10649, i32 noundef %10651) #12
  br label %10670

10653:                                            ; preds = %10631, %10624
  %10654 = load i32, ptr %228, align 4, !tbaa !5
  %10655 = call ptr @__errno_location() #13
  store i32 %10654, ptr %10655, align 4, !tbaa !5
  %10656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10657 = load i32, ptr @test_count, align 4, !tbaa !5
  %10658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10659 = load i32, ptr %10658, align 4, !tbaa !5
  %10660 = call ptr @s2n_strerror(i32 noundef %10659, ptr noundef @.str.16)
  %10661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10662 = load i32, ptr %10661, align 4, !tbaa !5
  %10663 = call ptr @s2n_strerror_debug(i32 noundef %10662, ptr noundef @.str.16)
  %10664 = call ptr @__errno_location() #13
  %10665 = load i32, ptr %10664, align 4, !tbaa !5
  %10666 = call ptr @strerror(i32 noundef %10665) #12
  %10667 = call ptr @__errno_location() #13
  %10668 = load i32, ptr %10667, align 4, !tbaa !5
  %10669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10656, ptr noundef @.str.17, i32 noundef %10657, ptr noundef @.str.93, ptr noundef @.str.13, i32 noundef 474, ptr noundef %10660, ptr noundef %10663, ptr noundef %10666, i32 noundef %10668) #12
  br label %10670

10670:                                            ; preds = %10653, %10636
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #12
  br label %10671

10671:                                            ; preds = %10670
  br label %10672

10672:                                            ; preds = %10671
  call void @exit(i32 noundef 1) #14
  unreachable

10673:                                            ; No predecessors!
  br label %10674

10674:                                            ; preds = %10673
  br label %10675

10675:                                            ; preds = %10674, %10615
  br label %10676

10676:                                            ; preds = %10675
  br label %10677

10677:                                            ; preds = %10676
  br label %10678

10678:                                            ; preds = %10677
  %10679 = load i32, ptr @test_count, align 4, !tbaa !5
  %10680 = add nsw i32 %10679, 1
  store i32 %10680, ptr @test_count, align 4, !tbaa !5
  %10681 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 1
  %10682 = getelementptr inbounds %struct.s2n_blob, ptr %10681, i32 0, i32 2
  %10683 = load i32, ptr %10682, align 4, !tbaa !46
  %10684 = icmp eq i32 0, %10683
  br i1 %10684, label %10685, label %10738

10685:                                            ; preds = %10678
  br label %10686

10686:                                            ; preds = %10685
  br label %10687

10687:                                            ; preds = %10686
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #12
  %10688 = call ptr @__errno_location() #13
  %10689 = load i32, ptr %10688, align 4, !tbaa !5
  store i32 %10689, ptr %229, align 4, !tbaa !5
  %10690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10691 = call i32 @s2n_print_stacktrace(ptr noundef %10690)
  %10692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10693 = trunc i8 %10692 to i1
  br i1 %10693, label %10694, label %10716

10694:                                            ; preds = %10687
  %10695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10696 = call i32 @fileno(ptr noundef %10695) #12
  %10697 = call i32 @isatty(i32 noundef %10696) #12
  %10698 = icmp ne i32 %10697, 0
  br i1 %10698, label %10699, label %10716

10699:                                            ; preds = %10694
  %10700 = load i32, ptr %229, align 4, !tbaa !5
  %10701 = call ptr @__errno_location() #13
  store i32 %10700, ptr %10701, align 4, !tbaa !5
  %10702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10703 = load i32, ptr @test_count, align 4, !tbaa !5
  %10704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10705 = load i32, ptr %10704, align 4, !tbaa !5
  %10706 = call ptr @s2n_strerror(i32 noundef %10705, ptr noundef @.str.16)
  %10707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10708 = load i32, ptr %10707, align 4, !tbaa !5
  %10709 = call ptr @s2n_strerror_debug(i32 noundef %10708, ptr noundef @.str.16)
  %10710 = call ptr @__errno_location() #13
  %10711 = load i32, ptr %10710, align 4, !tbaa !5
  %10712 = call ptr @strerror(i32 noundef %10711) #12
  %10713 = call ptr @__errno_location() #13
  %10714 = load i32, ptr %10713, align 4, !tbaa !5
  %10715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10702, ptr noundef @.str.14, i32 noundef %10703, ptr noundef @.str.98, ptr noundef @.str.13, i32 noundef 475, ptr noundef %10706, ptr noundef %10709, ptr noundef %10712, i32 noundef %10714) #12
  br label %10733

10716:                                            ; preds = %10694, %10687
  %10717 = load i32, ptr %229, align 4, !tbaa !5
  %10718 = call ptr @__errno_location() #13
  store i32 %10717, ptr %10718, align 4, !tbaa !5
  %10719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10720 = load i32, ptr @test_count, align 4, !tbaa !5
  %10721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10722 = load i32, ptr %10721, align 4, !tbaa !5
  %10723 = call ptr @s2n_strerror(i32 noundef %10722, ptr noundef @.str.16)
  %10724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10725 = load i32, ptr %10724, align 4, !tbaa !5
  %10726 = call ptr @s2n_strerror_debug(i32 noundef %10725, ptr noundef @.str.16)
  %10727 = call ptr @__errno_location() #13
  %10728 = load i32, ptr %10727, align 4, !tbaa !5
  %10729 = call ptr @strerror(i32 noundef %10728) #12
  %10730 = call ptr @__errno_location() #13
  %10731 = load i32, ptr %10730, align 4, !tbaa !5
  %10732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10719, ptr noundef @.str.17, i32 noundef %10720, ptr noundef @.str.98, ptr noundef @.str.13, i32 noundef 475, ptr noundef %10723, ptr noundef %10726, ptr noundef %10729, i32 noundef %10731) #12
  br label %10733

10733:                                            ; preds = %10716, %10699
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #12
  br label %10734

10734:                                            ; preds = %10733
  br label %10735

10735:                                            ; preds = %10734
  call void @exit(i32 noundef 1) #14
  unreachable

10736:                                            ; No predecessors!
  br label %10737

10737:                                            ; preds = %10736
  br label %10738

10738:                                            ; preds = %10737, %10678
  br label %10739

10739:                                            ; preds = %10738
  br label %10740

10740:                                            ; preds = %10739
  br label %10741

10741:                                            ; preds = %10740
  br label %10742

10742:                                            ; preds = %10741
  %10743 = load i32, ptr @test_count, align 4, !tbaa !5
  %10744 = add nsw i32 %10743, 1
  store i32 %10744, ptr @test_count, align 4, !tbaa !5
  %10745 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 1
  %10746 = getelementptr inbounds %struct.s2n_blob, ptr %10745, i32 0, i32 0
  %10747 = load ptr, ptr %10746, align 8, !tbaa !36
  %10748 = call i32 @memcmp(ptr noundef %10747, ptr noundef @TEST_PUBLIC_KEY, i64 noundef 2) #15
  %10749 = icmp eq i32 %10748, 0
  br i1 %10749, label %10803, label %10750

10750:                                            ; preds = %10742
  br label %10751

10751:                                            ; preds = %10750
  br label %10752

10752:                                            ; preds = %10751
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #12
  %10753 = call ptr @__errno_location() #13
  %10754 = load i32, ptr %10753, align 4, !tbaa !5
  store i32 %10754, ptr %230, align 4, !tbaa !5
  %10755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10756 = call i32 @s2n_print_stacktrace(ptr noundef %10755)
  %10757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10758 = trunc i8 %10757 to i1
  br i1 %10758, label %10759, label %10781

10759:                                            ; preds = %10752
  %10760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10761 = call i32 @fileno(ptr noundef %10760) #12
  %10762 = call i32 @isatty(i32 noundef %10761) #12
  %10763 = icmp ne i32 %10762, 0
  br i1 %10763, label %10764, label %10781

10764:                                            ; preds = %10759
  %10765 = load i32, ptr %230, align 4, !tbaa !5
  %10766 = call ptr @__errno_location() #13
  store i32 %10765, ptr %10766, align 4, !tbaa !5
  %10767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10768 = load i32, ptr @test_count, align 4, !tbaa !5
  %10769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  %10771 = call ptr @s2n_strerror(i32 noundef %10770, ptr noundef @.str.16)
  %10772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call ptr @s2n_strerror_debug(i32 noundef %10773, ptr noundef @.str.16)
  %10775 = call ptr @__errno_location() #13
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  %10777 = call ptr @strerror(i32 noundef %10776) #12
  %10778 = call ptr @__errno_location() #13
  %10779 = load i32, ptr %10778, align 4, !tbaa !5
  %10780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10767, ptr noundef @.str.14, i32 noundef %10768, ptr noundef @.str.94, ptr noundef @.str.13, i32 noundef 476, ptr noundef %10771, ptr noundef %10774, ptr noundef %10777, i32 noundef %10779) #12
  br label %10798

10781:                                            ; preds = %10759, %10752
  %10782 = load i32, ptr %230, align 4, !tbaa !5
  %10783 = call ptr @__errno_location() #13
  store i32 %10782, ptr %10783, align 4, !tbaa !5
  %10784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10785 = load i32, ptr @test_count, align 4, !tbaa !5
  %10786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10787 = load i32, ptr %10786, align 4, !tbaa !5
  %10788 = call ptr @s2n_strerror(i32 noundef %10787, ptr noundef @.str.16)
  %10789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call ptr @s2n_strerror_debug(i32 noundef %10790, ptr noundef @.str.16)
  %10792 = call ptr @__errno_location() #13
  %10793 = load i32, ptr %10792, align 4, !tbaa !5
  %10794 = call ptr @strerror(i32 noundef %10793) #12
  %10795 = call ptr @__errno_location() #13
  %10796 = load i32, ptr %10795, align 4, !tbaa !5
  %10797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10784, ptr noundef @.str.17, i32 noundef %10785, ptr noundef @.str.94, ptr noundef @.str.13, i32 noundef 476, ptr noundef %10788, ptr noundef %10791, ptr noundef %10794, i32 noundef %10796) #12
  br label %10798

10798:                                            ; preds = %10781, %10764
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #12
  br label %10799

10799:                                            ; preds = %10798
  br label %10800

10800:                                            ; preds = %10799
  call void @exit(i32 noundef 1) #14
  unreachable

10801:                                            ; No predecessors!
  br label %10802

10802:                                            ; preds = %10801
  br label %10803

10803:                                            ; preds = %10802, %10742
  br label %10804

10804:                                            ; preds = %10803
  br label %10805

10805:                                            ; preds = %10804
  br label %10806

10806:                                            ; preds = %10805
  br label %10807

10807:                                            ; preds = %10806
  br label %10808

10808:                                            ; preds = %10807
  %10809 = load i32, ptr @test_count, align 4, !tbaa !5
  %10810 = add nsw i32 %10809, 1
  store i32 %10810, ptr @test_count, align 4, !tbaa !5
  %10811 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 3
  %10812 = getelementptr inbounds %struct.s2n_blob, ptr %10811, i32 0, i32 2
  %10813 = load i32, ptr %10812, align 4, !tbaa !39
  %10814 = icmp eq i32 0, %10813
  br i1 %10814, label %10868, label %10815

10815:                                            ; preds = %10808
  br label %10816

10816:                                            ; preds = %10815
  br label %10817

10817:                                            ; preds = %10816
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #12
  %10818 = call ptr @__errno_location() #13
  %10819 = load i32, ptr %10818, align 4, !tbaa !5
  store i32 %10819, ptr %231, align 4, !tbaa !5
  %10820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10821 = call i32 @s2n_print_stacktrace(ptr noundef %10820)
  %10822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10823 = trunc i8 %10822 to i1
  br i1 %10823, label %10824, label %10846

10824:                                            ; preds = %10817
  %10825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10826 = call i32 @fileno(ptr noundef %10825) #12
  %10827 = call i32 @isatty(i32 noundef %10826) #12
  %10828 = icmp ne i32 %10827, 0
  br i1 %10828, label %10829, label %10846

10829:                                            ; preds = %10824
  %10830 = load i32, ptr %231, align 4, !tbaa !5
  %10831 = call ptr @__errno_location() #13
  store i32 %10830, ptr %10831, align 4, !tbaa !5
  %10832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10833 = load i32, ptr @test_count, align 4, !tbaa !5
  %10834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10835 = load i32, ptr %10834, align 4, !tbaa !5
  %10836 = call ptr @s2n_strerror(i32 noundef %10835, ptr noundef @.str.16)
  %10837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10838 = load i32, ptr %10837, align 4, !tbaa !5
  %10839 = call ptr @s2n_strerror_debug(i32 noundef %10838, ptr noundef @.str.16)
  %10840 = call ptr @__errno_location() #13
  %10841 = load i32, ptr %10840, align 4, !tbaa !5
  %10842 = call ptr @strerror(i32 noundef %10841) #12
  %10843 = call ptr @__errno_location() #13
  %10844 = load i32, ptr %10843, align 4, !tbaa !5
  %10845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10832, ptr noundef @.str.14, i32 noundef %10833, ptr noundef @.str.78, ptr noundef @.str.13, i32 noundef 477, ptr noundef %10836, ptr noundef %10839, ptr noundef %10842, i32 noundef %10844) #12
  br label %10863

10846:                                            ; preds = %10824, %10817
  %10847 = load i32, ptr %231, align 4, !tbaa !5
  %10848 = call ptr @__errno_location() #13
  store i32 %10847, ptr %10848, align 4, !tbaa !5
  %10849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10850 = load i32, ptr @test_count, align 4, !tbaa !5
  %10851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10852 = load i32, ptr %10851, align 4, !tbaa !5
  %10853 = call ptr @s2n_strerror(i32 noundef %10852, ptr noundef @.str.16)
  %10854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10855 = load i32, ptr %10854, align 4, !tbaa !5
  %10856 = call ptr @s2n_strerror_debug(i32 noundef %10855, ptr noundef @.str.16)
  %10857 = call ptr @__errno_location() #13
  %10858 = load i32, ptr %10857, align 4, !tbaa !5
  %10859 = call ptr @strerror(i32 noundef %10858) #12
  %10860 = call ptr @__errno_location() #13
  %10861 = load i32, ptr %10860, align 4, !tbaa !5
  %10862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10849, ptr noundef @.str.17, i32 noundef %10850, ptr noundef @.str.78, ptr noundef @.str.13, i32 noundef 477, ptr noundef %10853, ptr noundef %10856, ptr noundef %10859, i32 noundef %10861) #12
  br label %10863

10863:                                            ; preds = %10846, %10829
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #12
  br label %10864

10864:                                            ; preds = %10863
  br label %10865

10865:                                            ; preds = %10864
  call void @exit(i32 noundef 1) #14
  unreachable

10866:                                            ; No predecessors!
  br label %10867

10867:                                            ; preds = %10866
  br label %10868

10868:                                            ; preds = %10867, %10808
  br label %10869

10869:                                            ; preds = %10868
  br label %10870

10870:                                            ; preds = %10869
  br label %10871

10871:                                            ; preds = %10870
  %10872 = load i32, ptr @test_count, align 4, !tbaa !5
  %10873 = add nsw i32 %10872, 1
  store i32 %10873, ptr @test_count, align 4, !tbaa !5
  %10874 = getelementptr inbounds %struct.s2n_kem_params, ptr %216, i32 0, i32 2
  %10875 = getelementptr inbounds %struct.s2n_blob, ptr %10874, i32 0, i32 2
  %10876 = load i32, ptr %10875, align 4, !tbaa !43
  %10877 = icmp eq i32 0, %10876
  br i1 %10877, label %10931, label %10878

10878:                                            ; preds = %10871
  br label %10879

10879:                                            ; preds = %10878
  br label %10880

10880:                                            ; preds = %10879
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #12
  %10881 = call ptr @__errno_location() #13
  %10882 = load i32, ptr %10881, align 4, !tbaa !5
  store i32 %10882, ptr %232, align 4, !tbaa !5
  %10883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10884 = call i32 @s2n_print_stacktrace(ptr noundef %10883)
  %10885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10886 = trunc i8 %10885 to i1
  br i1 %10886, label %10887, label %10909

10887:                                            ; preds = %10880
  %10888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10889 = call i32 @fileno(ptr noundef %10888) #12
  %10890 = call i32 @isatty(i32 noundef %10889) #12
  %10891 = icmp ne i32 %10890, 0
  br i1 %10891, label %10892, label %10909

10892:                                            ; preds = %10887
  %10893 = load i32, ptr %232, align 4, !tbaa !5
  %10894 = call ptr @__errno_location() #13
  store i32 %10893, ptr %10894, align 4, !tbaa !5
  %10895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10896 = load i32, ptr @test_count, align 4, !tbaa !5
  %10897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10898 = load i32, ptr %10897, align 4, !tbaa !5
  %10899 = call ptr @s2n_strerror(i32 noundef %10898, ptr noundef @.str.16)
  %10900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10901 = load i32, ptr %10900, align 4, !tbaa !5
  %10902 = call ptr @s2n_strerror_debug(i32 noundef %10901, ptr noundef @.str.16)
  %10903 = call ptr @__errno_location() #13
  %10904 = load i32, ptr %10903, align 4, !tbaa !5
  %10905 = call ptr @strerror(i32 noundef %10904) #12
  %10906 = call ptr @__errno_location() #13
  %10907 = load i32, ptr %10906, align 4, !tbaa !5
  %10908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10895, ptr noundef @.str.14, i32 noundef %10896, ptr noundef @.str.97, ptr noundef @.str.13, i32 noundef 478, ptr noundef %10899, ptr noundef %10902, ptr noundef %10905, i32 noundef %10907) #12
  br label %10926

10909:                                            ; preds = %10887, %10880
  %10910 = load i32, ptr %232, align 4, !tbaa !5
  %10911 = call ptr @__errno_location() #13
  store i32 %10910, ptr %10911, align 4, !tbaa !5
  %10912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10913 = load i32, ptr @test_count, align 4, !tbaa !5
  %10914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10915 = load i32, ptr %10914, align 4, !tbaa !5
  %10916 = call ptr @s2n_strerror(i32 noundef %10915, ptr noundef @.str.16)
  %10917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10918 = load i32, ptr %10917, align 4, !tbaa !5
  %10919 = call ptr @s2n_strerror_debug(i32 noundef %10918, ptr noundef @.str.16)
  %10920 = call ptr @__errno_location() #13
  %10921 = load i32, ptr %10920, align 4, !tbaa !5
  %10922 = call ptr @strerror(i32 noundef %10921) #12
  %10923 = call ptr @__errno_location() #13
  %10924 = load i32, ptr %10923, align 4, !tbaa !5
  %10925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10912, ptr noundef @.str.17, i32 noundef %10913, ptr noundef @.str.97, ptr noundef @.str.13, i32 noundef 478, ptr noundef %10916, ptr noundef %10919, ptr noundef %10922, i32 noundef %10924) #12
  br label %10926

10926:                                            ; preds = %10909, %10892
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #12
  br label %10927

10927:                                            ; preds = %10926
  br label %10928

10928:                                            ; preds = %10927
  call void @exit(i32 noundef 1) #14
  unreachable

10929:                                            ; No predecessors!
  br label %10930

10930:                                            ; preds = %10929
  br label %10931

10931:                                            ; preds = %10930, %10871
  br label %10932

10932:                                            ; preds = %10931
  br label %10933

10933:                                            ; preds = %10932
  br label %10934

10934:                                            ; preds = %10933
  %10935 = load i32, ptr @test_count, align 4, !tbaa !5
  %10936 = add nsw i32 %10935, 1
  store i32 %10936, ptr @test_count, align 4, !tbaa !5
  %10937 = call i32 @s2n_kem_free(ptr noundef %216)
  %10938 = icmp eq i32 %10937, -1
  br i1 %10938, label %10939, label %10992

10939:                                            ; preds = %10934
  br label %10940

10940:                                            ; preds = %10939
  br label %10941

10941:                                            ; preds = %10940
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #12
  %10942 = call ptr @__errno_location() #13
  %10943 = load i32, ptr %10942, align 4, !tbaa !5
  store i32 %10943, ptr %233, align 4, !tbaa !5
  %10944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10945 = call i32 @s2n_print_stacktrace(ptr noundef %10944)
  %10946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10947 = trunc i8 %10946 to i1
  br i1 %10947, label %10948, label %10970

10948:                                            ; preds = %10941
  %10949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10950 = call i32 @fileno(ptr noundef %10949) #12
  %10951 = call i32 @isatty(i32 noundef %10950) #12
  %10952 = icmp ne i32 %10951, 0
  br i1 %10952, label %10953, label %10970

10953:                                            ; preds = %10948
  %10954 = load i32, ptr %233, align 4, !tbaa !5
  %10955 = call ptr @__errno_location() #13
  store i32 %10954, ptr %10955, align 4, !tbaa !5
  %10956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10957 = load i32, ptr @test_count, align 4, !tbaa !5
  %10958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @s2n_strerror(i32 noundef %10959, ptr noundef @.str.16)
  %10961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  %10963 = call ptr @s2n_strerror_debug(i32 noundef %10962, ptr noundef @.str.16)
  %10964 = call ptr @__errno_location() #13
  %10965 = load i32, ptr %10964, align 4, !tbaa !5
  %10966 = call ptr @strerror(i32 noundef %10965) #12
  %10967 = call ptr @__errno_location() #13
  %10968 = load i32, ptr %10967, align 4, !tbaa !5
  %10969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10956, ptr noundef @.str.14, i32 noundef %10957, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 479, ptr noundef %10960, ptr noundef %10963, ptr noundef %10966, i32 noundef %10968) #12
  br label %10987

10970:                                            ; preds = %10948, %10941
  %10971 = load i32, ptr %233, align 4, !tbaa !5
  %10972 = call ptr @__errno_location() #13
  store i32 %10971, ptr %10972, align 4, !tbaa !5
  %10973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10974 = load i32, ptr @test_count, align 4, !tbaa !5
  %10975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10976 = load i32, ptr %10975, align 4, !tbaa !5
  %10977 = call ptr @s2n_strerror(i32 noundef %10976, ptr noundef @.str.16)
  %10978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10979 = load i32, ptr %10978, align 4, !tbaa !5
  %10980 = call ptr @s2n_strerror_debug(i32 noundef %10979, ptr noundef @.str.16)
  %10981 = call ptr @__errno_location() #13
  %10982 = load i32, ptr %10981, align 4, !tbaa !5
  %10983 = call ptr @strerror(i32 noundef %10982) #12
  %10984 = call ptr @__errno_location() #13
  %10985 = load i32, ptr %10984, align 4, !tbaa !5
  %10986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10973, ptr noundef @.str.17, i32 noundef %10974, ptr noundef @.str.30, ptr noundef @.str.13, i32 noundef 479, ptr noundef %10977, ptr noundef %10980, ptr noundef %10983, i32 noundef %10985) #12
  br label %10987

10987:                                            ; preds = %10970, %10953
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #12
  br label %10988

10988:                                            ; preds = %10987
  br label %10989

10989:                                            ; preds = %10988
  call void @exit(i32 noundef 1) #14
  unreachable

10990:                                            ; No predecessors!
  br label %10991

10991:                                            ; preds = %10990
  br label %10992

10992:                                            ; preds = %10991, %10934
  br label %10993

10993:                                            ; preds = %10992
  br label %10994

10994:                                            ; preds = %10993
  call void @llvm.lifetime.end.p0(i64 2, ptr %224) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %222) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %219) #12
  %10995 = call i32 @s2n_free(ptr noundef %217)
  call void @llvm.lifetime.end.p0(i64 24, ptr %217) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %216) #12
  br label %10996

10996:                                            ; preds = %10994
  br label %10997

10997:                                            ; preds = %10996
  br label %10998

10998:                                            ; preds = %10997
  %10999 = load i32, ptr @test_count, align 4, !tbaa !5
  %11000 = add nsw i32 %10999, 1
  store i32 %11000, ptr @test_count, align 4, !tbaa !5
  %11001 = call i32 @s2n_kem_recv_public_key(ptr noundef null, ptr noundef null)
  %11002 = icmp eq i32 %11001, -1
  br i1 %11002, label %11056, label %11003

11003:                                            ; preds = %10998
  br label %11004

11004:                                            ; preds = %11003
  br label %11005

11005:                                            ; preds = %11004
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #12
  %11006 = call ptr @__errno_location() #13
  %11007 = load i32, ptr %11006, align 4, !tbaa !5
  store i32 %11007, ptr %234, align 4, !tbaa !5
  %11008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11009 = call i32 @s2n_print_stacktrace(ptr noundef %11008)
  %11010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11011 = trunc i8 %11010 to i1
  br i1 %11011, label %11012, label %11034

11012:                                            ; preds = %11005
  %11013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11014 = call i32 @fileno(ptr noundef %11013) #12
  %11015 = call i32 @isatty(i32 noundef %11014) #12
  %11016 = icmp ne i32 %11015, 0
  br i1 %11016, label %11017, label %11034

11017:                                            ; preds = %11012
  %11018 = load i32, ptr %234, align 4, !tbaa !5
  %11019 = call ptr @__errno_location() #13
  store i32 %11018, ptr %11019, align 4, !tbaa !5
  %11020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11021 = load i32, ptr @test_count, align 4, !tbaa !5
  %11022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11023 = load i32, ptr %11022, align 4, !tbaa !5
  %11024 = call ptr @s2n_strerror(i32 noundef %11023, ptr noundef @.str.16)
  %11025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11026 = load i32, ptr %11025, align 4, !tbaa !5
  %11027 = call ptr @s2n_strerror_debug(i32 noundef %11026, ptr noundef @.str.16)
  %11028 = call ptr @__errno_location() #13
  %11029 = load i32, ptr %11028, align 4, !tbaa !5
  %11030 = call ptr @strerror(i32 noundef %11029) #12
  %11031 = call ptr @__errno_location() #13
  %11032 = load i32, ptr %11031, align 4, !tbaa !5
  %11033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11020, ptr noundef @.str.14, i32 noundef %11021, ptr noundef @.str.122, ptr noundef @.str.13, i32 noundef 483, ptr noundef %11024, ptr noundef %11027, ptr noundef %11030, i32 noundef %11032) #12
  br label %11051

11034:                                            ; preds = %11012, %11005
  %11035 = load i32, ptr %234, align 4, !tbaa !5
  %11036 = call ptr @__errno_location() #13
  store i32 %11035, ptr %11036, align 4, !tbaa !5
  %11037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11038 = load i32, ptr @test_count, align 4, !tbaa !5
  %11039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11040 = load i32, ptr %11039, align 4, !tbaa !5
  %11041 = call ptr @s2n_strerror(i32 noundef %11040, ptr noundef @.str.16)
  %11042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11043 = load i32, ptr %11042, align 4, !tbaa !5
  %11044 = call ptr @s2n_strerror_debug(i32 noundef %11043, ptr noundef @.str.16)
  %11045 = call ptr @__errno_location() #13
  %11046 = load i32, ptr %11045, align 4, !tbaa !5
  %11047 = call ptr @strerror(i32 noundef %11046) #12
  %11048 = call ptr @__errno_location() #13
  %11049 = load i32, ptr %11048, align 4, !tbaa !5
  %11050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11037, ptr noundef @.str.17, i32 noundef %11038, ptr noundef @.str.122, ptr noundef @.str.13, i32 noundef 483, ptr noundef %11041, ptr noundef %11044, ptr noundef %11047, i32 noundef %11049) #12
  br label %11051

11051:                                            ; preds = %11034, %11017
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #12
  br label %11052

11052:                                            ; preds = %11051
  br label %11053

11053:                                            ; preds = %11052
  call void @exit(i32 noundef 1) #14
  unreachable

11054:                                            ; No predecessors!
  br label %11055

11055:                                            ; preds = %11054
  br label %11056

11056:                                            ; preds = %11055, %10998
  br label %11057

11057:                                            ; preds = %11056
  br label %11058

11058:                                            ; preds = %11057
  br label %11059

11059:                                            ; preds = %11058
  %11060 = load i32, ptr @test_count, align 4, !tbaa !5
  %11061 = add nsw i32 %11060, 1
  store i32 %11061, ptr @test_count, align 4, !tbaa !5
  %11062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11063 = load i32, ptr %11062, align 4, !tbaa !5
  %11064 = icmp eq i32 %11063, 402653193
  br i1 %11064, label %11118, label %11065

11065:                                            ; preds = %11059
  br label %11066

11066:                                            ; preds = %11065
  br label %11067

11067:                                            ; preds = %11066
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #12
  %11068 = call ptr @__errno_location() #13
  %11069 = load i32, ptr %11068, align 4, !tbaa !5
  store i32 %11069, ptr %235, align 4, !tbaa !5
  %11070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11071 = call i32 @s2n_print_stacktrace(ptr noundef %11070)
  %11072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11073 = trunc i8 %11072 to i1
  br i1 %11073, label %11074, label %11096

11074:                                            ; preds = %11067
  %11075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11076 = call i32 @fileno(ptr noundef %11075) #12
  %11077 = call i32 @isatty(i32 noundef %11076) #12
  %11078 = icmp ne i32 %11077, 0
  br i1 %11078, label %11079, label %11096

11079:                                            ; preds = %11074
  %11080 = load i32, ptr %235, align 4, !tbaa !5
  %11081 = call ptr @__errno_location() #13
  store i32 %11080, ptr %11081, align 4, !tbaa !5
  %11082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11083 = load i32, ptr @test_count, align 4, !tbaa !5
  %11084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11085 = load i32, ptr %11084, align 4, !tbaa !5
  %11086 = call ptr @s2n_strerror(i32 noundef %11085, ptr noundef @.str.16)
  %11087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11088 = load i32, ptr %11087, align 4, !tbaa !5
  %11089 = call ptr @s2n_strerror_debug(i32 noundef %11088, ptr noundef @.str.16)
  %11090 = call ptr @__errno_location() #13
  %11091 = load i32, ptr %11090, align 4, !tbaa !5
  %11092 = call ptr @strerror(i32 noundef %11091) #12
  %11093 = call ptr @__errno_location() #13
  %11094 = load i32, ptr %11093, align 4, !tbaa !5
  %11095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11082, ptr noundef @.str.14, i32 noundef %11083, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 483, ptr noundef %11086, ptr noundef %11089, ptr noundef %11092, i32 noundef %11094) #12
  br label %11113

11096:                                            ; preds = %11074, %11067
  %11097 = load i32, ptr %235, align 4, !tbaa !5
  %11098 = call ptr @__errno_location() #13
  store i32 %11097, ptr %11098, align 4, !tbaa !5
  %11099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11100 = load i32, ptr @test_count, align 4, !tbaa !5
  %11101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11102 = load i32, ptr %11101, align 4, !tbaa !5
  %11103 = call ptr @s2n_strerror(i32 noundef %11102, ptr noundef @.str.16)
  %11104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11105 = load i32, ptr %11104, align 4, !tbaa !5
  %11106 = call ptr @s2n_strerror_debug(i32 noundef %11105, ptr noundef @.str.16)
  %11107 = call ptr @__errno_location() #13
  %11108 = load i32, ptr %11107, align 4, !tbaa !5
  %11109 = call ptr @strerror(i32 noundef %11108) #12
  %11110 = call ptr @__errno_location() #13
  %11111 = load i32, ptr %11110, align 4, !tbaa !5
  %11112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11099, ptr noundef @.str.17, i32 noundef %11100, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 483, ptr noundef %11103, ptr noundef %11106, ptr noundef %11109, i32 noundef %11111) #12
  br label %11113

11113:                                            ; preds = %11096, %11079
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #12
  br label %11114

11114:                                            ; preds = %11113
  br label %11115

11115:                                            ; preds = %11114
  call void @exit(i32 noundef 1) #14
  unreachable

11116:                                            ; No predecessors!
  br label %11117

11117:                                            ; preds = %11116
  br label %11118

11118:                                            ; preds = %11117, %11059
  br label %11119

11119:                                            ; preds = %11118
  br label %11120

11120:                                            ; preds = %11119
  br label %11121

11121:                                            ; preds = %11120
  %11122 = load i32, ptr @test_count, align 4, !tbaa !5
  %11123 = add nsw i32 %11122, 1
  store i32 %11123, ptr @test_count, align 4, !tbaa !5
  %11124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11125 = load i32, ptr %11124, align 4, !tbaa !5
  %11126 = call ptr @s2n_strerror_debug(i32 noundef %11125, ptr noundef @.str.16)
  %11127 = icmp eq ptr %11126, null
  br i1 %11127, label %11128, label %11181

11128:                                            ; preds = %11121
  br label %11129

11129:                                            ; preds = %11128
  br label %11130

11130:                                            ; preds = %11129
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #12
  %11131 = call ptr @__errno_location() #13
  %11132 = load i32, ptr %11131, align 4, !tbaa !5
  store i32 %11132, ptr %236, align 4, !tbaa !5
  %11133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11134 = call i32 @s2n_print_stacktrace(ptr noundef %11133)
  %11135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11136 = trunc i8 %11135 to i1
  br i1 %11136, label %11137, label %11159

11137:                                            ; preds = %11130
  %11138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11139 = call i32 @fileno(ptr noundef %11138) #12
  %11140 = call i32 @isatty(i32 noundef %11139) #12
  %11141 = icmp ne i32 %11140, 0
  br i1 %11141, label %11142, label %11159

11142:                                            ; preds = %11137
  %11143 = load i32, ptr %236, align 4, !tbaa !5
  %11144 = call ptr @__errno_location() #13
  store i32 %11143, ptr %11144, align 4, !tbaa !5
  %11145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11146 = load i32, ptr @test_count, align 4, !tbaa !5
  %11147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11148 = load i32, ptr %11147, align 4, !tbaa !5
  %11149 = call ptr @s2n_strerror(i32 noundef %11148, ptr noundef @.str.16)
  %11150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11151 = load i32, ptr %11150, align 4, !tbaa !5
  %11152 = call ptr @s2n_strerror_debug(i32 noundef %11151, ptr noundef @.str.16)
  %11153 = call ptr @__errno_location() #13
  %11154 = load i32, ptr %11153, align 4, !tbaa !5
  %11155 = call ptr @strerror(i32 noundef %11154) #12
  %11156 = call ptr @__errno_location() #13
  %11157 = load i32, ptr %11156, align 4, !tbaa !5
  %11158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11145, ptr noundef @.str.14, i32 noundef %11146, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 483, ptr noundef %11149, ptr noundef %11152, ptr noundef %11155, i32 noundef %11157) #12
  br label %11176

11159:                                            ; preds = %11137, %11130
  %11160 = load i32, ptr %236, align 4, !tbaa !5
  %11161 = call ptr @__errno_location() #13
  store i32 %11160, ptr %11161, align 4, !tbaa !5
  %11162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11163 = load i32, ptr @test_count, align 4, !tbaa !5
  %11164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11165 = load i32, ptr %11164, align 4, !tbaa !5
  %11166 = call ptr @s2n_strerror(i32 noundef %11165, ptr noundef @.str.16)
  %11167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11168 = load i32, ptr %11167, align 4, !tbaa !5
  %11169 = call ptr @s2n_strerror_debug(i32 noundef %11168, ptr noundef @.str.16)
  %11170 = call ptr @__errno_location() #13
  %11171 = load i32, ptr %11170, align 4, !tbaa !5
  %11172 = call ptr @strerror(i32 noundef %11171) #12
  %11173 = call ptr @__errno_location() #13
  %11174 = load i32, ptr %11173, align 4, !tbaa !5
  %11175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11162, ptr noundef @.str.17, i32 noundef %11163, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 483, ptr noundef %11166, ptr noundef %11169, ptr noundef %11172, i32 noundef %11174) #12
  br label %11176

11176:                                            ; preds = %11159, %11142
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #12
  br label %11177

11177:                                            ; preds = %11176
  br label %11178

11178:                                            ; preds = %11177
  call void @exit(i32 noundef 1) #14
  unreachable

11179:                                            ; No predecessors!
  br label %11180

11180:                                            ; preds = %11179
  br label %11181

11181:                                            ; preds = %11180, %11121
  br label %11182

11182:                                            ; preds = %11181
  br label %11183

11183:                                            ; preds = %11182
  br label %11184

11184:                                            ; preds = %11183
  br label %11185

11185:                                            ; preds = %11184
  br label %11186

11186:                                            ; preds = %11185
  %11187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11187, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11188 = call ptr @__errno_location() #13
  store i32 0, ptr %11188, align 4, !tbaa !5
  br label %11189

11189:                                            ; preds = %11186
  br label %11190

11190:                                            ; preds = %11189
  br label %11191

11191:                                            ; preds = %11190
  br label %11192

11192:                                            ; preds = %11191
  call void @llvm.lifetime.start.p0(i64 24, ptr %237) #12
  call void @llvm.memset.p0.i64(ptr align 8 %237, i8 0, i64 24, i1 false)
  br label %11193

11193:                                            ; preds = %11192
  %11194 = load i32, ptr @test_count, align 4, !tbaa !5
  %11195 = add nsw i32 %11194, 1
  store i32 %11195, ptr @test_count, align 4, !tbaa !5
  %11196 = call i32 @s2n_alloc(ptr noundef %237, i32 noundef 1)
  %11197 = icmp eq i32 %11196, -1
  br i1 %11197, label %11198, label %11251

11198:                                            ; preds = %11193
  br label %11199

11199:                                            ; preds = %11198
  br label %11200

11200:                                            ; preds = %11199
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #12
  %11201 = call ptr @__errno_location() #13
  %11202 = load i32, ptr %11201, align 4, !tbaa !5
  store i32 %11202, ptr %238, align 4, !tbaa !5
  %11203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11204 = call i32 @s2n_print_stacktrace(ptr noundef %11203)
  %11205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11206 = trunc i8 %11205 to i1
  br i1 %11206, label %11207, label %11229

11207:                                            ; preds = %11200
  %11208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11209 = call i32 @fileno(ptr noundef %11208) #12
  %11210 = call i32 @isatty(i32 noundef %11209) #12
  %11211 = icmp ne i32 %11210, 0
  br i1 %11211, label %11212, label %11229

11212:                                            ; preds = %11207
  %11213 = load i32, ptr %238, align 4, !tbaa !5
  %11214 = call ptr @__errno_location() #13
  store i32 %11213, ptr %11214, align 4, !tbaa !5
  %11215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11216 = load i32, ptr @test_count, align 4, !tbaa !5
  %11217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11218 = load i32, ptr %11217, align 4, !tbaa !5
  %11219 = call ptr @s2n_strerror(i32 noundef %11218, ptr noundef @.str.16)
  %11220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11221 = load i32, ptr %11220, align 4, !tbaa !5
  %11222 = call ptr @s2n_strerror_debug(i32 noundef %11221, ptr noundef @.str.16)
  %11223 = call ptr @__errno_location() #13
  %11224 = load i32, ptr %11223, align 4, !tbaa !5
  %11225 = call ptr @strerror(i32 noundef %11224) #12
  %11226 = call ptr @__errno_location() #13
  %11227 = load i32, ptr %11226, align 4, !tbaa !5
  %11228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11215, ptr noundef @.str.14, i32 noundef %11216, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 486, ptr noundef %11219, ptr noundef %11222, ptr noundef %11225, i32 noundef %11227) #12
  br label %11246

11229:                                            ; preds = %11207, %11200
  %11230 = load i32, ptr %238, align 4, !tbaa !5
  %11231 = call ptr @__errno_location() #13
  store i32 %11230, ptr %11231, align 4, !tbaa !5
  %11232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11233 = load i32, ptr @test_count, align 4, !tbaa !5
  %11234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11235 = load i32, ptr %11234, align 4, !tbaa !5
  %11236 = call ptr @s2n_strerror(i32 noundef %11235, ptr noundef @.str.16)
  %11237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11238 = load i32, ptr %11237, align 4, !tbaa !5
  %11239 = call ptr @s2n_strerror_debug(i32 noundef %11238, ptr noundef @.str.16)
  %11240 = call ptr @__errno_location() #13
  %11241 = load i32, ptr %11240, align 4, !tbaa !5
  %11242 = call ptr @strerror(i32 noundef %11241) #12
  %11243 = call ptr @__errno_location() #13
  %11244 = load i32, ptr %11243, align 4, !tbaa !5
  %11245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11232, ptr noundef @.str.17, i32 noundef %11233, ptr noundef @.str.82, ptr noundef @.str.13, i32 noundef 486, ptr noundef %11236, ptr noundef %11239, ptr noundef %11242, i32 noundef %11244) #12
  br label %11246

11246:                                            ; preds = %11229, %11212
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #12
  br label %11247

11247:                                            ; preds = %11246
  br label %11248

11248:                                            ; preds = %11247
  call void @exit(i32 noundef 1) #14
  unreachable

11249:                                            ; No predecessors!
  br label %11250

11250:                                            ; preds = %11249
  br label %11251

11251:                                            ; preds = %11250, %11193
  br label %11252

11252:                                            ; preds = %11251
  br label %11253

11253:                                            ; preds = %11252
  call void @llvm.lifetime.start.p0(i64 40, ptr %239) #12
  call void @llvm.memset.p0.i64(ptr align 8 %239, i8 0, i64 40, i1 false)
  br label %11254

11254:                                            ; preds = %11253
  %11255 = load i32, ptr @test_count, align 4, !tbaa !5
  %11256 = add nsw i32 %11255, 1
  store i32 %11256, ptr @test_count, align 4, !tbaa !5
  %11257 = call i32 @s2n_stuffer_init(ptr noundef %239, ptr noundef %237)
  %11258 = icmp eq i32 %11257, -1
  br i1 %11258, label %11259, label %11312

11259:                                            ; preds = %11254
  br label %11260

11260:                                            ; preds = %11259
  br label %11261

11261:                                            ; preds = %11260
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #12
  %11262 = call ptr @__errno_location() #13
  %11263 = load i32, ptr %11262, align 4, !tbaa !5
  store i32 %11263, ptr %240, align 4, !tbaa !5
  %11264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11265 = call i32 @s2n_print_stacktrace(ptr noundef %11264)
  %11266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11267 = trunc i8 %11266 to i1
  br i1 %11267, label %11268, label %11290

11268:                                            ; preds = %11261
  %11269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11270 = call i32 @fileno(ptr noundef %11269) #12
  %11271 = call i32 @isatty(i32 noundef %11270) #12
  %11272 = icmp ne i32 %11271, 0
  br i1 %11272, label %11273, label %11290

11273:                                            ; preds = %11268
  %11274 = load i32, ptr %240, align 4, !tbaa !5
  %11275 = call ptr @__errno_location() #13
  store i32 %11274, ptr %11275, align 4, !tbaa !5
  %11276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11277 = load i32, ptr @test_count, align 4, !tbaa !5
  %11278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11279 = load i32, ptr %11278, align 4, !tbaa !5
  %11280 = call ptr @s2n_strerror(i32 noundef %11279, ptr noundef @.str.16)
  %11281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11282 = load i32, ptr %11281, align 4, !tbaa !5
  %11283 = call ptr @s2n_strerror_debug(i32 noundef %11282, ptr noundef @.str.16)
  %11284 = call ptr @__errno_location() #13
  %11285 = load i32, ptr %11284, align 4, !tbaa !5
  %11286 = call ptr @strerror(i32 noundef %11285) #12
  %11287 = call ptr @__errno_location() #13
  %11288 = load i32, ptr %11287, align 4, !tbaa !5
  %11289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11276, ptr noundef @.str.14, i32 noundef %11277, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 488, ptr noundef %11280, ptr noundef %11283, ptr noundef %11286, i32 noundef %11288) #12
  br label %11307

11290:                                            ; preds = %11268, %11261
  %11291 = load i32, ptr %240, align 4, !tbaa !5
  %11292 = call ptr @__errno_location() #13
  store i32 %11291, ptr %11292, align 4, !tbaa !5
  %11293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11294 = load i32, ptr @test_count, align 4, !tbaa !5
  %11295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11296 = load i32, ptr %11295, align 4, !tbaa !5
  %11297 = call ptr @s2n_strerror(i32 noundef %11296, ptr noundef @.str.16)
  %11298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11299 = load i32, ptr %11298, align 4, !tbaa !5
  %11300 = call ptr @s2n_strerror_debug(i32 noundef %11299, ptr noundef @.str.16)
  %11301 = call ptr @__errno_location() #13
  %11302 = load i32, ptr %11301, align 4, !tbaa !5
  %11303 = call ptr @strerror(i32 noundef %11302) #12
  %11304 = call ptr @__errno_location() #13
  %11305 = load i32, ptr %11304, align 4, !tbaa !5
  %11306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11293, ptr noundef @.str.17, i32 noundef %11294, ptr noundef @.str.68, ptr noundef @.str.13, i32 noundef 488, ptr noundef %11297, ptr noundef %11300, ptr noundef %11303, i32 noundef %11305) #12
  br label %11307

11307:                                            ; preds = %11290, %11273
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #12
  br label %11308

11308:                                            ; preds = %11307
  br label %11309

11309:                                            ; preds = %11308
  call void @exit(i32 noundef 1) #14
  unreachable

11310:                                            ; No predecessors!
  br label %11311

11311:                                            ; preds = %11310
  br label %11312

11312:                                            ; preds = %11311, %11254
  br label %11313

11313:                                            ; preds = %11312
  br label %11314

11314:                                            ; preds = %11313
  br label %11315

11315:                                            ; preds = %11314
  br label %11316

11316:                                            ; preds = %11315
  br label %11317

11317:                                            ; preds = %11316
  %11318 = load i32, ptr @test_count, align 4, !tbaa !5
  %11319 = add nsw i32 %11318, 1
  store i32 %11319, ptr @test_count, align 4, !tbaa !5
  %11320 = call i32 @s2n_kem_recv_public_key(ptr noundef %239, ptr noundef null)
  %11321 = icmp eq i32 %11320, -1
  br i1 %11321, label %11375, label %11322

11322:                                            ; preds = %11317
  br label %11323

11323:                                            ; preds = %11322
  br label %11324

11324:                                            ; preds = %11323
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #12
  %11325 = call ptr @__errno_location() #13
  %11326 = load i32, ptr %11325, align 4, !tbaa !5
  store i32 %11326, ptr %241, align 4, !tbaa !5
  %11327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11328 = call i32 @s2n_print_stacktrace(ptr noundef %11327)
  %11329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11330 = trunc i8 %11329 to i1
  br i1 %11330, label %11331, label %11353

11331:                                            ; preds = %11324
  %11332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11333 = call i32 @fileno(ptr noundef %11332) #12
  %11334 = call i32 @isatty(i32 noundef %11333) #12
  %11335 = icmp ne i32 %11334, 0
  br i1 %11335, label %11336, label %11353

11336:                                            ; preds = %11331
  %11337 = load i32, ptr %241, align 4, !tbaa !5
  %11338 = call ptr @__errno_location() #13
  store i32 %11337, ptr %11338, align 4, !tbaa !5
  %11339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11340 = load i32, ptr @test_count, align 4, !tbaa !5
  %11341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11342 = load i32, ptr %11341, align 4, !tbaa !5
  %11343 = call ptr @s2n_strerror(i32 noundef %11342, ptr noundef @.str.16)
  %11344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11345 = load i32, ptr %11344, align 4, !tbaa !5
  %11346 = call ptr @s2n_strerror_debug(i32 noundef %11345, ptr noundef @.str.16)
  %11347 = call ptr @__errno_location() #13
  %11348 = load i32, ptr %11347, align 4, !tbaa !5
  %11349 = call ptr @strerror(i32 noundef %11348) #12
  %11350 = call ptr @__errno_location() #13
  %11351 = load i32, ptr %11350, align 4, !tbaa !5
  %11352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11339, ptr noundef @.str.14, i32 noundef %11340, ptr noundef @.str.123, ptr noundef @.str.13, i32 noundef 490, ptr noundef %11343, ptr noundef %11346, ptr noundef %11349, i32 noundef %11351) #12
  br label %11370

11353:                                            ; preds = %11331, %11324
  %11354 = load i32, ptr %241, align 4, !tbaa !5
  %11355 = call ptr @__errno_location() #13
  store i32 %11354, ptr %11355, align 4, !tbaa !5
  %11356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11357 = load i32, ptr @test_count, align 4, !tbaa !5
  %11358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  %11360 = call ptr @s2n_strerror(i32 noundef %11359, ptr noundef @.str.16)
  %11361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11362 = load i32, ptr %11361, align 4, !tbaa !5
  %11363 = call ptr @s2n_strerror_debug(i32 noundef %11362, ptr noundef @.str.16)
  %11364 = call ptr @__errno_location() #13
  %11365 = load i32, ptr %11364, align 4, !tbaa !5
  %11366 = call ptr @strerror(i32 noundef %11365) #12
  %11367 = call ptr @__errno_location() #13
  %11368 = load i32, ptr %11367, align 4, !tbaa !5
  %11369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11356, ptr noundef @.str.17, i32 noundef %11357, ptr noundef @.str.123, ptr noundef @.str.13, i32 noundef 490, ptr noundef %11360, ptr noundef %11363, ptr noundef %11366, i32 noundef %11368) #12
  br label %11370

11370:                                            ; preds = %11353, %11336
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #12
  br label %11371

11371:                                            ; preds = %11370
  br label %11372

11372:                                            ; preds = %11371
  call void @exit(i32 noundef 1) #14
  unreachable

11373:                                            ; No predecessors!
  br label %11374

11374:                                            ; preds = %11373
  br label %11375

11375:                                            ; preds = %11374, %11317
  br label %11376

11376:                                            ; preds = %11375
  br label %11377

11377:                                            ; preds = %11376
  br label %11378

11378:                                            ; preds = %11377
  %11379 = load i32, ptr @test_count, align 4, !tbaa !5
  %11380 = add nsw i32 %11379, 1
  store i32 %11380, ptr @test_count, align 4, !tbaa !5
  %11381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11382 = load i32, ptr %11381, align 4, !tbaa !5
  %11383 = icmp eq i32 %11382, 402653193
  br i1 %11383, label %11437, label %11384

11384:                                            ; preds = %11378
  br label %11385

11385:                                            ; preds = %11384
  br label %11386

11386:                                            ; preds = %11385
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #12
  %11387 = call ptr @__errno_location() #13
  %11388 = load i32, ptr %11387, align 4, !tbaa !5
  store i32 %11388, ptr %242, align 4, !tbaa !5
  %11389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11390 = call i32 @s2n_print_stacktrace(ptr noundef %11389)
  %11391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11392 = trunc i8 %11391 to i1
  br i1 %11392, label %11393, label %11415

11393:                                            ; preds = %11386
  %11394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11395 = call i32 @fileno(ptr noundef %11394) #12
  %11396 = call i32 @isatty(i32 noundef %11395) #12
  %11397 = icmp ne i32 %11396, 0
  br i1 %11397, label %11398, label %11415

11398:                                            ; preds = %11393
  %11399 = load i32, ptr %242, align 4, !tbaa !5
  %11400 = call ptr @__errno_location() #13
  store i32 %11399, ptr %11400, align 4, !tbaa !5
  %11401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11402 = load i32, ptr @test_count, align 4, !tbaa !5
  %11403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11404 = load i32, ptr %11403, align 4, !tbaa !5
  %11405 = call ptr @s2n_strerror(i32 noundef %11404, ptr noundef @.str.16)
  %11406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11407 = load i32, ptr %11406, align 4, !tbaa !5
  %11408 = call ptr @s2n_strerror_debug(i32 noundef %11407, ptr noundef @.str.16)
  %11409 = call ptr @__errno_location() #13
  %11410 = load i32, ptr %11409, align 4, !tbaa !5
  %11411 = call ptr @strerror(i32 noundef %11410) #12
  %11412 = call ptr @__errno_location() #13
  %11413 = load i32, ptr %11412, align 4, !tbaa !5
  %11414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11401, ptr noundef @.str.14, i32 noundef %11402, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 490, ptr noundef %11405, ptr noundef %11408, ptr noundef %11411, i32 noundef %11413) #12
  br label %11432

11415:                                            ; preds = %11393, %11386
  %11416 = load i32, ptr %242, align 4, !tbaa !5
  %11417 = call ptr @__errno_location() #13
  store i32 %11416, ptr %11417, align 4, !tbaa !5
  %11418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11419 = load i32, ptr @test_count, align 4, !tbaa !5
  %11420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11421 = load i32, ptr %11420, align 4, !tbaa !5
  %11422 = call ptr @s2n_strerror(i32 noundef %11421, ptr noundef @.str.16)
  %11423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11424 = load i32, ptr %11423, align 4, !tbaa !5
  %11425 = call ptr @s2n_strerror_debug(i32 noundef %11424, ptr noundef @.str.16)
  %11426 = call ptr @__errno_location() #13
  %11427 = load i32, ptr %11426, align 4, !tbaa !5
  %11428 = call ptr @strerror(i32 noundef %11427) #12
  %11429 = call ptr @__errno_location() #13
  %11430 = load i32, ptr %11429, align 4, !tbaa !5
  %11431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11418, ptr noundef @.str.17, i32 noundef %11419, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 490, ptr noundef %11422, ptr noundef %11425, ptr noundef %11428, i32 noundef %11430) #12
  br label %11432

11432:                                            ; preds = %11415, %11398
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #12
  br label %11433

11433:                                            ; preds = %11432
  br label %11434

11434:                                            ; preds = %11433
  call void @exit(i32 noundef 1) #14
  unreachable

11435:                                            ; No predecessors!
  br label %11436

11436:                                            ; preds = %11435
  br label %11437

11437:                                            ; preds = %11436, %11378
  br label %11438

11438:                                            ; preds = %11437
  br label %11439

11439:                                            ; preds = %11438
  br label %11440

11440:                                            ; preds = %11439
  %11441 = load i32, ptr @test_count, align 4, !tbaa !5
  %11442 = add nsw i32 %11441, 1
  store i32 %11442, ptr @test_count, align 4, !tbaa !5
  %11443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11444 = load i32, ptr %11443, align 4, !tbaa !5
  %11445 = call ptr @s2n_strerror_debug(i32 noundef %11444, ptr noundef @.str.16)
  %11446 = icmp eq ptr %11445, null
  br i1 %11446, label %11447, label %11500

11447:                                            ; preds = %11440
  br label %11448

11448:                                            ; preds = %11447
  br label %11449

11449:                                            ; preds = %11448
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #12
  %11450 = call ptr @__errno_location() #13
  %11451 = load i32, ptr %11450, align 4, !tbaa !5
  store i32 %11451, ptr %243, align 4, !tbaa !5
  %11452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11453 = call i32 @s2n_print_stacktrace(ptr noundef %11452)
  %11454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11455 = trunc i8 %11454 to i1
  br i1 %11455, label %11456, label %11478

11456:                                            ; preds = %11449
  %11457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11458 = call i32 @fileno(ptr noundef %11457) #12
  %11459 = call i32 @isatty(i32 noundef %11458) #12
  %11460 = icmp ne i32 %11459, 0
  br i1 %11460, label %11461, label %11478

11461:                                            ; preds = %11456
  %11462 = load i32, ptr %243, align 4, !tbaa !5
  %11463 = call ptr @__errno_location() #13
  store i32 %11462, ptr %11463, align 4, !tbaa !5
  %11464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11465 = load i32, ptr @test_count, align 4, !tbaa !5
  %11466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11467 = load i32, ptr %11466, align 4, !tbaa !5
  %11468 = call ptr @s2n_strerror(i32 noundef %11467, ptr noundef @.str.16)
  %11469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11470 = load i32, ptr %11469, align 4, !tbaa !5
  %11471 = call ptr @s2n_strerror_debug(i32 noundef %11470, ptr noundef @.str.16)
  %11472 = call ptr @__errno_location() #13
  %11473 = load i32, ptr %11472, align 4, !tbaa !5
  %11474 = call ptr @strerror(i32 noundef %11473) #12
  %11475 = call ptr @__errno_location() #13
  %11476 = load i32, ptr %11475, align 4, !tbaa !5
  %11477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11464, ptr noundef @.str.14, i32 noundef %11465, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 490, ptr noundef %11468, ptr noundef %11471, ptr noundef %11474, i32 noundef %11476) #12
  br label %11495

11478:                                            ; preds = %11456, %11449
  %11479 = load i32, ptr %243, align 4, !tbaa !5
  %11480 = call ptr @__errno_location() #13
  store i32 %11479, ptr %11480, align 4, !tbaa !5
  %11481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11482 = load i32, ptr @test_count, align 4, !tbaa !5
  %11483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11484 = load i32, ptr %11483, align 4, !tbaa !5
  %11485 = call ptr @s2n_strerror(i32 noundef %11484, ptr noundef @.str.16)
  %11486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11487 = load i32, ptr %11486, align 4, !tbaa !5
  %11488 = call ptr @s2n_strerror_debug(i32 noundef %11487, ptr noundef @.str.16)
  %11489 = call ptr @__errno_location() #13
  %11490 = load i32, ptr %11489, align 4, !tbaa !5
  %11491 = call ptr @strerror(i32 noundef %11490) #12
  %11492 = call ptr @__errno_location() #13
  %11493 = load i32, ptr %11492, align 4, !tbaa !5
  %11494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11481, ptr noundef @.str.17, i32 noundef %11482, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 490, ptr noundef %11485, ptr noundef %11488, ptr noundef %11491, i32 noundef %11493) #12
  br label %11495

11495:                                            ; preds = %11478, %11461
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #12
  br label %11496

11496:                                            ; preds = %11495
  br label %11497

11497:                                            ; preds = %11496
  call void @exit(i32 noundef 1) #14
  unreachable

11498:                                            ; No predecessors!
  br label %11499

11499:                                            ; preds = %11498
  br label %11500

11500:                                            ; preds = %11499, %11440
  br label %11501

11501:                                            ; preds = %11500
  br label %11502

11502:                                            ; preds = %11501
  br label %11503

11503:                                            ; preds = %11502
  br label %11504

11504:                                            ; preds = %11503
  br label %11505

11505:                                            ; preds = %11504
  %11506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11506, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11507 = call ptr @__errno_location() #13
  store i32 0, ptr %11507, align 4, !tbaa !5
  br label %11508

11508:                                            ; preds = %11505
  br label %11509

11509:                                            ; preds = %11508
  br label %11510

11510:                                            ; preds = %11509
  br label %11511

11511:                                            ; preds = %11510
  call void @llvm.lifetime.start.p0(i64 88, ptr %244) #12
  call void @llvm.memset.p0.i64(ptr align 8 %244, i8 0, i64 88, i1 false)
  %11512 = load i32, ptr %48, align 4, !tbaa !5
  %11513 = icmp ne i32 %11512, 0
  %11514 = getelementptr inbounds %struct.s2n_kem_params, ptr %244, i32 0, i32 4
  %11515 = zext i1 %11513 to i8
  store i8 %11515, ptr %11514, align 8, !tbaa !33
  br label %11516

11516:                                            ; preds = %11511
  br label %11517

11517:                                            ; preds = %11516
  br label %11518

11518:                                            ; preds = %11517
  %11519 = load i32, ptr @test_count, align 4, !tbaa !5
  %11520 = add nsw i32 %11519, 1
  store i32 %11520, ptr @test_count, align 4, !tbaa !5
  %11521 = call i32 @s2n_kem_recv_public_key(ptr noundef %239, ptr noundef %244)
  %11522 = icmp eq i32 %11521, -1
  br i1 %11522, label %11576, label %11523

11523:                                            ; preds = %11518
  br label %11524

11524:                                            ; preds = %11523
  br label %11525

11525:                                            ; preds = %11524
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #12
  %11526 = call ptr @__errno_location() #13
  %11527 = load i32, ptr %11526, align 4, !tbaa !5
  store i32 %11527, ptr %245, align 4, !tbaa !5
  %11528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11529 = call i32 @s2n_print_stacktrace(ptr noundef %11528)
  %11530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11531 = trunc i8 %11530 to i1
  br i1 %11531, label %11532, label %11554

11532:                                            ; preds = %11525
  %11533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11534 = call i32 @fileno(ptr noundef %11533) #12
  %11535 = call i32 @isatty(i32 noundef %11534) #12
  %11536 = icmp ne i32 %11535, 0
  br i1 %11536, label %11537, label %11554

11537:                                            ; preds = %11532
  %11538 = load i32, ptr %245, align 4, !tbaa !5
  %11539 = call ptr @__errno_location() #13
  store i32 %11538, ptr %11539, align 4, !tbaa !5
  %11540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11541 = load i32, ptr @test_count, align 4, !tbaa !5
  %11542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11543 = load i32, ptr %11542, align 4, !tbaa !5
  %11544 = call ptr @s2n_strerror(i32 noundef %11543, ptr noundef @.str.16)
  %11545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11546 = load i32, ptr %11545, align 4, !tbaa !5
  %11547 = call ptr @s2n_strerror_debug(i32 noundef %11546, ptr noundef @.str.16)
  %11548 = call ptr @__errno_location() #13
  %11549 = load i32, ptr %11548, align 4, !tbaa !5
  %11550 = call ptr @strerror(i32 noundef %11549) #12
  %11551 = call ptr @__errno_location() #13
  %11552 = load i32, ptr %11551, align 4, !tbaa !5
  %11553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11540, ptr noundef @.str.14, i32 noundef %11541, ptr noundef @.str.124, ptr noundef @.str.13, i32 noundef 494, ptr noundef %11544, ptr noundef %11547, ptr noundef %11550, i32 noundef %11552) #12
  br label %11571

11554:                                            ; preds = %11532, %11525
  %11555 = load i32, ptr %245, align 4, !tbaa !5
  %11556 = call ptr @__errno_location() #13
  store i32 %11555, ptr %11556, align 4, !tbaa !5
  %11557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11558 = load i32, ptr @test_count, align 4, !tbaa !5
  %11559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11560 = load i32, ptr %11559, align 4, !tbaa !5
  %11561 = call ptr @s2n_strerror(i32 noundef %11560, ptr noundef @.str.16)
  %11562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11563 = load i32, ptr %11562, align 4, !tbaa !5
  %11564 = call ptr @s2n_strerror_debug(i32 noundef %11563, ptr noundef @.str.16)
  %11565 = call ptr @__errno_location() #13
  %11566 = load i32, ptr %11565, align 4, !tbaa !5
  %11567 = call ptr @strerror(i32 noundef %11566) #12
  %11568 = call ptr @__errno_location() #13
  %11569 = load i32, ptr %11568, align 4, !tbaa !5
  %11570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11557, ptr noundef @.str.17, i32 noundef %11558, ptr noundef @.str.124, ptr noundef @.str.13, i32 noundef 494, ptr noundef %11561, ptr noundef %11564, ptr noundef %11567, i32 noundef %11569) #12
  br label %11571

11571:                                            ; preds = %11554, %11537
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #12
  br label %11572

11572:                                            ; preds = %11571
  br label %11573

11573:                                            ; preds = %11572
  call void @exit(i32 noundef 1) #14
  unreachable

11574:                                            ; No predecessors!
  br label %11575

11575:                                            ; preds = %11574
  br label %11576

11576:                                            ; preds = %11575, %11518
  br label %11577

11577:                                            ; preds = %11576
  br label %11578

11578:                                            ; preds = %11577
  br label %11579

11579:                                            ; preds = %11578
  %11580 = load i32, ptr @test_count, align 4, !tbaa !5
  %11581 = add nsw i32 %11580, 1
  store i32 %11581, ptr @test_count, align 4, !tbaa !5
  %11582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11583 = load i32, ptr %11582, align 4, !tbaa !5
  %11584 = icmp eq i32 %11583, 402653193
  br i1 %11584, label %11638, label %11585

11585:                                            ; preds = %11579
  br label %11586

11586:                                            ; preds = %11585
  br label %11587

11587:                                            ; preds = %11586
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #12
  %11588 = call ptr @__errno_location() #13
  %11589 = load i32, ptr %11588, align 4, !tbaa !5
  store i32 %11589, ptr %246, align 4, !tbaa !5
  %11590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11591 = call i32 @s2n_print_stacktrace(ptr noundef %11590)
  %11592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11593 = trunc i8 %11592 to i1
  br i1 %11593, label %11594, label %11616

11594:                                            ; preds = %11587
  %11595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11596 = call i32 @fileno(ptr noundef %11595) #12
  %11597 = call i32 @isatty(i32 noundef %11596) #12
  %11598 = icmp ne i32 %11597, 0
  br i1 %11598, label %11599, label %11616

11599:                                            ; preds = %11594
  %11600 = load i32, ptr %246, align 4, !tbaa !5
  %11601 = call ptr @__errno_location() #13
  store i32 %11600, ptr %11601, align 4, !tbaa !5
  %11602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11603 = load i32, ptr @test_count, align 4, !tbaa !5
  %11604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11605 = load i32, ptr %11604, align 4, !tbaa !5
  %11606 = call ptr @s2n_strerror(i32 noundef %11605, ptr noundef @.str.16)
  %11607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11608 = load i32, ptr %11607, align 4, !tbaa !5
  %11609 = call ptr @s2n_strerror_debug(i32 noundef %11608, ptr noundef @.str.16)
  %11610 = call ptr @__errno_location() #13
  %11611 = load i32, ptr %11610, align 4, !tbaa !5
  %11612 = call ptr @strerror(i32 noundef %11611) #12
  %11613 = call ptr @__errno_location() #13
  %11614 = load i32, ptr %11613, align 4, !tbaa !5
  %11615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11602, ptr noundef @.str.14, i32 noundef %11603, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 494, ptr noundef %11606, ptr noundef %11609, ptr noundef %11612, i32 noundef %11614) #12
  br label %11633

11616:                                            ; preds = %11594, %11587
  %11617 = load i32, ptr %246, align 4, !tbaa !5
  %11618 = call ptr @__errno_location() #13
  store i32 %11617, ptr %11618, align 4, !tbaa !5
  %11619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11620 = load i32, ptr @test_count, align 4, !tbaa !5
  %11621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call ptr @s2n_strerror(i32 noundef %11622, ptr noundef @.str.16)
  %11624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11625 = load i32, ptr %11624, align 4, !tbaa !5
  %11626 = call ptr @s2n_strerror_debug(i32 noundef %11625, ptr noundef @.str.16)
  %11627 = call ptr @__errno_location() #13
  %11628 = load i32, ptr %11627, align 4, !tbaa !5
  %11629 = call ptr @strerror(i32 noundef %11628) #12
  %11630 = call ptr @__errno_location() #13
  %11631 = load i32, ptr %11630, align 4, !tbaa !5
  %11632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11619, ptr noundef @.str.17, i32 noundef %11620, ptr noundef @.str.81, ptr noundef @.str.13, i32 noundef 494, ptr noundef %11623, ptr noundef %11626, ptr noundef %11629, i32 noundef %11631) #12
  br label %11633

11633:                                            ; preds = %11616, %11599
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #12
  br label %11634

11634:                                            ; preds = %11633
  br label %11635

11635:                                            ; preds = %11634
  call void @exit(i32 noundef 1) #14
  unreachable

11636:                                            ; No predecessors!
  br label %11637

11637:                                            ; preds = %11636
  br label %11638

11638:                                            ; preds = %11637, %11579
  br label %11639

11639:                                            ; preds = %11638
  br label %11640

11640:                                            ; preds = %11639
  br label %11641

11641:                                            ; preds = %11640
  %11642 = load i32, ptr @test_count, align 4, !tbaa !5
  %11643 = add nsw i32 %11642, 1
  store i32 %11643, ptr @test_count, align 4, !tbaa !5
  %11644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11645 = load i32, ptr %11644, align 4, !tbaa !5
  %11646 = call ptr @s2n_strerror_debug(i32 noundef %11645, ptr noundef @.str.16)
  %11647 = icmp eq ptr %11646, null
  br i1 %11647, label %11648, label %11701

11648:                                            ; preds = %11641
  br label %11649

11649:                                            ; preds = %11648
  br label %11650

11650:                                            ; preds = %11649
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #12
  %11651 = call ptr @__errno_location() #13
  %11652 = load i32, ptr %11651, align 4, !tbaa !5
  store i32 %11652, ptr %247, align 4, !tbaa !5
  %11653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11654 = call i32 @s2n_print_stacktrace(ptr noundef %11653)
  %11655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11656 = trunc i8 %11655 to i1
  br i1 %11656, label %11657, label %11679

11657:                                            ; preds = %11650
  %11658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11659 = call i32 @fileno(ptr noundef %11658) #12
  %11660 = call i32 @isatty(i32 noundef %11659) #12
  %11661 = icmp ne i32 %11660, 0
  br i1 %11661, label %11662, label %11679

11662:                                            ; preds = %11657
  %11663 = load i32, ptr %247, align 4, !tbaa !5
  %11664 = call ptr @__errno_location() #13
  store i32 %11663, ptr %11664, align 4, !tbaa !5
  %11665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11666 = load i32, ptr @test_count, align 4, !tbaa !5
  %11667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11668 = load i32, ptr %11667, align 4, !tbaa !5
  %11669 = call ptr @s2n_strerror(i32 noundef %11668, ptr noundef @.str.16)
  %11670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11671 = load i32, ptr %11670, align 4, !tbaa !5
  %11672 = call ptr @s2n_strerror_debug(i32 noundef %11671, ptr noundef @.str.16)
  %11673 = call ptr @__errno_location() #13
  %11674 = load i32, ptr %11673, align 4, !tbaa !5
  %11675 = call ptr @strerror(i32 noundef %11674) #12
  %11676 = call ptr @__errno_location() #13
  %11677 = load i32, ptr %11676, align 4, !tbaa !5
  %11678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11665, ptr noundef @.str.14, i32 noundef %11666, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 494, ptr noundef %11669, ptr noundef %11672, ptr noundef %11675, i32 noundef %11677) #12
  br label %11696

11679:                                            ; preds = %11657, %11650
  %11680 = load i32, ptr %247, align 4, !tbaa !5
  %11681 = call ptr @__errno_location() #13
  store i32 %11680, ptr %11681, align 4, !tbaa !5
  %11682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11683 = load i32, ptr @test_count, align 4, !tbaa !5
  %11684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11685 = load i32, ptr %11684, align 4, !tbaa !5
  %11686 = call ptr @s2n_strerror(i32 noundef %11685, ptr noundef @.str.16)
  %11687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11688 = load i32, ptr %11687, align 4, !tbaa !5
  %11689 = call ptr @s2n_strerror_debug(i32 noundef %11688, ptr noundef @.str.16)
  %11690 = call ptr @__errno_location() #13
  %11691 = load i32, ptr %11690, align 4, !tbaa !5
  %11692 = call ptr @strerror(i32 noundef %11691) #12
  %11693 = call ptr @__errno_location() #13
  %11694 = load i32, ptr %11693, align 4, !tbaa !5
  %11695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11682, ptr noundef @.str.17, i32 noundef %11683, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 494, ptr noundef %11686, ptr noundef %11689, ptr noundef %11692, i32 noundef %11694) #12
  br label %11696

11696:                                            ; preds = %11679, %11662
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #12
  br label %11697

11697:                                            ; preds = %11696
  br label %11698

11698:                                            ; preds = %11697
  call void @exit(i32 noundef 1) #14
  unreachable

11699:                                            ; No predecessors!
  br label %11700

11700:                                            ; preds = %11699
  br label %11701

11701:                                            ; preds = %11700, %11641
  br label %11702

11702:                                            ; preds = %11701
  br label %11703

11703:                                            ; preds = %11702
  br label %11704

11704:                                            ; preds = %11703
  br label %11705

11705:                                            ; preds = %11704
  br label %11706

11706:                                            ; preds = %11705
  %11707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11707, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11708 = call ptr @__errno_location() #13
  store i32 0, ptr %11708, align 4, !tbaa !5
  br label %11709

11709:                                            ; preds = %11706
  br label %11710

11710:                                            ; preds = %11709
  br label %11711

11711:                                            ; preds = %11710
  br label %11712

11712:                                            ; preds = %11711
  %11713 = getelementptr inbounds %struct.s2n_kem_params, ptr %244, i32 0, i32 0
  store ptr @s2n_test_kem, ptr %11713, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 24, ptr %248) #12
  call void @llvm.memset.p0.i64(ptr align 8 %248, i8 0, i64 24, i1 false)
  br label %11714

11714:                                            ; preds = %11712
  %11715 = load i32, ptr @test_count, align 4, !tbaa !5
  %11716 = add nsw i32 %11715, 1
  store i32 %11716, ptr @test_count, align 4, !tbaa !5
  %11717 = call i32 @s2n_alloc(ptr noundef %248, i32 noundef 5)
  %11718 = icmp eq i32 %11717, -1
  br i1 %11718, label %11719, label %11772

11719:                                            ; preds = %11714
  br label %11720

11720:                                            ; preds = %11719
  br label %11721

11721:                                            ; preds = %11720
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #12
  %11722 = call ptr @__errno_location() #13
  %11723 = load i32, ptr %11722, align 4, !tbaa !5
  store i32 %11723, ptr %249, align 4, !tbaa !5
  %11724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11725 = call i32 @s2n_print_stacktrace(ptr noundef %11724)
  %11726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11727 = trunc i8 %11726 to i1
  br i1 %11727, label %11728, label %11750

11728:                                            ; preds = %11721
  %11729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11730 = call i32 @fileno(ptr noundef %11729) #12
  %11731 = call i32 @isatty(i32 noundef %11730) #12
  %11732 = icmp ne i32 %11731, 0
  br i1 %11732, label %11733, label %11750

11733:                                            ; preds = %11728
  %11734 = load i32, ptr %249, align 4, !tbaa !5
  %11735 = call ptr @__errno_location() #13
  store i32 %11734, ptr %11735, align 4, !tbaa !5
  %11736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11737 = load i32, ptr @test_count, align 4, !tbaa !5
  %11738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11739 = load i32, ptr %11738, align 4, !tbaa !5
  %11740 = call ptr @s2n_strerror(i32 noundef %11739, ptr noundef @.str.16)
  %11741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11742 = load i32, ptr %11741, align 4, !tbaa !5
  %11743 = call ptr @s2n_strerror_debug(i32 noundef %11742, ptr noundef @.str.16)
  %11744 = call ptr @__errno_location() #13
  %11745 = load i32, ptr %11744, align 4, !tbaa !5
  %11746 = call ptr @strerror(i32 noundef %11745) #12
  %11747 = call ptr @__errno_location() #13
  %11748 = load i32, ptr %11747, align 4, !tbaa !5
  %11749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11736, ptr noundef @.str.14, i32 noundef %11737, ptr noundef @.str.125, ptr noundef @.str.13, i32 noundef 500, ptr noundef %11740, ptr noundef %11743, ptr noundef %11746, i32 noundef %11748) #12
  br label %11767

11750:                                            ; preds = %11728, %11721
  %11751 = load i32, ptr %249, align 4, !tbaa !5
  %11752 = call ptr @__errno_location() #13
  store i32 %11751, ptr %11752, align 4, !tbaa !5
  %11753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11754 = load i32, ptr @test_count, align 4, !tbaa !5
  %11755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11756 = load i32, ptr %11755, align 4, !tbaa !5
  %11757 = call ptr @s2n_strerror(i32 noundef %11756, ptr noundef @.str.16)
  %11758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11759 = load i32, ptr %11758, align 4, !tbaa !5
  %11760 = call ptr @s2n_strerror_debug(i32 noundef %11759, ptr noundef @.str.16)
  %11761 = call ptr @__errno_location() #13
  %11762 = load i32, ptr %11761, align 4, !tbaa !5
  %11763 = call ptr @strerror(i32 noundef %11762) #12
  %11764 = call ptr @__errno_location() #13
  %11765 = load i32, ptr %11764, align 4, !tbaa !5
  %11766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11753, ptr noundef @.str.17, i32 noundef %11754, ptr noundef @.str.125, ptr noundef @.str.13, i32 noundef 500, ptr noundef %11757, ptr noundef %11760, ptr noundef %11763, i32 noundef %11765) #12
  br label %11767

11767:                                            ; preds = %11750, %11733
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #12
  br label %11768

11768:                                            ; preds = %11767
  br label %11769

11769:                                            ; preds = %11768
  call void @exit(i32 noundef 1) #14
  unreachable

11770:                                            ; No predecessors!
  br label %11771

11771:                                            ; preds = %11770
  br label %11772

11772:                                            ; preds = %11771, %11714
  br label %11773

11773:                                            ; preds = %11772
  br label %11774

11774:                                            ; preds = %11773
  call void @llvm.lifetime.start.p0(i64 40, ptr %250) #12
  call void @llvm.memset.p0.i64(ptr align 8 %250, i8 0, i64 40, i1 false)
  br label %11775

11775:                                            ; preds = %11774
  %11776 = load i32, ptr @test_count, align 4, !tbaa !5
  %11777 = add nsw i32 %11776, 1
  store i32 %11777, ptr @test_count, align 4, !tbaa !5
  %11778 = call i32 @s2n_stuffer_init(ptr noundef %250, ptr noundef %248)
  %11779 = icmp eq i32 %11778, -1
  br i1 %11779, label %11780, label %11833

11780:                                            ; preds = %11775
  br label %11781

11781:                                            ; preds = %11780
  br label %11782

11782:                                            ; preds = %11781
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #12
  %11783 = call ptr @__errno_location() #13
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  store i32 %11784, ptr %251, align 4, !tbaa !5
  %11785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11786 = call i32 @s2n_print_stacktrace(ptr noundef %11785)
  %11787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11788 = trunc i8 %11787 to i1
  br i1 %11788, label %11789, label %11811

11789:                                            ; preds = %11782
  %11790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11791 = call i32 @fileno(ptr noundef %11790) #12
  %11792 = call i32 @isatty(i32 noundef %11791) #12
  %11793 = icmp ne i32 %11792, 0
  br i1 %11793, label %11794, label %11811

11794:                                            ; preds = %11789
  %11795 = load i32, ptr %251, align 4, !tbaa !5
  %11796 = call ptr @__errno_location() #13
  store i32 %11795, ptr %11796, align 4, !tbaa !5
  %11797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11798 = load i32, ptr @test_count, align 4, !tbaa !5
  %11799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11800 = load i32, ptr %11799, align 4, !tbaa !5
  %11801 = call ptr @s2n_strerror(i32 noundef %11800, ptr noundef @.str.16)
  %11802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11803 = load i32, ptr %11802, align 4, !tbaa !5
  %11804 = call ptr @s2n_strerror_debug(i32 noundef %11803, ptr noundef @.str.16)
  %11805 = call ptr @__errno_location() #13
  %11806 = load i32, ptr %11805, align 4, !tbaa !5
  %11807 = call ptr @strerror(i32 noundef %11806) #12
  %11808 = call ptr @__errno_location() #13
  %11809 = load i32, ptr %11808, align 4, !tbaa !5
  %11810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11797, ptr noundef @.str.14, i32 noundef %11798, ptr noundef @.str.114, ptr noundef @.str.13, i32 noundef 502, ptr noundef %11801, ptr noundef %11804, ptr noundef %11807, i32 noundef %11809) #12
  br label %11828

11811:                                            ; preds = %11789, %11782
  %11812 = load i32, ptr %251, align 4, !tbaa !5
  %11813 = call ptr @__errno_location() #13
  store i32 %11812, ptr %11813, align 4, !tbaa !5
  %11814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11815 = load i32, ptr @test_count, align 4, !tbaa !5
  %11816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call ptr @s2n_strerror(i32 noundef %11817, ptr noundef @.str.16)
  %11819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11820 = load i32, ptr %11819, align 4, !tbaa !5
  %11821 = call ptr @s2n_strerror_debug(i32 noundef %11820, ptr noundef @.str.16)
  %11822 = call ptr @__errno_location() #13
  %11823 = load i32, ptr %11822, align 4, !tbaa !5
  %11824 = call ptr @strerror(i32 noundef %11823) #12
  %11825 = call ptr @__errno_location() #13
  %11826 = load i32, ptr %11825, align 4, !tbaa !5
  %11827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11814, ptr noundef @.str.17, i32 noundef %11815, ptr noundef @.str.114, ptr noundef @.str.13, i32 noundef 502, ptr noundef %11818, ptr noundef %11821, ptr noundef %11824, i32 noundef %11826) #12
  br label %11828

11828:                                            ; preds = %11811, %11794
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #12
  br label %11829

11829:                                            ; preds = %11828
  br label %11830

11830:                                            ; preds = %11829
  call void @exit(i32 noundef 1) #14
  unreachable

11831:                                            ; No predecessors!
  br label %11832

11832:                                            ; preds = %11831
  br label %11833

11833:                                            ; preds = %11832, %11775
  br label %11834

11834:                                            ; preds = %11833
  br label %11835

11835:                                            ; preds = %11834
  call void @llvm.lifetime.start.p0(i64 5, ptr %252) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %252, ptr align 1 @__const.main.bad_pk_input_3, i64 5, i1 false)
  br label %11836

11836:                                            ; preds = %11835
  %11837 = load i32, ptr @test_count, align 4, !tbaa !5
  %11838 = add nsw i32 %11837, 1
  store i32 %11838, ptr @test_count, align 4, !tbaa !5
  %11839 = getelementptr inbounds [5 x i8], ptr %252, i64 0, i64 0
  %11840 = call i32 @s2n_stuffer_write_bytes(ptr noundef %250, ptr noundef %11839, i32 noundef 5)
  %11841 = icmp eq i32 %11840, -1
  br i1 %11841, label %11842, label %11895

11842:                                            ; preds = %11836
  br label %11843

11843:                                            ; preds = %11842
  br label %11844

11844:                                            ; preds = %11843
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #12
  %11845 = call ptr @__errno_location() #13
  %11846 = load i32, ptr %11845, align 4, !tbaa !5
  store i32 %11846, ptr %253, align 4, !tbaa !5
  %11847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11848 = call i32 @s2n_print_stacktrace(ptr noundef %11847)
  %11849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11850 = trunc i8 %11849 to i1
  br i1 %11850, label %11851, label %11873

11851:                                            ; preds = %11844
  %11852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11853 = call i32 @fileno(ptr noundef %11852) #12
  %11854 = call i32 @isatty(i32 noundef %11853) #12
  %11855 = icmp ne i32 %11854, 0
  br i1 %11855, label %11856, label %11873

11856:                                            ; preds = %11851
  %11857 = load i32, ptr %253, align 4, !tbaa !5
  %11858 = call ptr @__errno_location() #13
  store i32 %11857, ptr %11858, align 4, !tbaa !5
  %11859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11860 = load i32, ptr @test_count, align 4, !tbaa !5
  %11861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11862 = load i32, ptr %11861, align 4, !tbaa !5
  %11863 = call ptr @s2n_strerror(i32 noundef %11862, ptr noundef @.str.16)
  %11864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11865 = load i32, ptr %11864, align 4, !tbaa !5
  %11866 = call ptr @s2n_strerror_debug(i32 noundef %11865, ptr noundef @.str.16)
  %11867 = call ptr @__errno_location() #13
  %11868 = load i32, ptr %11867, align 4, !tbaa !5
  %11869 = call ptr @strerror(i32 noundef %11868) #12
  %11870 = call ptr @__errno_location() #13
  %11871 = load i32, ptr %11870, align 4, !tbaa !5
  %11872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11859, ptr noundef @.str.14, i32 noundef %11860, ptr noundef @.str.126, ptr noundef @.str.13, i32 noundef 504, ptr noundef %11863, ptr noundef %11866, ptr noundef %11869, i32 noundef %11871) #12
  br label %11890

11873:                                            ; preds = %11851, %11844
  %11874 = load i32, ptr %253, align 4, !tbaa !5
  %11875 = call ptr @__errno_location() #13
  store i32 %11874, ptr %11875, align 4, !tbaa !5
  %11876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11877 = load i32, ptr @test_count, align 4, !tbaa !5
  %11878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11879 = load i32, ptr %11878, align 4, !tbaa !5
  %11880 = call ptr @s2n_strerror(i32 noundef %11879, ptr noundef @.str.16)
  %11881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11882 = load i32, ptr %11881, align 4, !tbaa !5
  %11883 = call ptr @s2n_strerror_debug(i32 noundef %11882, ptr noundef @.str.16)
  %11884 = call ptr @__errno_location() #13
  %11885 = load i32, ptr %11884, align 4, !tbaa !5
  %11886 = call ptr @strerror(i32 noundef %11885) #12
  %11887 = call ptr @__errno_location() #13
  %11888 = load i32, ptr %11887, align 4, !tbaa !5
  %11889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11876, ptr noundef @.str.17, i32 noundef %11877, ptr noundef @.str.126, ptr noundef @.str.13, i32 noundef 504, ptr noundef %11880, ptr noundef %11883, ptr noundef %11886, i32 noundef %11888) #12
  br label %11890

11890:                                            ; preds = %11873, %11856
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #12
  br label %11891

11891:                                            ; preds = %11890
  br label %11892

11892:                                            ; preds = %11891
  call void @exit(i32 noundef 1) #14
  unreachable

11893:                                            ; No predecessors!
  br label %11894

11894:                                            ; preds = %11893
  br label %11895

11895:                                            ; preds = %11894, %11836
  br label %11896

11896:                                            ; preds = %11895
  br label %11897

11897:                                            ; preds = %11896
  br label %11898

11898:                                            ; preds = %11897
  %11899 = load i32, ptr @test_count, align 4, !tbaa !5
  %11900 = add nsw i32 %11899, 1
  store i32 %11900, ptr @test_count, align 4, !tbaa !5
  %11901 = call i32 @s2n_stuffer_reread(ptr noundef %250)
  %11902 = icmp eq i32 %11901, -1
  br i1 %11902, label %11903, label %11956

11903:                                            ; preds = %11898
  br label %11904

11904:                                            ; preds = %11903
  br label %11905

11905:                                            ; preds = %11904
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #12
  %11906 = call ptr @__errno_location() #13
  %11907 = load i32, ptr %11906, align 4, !tbaa !5
  store i32 %11907, ptr %254, align 4, !tbaa !5
  %11908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11909 = call i32 @s2n_print_stacktrace(ptr noundef %11908)
  %11910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11911 = trunc i8 %11910 to i1
  br i1 %11911, label %11912, label %11934

11912:                                            ; preds = %11905
  %11913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11914 = call i32 @fileno(ptr noundef %11913) #12
  %11915 = call i32 @isatty(i32 noundef %11914) #12
  %11916 = icmp ne i32 %11915, 0
  br i1 %11916, label %11917, label %11934

11917:                                            ; preds = %11912
  %11918 = load i32, ptr %254, align 4, !tbaa !5
  %11919 = call ptr @__errno_location() #13
  store i32 %11918, ptr %11919, align 4, !tbaa !5
  %11920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11921 = load i32, ptr @test_count, align 4, !tbaa !5
  %11922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11923 = load i32, ptr %11922, align 4, !tbaa !5
  %11924 = call ptr @s2n_strerror(i32 noundef %11923, ptr noundef @.str.16)
  %11925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11926 = load i32, ptr %11925, align 4, !tbaa !5
  %11927 = call ptr @s2n_strerror_debug(i32 noundef %11926, ptr noundef @.str.16)
  %11928 = call ptr @__errno_location() #13
  %11929 = load i32, ptr %11928, align 4, !tbaa !5
  %11930 = call ptr @strerror(i32 noundef %11929) #12
  %11931 = call ptr @__errno_location() #13
  %11932 = load i32, ptr %11931, align 4, !tbaa !5
  %11933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11920, ptr noundef @.str.14, i32 noundef %11921, ptr noundef @.str.116, ptr noundef @.str.13, i32 noundef 505, ptr noundef %11924, ptr noundef %11927, ptr noundef %11930, i32 noundef %11932) #12
  br label %11951

11934:                                            ; preds = %11912, %11905
  %11935 = load i32, ptr %254, align 4, !tbaa !5
  %11936 = call ptr @__errno_location() #13
  store i32 %11935, ptr %11936, align 4, !tbaa !5
  %11937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11938 = load i32, ptr @test_count, align 4, !tbaa !5
  %11939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11940 = load i32, ptr %11939, align 4, !tbaa !5
  %11941 = call ptr @s2n_strerror(i32 noundef %11940, ptr noundef @.str.16)
  %11942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11943 = load i32, ptr %11942, align 4, !tbaa !5
  %11944 = call ptr @s2n_strerror_debug(i32 noundef %11943, ptr noundef @.str.16)
  %11945 = call ptr @__errno_location() #13
  %11946 = load i32, ptr %11945, align 4, !tbaa !5
  %11947 = call ptr @strerror(i32 noundef %11946) #12
  %11948 = call ptr @__errno_location() #13
  %11949 = load i32, ptr %11948, align 4, !tbaa !5
  %11950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11937, ptr noundef @.str.17, i32 noundef %11938, ptr noundef @.str.116, ptr noundef @.str.13, i32 noundef 505, ptr noundef %11941, ptr noundef %11944, ptr noundef %11947, i32 noundef %11949) #12
  br label %11951

11951:                                            ; preds = %11934, %11917
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #12
  br label %11952

11952:                                            ; preds = %11951
  br label %11953

11953:                                            ; preds = %11952
  call void @exit(i32 noundef 1) #14
  unreachable

11954:                                            ; No predecessors!
  br label %11955

11955:                                            ; preds = %11954
  br label %11956

11956:                                            ; preds = %11955, %11898
  br label %11957

11957:                                            ; preds = %11956
  br label %11958

11958:                                            ; preds = %11957
  %11959 = load i32, ptr %48, align 4, !tbaa !5
  %11960 = icmp ne i32 %11959, 0
  br i1 %11960, label %11961, label %12159

11961:                                            ; preds = %11958
  br label %11962

11962:                                            ; preds = %11961
  br label %11963

11963:                                            ; preds = %11962
  br label %11964

11964:                                            ; preds = %11963
  %11965 = load i32, ptr @test_count, align 4, !tbaa !5
  %11966 = add nsw i32 %11965, 1
  store i32 %11966, ptr @test_count, align 4, !tbaa !5
  %11967 = call i32 @s2n_kem_recv_public_key(ptr noundef %250, ptr noundef %244)
  %11968 = icmp eq i32 %11967, -1
  br i1 %11968, label %12022, label %11969

11969:                                            ; preds = %11964
  br label %11970

11970:                                            ; preds = %11969
  br label %11971

11971:                                            ; preds = %11970
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #12
  %11972 = call ptr @__errno_location() #13
  %11973 = load i32, ptr %11972, align 4, !tbaa !5
  store i32 %11973, ptr %255, align 4, !tbaa !5
  %11974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11975 = call i32 @s2n_print_stacktrace(ptr noundef %11974)
  %11976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11977 = trunc i8 %11976 to i1
  br i1 %11977, label %11978, label %12000

11978:                                            ; preds = %11971
  %11979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11980 = call i32 @fileno(ptr noundef %11979) #12
  %11981 = call i32 @isatty(i32 noundef %11980) #12
  %11982 = icmp ne i32 %11981, 0
  br i1 %11982, label %11983, label %12000

11983:                                            ; preds = %11978
  %11984 = load i32, ptr %255, align 4, !tbaa !5
  %11985 = call ptr @__errno_location() #13
  store i32 %11984, ptr %11985, align 4, !tbaa !5
  %11986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11987 = load i32, ptr @test_count, align 4, !tbaa !5
  %11988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11989 = load i32, ptr %11988, align 4, !tbaa !5
  %11990 = call ptr @s2n_strerror(i32 noundef %11989, ptr noundef @.str.16)
  %11991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11992 = load i32, ptr %11991, align 4, !tbaa !5
  %11993 = call ptr @s2n_strerror_debug(i32 noundef %11992, ptr noundef @.str.16)
  %11994 = call ptr @__errno_location() #13
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call ptr @strerror(i32 noundef %11995) #12
  %11997 = call ptr @__errno_location() #13
  %11998 = load i32, ptr %11997, align 4, !tbaa !5
  %11999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11986, ptr noundef @.str.14, i32 noundef %11987, ptr noundef @.str.127, ptr noundef @.str.13, i32 noundef 507, ptr noundef %11990, ptr noundef %11993, ptr noundef %11996, i32 noundef %11998) #12
  br label %12017

12000:                                            ; preds = %11978, %11971
  %12001 = load i32, ptr %255, align 4, !tbaa !5
  %12002 = call ptr @__errno_location() #13
  store i32 %12001, ptr %12002, align 4, !tbaa !5
  %12003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12004 = load i32, ptr @test_count, align 4, !tbaa !5
  %12005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12006 = load i32, ptr %12005, align 4, !tbaa !5
  %12007 = call ptr @s2n_strerror(i32 noundef %12006, ptr noundef @.str.16)
  %12008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12009 = load i32, ptr %12008, align 4, !tbaa !5
  %12010 = call ptr @s2n_strerror_debug(i32 noundef %12009, ptr noundef @.str.16)
  %12011 = call ptr @__errno_location() #13
  %12012 = load i32, ptr %12011, align 4, !tbaa !5
  %12013 = call ptr @strerror(i32 noundef %12012) #12
  %12014 = call ptr @__errno_location() #13
  %12015 = load i32, ptr %12014, align 4, !tbaa !5
  %12016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12003, ptr noundef @.str.17, i32 noundef %12004, ptr noundef @.str.127, ptr noundef @.str.13, i32 noundef 507, ptr noundef %12007, ptr noundef %12010, ptr noundef %12013, i32 noundef %12015) #12
  br label %12017

12017:                                            ; preds = %12000, %11983
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #12
  br label %12018

12018:                                            ; preds = %12017
  br label %12019

12019:                                            ; preds = %12018
  call void @exit(i32 noundef 1) #14
  unreachable

12020:                                            ; No predecessors!
  br label %12021

12021:                                            ; preds = %12020
  br label %12022

12022:                                            ; preds = %12021, %11964
  br label %12023

12023:                                            ; preds = %12022
  br label %12024

12024:                                            ; preds = %12023
  br label %12025

12025:                                            ; preds = %12024
  %12026 = load i32, ptr @test_count, align 4, !tbaa !5
  %12027 = add nsw i32 %12026, 1
  store i32 %12027, ptr @test_count, align 4, !tbaa !5
  %12028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12029 = load i32, ptr %12028, align 4, !tbaa !5
  %12030 = icmp eq i32 %12029, 335544322
  br i1 %12030, label %12084, label %12031

12031:                                            ; preds = %12025
  br label %12032

12032:                                            ; preds = %12031
  br label %12033

12033:                                            ; preds = %12032
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #12
  %12034 = call ptr @__errno_location() #13
  %12035 = load i32, ptr %12034, align 4, !tbaa !5
  store i32 %12035, ptr %256, align 4, !tbaa !5
  %12036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12037 = call i32 @s2n_print_stacktrace(ptr noundef %12036)
  %12038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12039 = trunc i8 %12038 to i1
  br i1 %12039, label %12040, label %12062

12040:                                            ; preds = %12033
  %12041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12042 = call i32 @fileno(ptr noundef %12041) #12
  %12043 = call i32 @isatty(i32 noundef %12042) #12
  %12044 = icmp ne i32 %12043, 0
  br i1 %12044, label %12045, label %12062

12045:                                            ; preds = %12040
  %12046 = load i32, ptr %256, align 4, !tbaa !5
  %12047 = call ptr @__errno_location() #13
  store i32 %12046, ptr %12047, align 4, !tbaa !5
  %12048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12049 = load i32, ptr @test_count, align 4, !tbaa !5
  %12050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12051 = load i32, ptr %12050, align 4, !tbaa !5
  %12052 = call ptr @s2n_strerror(i32 noundef %12051, ptr noundef @.str.16)
  %12053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12054 = load i32, ptr %12053, align 4, !tbaa !5
  %12055 = call ptr @s2n_strerror_debug(i32 noundef %12054, ptr noundef @.str.16)
  %12056 = call ptr @__errno_location() #13
  %12057 = load i32, ptr %12056, align 4, !tbaa !5
  %12058 = call ptr @strerror(i32 noundef %12057) #12
  %12059 = call ptr @__errno_location() #13
  %12060 = load i32, ptr %12059, align 4, !tbaa !5
  %12061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12048, ptr noundef @.str.14, i32 noundef %12049, ptr noundef @.str.118, ptr noundef @.str.13, i32 noundef 507, ptr noundef %12052, ptr noundef %12055, ptr noundef %12058, i32 noundef %12060) #12
  br label %12079

12062:                                            ; preds = %12040, %12033
  %12063 = load i32, ptr %256, align 4, !tbaa !5
  %12064 = call ptr @__errno_location() #13
  store i32 %12063, ptr %12064, align 4, !tbaa !5
  %12065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12066 = load i32, ptr @test_count, align 4, !tbaa !5
  %12067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12068 = load i32, ptr %12067, align 4, !tbaa !5
  %12069 = call ptr @s2n_strerror(i32 noundef %12068, ptr noundef @.str.16)
  %12070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12071 = load i32, ptr %12070, align 4, !tbaa !5
  %12072 = call ptr @s2n_strerror_debug(i32 noundef %12071, ptr noundef @.str.16)
  %12073 = call ptr @__errno_location() #13
  %12074 = load i32, ptr %12073, align 4, !tbaa !5
  %12075 = call ptr @strerror(i32 noundef %12074) #12
  %12076 = call ptr @__errno_location() #13
  %12077 = load i32, ptr %12076, align 4, !tbaa !5
  %12078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12065, ptr noundef @.str.17, i32 noundef %12066, ptr noundef @.str.118, ptr noundef @.str.13, i32 noundef 507, ptr noundef %12069, ptr noundef %12072, ptr noundef %12075, i32 noundef %12077) #12
  br label %12079

12079:                                            ; preds = %12062, %12045
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #12
  br label %12080

12080:                                            ; preds = %12079
  br label %12081

12081:                                            ; preds = %12080
  call void @exit(i32 noundef 1) #14
  unreachable

12082:                                            ; No predecessors!
  br label %12083

12083:                                            ; preds = %12082
  br label %12084

12084:                                            ; preds = %12083, %12025
  br label %12085

12085:                                            ; preds = %12084
  br label %12086

12086:                                            ; preds = %12085
  br label %12087

12087:                                            ; preds = %12086
  %12088 = load i32, ptr @test_count, align 4, !tbaa !5
  %12089 = add nsw i32 %12088, 1
  store i32 %12089, ptr @test_count, align 4, !tbaa !5
  %12090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12091 = load i32, ptr %12090, align 4, !tbaa !5
  %12092 = call ptr @s2n_strerror_debug(i32 noundef %12091, ptr noundef @.str.16)
  %12093 = icmp eq ptr %12092, null
  br i1 %12093, label %12094, label %12147

12094:                                            ; preds = %12087
  br label %12095

12095:                                            ; preds = %12094
  br label %12096

12096:                                            ; preds = %12095
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #12
  %12097 = call ptr @__errno_location() #13
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  store i32 %12098, ptr %257, align 4, !tbaa !5
  %12099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12100 = call i32 @s2n_print_stacktrace(ptr noundef %12099)
  %12101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12102 = trunc i8 %12101 to i1
  br i1 %12102, label %12103, label %12125

12103:                                            ; preds = %12096
  %12104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12105 = call i32 @fileno(ptr noundef %12104) #12
  %12106 = call i32 @isatty(i32 noundef %12105) #12
  %12107 = icmp ne i32 %12106, 0
  br i1 %12107, label %12108, label %12125

12108:                                            ; preds = %12103
  %12109 = load i32, ptr %257, align 4, !tbaa !5
  %12110 = call ptr @__errno_location() #13
  store i32 %12109, ptr %12110, align 4, !tbaa !5
  %12111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12112 = load i32, ptr @test_count, align 4, !tbaa !5
  %12113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12114 = load i32, ptr %12113, align 4, !tbaa !5
  %12115 = call ptr @s2n_strerror(i32 noundef %12114, ptr noundef @.str.16)
  %12116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12117 = load i32, ptr %12116, align 4, !tbaa !5
  %12118 = call ptr @s2n_strerror_debug(i32 noundef %12117, ptr noundef @.str.16)
  %12119 = call ptr @__errno_location() #13
  %12120 = load i32, ptr %12119, align 4, !tbaa !5
  %12121 = call ptr @strerror(i32 noundef %12120) #12
  %12122 = call ptr @__errno_location() #13
  %12123 = load i32, ptr %12122, align 4, !tbaa !5
  %12124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12111, ptr noundef @.str.14, i32 noundef %12112, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 507, ptr noundef %12115, ptr noundef %12118, ptr noundef %12121, i32 noundef %12123) #12
  br label %12142

12125:                                            ; preds = %12103, %12096
  %12126 = load i32, ptr %257, align 4, !tbaa !5
  %12127 = call ptr @__errno_location() #13
  store i32 %12126, ptr %12127, align 4, !tbaa !5
  %12128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12129 = load i32, ptr @test_count, align 4, !tbaa !5
  %12130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12131 = load i32, ptr %12130, align 4, !tbaa !5
  %12132 = call ptr @s2n_strerror(i32 noundef %12131, ptr noundef @.str.16)
  %12133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12134 = load i32, ptr %12133, align 4, !tbaa !5
  %12135 = call ptr @s2n_strerror_debug(i32 noundef %12134, ptr noundef @.str.16)
  %12136 = call ptr @__errno_location() #13
  %12137 = load i32, ptr %12136, align 4, !tbaa !5
  %12138 = call ptr @strerror(i32 noundef %12137) #12
  %12139 = call ptr @__errno_location() #13
  %12140 = load i32, ptr %12139, align 4, !tbaa !5
  %12141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12128, ptr noundef @.str.17, i32 noundef %12129, ptr noundef @.str.23, ptr noundef @.str.13, i32 noundef 507, ptr noundef %12132, ptr noundef %12135, ptr noundef %12138, i32 noundef %12140) #12
  br label %12142

12142:                                            ; preds = %12125, %12108
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #12
  br label %12143

12143:                                            ; preds = %12142
  br label %12144

12144:                                            ; preds = %12143
  call void @exit(i32 noundef 1) #14
  unreachable

12145:                                            ; No predecessors!
  br label %12146

12146:                                            ; preds = %12145
  br label %12147

12147:                                            ; preds = %12146, %12087
  br label %12148

12148:                                            ; preds = %12147
  br label %12149

12149:                                            ; preds = %12148
  br label %12150

12150:                                            ; preds = %12149
  br label %12151

12151:                                            ; preds = %12150
  br label %12152

12152:                                            ; preds = %12151
  %12153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12153, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12154 = call ptr @__errno_location() #13
  store i32 0, ptr %12154, align 4, !tbaa !5
  br label %12155

12155:                                            ; preds = %12152
  br label %12156

12156:                                            ; preds = %12155
  br label %12157

12157:                                            ; preds = %12156
  br label %12158

12158:                                            ; preds = %12157
  br label %12159

12159:                                            ; preds = %12158, %11958
  call void @llvm.lifetime.end.p0(i64 5, ptr %252) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %250) #12
  %12160 = call i32 @s2n_free(ptr noundef %248)
  call void @llvm.lifetime.end.p0(i64 24, ptr %248) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr %244) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %239) #12
  %12161 = call i32 @s2n_free(ptr noundef %237)
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #12
  br label %12162

12162:                                            ; preds = %12159
  %12163 = load i32, ptr %48, align 4, !tbaa !5
  %12164 = add nsw i32 %12163, 1
  store i32 %12164, ptr %48, align 4, !tbaa !5
  br label %2186, !llvm.loop !50

12165:                                            ; preds = %10289, %8547, %6673, %4013, %2189
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #12
  %12166 = load i32, ptr %30, align 4
  switch i32 %12166, label %12315 [
    i32 217, label %12167
    i32 1, label %12313
  ]

12167:                                            ; preds = %12165
  br label %12168

12168:                                            ; preds = %12167
  br label %12169

12169:                                            ; preds = %12168
  %12170 = call i32 @s2n_cleanup()
  %12171 = icmp eq i32 %12170, -1
  br i1 %12171, label %12172, label %12223

12172:                                            ; preds = %12169
  br label %12173

12173:                                            ; preds = %12172
  br label %12174

12174:                                            ; preds = %12173
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #12
  %12175 = call ptr @__errno_location() #13
  %12176 = load i32, ptr %12175, align 4, !tbaa !5
  store i32 %12176, ptr %258, align 4, !tbaa !5
  %12177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12178 = call i32 @s2n_print_stacktrace(ptr noundef %12177)
  %12179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12180 = trunc i8 %12179 to i1
  br i1 %12180, label %12181, label %12203

12181:                                            ; preds = %12174
  %12182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12183 = call i32 @fileno(ptr noundef %12182) #12
  %12184 = call i32 @isatty(i32 noundef %12183) #12
  %12185 = icmp ne i32 %12184, 0
  br i1 %12185, label %12186, label %12203

12186:                                            ; preds = %12181
  %12187 = load i32, ptr %258, align 4, !tbaa !5
  %12188 = call ptr @__errno_location() #13
  store i32 %12187, ptr %12188, align 4, !tbaa !5
  %12189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12190 = load i32, ptr @test_count, align 4, !tbaa !5
  %12191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12192 = load i32, ptr %12191, align 4, !tbaa !5
  %12193 = call ptr @s2n_strerror(i32 noundef %12192, ptr noundef @.str.16)
  %12194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12195 = load i32, ptr %12194, align 4, !tbaa !5
  %12196 = call ptr @s2n_strerror_debug(i32 noundef %12195, ptr noundef @.str.16)
  %12197 = call ptr @__errno_location() #13
  %12198 = load i32, ptr %12197, align 4, !tbaa !5
  %12199 = call ptr @strerror(i32 noundef %12198) #12
  %12200 = call ptr @__errno_location() #13
  %12201 = load i32, ptr %12200, align 4, !tbaa !5
  %12202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12189, ptr noundef @.str.14, i32 noundef %12190, ptr noundef @.str.128, ptr noundef @.str.13, i32 noundef 512, ptr noundef %12193, ptr noundef %12196, ptr noundef %12199, i32 noundef %12201) #12
  br label %12220

12203:                                            ; preds = %12181, %12174
  %12204 = load i32, ptr %258, align 4, !tbaa !5
  %12205 = call ptr @__errno_location() #13
  store i32 %12204, ptr %12205, align 4, !tbaa !5
  %12206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12207 = load i32, ptr @test_count, align 4, !tbaa !5
  %12208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12209 = load i32, ptr %12208, align 4, !tbaa !5
  %12210 = call ptr @s2n_strerror(i32 noundef %12209, ptr noundef @.str.16)
  %12211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12212 = load i32, ptr %12211, align 4, !tbaa !5
  %12213 = call ptr @s2n_strerror_debug(i32 noundef %12212, ptr noundef @.str.16)
  %12214 = call ptr @__errno_location() #13
  %12215 = load i32, ptr %12214, align 4, !tbaa !5
  %12216 = call ptr @strerror(i32 noundef %12215) #12
  %12217 = call ptr @__errno_location() #13
  %12218 = load i32, ptr %12217, align 4, !tbaa !5
  %12219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12206, ptr noundef @.str.17, i32 noundef %12207, ptr noundef @.str.128, ptr noundef @.str.13, i32 noundef 512, ptr noundef %12210, ptr noundef %12213, ptr noundef %12216, i32 noundef %12218) #12
  br label %12220

12220:                                            ; preds = %12203, %12186
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #12
  br label %12221

12221:                                            ; preds = %12220
  call void @exit(i32 noundef 1) #14
  unreachable

12222:                                            ; No predecessors!
  br label %12223

12223:                                            ; preds = %12222, %12169
  br label %12224

12224:                                            ; preds = %12223
  br label %12225

12225:                                            ; preds = %12224
  br label %12226

12226:                                            ; preds = %12225
  %12227 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %12228 = icmp eq i32 %12227, -1
  br i1 %12228, label %12229, label %12280

12229:                                            ; preds = %12226
  br label %12230

12230:                                            ; preds = %12229
  br label %12231

12231:                                            ; preds = %12230
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #12
  %12232 = call ptr @__errno_location() #13
  %12233 = load i32, ptr %12232, align 4, !tbaa !5
  store i32 %12233, ptr %259, align 4, !tbaa !5
  %12234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12235 = call i32 @s2n_print_stacktrace(ptr noundef %12234)
  %12236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12237 = trunc i8 %12236 to i1
  br i1 %12237, label %12238, label %12260

12238:                                            ; preds = %12231
  %12239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12240 = call i32 @fileno(ptr noundef %12239) #12
  %12241 = call i32 @isatty(i32 noundef %12240) #12
  %12242 = icmp ne i32 %12241, 0
  br i1 %12242, label %12243, label %12260

12243:                                            ; preds = %12238
  %12244 = load i32, ptr %259, align 4, !tbaa !5
  %12245 = call ptr @__errno_location() #13
  store i32 %12244, ptr %12245, align 4, !tbaa !5
  %12246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12247 = load i32, ptr @test_count, align 4, !tbaa !5
  %12248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12249 = load i32, ptr %12248, align 4, !tbaa !5
  %12250 = call ptr @s2n_strerror(i32 noundef %12249, ptr noundef @.str.16)
  %12251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12252 = load i32, ptr %12251, align 4, !tbaa !5
  %12253 = call ptr @s2n_strerror_debug(i32 noundef %12252, ptr noundef @.str.16)
  %12254 = call ptr @__errno_location() #13
  %12255 = load i32, ptr %12254, align 4, !tbaa !5
  %12256 = call ptr @strerror(i32 noundef %12255) #12
  %12257 = call ptr @__errno_location() #13
  %12258 = load i32, ptr %12257, align 4, !tbaa !5
  %12259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12246, ptr noundef @.str.14, i32 noundef %12247, ptr noundef @.str.129, ptr noundef @.str.13, i32 noundef 512, ptr noundef %12250, ptr noundef %12253, ptr noundef %12256, i32 noundef %12258) #12
  br label %12277

12260:                                            ; preds = %12238, %12231
  %12261 = load i32, ptr %259, align 4, !tbaa !5
  %12262 = call ptr @__errno_location() #13
  store i32 %12261, ptr %12262, align 4, !tbaa !5
  %12263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12264 = load i32, ptr @test_count, align 4, !tbaa !5
  %12265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12266 = load i32, ptr %12265, align 4, !tbaa !5
  %12267 = call ptr @s2n_strerror(i32 noundef %12266, ptr noundef @.str.16)
  %12268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12269 = load i32, ptr %12268, align 4, !tbaa !5
  %12270 = call ptr @s2n_strerror_debug(i32 noundef %12269, ptr noundef @.str.16)
  %12271 = call ptr @__errno_location() #13
  %12272 = load i32, ptr %12271, align 4, !tbaa !5
  %12273 = call ptr @strerror(i32 noundef %12272) #12
  %12274 = call ptr @__errno_location() #13
  %12275 = load i32, ptr %12274, align 4, !tbaa !5
  %12276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12263, ptr noundef @.str.17, i32 noundef %12264, ptr noundef @.str.129, ptr noundef @.str.13, i32 noundef 512, ptr noundef %12267, ptr noundef %12270, ptr noundef %12273, i32 noundef %12275) #12
  br label %12277

12277:                                            ; preds = %12260, %12243
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #12
  br label %12278

12278:                                            ; preds = %12277
  call void @exit(i32 noundef 1) #14
  unreachable

12279:                                            ; No predecessors!
  br label %12280

12280:                                            ; preds = %12279, %12226
  br label %12281

12281:                                            ; preds = %12280
  %12282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12283 = trunc i8 %12282 to i1
  br i1 %12283, label %12284, label %12300

12284:                                            ; preds = %12281
  %12285 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12286 = call i32 @fileno(ptr noundef %12285) #12
  %12287 = call i32 @isatty(i32 noundef %12286) #12
  %12288 = icmp ne i32 %12287, 0
  br i1 %12288, label %12289, label %12300

12289:                                            ; preds = %12284
  %12290 = load i32, ptr @test_count, align 4, !tbaa !5
  %12291 = icmp ne i32 %12290, 0
  br i1 %12291, label %12292, label %12296

12292:                                            ; preds = %12289
  %12293 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12294 = load i32, ptr @test_count, align 4, !tbaa !5
  %12295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12293, ptr noundef @.str.130, i32 noundef %12294) #12
  br label %12299

12296:                                            ; preds = %12289
  %12297 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12297, ptr noundef @.str.131) #12
  br label %12299

12299:                                            ; preds = %12296, %12292
  br label %12311

12300:                                            ; preds = %12284, %12281
  %12301 = load i32, ptr @test_count, align 4, !tbaa !5
  %12302 = icmp ne i32 %12301, 0
  br i1 %12302, label %12303, label %12307

12303:                                            ; preds = %12300
  %12304 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12305 = load i32, ptr @test_count, align 4, !tbaa !5
  %12306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12304, ptr noundef @.str.132, i32 noundef %12305) #12
  br label %12310

12307:                                            ; preds = %12300
  %12308 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12308, ptr noundef @.str.133) #12
  br label %12310

12310:                                            ; preds = %12307, %12303
  br label %12311

12311:                                            ; preds = %12310, %12299
  store i32 0, ptr %3, align 4
  br label %12313

12312:                                            ; No predecessors!
  br label %12313

12313:                                            ; preds = %12312, %12311, %12165, %1786
  %12314 = load i32, ptr %3, align 4
  ret i32 %12314

12315:                                            ; preds = %12165, %1786
  unreachable
}

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

declare i32 @fflush(ptr noundef) #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #1

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

declare i32 @s2n_print_stacktrace(ptr noundef) #1

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #1

declare i32 @s2n_init() #1

declare i32 @s2n_disable_tls13_in_test(...) #1

declare i32 @s2n_cipher_suite_to_kem(ptr noundef, ptr noundef) #1

declare void @s2n_debug_info_reset() #1

declare i32 @s2n_kem_free(ptr noundef) #1

declare i32 @s2n_kem_group_free(ptr noundef) #1

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #1

declare i32 @s2n_ecdhe_parameters_send(ptr noundef, ptr noundef) #1

declare i32 @s2n_stuffer_free(ptr noundef) #1

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

declare i32 @s2n_get_kem_from_extension_id(i16 noundef zeroext, ptr noundef) #1

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

declare i32 @s2n_kem_generate_keypair(ptr noundef) #1

declare i32 @s2n_free(ptr noundef) #1

declare i32 @s2n_kem_encapsulate(ptr noundef, ptr noundef) #1

declare i32 @s2n_kem_decapsulate(ptr noundef, ptr noundef) #1

declare i32 @s2n_kem_send_public_key(ptr noundef, ptr noundef) #1

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

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) #1

declare i32 @s2n_kem_send_ciphertext(ptr noundef, ptr noundef) #1

declare i32 @s2n_stuffer_reread(ptr noundef) #1

declare i32 @s2n_kem_recv_ciphertext(ptr noundef, ptr noundef) #1

declare i32 @s2n_kem_recv_public_key(ptr noundef, ptr noundef) #1

declare i32 @s2n_cleanup() #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 16}
!16 = !{!"s2n_iana_to_kem", !7, i64 0, !10, i64 8, !7, i64 16}
!17 = !{!16, !10, i64 8}
!18 = !{!19, !20, i64 12}
!19 = !{!"s2n_kem", !10, i64 0, !6, i64 8, !20, i64 12, !20, i64 14, !20, i64 16, !20, i64 18, !20, i64 20, !10, i64 24, !10, i64 32, !10, i64 40}
!20 = !{!"short", !7, i64 0}
!21 = !{!22, !10, i64 96}
!22 = !{!"s2n_kem_group_params", !10, i64 0, !23, i64 8, !25, i64 96}
!23 = !{!"s2n_kem_params", !10, i64 0, !24, i64 8, !24, i64 32, !24, i64 56, !12, i64 80}
!24 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!22, !10, i64 104}
!27 = !{!28, !28, i64 0}
!28 = !{!"long", !7, i64 0}
!29 = !{!20, !20, i64 0}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!23, !10, i64 0}
!33 = !{!23, !12, i64 80}
!34 = !{!23, !6, i64 16}
!35 = !{!23, !6, i64 40}
!36 = !{!23, !10, i64 8}
!37 = !{!23, !10, i64 32}
!38 = !{!23, !6, i64 64}
!39 = !{!23, !6, i64 68}
!40 = !{!23, !10, i64 56}
!41 = !{!24, !6, i64 8}
!42 = !{!24, !10, i64 0}
!43 = !{!23, !6, i64 44}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_stuffer", !24, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!46 = !{!23, !6, i64 20}
!47 = !{!48, !10, i64 0}
!48 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!49 = !{!48, !10, i64 8}
!50 = distinct !{!50, !31}


; 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_debug_info = type { ptr, ptr }
%struct.s2n_kem = type { ptr, i32, i16, i16, i16, i16, i16, ptr, ptr, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@TEST_PUBLIC_KEY = external dso_local constant [2 x i8], align 1
@TEST_PRIVATE_KEY = external dso_local constant [3 x i8], align 1
@TEST_SHARED_SECRET = external dso_local constant [4 x i8], align 1
@TEST_CIPHERTEXT = external dso_local constant [5 x i8], align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@s2n_test_kem = external dso_local constant %struct.s2n_kem, align 8
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [71 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [56 x i8], align 1
@classic_ecdhe_iana = external hidden constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [49 x i8], align 1
@kyber_iana = external hidden constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [51 x i8], align 1
@s2n_kyber_512_r3 = external local_unnamed_addr constant %struct.s2n_kem, align 8
@.str.28 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [80 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.36 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [68 x i8], align 1
@__const.main.kem_extensions = external hidden unnamed_addr constant [1 x i16], align 2
@__const.main.kems = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.39 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [78 x i8], align 1
@__const.main.prefixed_output = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.unprefixed_output = external hidden unnamed_addr constant [2 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [78 x i8], align 1
@__const.main.prefixed_output.89 = external hidden unnamed_addr constant [7 x i8], align 1
@__const.main.unprefixed_output.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [96 x i8], align 1
@__const.main.prefixed_input = external hidden unnamed_addr constant [7 x i8], align 1
@__const.main.unprefixed_input = external hidden unnamed_addr constant [5 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [72 x i8], align 1
@__const.main.bad_ct_input_3 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [50 x i8], align 1
@__const.main.prefixed_input.119 = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.unprefixed_input.120 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.bad_pk_input_3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca %struct.s2n_kem_params, align 8
  %5 = alloca %struct.s2n_kem_group_params, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_kem_params, align 8
  %10 = alloca %struct.s2n_kem_params, align 8
  %11 = alloca %struct.s2n_blob, align 8
  %12 = alloca %struct.s2n_kem_params, align 8
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca %struct.s2n_stuffer, align 8
  %17 = alloca %struct.s2n_kem_params, align 8
  %18 = alloca %struct.s2n_kem_params, align 8
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca %struct.s2n_blob, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca %struct.s2n_kem_params, align 8
  %24 = alloca %struct.s2n_kem_params, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca %struct.s2n_stuffer, align 8
  %27 = alloca [7 x i8], align 1
  %28 = alloca [5 x i8], align 1
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca %struct.s2n_stuffer, align 8
  %31 = alloca %struct.s2n_kem_params, align 8
  %32 = alloca %struct.s2n_blob, align 8
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca [4 x i8], align 4
  %35 = alloca %struct.s2n_kem_params, align 8
  %36 = alloca %struct.s2n_blob, align 8
  %37 = alloca %struct.s2n_stuffer, align 8
  %38 = alloca [4 x i8], align 4
  %39 = alloca [2 x i8], align 2
  %40 = alloca %struct.s2n_blob, align 8
  %41 = alloca %struct.s2n_stuffer, align 8
  %42 = alloca %struct.s2n_kem_params, align 8
  %43 = alloca %struct.s2n_blob, align 8
  %44 = alloca %struct.s2n_stuffer, align 8
  %45 = alloca [5 x i8], align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %46 = load ptr, ptr @stdout, align 8, !tbaa !9
  %47 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %46, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13) #13
  %48 = load ptr, ptr @stdout, align 8, !tbaa !9
  %49 = tail call i32 @fflush(ptr noundef %48)
  %50 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %51 = icmp eq i32 %50, -1
  br i1 %51, label %52, label %76

52:                                               ; preds = %2
  %53 = tail call ptr @__errno_location() #14
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = tail call i32 @s2n_print_stacktrace(ptr noundef %55) #13
  %57 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %58 = trunc nuw i8 %57 to i1
  br i1 %58, label %59, label %63

59:                                               ; preds = %52
  %60 = load ptr, ptr @stderr, align 8, !tbaa !9
  %61 = tail call i32 @fileno(ptr noundef %60) #13
  %62 = tail call i32 @isatty(i32 noundef %61) #13
  %.not665 = icmp eq i32 %62, 0
  br i1 %.not665, label %63, label %64

63:                                               ; preds = %59, %52
  br label %64

64:                                               ; preds = %59, %63
  %.str.17.sink = phi ptr [ @.str.17, %63 ], [ @.str.14, %59 ]
  store i32 %54, ptr %53, align 4, !tbaa !5
  %65 = load ptr, ptr @stderr, align 8, !tbaa !9
  %66 = load i32, ptr @test_count, align 4, !tbaa !5
  %67 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror(i32 noundef %68, ptr noundef nonnull @.str.16) #13
  %70 = load i32, ptr %67, align 4, !tbaa !5
  %71 = tail call ptr @s2n_strerror_debug(i32 noundef %70, ptr noundef nonnull @.str.16) #13
  %72 = load i32, ptr %53, align 4, !tbaa !5
  %73 = tail call ptr @strerror(i32 noundef %72) #13
  %74 = load i32, ptr %53, align 4, !tbaa !5
  %75 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %65, ptr noundef nonnull %.str.17.sink, i32 noundef %66, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.13, i32 noundef 115, ptr noundef %69, ptr noundef %71, ptr noundef %73, i32 noundef %74) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

76:                                               ; preds = %2
  %77 = load i32, ptr @test_count, align 4, !tbaa !5
  %78 = add nsw i32 %77, 1
  store i32 %78, ptr @test_count, align 4, !tbaa !5
  %79 = tail call i32 @s2n_enable_atexit() #13
  %80 = icmp eq i32 %79, -1
  br i1 %80, label %81, label %105

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

88:                                               ; preds = %81
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = tail call i32 @fileno(ptr noundef %89) #13
  %91 = tail call i32 @isatty(i32 noundef %90) #13
  %.not664 = icmp eq i32 %91, 0
  br i1 %.not664, label %92, label %93

92:                                               ; preds = %88, %81
  br label %93

93:                                               ; preds = %88, %92
  %.str.17.sink719 = phi ptr [ @.str.17, %92 ], [ @.str.14, %88 ]
  store i32 %83, ptr %82, align 4, !tbaa !5
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = load i32, ptr @test_count, align 4, !tbaa !5
  %96 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = tail call ptr @s2n_strerror(i32 noundef %97, ptr noundef nonnull @.str.16) #13
  %99 = load i32, ptr %96, align 4, !tbaa !5
  %100 = tail call ptr @s2n_strerror_debug(i32 noundef %99, ptr noundef nonnull @.str.16) #13
  %101 = load i32, ptr %82, align 4, !tbaa !5
  %102 = tail call ptr @strerror(i32 noundef %101) #13
  %103 = load i32, ptr %82, align 4, !tbaa !5
  %104 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %94, ptr noundef nonnull %.str.17.sink719, i32 noundef %95, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.13, i32 noundef 115, ptr noundef %98, ptr noundef %100, ptr noundef %102, i32 noundef %103) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

105:                                              ; preds = %76
  %106 = tail call i32 @s2n_init() #13
  %107 = icmp eq i32 %106, -1
  br i1 %107, label %108, label %132

108:                                              ; preds = %105
  %109 = tail call ptr @__errno_location() #14
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = tail call i32 @s2n_print_stacktrace(ptr noundef %111) #13
  %113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %114 = trunc nuw i8 %113 to i1
  br i1 %114, label %115, label %119

115:                                              ; preds = %108
  %116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %117 = tail call i32 @fileno(ptr noundef %116) #13
  %118 = tail call i32 @isatty(i32 noundef %117) #13
  %.not663 = icmp eq i32 %118, 0
  br i1 %.not663, label %119, label %120

119:                                              ; preds = %115, %108
  br label %120

120:                                              ; preds = %115, %119
  %.str.17.sink730 = phi ptr [ @.str.17, %119 ], [ @.str.14, %115 ]
  store i32 %110, ptr %109, align 4, !tbaa !5
  %121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %122 = load i32, ptr @test_count, align 4, !tbaa !5
  %123 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = tail call ptr @s2n_strerror(i32 noundef %124, ptr noundef nonnull @.str.16) #13
  %126 = load i32, ptr %123, align 4, !tbaa !5
  %127 = tail call ptr @s2n_strerror_debug(i32 noundef %126, ptr noundef nonnull @.str.16) #13
  %128 = load i32, ptr %109, align 4, !tbaa !5
  %129 = tail call ptr @strerror(i32 noundef %128) #13
  %130 = load i32, ptr %109, align 4, !tbaa !5
  %131 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %121, ptr noundef nonnull %.str.17.sink730, i32 noundef %122, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.13, i32 noundef 115, ptr noundef %125, ptr noundef %127, ptr noundef %129, i32 noundef %130) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

132:                                              ; preds = %105
  %133 = load i32, ptr @test_count, align 4, !tbaa !5
  %134 = add nsw i32 %133, 1
  store i32 %134, ptr @test_count, align 4, !tbaa !5
  %135 = tail call i32 (...) @s2n_disable_tls13_in_test() #13
  %136 = icmp eq i32 %135, -1
  br i1 %136, label %137, label %161

137:                                              ; preds = %132
  %138 = tail call ptr @__errno_location() #14
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = tail call i32 @s2n_print_stacktrace(ptr noundef %140) #13
  %142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %143 = trunc nuw i8 %142 to i1
  br i1 %143, label %144, label %148

144:                                              ; preds = %137
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = tail call i32 @fileno(ptr noundef %145) #13
  %147 = tail call i32 @isatty(i32 noundef %146) #13
  %.not662 = icmp eq i32 %147, 0
  br i1 %.not662, label %148, label %149

148:                                              ; preds = %144, %137
  br label %149

149:                                              ; preds = %144, %148
  %.str.17.sink741 = phi ptr [ @.str.17, %148 ], [ @.str.14, %144 ]
  store i32 %139, ptr %138, align 4, !tbaa !5
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = load i32, ptr @test_count, align 4, !tbaa !5
  %152 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = tail call ptr @s2n_strerror(i32 noundef %153, ptr noundef nonnull @.str.16) #13
  %155 = load i32, ptr %152, align 4, !tbaa !5
  %156 = tail call ptr @s2n_strerror_debug(i32 noundef %155, ptr noundef nonnull @.str.16) #13
  %157 = load i32, ptr %138, align 4, !tbaa !5
  %158 = tail call ptr @strerror(i32 noundef %157) #13
  %159 = load i32, ptr %138, align 4, !tbaa !5
  %160 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %150, ptr noundef nonnull %.str.17.sink741, i32 noundef %151, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.13, i32 noundef 116, ptr noundef %154, ptr noundef %156, ptr noundef %158, i32 noundef %159) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

161:                                              ; preds = %132
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #13
  store ptr null, ptr %3, align 8, !tbaa !9
  %163 = add nsw i32 %162, 6
  store i32 %163, ptr @test_count, align 4, !tbaa !5
  %164 = call i32 @s2n_cipher_suite_to_kem(ptr noundef nonnull @classic_ecdhe_iana, ptr noundef nonnull %3) #13
  %165 = icmp eq i32 %164, -1
  br i1 %165, label %190, label %166

166:                                              ; preds = %161
  %167 = tail call ptr @__errno_location() #14
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = call i32 @s2n_print_stacktrace(ptr noundef %169) #13
  %171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %172 = trunc nuw i8 %171 to i1
  br i1 %172, label %173, label %177

173:                                              ; preds = %166
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = call i32 @fileno(ptr noundef %174) #13
  %176 = call i32 @isatty(i32 noundef %175) #13
  %.not = icmp eq i32 %176, 0
  br i1 %.not, label %177, label %178

177:                                              ; preds = %173, %166
  br label %178

178:                                              ; preds = %173, %177
  %.str.17.sink752 = phi ptr [ @.str.17, %177 ], [ @.str.14, %173 ]
  store i32 %168, ptr %167, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @s2n_strerror(i32 noundef %182, ptr noundef nonnull @.str.16) #13
  %184 = load i32, ptr %181, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef nonnull @.str.16) #13
  %186 = load i32, ptr %167, align 4, !tbaa !5
  %187 = call ptr @strerror(i32 noundef %186) #13
  %188 = load i32, ptr %167, align 4, !tbaa !5
  %189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull %.str.17.sink752, i32 noundef %180, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.13, i32 noundef 129, ptr noundef %183, ptr noundef %185, ptr noundef %187, i32 noundef %188) #15
  call void @exit(i32 noundef 1) #16
  unreachable

190:                                              ; preds = %161
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = icmp eq i32 %194, 335544361
  br i1 %195, label %219, label %196

196:                                              ; preds = %190
  %197 = tail call ptr @__errno_location() #14
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @s2n_print_stacktrace(ptr noundef %199) #13
  %201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %207

203:                                              ; preds = %196
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @fileno(ptr noundef %204) #13
  %206 = call i32 @isatty(i32 noundef %205) #13
  %.not460 = icmp eq i32 %206, 0
  br i1 %.not460, label %207, label %208

207:                                              ; preds = %203, %196
  br label %208

208:                                              ; preds = %203, %207
  %.str.17.sink763 = phi ptr [ @.str.17, %207 ], [ @.str.14, %203 ]
  store i32 %198, ptr %197, align 4, !tbaa !5
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = load i32, ptr %193, align 4, !tbaa !5
  %212 = call ptr @s2n_strerror(i32 noundef %211, ptr noundef nonnull @.str.16) #13
  %213 = load i32, ptr %193, align 4, !tbaa !5
  %214 = call ptr @s2n_strerror_debug(i32 noundef %213, ptr noundef nonnull @.str.16) #13
  %215 = load i32, ptr %197, align 4, !tbaa !5
  %216 = call ptr @strerror(i32 noundef %215) #13
  %217 = load i32, ptr %197, align 4, !tbaa !5
  %218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef nonnull %.str.17.sink763, i32 noundef %210, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.13, i32 noundef 129, ptr noundef %212, ptr noundef %214, ptr noundef %216, i32 noundef %217) #15
  call void @exit(i32 noundef 1) #16
  unreachable

219:                                              ; preds = %190
  %220 = add nsw i32 %191, 2
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = call ptr @s2n_strerror_debug(i32 noundef 335544361, ptr noundef nonnull @.str.16) #13
  %222 = icmp eq ptr %221, null
  br i1 %222, label %223, label %246

223:                                              ; preds = %219
  %224 = tail call ptr @__errno_location() #14
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = call i32 @s2n_print_stacktrace(ptr noundef %226) #13
  %228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %229 = trunc nuw i8 %228 to i1
  br i1 %229, label %230, label %234

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @fileno(ptr noundef %231) #13
  %233 = call i32 @isatty(i32 noundef %232) #13
  %.not661 = icmp eq i32 %233, 0
  br i1 %.not661, label %234, label %235

234:                                              ; preds = %230, %223
  br label %235

235:                                              ; preds = %230, %234
  %.str.17.sink772 = phi ptr [ @.str.17, %234 ], [ @.str.14, %230 ]
  store i32 %225, ptr %224, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = load i32, ptr %193, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror(i32 noundef %238, ptr noundef nonnull @.str.16) #13
  %240 = load i32, ptr %193, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef nonnull @.str.16) #13
  %242 = load i32, ptr %224, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #13
  %244 = load i32, ptr %224, align 4, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull %.str.17.sink772, i32 noundef %237, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 129, ptr noundef %239, ptr noundef %241, ptr noundef %243, i32 noundef %244) #15
  call void @exit(i32 noundef 1) #16
  unreachable

246:                                              ; preds = %219
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %247 = tail call ptr @__errno_location() #14
  store i32 0, ptr %247, align 4, !tbaa !5
  %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 = load ptr, ptr %3, align 8, !tbaa !9
  %251 = icmp eq ptr %250, null
  br i1 %251, label %274, label %252

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

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

262:                                              ; preds = %258, %252
  br label %263

263:                                              ; preds = %258, %262
  %.str.17.sink781 = phi ptr [ @.str.17, %262 ], [ @.str.14, %258 ]
  store i32 %253, ptr %247, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = load i32, ptr %193, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror(i32 noundef %266, ptr noundef nonnull @.str.16) #13
  %268 = load i32, ptr %193, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror_debug(i32 noundef %268, ptr noundef nonnull @.str.16) #13
  %270 = load i32, ptr %247, align 4, !tbaa !5
  %271 = call ptr @strerror(i32 noundef %270) #13
  %272 = load i32, ptr %247, align 4, !tbaa !5
  %273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef nonnull %.str.17.sink781, i32 noundef %265, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.13, i32 noundef 130, ptr noundef %267, ptr noundef %269, ptr noundef %271, i32 noundef %272) #15
  call void @exit(i32 noundef 1) #16
  unreachable

274:                                              ; preds = %246
  %275 = add nsw i32 %248, 2
  store i32 %275, ptr @test_count, align 4, !tbaa !5
  %276 = call i32 @s2n_cipher_suite_to_kem(ptr noundef nonnull @kyber_iana, ptr noundef nonnull %3) #13
  %277 = icmp eq i32 %276, -1
  br i1 %277, label %278, label %300

278:                                              ; preds = %274
  %279 = load i32, ptr %247, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @s2n_print_stacktrace(ptr noundef %280) #13
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %288

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

288:                                              ; preds = %284, %278
  br label %289

289:                                              ; preds = %284, %288
  %.str.17.sink790 = phi ptr [ @.str.17, %288 ], [ @.str.14, %284 ]
  store i32 %279, ptr %247, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = load i32, ptr %193, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror(i32 noundef %292, ptr noundef nonnull @.str.16) #13
  %294 = load i32, ptr %193, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef nonnull @.str.16) #13
  %296 = load i32, ptr %247, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #13
  %298 = load i32, ptr %247, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef nonnull %.str.17.sink790, i32 noundef %291, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.13, i32 noundef 132, ptr noundef %293, ptr noundef %295, ptr noundef %297, i32 noundef %298) #15
  call void @exit(i32 noundef 1) #16
  unreachable

300:                                              ; preds = %274
  %301 = load i32, ptr @test_count, align 4, !tbaa !5
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr @test_count, align 4, !tbaa !5
  %303 = load ptr, ptr %3, align 8, !tbaa !9
  %304 = icmp eq ptr %303, null
  br i1 %304, label %305, label %327

305:                                              ; preds = %300
  %306 = load i32, ptr %247, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = call i32 @s2n_print_stacktrace(ptr noundef %307) #13
  %309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %310 = trunc nuw i8 %309 to i1
  br i1 %310, label %311, label %315

311:                                              ; preds = %305
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @fileno(ptr noundef %312) #13
  %314 = call i32 @isatty(i32 noundef %313) #13
  %.not659 = icmp eq i32 %314, 0
  br i1 %.not659, label %315, label %316

315:                                              ; preds = %311, %305
  br label %316

316:                                              ; preds = %311, %315
  %.str.17.sink799 = phi ptr [ @.str.17, %315 ], [ @.str.14, %311 ]
  store i32 %306, ptr %247, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = load i32, ptr %193, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef nonnull @.str.16) #13
  %321 = load i32, ptr %193, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror_debug(i32 noundef %321, ptr noundef nonnull @.str.16) #13
  %323 = load i32, ptr %247, align 4, !tbaa !5
  %324 = call ptr @strerror(i32 noundef %323) #13
  %325 = load i32, ptr %247, align 4, !tbaa !5
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %317, ptr noundef nonnull %.str.17.sink799, i32 noundef %318, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.13, i32 noundef 133, ptr noundef %320, ptr noundef %322, ptr noundef %324, i32 noundef %325) #15
  call void @exit(i32 noundef 1) #16
  unreachable

327:                                              ; preds = %300
  %328 = add nsw i32 %301, 2
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = getelementptr inbounds i8, ptr %303, i64 16
  %330 = load i8, ptr %329, align 8, !tbaa !15
  %331 = icmp eq i8 %330, 1
  br i1 %331, label %354, label %332

332:                                              ; preds = %327
  %333 = load i32, ptr %247, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = call i32 @s2n_print_stacktrace(ptr noundef %334) #13
  %336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %337 = trunc nuw i8 %336 to i1
  br i1 %337, label %338, label %342

338:                                              ; preds = %332
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @fileno(ptr noundef %339) #13
  %341 = call i32 @isatty(i32 noundef %340) #13
  %.not462 = icmp eq i32 %341, 0
  br i1 %.not462, label %342, label %343

342:                                              ; preds = %338, %332
  br label %343

343:                                              ; preds = %338, %342
  %.str.17.sink808 = phi ptr [ @.str.17, %342 ], [ @.str.14, %338 ]
  store i32 %333, ptr %247, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = load i32, ptr %193, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror(i32 noundef %346, ptr noundef nonnull @.str.16) #13
  %348 = load i32, ptr %193, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror_debug(i32 noundef %348, ptr noundef nonnull @.str.16) #13
  %350 = load i32, ptr %247, align 4, !tbaa !5
  %351 = call ptr @strerror(i32 noundef %350) #13
  %352 = load i32, ptr %247, align 4, !tbaa !5
  %353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef nonnull %.str.17.sink808, i32 noundef %345, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.13, i32 noundef 134, ptr noundef %347, ptr noundef %349, ptr noundef %351, i32 noundef %352) #15
  call void @exit(i32 noundef 1) #16
  unreachable

354:                                              ; preds = %327
  %355 = add nsw i32 %301, 3
  store i32 %355, ptr @test_count, align 4, !tbaa !5
  %356 = getelementptr inbounds i8, ptr %303, i64 8
  %357 = load ptr, ptr %356, align 8, !tbaa !17
  %358 = load ptr, ptr %357, align 8, !tbaa !9
  %359 = getelementptr inbounds i8, ptr %358, i64 12
  %360 = load i16, ptr %359, align 4, !tbaa !18
  %361 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_kyber_512_r3, i64 12), align 4, !tbaa !18
  %362 = icmp eq i16 %360, %361
  br i1 %362, label %385, label %363

363:                                              ; preds = %354
  %364 = load i32, ptr %247, align 4, !tbaa !5
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @s2n_print_stacktrace(ptr noundef %365) #13
  %367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %368 = trunc nuw i8 %367 to i1
  br i1 %368, label %369, label %373

369:                                              ; preds = %363
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = call i32 @fileno(ptr noundef %370) #13
  %372 = call i32 @isatty(i32 noundef %371) #13
  %.not463 = icmp eq i32 %372, 0
  br i1 %.not463, label %373, label %374

373:                                              ; preds = %369, %363
  br label %374

374:                                              ; preds = %369, %373
  %.str.17.sink817 = phi ptr [ @.str.17, %373 ], [ @.str.14, %369 ]
  store i32 %364, ptr %247, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = load i32, ptr %193, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef nonnull @.str.16) #13
  %379 = load i32, ptr %193, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror_debug(i32 noundef %379, ptr noundef nonnull @.str.16) #13
  %381 = load i32, ptr %247, align 4, !tbaa !5
  %382 = call ptr @strerror(i32 noundef %381) #13
  %383 = load i32, ptr %247, align 4, !tbaa !5
  %384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef nonnull %.str.17.sink817, i32 noundef %376, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.13, i32 noundef 135, ptr noundef %378, ptr noundef %380, ptr noundef %382, i32 noundef %383) #15
  call void @exit(i32 noundef 1) #16
  unreachable

385:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #13
  %386 = add nsw i32 %301, 4
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = call i32 @s2n_kem_free(ptr noundef null) #13
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %411

389:                                              ; preds = %385
  %390 = load i32, ptr %247, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @s2n_print_stacktrace(ptr noundef %391) #13
  %393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %394 = trunc nuw i8 %393 to i1
  br i1 %394, label %395, label %399

395:                                              ; preds = %389
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @fileno(ptr noundef %396) #13
  %398 = call i32 @isatty(i32 noundef %397) #13
  %.not658 = icmp eq i32 %398, 0
  br i1 %.not658, label %399, label %400

399:                                              ; preds = %395, %389
  br label %400

400:                                              ; preds = %395, %399
  %.str.17.sink826 = phi ptr [ @.str.17, %399 ], [ @.str.14, %395 ]
  store i32 %390, ptr %247, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = load i32, ptr %193, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.16) #13
  %405 = load i32, ptr %193, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.16) #13
  %407 = load i32, ptr %247, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #13
  %409 = load i32, ptr %247, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %401, ptr noundef nonnull %.str.17.sink826, i32 noundef %402, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.13, i32 noundef 139, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #15
  call void @exit(i32 noundef 1) #16
  unreachable

411:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %4) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %4, i8 0, i64 88, i1 false)
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr @test_count, align 4, !tbaa !5
  %414 = call i32 @s2n_kem_free(ptr noundef nonnull %4) #13
  %415 = icmp eq i32 %414, -1
  br i1 %415, label %416, label %438

416:                                              ; preds = %411
  %417 = load i32, ptr %247, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418) #13
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc nuw i8 %420 to i1
  br i1 %421, label %422, label %426

422:                                              ; preds = %416
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #13
  %425 = call i32 @isatty(i32 noundef %424) #13
  %.not657 = icmp eq i32 %425, 0
  br i1 %.not657, label %426, label %427

426:                                              ; preds = %422, %416
  br label %427

427:                                              ; preds = %422, %426
  %.str.17.sink835 = phi ptr [ @.str.17, %426 ], [ @.str.14, %422 ]
  store i32 %417, ptr %247, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = load i32, ptr %193, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror(i32 noundef %430, ptr noundef nonnull @.str.16) #13
  %432 = load i32, ptr %193, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef nonnull @.str.16) #13
  %434 = load i32, ptr %247, align 4, !tbaa !5
  %435 = call ptr @strerror(i32 noundef %434) #13
  %436 = load i32, ptr %247, align 4, !tbaa !5
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef nonnull %.str.17.sink835, i32 noundef %429, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 142, ptr noundef %431, ptr noundef %433, ptr noundef %435, i32 noundef %436) #15
  call void @exit(i32 noundef 1) #16
  unreachable

438:                                              ; preds = %411
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call i32 @alloc_test_kem_params(ptr noundef nonnull %4)
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %443, label %465

443:                                              ; preds = %438
  %444 = load i32, ptr %247, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = call i32 @s2n_print_stacktrace(ptr noundef %445) #13
  %447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %448 = trunc nuw i8 %447 to i1
  br i1 %448, label %449, label %453

449:                                              ; preds = %443
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = call i32 @fileno(ptr noundef %450) #13
  %452 = call i32 @isatty(i32 noundef %451) #13
  %.not656 = icmp eq i32 %452, 0
  br i1 %.not656, label %453, label %454

453:                                              ; preds = %449, %443
  br label %454

454:                                              ; preds = %449, %453
  %.str.17.sink844 = phi ptr [ @.str.17, %453 ], [ @.str.14, %449 ]
  store i32 %444, ptr %247, align 4, !tbaa !5
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = load i32, ptr %193, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror(i32 noundef %457, ptr noundef nonnull @.str.16) #13
  %459 = load i32, ptr %193, align 4, !tbaa !5
  %460 = call ptr @s2n_strerror_debug(i32 noundef %459, ptr noundef nonnull @.str.16) #13
  %461 = load i32, ptr %247, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #13
  %463 = load i32, ptr %247, align 4, !tbaa !5
  %464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %455, ptr noundef nonnull %.str.17.sink844, i32 noundef %456, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.13, i32 noundef 145, ptr noundef %458, ptr noundef %460, ptr noundef %462, i32 noundef %463) #15
  call void @exit(i32 noundef 1) #16
  unreachable

465:                                              ; preds = %438
  %466 = load i32, ptr @test_count, align 4, !tbaa !5
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr @test_count, align 4, !tbaa !5
  %468 = call i32 @s2n_kem_free(ptr noundef nonnull %4) #13
  %469 = icmp eq i32 %468, -1
  br i1 %469, label %470, label %492

470:                                              ; preds = %465
  %471 = load i32, ptr %247, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = call i32 @s2n_print_stacktrace(ptr noundef %472) #13
  %474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %475 = trunc nuw i8 %474 to i1
  br i1 %475, label %476, label %480

476:                                              ; preds = %470
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = call i32 @fileno(ptr noundef %477) #13
  %479 = call i32 @isatty(i32 noundef %478) #13
  %.not655 = icmp eq i32 %479, 0
  br i1 %.not655, label %480, label %481

480:                                              ; preds = %476, %470
  br label %481

481:                                              ; preds = %476, %480
  %.str.17.sink853 = phi ptr [ @.str.17, %480 ], [ @.str.14, %476 ]
  store i32 %471, ptr %247, align 4, !tbaa !5
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = load i32, ptr %193, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror(i32 noundef %484, ptr noundef nonnull @.str.16) #13
  %486 = load i32, ptr %193, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror_debug(i32 noundef %486, ptr noundef nonnull @.str.16) #13
  %488 = load i32, ptr %247, align 4, !tbaa !5
  %489 = call ptr @strerror(i32 noundef %488) #13
  %490 = load i32, ptr %247, align 4, !tbaa !5
  %491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %482, ptr noundef nonnull %.str.17.sink853, i32 noundef %483, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 146, ptr noundef %485, ptr noundef %487, ptr noundef %489, i32 noundef %490) #15
  call void @exit(i32 noundef 1) #16
  unreachable

492:                                              ; preds = %465
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr @test_count, align 4, !tbaa !5
  %495 = call i32 @assert_kem_params_free(ptr noundef nonnull %4)
  %496 = icmp eq i32 %495, -1
  br i1 %496, label %497, label %519

497:                                              ; preds = %492
  %498 = load i32, ptr %247, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @s2n_print_stacktrace(ptr noundef %499) #13
  %501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %502 = trunc nuw i8 %501 to i1
  br i1 %502, label %503, label %507

503:                                              ; preds = %497
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = call i32 @fileno(ptr noundef %504) #13
  %506 = call i32 @isatty(i32 noundef %505) #13
  %.not654 = icmp eq i32 %506, 0
  br i1 %.not654, label %507, label %508

507:                                              ; preds = %503, %497
  br label %508

508:                                              ; preds = %503, %507
  %.str.17.sink862 = phi ptr [ @.str.17, %507 ], [ @.str.14, %503 ]
  store i32 %498, ptr %247, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = load i32, ptr %193, align 4, !tbaa !5
  %512 = call ptr @s2n_strerror(i32 noundef %511, ptr noundef nonnull @.str.16) #13
  %513 = load i32, ptr %193, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror_debug(i32 noundef %513, ptr noundef nonnull @.str.16) #13
  %515 = load i32, ptr %247, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #13
  %517 = load i32, ptr %247, align 4, !tbaa !5
  %518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef nonnull %.str.17.sink862, i32 noundef %510, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.13, i32 noundef 147, ptr noundef %512, ptr noundef %514, ptr noundef %516, i32 noundef %517) #15
  call void @exit(i32 noundef 1) #16
  unreachable

519:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %4) #13
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr @test_count, align 4, !tbaa !5
  %522 = call i32 @s2n_kem_group_free(ptr noundef null) #13
  %523 = icmp eq i32 %522, -1
  br i1 %523, label %524, label %546

524:                                              ; preds = %519
  %525 = load i32, ptr %247, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @s2n_print_stacktrace(ptr noundef %526) #13
  %528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %529 = trunc nuw i8 %528 to i1
  br i1 %529, label %530, label %534

530:                                              ; preds = %524
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = call i32 @fileno(ptr noundef %531) #13
  %533 = call i32 @isatty(i32 noundef %532) #13
  %.not653 = icmp eq i32 %533, 0
  br i1 %.not653, label %534, label %535

534:                                              ; preds = %530, %524
  br label %535

535:                                              ; preds = %530, %534
  %.str.17.sink871 = phi ptr [ @.str.17, %534 ], [ @.str.14, %530 ]
  store i32 %525, ptr %247, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = load i32, ptr %193, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror(i32 noundef %538, ptr noundef nonnull @.str.16) #13
  %540 = load i32, ptr %193, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror_debug(i32 noundef %540, ptr noundef nonnull @.str.16) #13
  %542 = load i32, ptr %247, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #13
  %544 = load i32, ptr %247, align 4, !tbaa !5
  %545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %536, ptr noundef nonnull %.str.17.sink871, i32 noundef %537, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.13, i32 noundef 151, ptr noundef %539, ptr noundef %541, ptr noundef %543, i32 noundef %544) #15
  call void @exit(i32 noundef 1) #16
  unreachable

546:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %5) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %5, i8 0, i64 112, i1 false)
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = add nsw i32 %547, 1
  store i32 %548, ptr @test_count, align 4, !tbaa !5
  %549 = call i32 @s2n_kem_group_free(ptr noundef nonnull %5) #13
  %550 = icmp eq i32 %549, -1
  br i1 %550, label %551, label %573

551:                                              ; preds = %546
  %552 = load i32, ptr %247, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = call i32 @s2n_print_stacktrace(ptr noundef %553) #13
  %555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %556 = trunc nuw i8 %555 to i1
  br i1 %556, label %557, label %561

557:                                              ; preds = %551
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = call i32 @fileno(ptr noundef %558) #13
  %560 = call i32 @isatty(i32 noundef %559) #13
  %.not652 = icmp eq i32 %560, 0
  br i1 %.not652, label %561, label %562

561:                                              ; preds = %557, %551
  br label %562

562:                                              ; preds = %557, %561
  %.str.17.sink880 = phi ptr [ @.str.17, %561 ], [ @.str.14, %557 ]
  store i32 %552, ptr %247, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = load i32, ptr %193, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror(i32 noundef %565, ptr noundef nonnull @.str.16) #13
  %567 = load i32, ptr %193, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror_debug(i32 noundef %567, ptr noundef nonnull @.str.16) #13
  %569 = load i32, ptr %247, align 4, !tbaa !5
  %570 = call ptr @strerror(i32 noundef %569) #13
  %571 = load i32, ptr %247, align 4, !tbaa !5
  %572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %563, ptr noundef nonnull %.str.17.sink880, i32 noundef %564, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.13, i32 noundef 154, ptr noundef %566, ptr noundef %568, ptr noundef %570, i32 noundef %571) #15
  call void @exit(i32 noundef 1) #16
  unreachable

573:                                              ; preds = %546
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr @test_count, align 4, !tbaa !5
  %576 = getelementptr inbounds i8, ptr %5, i64 8
  %577 = call i32 @alloc_test_kem_params(ptr noundef nonnull %576)
  %578 = icmp eq i32 %577, -1
  br i1 %578, label %579, label %601

579:                                              ; preds = %573
  %580 = load i32, ptr %247, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @s2n_print_stacktrace(ptr noundef %581) #13
  %583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc nuw i8 %583 to i1
  br i1 %584, label %585, label %589

585:                                              ; preds = %579
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = call i32 @fileno(ptr noundef %586) #13
  %588 = call i32 @isatty(i32 noundef %587) #13
  %.not651 = icmp eq i32 %588, 0
  br i1 %.not651, label %589, label %590

589:                                              ; preds = %585, %579
  br label %590

590:                                              ; preds = %585, %589
  %.str.17.sink889 = phi ptr [ @.str.17, %589 ], [ @.str.14, %585 ]
  store i32 %580, ptr %247, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = load i32, ptr %193, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror(i32 noundef %593, ptr noundef nonnull @.str.16) #13
  %595 = load i32, ptr %193, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror_debug(i32 noundef %595, ptr noundef nonnull @.str.16) #13
  %597 = load i32, ptr %247, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #13
  %599 = load i32, ptr %247, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %591, ptr noundef nonnull %.str.17.sink889, i32 noundef %592, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.13, i32 noundef 157, ptr noundef %594, ptr noundef %596, ptr noundef %598, i32 noundef %599) #15
  call void @exit(i32 noundef 1) #16
  unreachable

601:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %602 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 1024) #13
  %603 = icmp sgt i32 %602, -1
  br i1 %603, label %604, label %.thread

604:                                              ; preds = %601
  %605 = getelementptr inbounds i8, ptr %5, i64 96
  store ptr @s2n_ecc_curve_secp256r1, ptr %605, align 8, !tbaa !21
  %606 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %605, ptr noundef nonnull %6) #13
  %607 = icmp sgt i32 %606, -1
  br i1 %607, label %608, label %.thread

608:                                              ; preds = %604
  %609 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #13
  %610 = icmp sgt i32 %609, -1
  br i1 %610, label %611, label %.thread

611:                                              ; preds = %608
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = getelementptr inbounds i8, ptr %5, i64 104
  %615 = load ptr, ptr %614, align 8, !tbaa !26
  %616 = icmp eq ptr %615, null
  br i1 %616, label %617, label %639

617:                                              ; preds = %611
  %618 = load i32, ptr %247, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @s2n_print_stacktrace(ptr noundef %619) #13
  %621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %623, label %627

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

627:                                              ; preds = %623, %617
  br label %628

628:                                              ; preds = %623, %627
  %.str.17.sink898 = phi ptr [ @.str.17, %627 ], [ @.str.14, %623 ]
  store i32 %618, ptr %247, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = load i32, ptr %193, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.16) #13
  %633 = load i32, ptr %193, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.16) #13
  %635 = load i32, ptr %247, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #13
  %637 = load i32, ptr %247, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef nonnull %.str.17.sink898, i32 noundef %630, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.13, i32 noundef 163, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #15
  call void @exit(i32 noundef 1) #16
  unreachable

639:                                              ; preds = %611
  %640 = add nsw i32 %612, 2
  store i32 %640, ptr @test_count, align 4, !tbaa !5
  %641 = call i32 @s2n_kem_group_free(ptr noundef nonnull %5) #13
  %642 = icmp eq i32 %641, -1
  br i1 %642, label %643, label %665

643:                                              ; preds = %639
  %644 = load i32, ptr %247, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = call i32 @s2n_print_stacktrace(ptr noundef %645) #13
  %647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %648 = trunc nuw i8 %647 to i1
  br i1 %648, label %649, label %653

649:                                              ; preds = %643
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = call i32 @fileno(ptr noundef %650) #13
  %652 = call i32 @isatty(i32 noundef %651) #13
  %.not649 = icmp eq i32 %652, 0
  br i1 %.not649, label %653, label %654

653:                                              ; preds = %649, %643
  br label %654

654:                                              ; preds = %649, %653
  %.str.17.sink907 = phi ptr [ @.str.17, %653 ], [ @.str.14, %649 ]
  store i32 %644, ptr %247, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = load i32, ptr %193, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror(i32 noundef %657, ptr noundef nonnull @.str.16) #13
  %659 = load i32, ptr %193, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror_debug(i32 noundef %659, ptr noundef nonnull @.str.16) #13
  %661 = load i32, ptr %247, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #13
  %663 = load i32, ptr %247, align 4, !tbaa !5
  %664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %655, ptr noundef nonnull %.str.17.sink907, i32 noundef %656, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.13, i32 noundef 166, ptr noundef %658, ptr noundef %660, ptr noundef %662, i32 noundef %663) #15
  call void @exit(i32 noundef 1) #16
  unreachable

665:                                              ; preds = %639
  %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 @assert_kem_params_free(ptr noundef nonnull %576)
  %669 = icmp eq i32 %668, -1
  br i1 %669, label %670, label %692

670:                                              ; preds = %665
  %671 = load i32, ptr %247, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = call i32 @s2n_print_stacktrace(ptr noundef %672) #13
  %674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %675 = trunc nuw i8 %674 to i1
  br i1 %675, label %676, label %680

676:                                              ; preds = %670
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @fileno(ptr noundef %677) #13
  %679 = call i32 @isatty(i32 noundef %678) #13
  %.not648 = icmp eq i32 %679, 0
  br i1 %.not648, label %680, label %681

680:                                              ; preds = %676, %670
  br label %681

681:                                              ; preds = %676, %680
  %.str.17.sink916 = phi ptr [ @.str.17, %680 ], [ @.str.14, %676 ]
  store i32 %671, ptr %247, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = load i32, ptr %193, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror(i32 noundef %684, ptr noundef nonnull @.str.16) #13
  %686 = load i32, ptr %193, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror_debug(i32 noundef %686, ptr noundef nonnull @.str.16) #13
  %688 = load i32, ptr %247, align 4, !tbaa !5
  %689 = call ptr @strerror(i32 noundef %688) #13
  %690 = load i32, ptr %247, align 4, !tbaa !5
  %691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %682, ptr noundef nonnull %.str.17.sink916, i32 noundef %683, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.13, i32 noundef 167, ptr noundef %685, ptr noundef %687, ptr noundef %689, i32 noundef %690) #15
  call void @exit(i32 noundef 1) #16
  unreachable

692:                                              ; preds = %665
  %693 = load i32, ptr @test_count, align 4, !tbaa !5
  %694 = add nsw i32 %693, 1
  store i32 %694, ptr @test_count, align 4, !tbaa !5
  %695 = load ptr, ptr %614, align 8, !tbaa !26
  %696 = icmp eq ptr %695, null
  br i1 %696, label %719, label %697

697:                                              ; preds = %692
  %698 = load i32, ptr %247, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @s2n_print_stacktrace(ptr noundef %699) #13
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %707

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

707:                                              ; preds = %703, %697
  br label %708

708:                                              ; preds = %703, %707
  %.str.17.sink925 = phi ptr [ @.str.17, %707 ], [ @.str.14, %703 ]
  store i32 %698, ptr %247, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = load i32, ptr %193, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror(i32 noundef %711, ptr noundef nonnull @.str.16) #13
  %713 = load i32, ptr %193, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror_debug(i32 noundef %713, ptr noundef nonnull @.str.16) #13
  %715 = load i32, ptr %247, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #13
  %717 = load i32, ptr %247, align 4, !tbaa !5
  %718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef nonnull %.str.17.sink925, i32 noundef %710, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.13, i32 noundef 168, ptr noundef %712, ptr noundef %714, ptr noundef %716, i32 noundef %717) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.thread:                                          ; preds = %601, %604, %608
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %5) #13
  br label %.thread703

719:                                              ; preds = %692
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %5) #13
  %720 = load i16, ptr @__const.main.kem_extensions, align 2, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #13
  store ptr null, ptr %7, align 8, !tbaa !9
  %721 = add nsw i32 %693, 2
  store i32 %721, ptr @test_count, align 4, !tbaa !5
  %722 = call i32 @s2n_get_kem_from_extension_id(i16 noundef zeroext %720, ptr noundef nonnull %7) #13
  %723 = icmp eq i32 %722, -1
  br i1 %723, label %724, label %746

724:                                              ; preds = %719
  %725 = load i32, ptr %247, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @s2n_print_stacktrace(ptr noundef %726) #13
  %728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %729 = trunc nuw i8 %728 to i1
  br i1 %729, label %730, label %734

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

734:                                              ; preds = %730, %724
  br label %735

735:                                              ; preds = %730, %734
  %.str.17.sink934 = phi ptr [ @.str.17, %734 ], [ @.str.14, %730 ]
  store i32 %725, ptr %247, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = load i32, ptr %193, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror(i32 noundef %738, ptr noundef nonnull @.str.16) #13
  %740 = load i32, ptr %193, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef nonnull @.str.16) #13
  %742 = load i32, ptr %247, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #13
  %744 = load i32, ptr %247, align 4, !tbaa !5
  %745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef nonnull %.str.17.sink934, i32 noundef %737, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.13, i32 noundef 186, ptr noundef %739, ptr noundef %741, ptr noundef %743, i32 noundef %744) #15
  call void @exit(i32 noundef 1) #16
  unreachable

746:                                              ; preds = %719
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr @test_count, align 4, !tbaa !5
  %749 = load ptr, ptr %7, align 8, !tbaa !9
  %750 = icmp eq ptr %749, null
  br i1 %750, label %751, label %773

751:                                              ; preds = %746
  %752 = load i32, ptr %247, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @s2n_print_stacktrace(ptr noundef %753) #13
  %755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %757, label %761

757:                                              ; preds = %751
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @fileno(ptr noundef %758) #13
  %760 = call i32 @isatty(i32 noundef %759) #13
  %.not646 = icmp eq i32 %760, 0
  br i1 %.not646, label %761, label %762

761:                                              ; preds = %757, %751
  br label %762

762:                                              ; preds = %757, %761
  %.str.17.sink943 = phi ptr [ @.str.17, %761 ], [ @.str.14, %757 ]
  store i32 %752, ptr %247, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = load i32, ptr %193, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.16) #13
  %767 = load i32, ptr %193, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.16) #13
  %769 = load i32, ptr %247, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #13
  %771 = load i32, ptr %247, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef nonnull %.str.17.sink943, i32 noundef %764, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.13, i32 noundef 187, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #15
  call void @exit(i32 noundef 1) #16
  unreachable

773:                                              ; preds = %746
  %774 = add nsw i32 %747, 2
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load ptr, ptr @__const.main.kems, align 8, !tbaa !9
  %776 = icmp eq ptr %775, %749
  br i1 %776, label %.critedge, label %777

777:                                              ; preds = %773
  %778 = load i32, ptr %247, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #13
  %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 = %777
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #13
  %786 = call i32 @isatty(i32 noundef %785) #13
  %.not645 = icmp eq i32 %786, 0
  br i1 %.not645, label %787, label %788

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

788:                                              ; preds = %783, %787
  %.str.17.sink952 = phi ptr [ @.str.17, %787 ], [ @.str.14, %783 ]
  store i32 %778, ptr %247, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %193, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.16) #13
  %793 = load i32, ptr %193, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.16) #13
  %795 = load i32, ptr %247, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #13
  %797 = load i32, ptr %247, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.17.sink952, i32 noundef %790, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.13, i32 noundef 188, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.critedge:                                        ; preds = %773
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  store ptr null, ptr %8, align 8, !tbaa !9
  %799 = add nsw i32 %747, 3
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call i32 @s2n_get_kem_from_extension_id(i16 noundef zeroext -1, ptr noundef nonnull %8) #13
  %801 = icmp eq i32 %800, -1
  br i1 %801, label %824, label %802

802:                                              ; preds = %.critedge
  %803 = load i32, ptr %247, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @s2n_print_stacktrace(ptr noundef %804) #13
  %806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %807 = trunc nuw i8 %806 to i1
  br i1 %807, label %808, label %812

808:                                              ; preds = %802
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @fileno(ptr noundef %809) #13
  %811 = call i32 @isatty(i32 noundef %810) #13
  %.not465 = icmp eq i32 %811, 0
  br i1 %.not465, label %812, label %813

812:                                              ; preds = %808, %802
  br label %813

813:                                              ; preds = %808, %812
  %.str.17.sink961 = phi ptr [ @.str.17, %812 ], [ @.str.14, %808 ]
  store i32 %803, ptr %247, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = load i32, ptr %193, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.16) #13
  %818 = load i32, ptr %193, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.16) #13
  %820 = load i32, ptr %247, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #13
  %822 = load i32, ptr %247, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef nonnull %.str.17.sink961, i32 noundef %815, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.13, i32 noundef 195, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #15
  call void @exit(i32 noundef 1) #16
  unreachable

824:                                              ; preds = %.critedge
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr @test_count, align 4, !tbaa !5
  %827 = load i32, ptr %193, align 4, !tbaa !5
  %828 = icmp eq i32 %827, 335544361
  br i1 %828, label %851, label %829

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

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

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

840:                                              ; preds = %835, %839
  %.str.17.sink970 = phi ptr [ @.str.17, %839 ], [ @.str.14, %835 ]
  store i32 %830, ptr %247, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = load i32, ptr %193, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror(i32 noundef %843, ptr noundef nonnull @.str.16) #13
  %845 = load i32, ptr %193, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror_debug(i32 noundef %845, ptr noundef nonnull @.str.16) #13
  %847 = load i32, ptr %247, align 4, !tbaa !5
  %848 = call ptr @strerror(i32 noundef %847) #13
  %849 = load i32, ptr %247, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef nonnull %.str.17.sink970, i32 noundef %842, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.13, i32 noundef 195, ptr noundef %844, ptr noundef %846, ptr noundef %848, i32 noundef %849) #15
  call void @exit(i32 noundef 1) #16
  unreachable

851:                                              ; preds = %824
  %852 = add nsw i32 %825, 2
  store i32 %852, ptr @test_count, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef 335544361, ptr noundef nonnull @.str.16) #13
  %854 = icmp eq ptr %853, null
  br i1 %854, label %855, label %877

855:                                              ; preds = %851
  %856 = load i32, ptr %247, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @s2n_print_stacktrace(ptr noundef %857) #13
  %859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %861, label %865

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

865:                                              ; preds = %861, %855
  br label %866

866:                                              ; preds = %861, %865
  %.str.17.sink979 = phi ptr [ @.str.17, %865 ], [ @.str.14, %861 ]
  store i32 %856, ptr %247, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = load i32, ptr %193, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror(i32 noundef %869, ptr noundef nonnull @.str.16) #13
  %871 = load i32, ptr %193, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror_debug(i32 noundef %871, ptr noundef nonnull @.str.16) #13
  %873 = load i32, ptr %247, align 4, !tbaa !5
  %874 = call ptr @strerror(i32 noundef %873) #13
  %875 = load i32, ptr %247, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef nonnull %.str.17.sink979, i32 noundef %868, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 195, ptr noundef %870, ptr noundef %872, ptr noundef %874, i32 noundef %875) #15
  call void @exit(i32 noundef 1) #16
  unreachable

877:                                              ; preds = %851
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  %878 = getelementptr inbounds i8, ptr %9, i64 80
  %879 = getelementptr inbounds i8, ptr %9, i64 8
  %880 = getelementptr inbounds i8, ptr %9, i64 16
  %881 = getelementptr inbounds i8, ptr %9, i64 32
  %882 = getelementptr inbounds i8, ptr %9, i64 40
  %883 = getelementptr inbounds i8, ptr %9, i64 56
  %884 = getelementptr inbounds i8, ptr %9, i64 64
  %885 = getelementptr inbounds i8, ptr %9, i64 68
  %886 = getelementptr inbounds i8, ptr %10, i64 80
  %887 = getelementptr inbounds i8, ptr %10, i64 8
  %888 = getelementptr inbounds i8, ptr %10, i64 56
  %889 = getelementptr inbounds i8, ptr %10, i64 64
  %890 = getelementptr inbounds i8, ptr %11, i64 8
  %891 = getelementptr inbounds i8, ptr %10, i64 16
  %892 = getelementptr inbounds i8, ptr %10, i64 32
  %893 = getelementptr inbounds i8, ptr %10, i64 40
  %894 = getelementptr inbounds i8, ptr %10, i64 44
  %895 = getelementptr inbounds i8, ptr %12, i64 80
  %896 = getelementptr inbounds i8, ptr %12, i64 40
  %897 = getelementptr inbounds i8, ptr %12, i64 32
  %898 = getelementptr inbounds i8, ptr %12, i64 16
  %899 = getelementptr inbounds i8, ptr %12, i64 8
  %900 = getelementptr inbounds i8, ptr %12, i64 64
  %901 = getelementptr inbounds i8, ptr %12, i64 56
  %902 = getelementptr inbounds i8, ptr %12, i64 20
  %903 = getelementptr inbounds i8, ptr %12, i64 68
  %904 = getelementptr inbounds i8, ptr %12, i64 44
  %905 = getelementptr inbounds i8, ptr %17, i64 80
  %906 = getelementptr inbounds i8, ptr %18, i64 80
  %907 = getelementptr inbounds i8, ptr %18, i64 8
  %908 = getelementptr inbounds i8, ptr %18, i64 64
  %909 = getelementptr inbounds i8, ptr %18, i64 56
  %910 = getelementptr inbounds i8, ptr %18, i64 16
  %911 = getelementptr inbounds i8, ptr %18, i64 40
  %912 = getelementptr inbounds i8, ptr %18, i64 32
  %913 = getelementptr inbounds i8, ptr %18, i64 44
  %914 = getelementptr inbounds i8, ptr %18, i64 20
  %915 = getelementptr inbounds i8, ptr %23, i64 80
  %916 = getelementptr inbounds i8, ptr %24, i64 80
  %917 = getelementptr inbounds i8, ptr %24, i64 32
  %918 = getelementptr inbounds i8, ptr %24, i64 64
  %919 = getelementptr inbounds i8, ptr %24, i64 56
  %920 = getelementptr inbounds i8, ptr %24, i64 16
  %921 = getelementptr inbounds i8, ptr %24, i64 8
  %922 = getelementptr inbounds i8, ptr %24, i64 20
  %923 = getelementptr inbounds i8, ptr %24, i64 44
  %924 = getelementptr inbounds i8, ptr %24, i64 68
  %925 = getelementptr inbounds i8, ptr %31, i64 80
  %926 = getelementptr inbounds i8, ptr %31, i64 32
  %927 = load i32, ptr @__const.main.bad_ct_input_3, align 1
  %928 = getelementptr inbounds i8, ptr %31, i64 44
  %929 = getelementptr inbounds i8, ptr %31, i64 20
  %930 = getelementptr inbounds i8, ptr %31, i64 68
  %931 = getelementptr inbounds i8, ptr %35, i64 80
  %932 = load i32, ptr @__const.main.prefixed_input.119, align 1
  %933 = load i16, ptr @__const.main.unprefixed_input.120, align 1
  %934 = getelementptr inbounds i8, ptr %35, i64 8
  %935 = getelementptr inbounds i8, ptr %35, i64 16
  %936 = getelementptr inbounds i8, ptr %35, i64 20
  %937 = getelementptr inbounds i8, ptr %35, i64 68
  %938 = getelementptr inbounds i8, ptr %35, i64 44
  %939 = getelementptr inbounds i8, ptr %42, i64 80
  %940 = getelementptr inbounds i8, ptr %9, i64 8
  %941 = getelementptr inbounds i8, ptr %10, i64 8
  %942 = getelementptr inbounds i8, ptr %12, i64 8
  %943 = getelementptr inbounds i8, ptr %18, i64 8
  %944 = getelementptr inbounds i8, ptr %24, i64 8
  %945 = getelementptr inbounds i8, ptr %35, i64 8
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %940, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %9, align 8, !tbaa !28
  store i8 0, ptr %878, align 8, !tbaa !29
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr @test_count, align 4, !tbaa !5
  %948 = call i32 @s2n_alloc(ptr noundef nonnull %879, i32 noundef 2) #13
  %949 = icmp eq i32 %948, -1
  br i1 %949, label %._crit_edge, label %.lr.ph

.critedge2339:                                    ; preds = %4873
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %45) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #13
  %950 = call i32 @s2n_free(ptr noundef nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #13
  %951 = call i32 @s2n_free(ptr noundef nonnull %40) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #13
  br label %.backedge

._crit_edge:                                      ; preds = %.backedge, %877
  %952 = load i32, ptr %247, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @s2n_print_stacktrace(ptr noundef %953) #13
  %955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %956 = trunc nuw i8 %955 to i1
  br i1 %956, label %957, label %961

957:                                              ; preds = %._crit_edge
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @fileno(ptr noundef %958) #13
  %960 = call i32 @isatty(i32 noundef %959) #13
  %.not643 = icmp eq i32 %960, 0
  br i1 %.not643, label %961, label %962

961:                                              ; preds = %957, %._crit_edge
  br label %962

962:                                              ; preds = %957, %961
  %.str.17.sink988 = phi ptr [ @.str.17, %961 ], [ @.str.14, %957 ]
  store i32 %952, ptr %247, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = load i32, ptr %193, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror(i32 noundef %965, ptr noundef nonnull @.str.16) #13
  %967 = load i32, ptr %193, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef nonnull @.str.16) #13
  %969 = load i32, ptr %247, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #13
  %971 = load i32, ptr %247, align 4, !tbaa !5
  %972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef nonnull %.str.17.sink988, i32 noundef %964, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.13, i32 noundef 204, ptr noundef %966, ptr noundef %968, ptr noundef %970, i32 noundef %971) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.lr.ph:                                           ; preds = %877, %.backedge
  %.04467082359 = phi i8 [ 1, %.backedge ], [ 0, %877 ]
  %.not4672358 = phi i1 [ false, %.backedge ], [ true, %877 ]
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr @test_count, align 4, !tbaa !5
  %975 = call i32 @s2n_kem_generate_keypair(ptr noundef nonnull %9) #13
  %976 = call zeroext i1 @s2n_result_is_ok(i32 %975)
  br i1 %976, label %999, label %977

977:                                              ; preds = %.lr.ph
  %978 = load i32, ptr %247, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = call i32 @s2n_print_stacktrace(ptr noundef %979) #13
  %981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %982 = trunc nuw i8 %981 to i1
  br i1 %982, label %983, label %987

983:                                              ; preds = %977
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = call i32 @fileno(ptr noundef %984) #13
  %986 = call i32 @isatty(i32 noundef %985) #13
  %.not468 = icmp eq i32 %986, 0
  br i1 %.not468, label %987, label %988

987:                                              ; preds = %983, %977
  br label %988

988:                                              ; preds = %983, %987
  %.str.17.sink997 = phi ptr [ @.str.17, %987 ], [ @.str.14, %983 ]
  store i32 %978, ptr %247, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = load i32, ptr %193, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror(i32 noundef %991, ptr noundef nonnull @.str.16) #13
  %993 = load i32, ptr %193, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef nonnull @.str.16) #13
  %995 = load i32, ptr %247, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #13
  %997 = load i32, ptr %247, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %989, ptr noundef nonnull %.str.17.sink997, i32 noundef %990, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.13, i32 noundef 205, ptr noundef %992, ptr noundef %994, ptr noundef %996, i32 noundef %997) #15
  call void @exit(i32 noundef 1) #16
  unreachable

999:                                              ; preds = %.lr.ph
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr @test_count, align 4, !tbaa !5
  %1002 = load i32, ptr %880, align 8, !tbaa !30
  %1003 = icmp eq i32 %1002, 2
  br i1 %1003, label %1026, label %1004

1004:                                             ; preds = %999
  %1005 = load i32, ptr %247, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @s2n_print_stacktrace(ptr noundef %1006) #13
  %1008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1009 = trunc nuw i8 %1008 to i1
  br i1 %1009, label %1010, label %1014

1010:                                             ; preds = %1004
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @fileno(ptr noundef %1011) #13
  %1013 = call i32 @isatty(i32 noundef %1012) #13
  %.not469 = icmp eq i32 %1013, 0
  br i1 %.not469, label %1014, label %1015

1014:                                             ; preds = %1010, %1004
  br label %1015

1015:                                             ; preds = %1010, %1014
  %.str.17.sink1006 = phi ptr [ @.str.17, %1014 ], [ @.str.14, %1010 ]
  store i32 %1005, ptr %247, align 4, !tbaa !5
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = load i32, ptr %193, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef nonnull @.str.16) #13
  %1020 = load i32, ptr %193, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef nonnull @.str.16) #13
  %1022 = load i32, ptr %247, align 4, !tbaa !5
  %1023 = call ptr @strerror(i32 noundef %1022) #13
  %1024 = load i32, ptr %247, align 4, !tbaa !5
  %1025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1016, ptr noundef nonnull %.str.17.sink1006, i32 noundef %1017, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.13, i32 noundef 206, ptr noundef %1019, ptr noundef %1021, ptr noundef %1023, i32 noundef %1024) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1026:                                             ; preds = %999
  %1027 = add nsw i32 %1000, 2
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = load i32, ptr %882, align 8, !tbaa !31
  %1029 = icmp eq i32 %1028, 3
  br i1 %1029, label %1052, label %1030

1030:                                             ; preds = %1026
  %1031 = load i32, ptr %247, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @s2n_print_stacktrace(ptr noundef %1032) #13
  %1034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1035 = trunc nuw i8 %1034 to i1
  br i1 %1035, label %1036, label %1040

1036:                                             ; preds = %1030
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @fileno(ptr noundef %1037) #13
  %1039 = call i32 @isatty(i32 noundef %1038) #13
  %.not470 = icmp eq i32 %1039, 0
  br i1 %.not470, label %1040, label %1041

1040:                                             ; preds = %1036, %1030
  br label %1041

1041:                                             ; preds = %1036, %1040
  %.str.17.sink1015 = phi ptr [ @.str.17, %1040 ], [ @.str.14, %1036 ]
  store i32 %1031, ptr %247, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = load i32, ptr %193, align 4, !tbaa !5
  %1045 = call ptr @s2n_strerror(i32 noundef %1044, ptr noundef nonnull @.str.16) #13
  %1046 = load i32, ptr %193, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror_debug(i32 noundef %1046, ptr noundef nonnull @.str.16) #13
  %1048 = load i32, ptr %247, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #13
  %1050 = load i32, ptr %247, align 4, !tbaa !5
  %1051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef nonnull %.str.17.sink1015, i32 noundef %1043, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.13, i32 noundef 207, ptr noundef %1045, ptr noundef %1047, ptr noundef %1049, i32 noundef %1050) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1052:                                             ; preds = %1026
  %1053 = add nsw i32 %1000, 3
  store i32 %1053, ptr @test_count, align 4, !tbaa !5
  %1054 = load ptr, ptr %879, align 8, !tbaa !32
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) @TEST_PUBLIC_KEY, ptr noundef nonnull dereferenceable(2) %1054, i64 2)
  %1055 = icmp eq i32 %bcmp, 0
  br i1 %1055, label %1078, label %1056

1056:                                             ; preds = %1052
  %1057 = load i32, ptr %247, align 4, !tbaa !5
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @s2n_print_stacktrace(ptr noundef %1058) #13
  %1060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1061 = trunc nuw i8 %1060 to i1
  br i1 %1061, label %1062, label %1066

1062:                                             ; preds = %1056
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @fileno(ptr noundef %1063) #13
  %1065 = call i32 @isatty(i32 noundef %1064) #13
  %.not471 = icmp eq i32 %1065, 0
  br i1 %.not471, label %1066, label %1067

1066:                                             ; preds = %1062, %1056
  br label %1067

1067:                                             ; preds = %1062, %1066
  %.str.17.sink1024 = phi ptr [ @.str.17, %1066 ], [ @.str.14, %1062 ]
  store i32 %1057, ptr %247, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = load i32, ptr @test_count, align 4, !tbaa !5
  %1070 = load i32, ptr %193, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror(i32 noundef %1070, ptr noundef nonnull @.str.16) #13
  %1072 = load i32, ptr %193, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror_debug(i32 noundef %1072, ptr noundef nonnull @.str.16) #13
  %1074 = load i32, ptr %247, align 4, !tbaa !5
  %1075 = call ptr @strerror(i32 noundef %1074) #13
  %1076 = load i32, ptr %247, align 4, !tbaa !5
  %1077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1068, ptr noundef nonnull %.str.17.sink1024, i32 noundef %1069, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.13, i32 noundef 208, ptr noundef %1071, ptr noundef %1073, ptr noundef %1075, i32 noundef %1076) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1078:                                             ; preds = %1052
  %1079 = add nsw i32 %1000, 4
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = load ptr, ptr %881, align 8, !tbaa !33
  %bcmp472 = call i32 @bcmp(ptr noundef nonnull dereferenceable(3) @TEST_PRIVATE_KEY, ptr noundef nonnull dereferenceable(3) %1080, i64 3)
  %1081 = icmp eq i32 %bcmp472, 0
  br i1 %1081, label %1104, label %1082

1082:                                             ; preds = %1078
  %1083 = load i32, ptr %247, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = call i32 @s2n_print_stacktrace(ptr noundef %1084) #13
  %1086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1087 = trunc nuw i8 %1086 to i1
  br i1 %1087, label %1088, label %1092

1088:                                             ; preds = %1082
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @fileno(ptr noundef %1089) #13
  %1091 = call i32 @isatty(i32 noundef %1090) #13
  %.not473 = icmp eq i32 %1091, 0
  br i1 %.not473, label %1092, label %1093

1092:                                             ; preds = %1088, %1082
  br label %1093

1093:                                             ; preds = %1088, %1092
  %.str.17.sink1033 = phi ptr [ @.str.17, %1092 ], [ @.str.14, %1088 ]
  store i32 %1083, ptr %247, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = load i32, ptr %193, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror(i32 noundef %1096, ptr noundef nonnull @.str.16) #13
  %1098 = load i32, ptr %193, align 4, !tbaa !5
  %1099 = call ptr @s2n_strerror_debug(i32 noundef %1098, ptr noundef nonnull @.str.16) #13
  %1100 = load i32, ptr %247, align 4, !tbaa !5
  %1101 = call ptr @strerror(i32 noundef %1100) #13
  %1102 = load i32, ptr %247, align 4, !tbaa !5
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1094, ptr noundef nonnull %.str.17.sink1033, i32 noundef %1095, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.13, i32 noundef 209, ptr noundef %1097, ptr noundef %1099, ptr noundef %1101, i32 noundef %1102) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1104:                                             ; preds = %1078
  %1105 = add nsw i32 %1000, 5
  store i32 %1105, ptr @test_count, align 4, !tbaa !5
  %1106 = load i32, ptr %884, align 8, !tbaa !34
  %1107 = icmp eq i32 %1106, 0
  br i1 %1107, label %1130, label %1108

1108:                                             ; preds = %1104
  %1109 = load i32, ptr %247, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @s2n_print_stacktrace(ptr noundef %1110) #13
  %1112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1113 = trunc nuw i8 %1112 to i1
  br i1 %1113, label %1114, label %1118

1114:                                             ; preds = %1108
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @fileno(ptr noundef %1115) #13
  %1117 = call i32 @isatty(i32 noundef %1116) #13
  %.not474 = icmp eq i32 %1117, 0
  br i1 %.not474, label %1118, label %1119

1118:                                             ; preds = %1114, %1108
  br label %1119

1119:                                             ; preds = %1114, %1118
  %.str.17.sink1042 = phi ptr [ @.str.17, %1118 ], [ @.str.14, %1114 ]
  store i32 %1109, ptr %247, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = load i32, ptr %193, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef nonnull @.str.16) #13
  %1124 = load i32, ptr %193, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror_debug(i32 noundef %1124, ptr noundef nonnull @.str.16) #13
  %1126 = load i32, ptr %247, align 4, !tbaa !5
  %1127 = call ptr @strerror(i32 noundef %1126) #13
  %1128 = load i32, ptr %247, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1120, ptr noundef nonnull %.str.17.sink1042, i32 noundef %1121, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.13, i32 noundef 211, ptr noundef %1123, ptr noundef %1125, ptr noundef %1127, i32 noundef %1128) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1130:                                             ; preds = %1104
  %1131 = add nsw i32 %1000, 6
  store i32 %1131, ptr @test_count, align 4, !tbaa !5
  %1132 = load i32, ptr %885, align 4, !tbaa !35
  %1133 = icmp eq i32 %1132, 0
  br i1 %1133, label %1156, label %1134

1134:                                             ; preds = %1130
  %1135 = load i32, ptr %247, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = call i32 @s2n_print_stacktrace(ptr noundef %1136) #13
  %1138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1139 = trunc nuw i8 %1138 to i1
  br i1 %1139, label %1140, label %1144

1140:                                             ; preds = %1134
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = call i32 @fileno(ptr noundef %1141) #13
  %1143 = call i32 @isatty(i32 noundef %1142) #13
  %.not475 = icmp eq i32 %1143, 0
  br i1 %.not475, label %1144, label %1145

1144:                                             ; preds = %1140, %1134
  br label %1145

1145:                                             ; preds = %1140, %1144
  %.str.17.sink1051 = phi ptr [ @.str.17, %1144 ], [ @.str.14, %1140 ]
  store i32 %1135, ptr %247, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = load i32, ptr %193, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef nonnull @.str.16) #13
  %1150 = load i32, ptr %193, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror_debug(i32 noundef %1150, ptr noundef nonnull @.str.16) #13
  %1152 = load i32, ptr %247, align 4, !tbaa !5
  %1153 = call ptr @strerror(i32 noundef %1152) #13
  %1154 = load i32, ptr %247, align 4, !tbaa !5
  %1155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1146, ptr noundef nonnull %.str.17.sink1051, i32 noundef %1147, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.13, i32 noundef 212, ptr noundef %1149, ptr noundef %1151, ptr noundef %1153, i32 noundef %1154) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1156:                                             ; preds = %1130
  %1157 = add nsw i32 %1000, 7
  store i32 %1157, ptr @test_count, align 4, !tbaa !5
  %1158 = load ptr, ptr %883, align 8, !tbaa !36
  %1159 = icmp eq ptr %1158, null
  br i1 %1159, label %1182, label %1160

1160:                                             ; preds = %1156
  %1161 = load i32, ptr %247, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @s2n_print_stacktrace(ptr noundef %1162) #13
  %1164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc nuw i8 %1164 to i1
  br i1 %1165, label %1166, label %1170

1166:                                             ; preds = %1160
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @fileno(ptr noundef %1167) #13
  %1169 = call i32 @isatty(i32 noundef %1168) #13
  %.not476 = icmp eq i32 %1169, 0
  br i1 %.not476, label %1170, label %1171

1170:                                             ; preds = %1166, %1160
  br label %1171

1171:                                             ; preds = %1166, %1170
  %.str.17.sink1060 = phi ptr [ @.str.17, %1170 ], [ @.str.14, %1166 ]
  store i32 %1161, ptr %247, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = load i32, ptr %193, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef nonnull @.str.16) #13
  %1176 = load i32, ptr %193, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef nonnull @.str.16) #13
  %1178 = load i32, ptr %247, align 4, !tbaa !5
  %1179 = call ptr @strerror(i32 noundef %1178) #13
  %1180 = load i32, ptr %247, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1172, ptr noundef nonnull %.str.17.sink1060, i32 noundef %1173, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.13, i32 noundef 213, ptr noundef %1175, ptr noundef %1177, ptr noundef %1179, i32 noundef %1180) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1182:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %10) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %941, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %10, align 8, !tbaa !28
  store i8 %.04467082359, ptr %886, align 8, !tbaa !29
  %1183 = call i32 @s2n_alloc(ptr noundef nonnull %887, i32 noundef 2) #13
  %1184 = icmp sgt i32 %1183, -1
  br i1 %1184, label %1185, label %.thread684

.thread684:                                       ; preds = %1182
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #13
  br label %.thread703

1185:                                             ; preds = %1182
  %1186 = load ptr, ptr %887, align 8, !tbaa !32
  store i16 514, ptr %1186, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  %1187 = call i32 @s2n_alloc(ptr noundef nonnull %11, i32 noundef 5) #13
  %1188 = icmp sgt i32 %1187, -1
  br i1 %1188, label %1189, label %1687

1189:                                             ; preds = %1185
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = call i32 @s2n_kem_encapsulate(ptr noundef nonnull %10, ptr noundef nonnull %11) #13
  %1193 = call zeroext i1 @s2n_result_is_ok(i32 %1192)
  br i1 %1193, label %1216, label %1194

1194:                                             ; preds = %1189
  %1195 = load i32, ptr %247, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #13
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

1200:                                             ; preds = %1194
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #13
  %1203 = call i32 @isatty(i32 noundef %1202) #13
  %.not477 = icmp eq i32 %1203, 0
  br i1 %.not477, label %1204, label %1205

1204:                                             ; preds = %1200, %1194
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.17.sink1069 = phi ptr [ @.str.17, %1204 ], [ @.str.14, %1200 ]
  store i32 %1195, ptr %247, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = load i32, ptr %193, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef nonnull @.str.16) #13
  %1210 = load i32, ptr %193, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef nonnull @.str.16) #13
  %1212 = load i32, ptr %247, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #13
  %1214 = load i32, ptr %247, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.17.sink1069, i32 noundef %1207, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.13, i32 noundef 225, ptr noundef %1209, ptr noundef %1211, ptr noundef %1213, i32 noundef %1214) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1216:                                             ; preds = %1189
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr @test_count, align 4, !tbaa !5
  %1219 = load i32, ptr %889, align 8, !tbaa !34
  %1220 = icmp eq i32 %1219, 4
  br i1 %1220, label %1243, label %1221

1221:                                             ; preds = %1216
  %1222 = load i32, ptr %247, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @s2n_print_stacktrace(ptr noundef %1223) #13
  %1225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1226 = trunc nuw i8 %1225 to i1
  br i1 %1226, label %1227, label %1231

1227:                                             ; preds = %1221
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @fileno(ptr noundef %1228) #13
  %1230 = call i32 @isatty(i32 noundef %1229) #13
  %.not478 = icmp eq i32 %1230, 0
  br i1 %.not478, label %1231, label %1232

1231:                                             ; preds = %1227, %1221
  br label %1232

1232:                                             ; preds = %1227, %1231
  %.str.17.sink1078 = phi ptr [ @.str.17, %1231 ], [ @.str.14, %1227 ]
  store i32 %1222, ptr %247, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = load i32, ptr %193, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.16) #13
  %1237 = load i32, ptr %193, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.16) #13
  %1239 = load i32, ptr %247, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #13
  %1241 = load i32, ptr %247, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef nonnull %.str.17.sink1078, i32 noundef %1234, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.13, i32 noundef 226, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1243:                                             ; preds = %1216
  %1244 = add nsw i32 %1217, 2
  store i32 %1244, ptr @test_count, align 4, !tbaa !5
  %1245 = load i32, ptr %890, align 8, !tbaa !37
  %1246 = icmp eq i32 %1245, 5
  br i1 %1246, label %1269, label %1247

1247:                                             ; preds = %1243
  %1248 = load i32, ptr %247, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @s2n_print_stacktrace(ptr noundef %1249) #13
  %1251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1252 = trunc nuw i8 %1251 to i1
  br i1 %1252, label %1253, label %1257

1253:                                             ; preds = %1247
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @fileno(ptr noundef %1254) #13
  %1256 = call i32 @isatty(i32 noundef %1255) #13
  %.not479 = icmp eq i32 %1256, 0
  br i1 %.not479, label %1257, label %1258

1257:                                             ; preds = %1253, %1247
  br label %1258

1258:                                             ; preds = %1253, %1257
  %.str.17.sink1087 = phi ptr [ @.str.17, %1257 ], [ @.str.14, %1253 ]
  store i32 %1248, ptr %247, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = load i32, ptr %193, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef nonnull @.str.16) #13
  %1263 = load i32, ptr %193, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef nonnull @.str.16) #13
  %1265 = load i32, ptr %247, align 4, !tbaa !5
  %1266 = call ptr @strerror(i32 noundef %1265) #13
  %1267 = load i32, ptr %247, align 4, !tbaa !5
  %1268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1259, ptr noundef nonnull %.str.17.sink1087, i32 noundef %1260, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.13, i32 noundef 227, ptr noundef %1262, ptr noundef %1264, ptr noundef %1266, i32 noundef %1267) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1269:                                             ; preds = %1243
  %1270 = add nsw i32 %1217, 3
  store i32 %1270, ptr @test_count, align 4, !tbaa !5
  %1271 = load ptr, ptr %888, align 8, !tbaa !36
  %bcmp480 = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) @TEST_SHARED_SECRET, ptr noundef nonnull dereferenceable(4) %1271, i64 4)
  %1272 = icmp eq i32 %bcmp480, 0
  br i1 %1272, label %1295, label %1273

1273:                                             ; preds = %1269
  %1274 = load i32, ptr %247, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @s2n_print_stacktrace(ptr noundef %1275) #13
  %1277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1278 = trunc nuw i8 %1277 to i1
  br i1 %1278, label %1279, label %1283

1279:                                             ; preds = %1273
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @fileno(ptr noundef %1280) #13
  %1282 = call i32 @isatty(i32 noundef %1281) #13
  %.not481 = icmp eq i32 %1282, 0
  br i1 %.not481, label %1283, label %1284

1283:                                             ; preds = %1279, %1273
  br label %1284

1284:                                             ; preds = %1279, %1283
  %.str.17.sink1096 = phi ptr [ @.str.17, %1283 ], [ @.str.14, %1279 ]
  store i32 %1274, ptr %247, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = load i32, ptr %193, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror(i32 noundef %1287, ptr noundef nonnull @.str.16) #13
  %1289 = load i32, ptr %193, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror_debug(i32 noundef %1289, ptr noundef nonnull @.str.16) #13
  %1291 = load i32, ptr %247, align 4, !tbaa !5
  %1292 = call ptr @strerror(i32 noundef %1291) #13
  %1293 = load i32, ptr %247, align 4, !tbaa !5
  %1294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1285, ptr noundef nonnull %.str.17.sink1096, i32 noundef %1286, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.13, i32 noundef 228, ptr noundef %1288, ptr noundef %1290, ptr noundef %1292, i32 noundef %1293) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1295:                                             ; preds = %1269
  %1296 = add nsw i32 %1217, 4
  store i32 %1296, ptr @test_count, align 4, !tbaa !5
  %1297 = load ptr, ptr %11, align 8, !tbaa !38
  %bcmp482 = call i32 @bcmp(ptr noundef nonnull dereferenceable(5) @TEST_CIPHERTEXT, ptr noundef nonnull dereferenceable(5) %1297, i64 5)
  %1298 = icmp eq i32 %bcmp482, 0
  br i1 %1298, label %1321, label %1299

1299:                                             ; preds = %1295
  %1300 = load i32, ptr %247, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @s2n_print_stacktrace(ptr noundef %1301) #13
  %1303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1304 = trunc nuw i8 %1303 to i1
  br i1 %1304, label %1305, label %1309

1305:                                             ; preds = %1299
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = call i32 @fileno(ptr noundef %1306) #13
  %1308 = call i32 @isatty(i32 noundef %1307) #13
  %.not483 = icmp eq i32 %1308, 0
  br i1 %.not483, label %1309, label %1310

1309:                                             ; preds = %1305, %1299
  br label %1310

1310:                                             ; preds = %1305, %1309
  %.str.17.sink1105 = phi ptr [ @.str.17, %1309 ], [ @.str.14, %1305 ]
  store i32 %1300, ptr %247, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = load i32, ptr %193, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror(i32 noundef %1313, ptr noundef nonnull @.str.16) #13
  %1315 = load i32, ptr %193, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror_debug(i32 noundef %1315, ptr noundef nonnull @.str.16) #13
  %1317 = load i32, ptr %247, align 4, !tbaa !5
  %1318 = call ptr @strerror(i32 noundef %1317) #13
  %1319 = load i32, ptr %247, align 4, !tbaa !5
  %1320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1311, ptr noundef nonnull %.str.17.sink1105, i32 noundef %1312, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.13, i32 noundef 229, ptr noundef %1314, ptr noundef %1316, ptr noundef %1318, i32 noundef %1319) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1321:                                             ; preds = %1295
  %1322 = add nsw i32 %1217, 5
  store i32 %1322, ptr @test_count, align 4, !tbaa !5
  %1323 = load i32, ptr %891, align 8, !tbaa !30
  %1324 = icmp eq i32 %1323, 2
  br i1 %1324, label %1347, label %1325

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

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

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

1336:                                             ; preds = %1331, %1335
  %.str.17.sink1114 = phi ptr [ @.str.17, %1335 ], [ @.str.14, %1331 ]
  store i32 %1326, ptr %247, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = load i32, ptr %193, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef nonnull @.str.16) #13
  %1341 = load i32, ptr %193, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef nonnull @.str.16) #13
  %1343 = load i32, ptr %247, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #13
  %1345 = load i32, ptr %247, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef nonnull %.str.17.sink1114, i32 noundef %1338, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.13, i32 noundef 231, ptr noundef %1340, ptr noundef %1342, ptr noundef %1344, i32 noundef %1345) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1347:                                             ; preds = %1321
  %1348 = add nsw i32 %1217, 6
  store i32 %1348, ptr @test_count, align 4, !tbaa !5
  %1349 = load ptr, ptr %887, align 8, !tbaa !32
  %bcmp485 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) @TEST_PUBLIC_KEY, ptr noundef nonnull dereferenceable(2) %1349, i64 2)
  %1350 = icmp eq i32 %bcmp485, 0
  br i1 %1350, label %1373, label %1351

1351:                                             ; preds = %1347
  %1352 = load i32, ptr %247, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @s2n_print_stacktrace(ptr noundef %1353) #13
  %1355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1356 = trunc nuw i8 %1355 to i1
  br i1 %1356, label %1357, label %1361

1357:                                             ; preds = %1351
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @fileno(ptr noundef %1358) #13
  %1360 = call i32 @isatty(i32 noundef %1359) #13
  %.not486 = icmp eq i32 %1360, 0
  br i1 %.not486, label %1361, label %1362

1361:                                             ; preds = %1357, %1351
  br label %1362

1362:                                             ; preds = %1357, %1361
  %.str.17.sink1123 = phi ptr [ @.str.17, %1361 ], [ @.str.14, %1357 ]
  store i32 %1352, ptr %247, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = load i32, ptr %193, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef nonnull @.str.16) #13
  %1367 = load i32, ptr %193, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror_debug(i32 noundef %1367, ptr noundef nonnull @.str.16) #13
  %1369 = load i32, ptr %247, align 4, !tbaa !5
  %1370 = call ptr @strerror(i32 noundef %1369) #13
  %1371 = load i32, ptr %247, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1363, ptr noundef nonnull %.str.17.sink1123, i32 noundef %1364, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.13, i32 noundef 232, ptr noundef %1366, ptr noundef %1368, ptr noundef %1370, i32 noundef %1371) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1373:                                             ; preds = %1347
  %1374 = add nsw i32 %1217, 7
  store i32 %1374, ptr @test_count, align 4, !tbaa !5
  %1375 = load i32, ptr %893, align 8, !tbaa !31
  %1376 = icmp eq i32 %1375, 0
  br i1 %1376, label %1399, label %1377

1377:                                             ; preds = %1373
  %1378 = load i32, ptr %247, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379) #13
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc nuw i8 %1381 to i1
  br i1 %1382, label %1383, label %1387

1383:                                             ; preds = %1377
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @fileno(ptr noundef %1384) #13
  %1386 = call i32 @isatty(i32 noundef %1385) #13
  %.not487 = icmp eq i32 %1386, 0
  br i1 %.not487, label %1387, label %1388

1387:                                             ; preds = %1383, %1377
  br label %1388

1388:                                             ; preds = %1383, %1387
  %.str.17.sink1132 = phi ptr [ @.str.17, %1387 ], [ @.str.14, %1383 ]
  store i32 %1378, ptr %247, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = load i32, ptr %193, align 4, !tbaa !5
  %1392 = call ptr @s2n_strerror(i32 noundef %1391, ptr noundef nonnull @.str.16) #13
  %1393 = load i32, ptr %193, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror_debug(i32 noundef %1393, ptr noundef nonnull @.str.16) #13
  %1395 = load i32, ptr %247, align 4, !tbaa !5
  %1396 = call ptr @strerror(i32 noundef %1395) #13
  %1397 = load i32, ptr %247, align 4, !tbaa !5
  %1398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1389, ptr noundef nonnull %.str.17.sink1132, i32 noundef %1390, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.13, i32 noundef 233, ptr noundef %1392, ptr noundef %1394, ptr noundef %1396, i32 noundef %1397) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1399:                                             ; preds = %1373
  %1400 = add nsw i32 %1217, 8
  store i32 %1400, ptr @test_count, align 4, !tbaa !5
  %1401 = load i32, ptr %894, align 4, !tbaa !39
  %1402 = icmp eq i32 %1401, 0
  br i1 %1402, label %1425, label %1403

1403:                                             ; preds = %1399
  %1404 = load i32, ptr %247, align 4, !tbaa !5
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @s2n_print_stacktrace(ptr noundef %1405) #13
  %1407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1408 = trunc nuw i8 %1407 to i1
  br i1 %1408, label %1409, label %1413

1409:                                             ; preds = %1403
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = call i32 @fileno(ptr noundef %1410) #13
  %1412 = call i32 @isatty(i32 noundef %1411) #13
  %.not488 = icmp eq i32 %1412, 0
  br i1 %.not488, label %1413, label %1414

1413:                                             ; preds = %1409, %1403
  br label %1414

1414:                                             ; preds = %1409, %1413
  %.str.17.sink1141 = phi ptr [ @.str.17, %1413 ], [ @.str.14, %1409 ]
  store i32 %1404, ptr %247, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = load i32, ptr %193, align 4, !tbaa !5
  %1418 = call ptr @s2n_strerror(i32 noundef %1417, ptr noundef nonnull @.str.16) #13
  %1419 = load i32, ptr %193, align 4, !tbaa !5
  %1420 = call ptr @s2n_strerror_debug(i32 noundef %1419, ptr noundef nonnull @.str.16) #13
  %1421 = load i32, ptr %247, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #13
  %1423 = load i32, ptr %247, align 4, !tbaa !5
  %1424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1415, ptr noundef nonnull %.str.17.sink1141, i32 noundef %1416, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.13, i32 noundef 234, ptr noundef %1418, ptr noundef %1420, ptr noundef %1422, i32 noundef %1423) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1425:                                             ; preds = %1399
  %1426 = add nsw i32 %1217, 9
  store i32 %1426, ptr @test_count, align 4, !tbaa !5
  %1427 = load ptr, ptr %892, align 8, !tbaa !33
  %1428 = icmp eq ptr %1427, null
  br i1 %1428, label %1451, label %1429

1429:                                             ; preds = %1425
  %1430 = load i32, ptr %247, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431) #13
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1434 = trunc nuw i8 %1433 to i1
  br i1 %1434, label %1435, label %1439

1435:                                             ; preds = %1429
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @fileno(ptr noundef %1436) #13
  %1438 = call i32 @isatty(i32 noundef %1437) #13
  %.not489 = icmp eq i32 %1438, 0
  br i1 %.not489, label %1439, label %1440

1439:                                             ; preds = %1435, %1429
  br label %1440

1440:                                             ; preds = %1435, %1439
  %.str.17.sink1150 = phi ptr [ @.str.17, %1439 ], [ @.str.14, %1435 ]
  store i32 %1430, ptr %247, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = load i32, ptr %193, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror(i32 noundef %1443, ptr noundef nonnull @.str.16) #13
  %1445 = load i32, ptr %193, align 4, !tbaa !5
  %1446 = call ptr @s2n_strerror_debug(i32 noundef %1445, ptr noundef nonnull @.str.16) #13
  %1447 = load i32, ptr %247, align 4, !tbaa !5
  %1448 = call ptr @strerror(i32 noundef %1447) #13
  %1449 = load i32, ptr %247, align 4, !tbaa !5
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef nonnull %.str.17.sink1150, i32 noundef %1442, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.13, i32 noundef 235, ptr noundef %1444, ptr noundef %1446, ptr noundef %1448, i32 noundef %1449) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1451:                                             ; preds = %1425
  %1452 = add nsw i32 %1217, 10
  store i32 %1452, ptr @test_count, align 4, !tbaa !5
  %1453 = call i32 @s2n_kem_decapsulate(ptr noundef nonnull %9, ptr noundef nonnull %11) #13
  %1454 = call zeroext i1 @s2n_result_is_ok(i32 %1453)
  br i1 %1454, label %1477, label %1455

1455:                                             ; preds = %1451
  %1456 = load i32, ptr %247, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @s2n_print_stacktrace(ptr noundef %1457) #13
  %1459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1460 = trunc nuw i8 %1459 to i1
  br i1 %1460, label %1461, label %1465

1461:                                             ; preds = %1455
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @fileno(ptr noundef %1462) #13
  %1464 = call i32 @isatty(i32 noundef %1463) #13
  %.not490 = icmp eq i32 %1464, 0
  br i1 %.not490, label %1465, label %1466

1465:                                             ; preds = %1461, %1455
  br label %1466

1466:                                             ; preds = %1461, %1465
  %.str.17.sink1159 = phi ptr [ @.str.17, %1465 ], [ @.str.14, %1461 ]
  store i32 %1456, ptr %247, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = load i32, ptr %193, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror(i32 noundef %1469, ptr noundef nonnull @.str.16) #13
  %1471 = load i32, ptr %193, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror_debug(i32 noundef %1471, ptr noundef nonnull @.str.16) #13
  %1473 = load i32, ptr %247, align 4, !tbaa !5
  %1474 = call ptr @strerror(i32 noundef %1473) #13
  %1475 = load i32, ptr %247, align 4, !tbaa !5
  %1476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1467, ptr noundef nonnull %.str.17.sink1159, i32 noundef %1468, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.13, i32 noundef 237, ptr noundef %1470, ptr noundef %1472, ptr noundef %1474, i32 noundef %1475) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1477:                                             ; preds = %1451
  %1478 = load i32, ptr @test_count, align 4, !tbaa !5
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr @test_count, align 4, !tbaa !5
  %1480 = load i32, ptr %884, align 8, !tbaa !34
  %1481 = icmp eq i32 %1480, 4
  br i1 %1481, label %1504, label %1482

1482:                                             ; preds = %1477
  %1483 = load i32, ptr %247, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @s2n_print_stacktrace(ptr noundef %1484) #13
  %1486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1487 = trunc nuw i8 %1486 to i1
  br i1 %1487, label %1488, label %1492

1488:                                             ; preds = %1482
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @fileno(ptr noundef %1489) #13
  %1491 = call i32 @isatty(i32 noundef %1490) #13
  %.not491 = icmp eq i32 %1491, 0
  br i1 %.not491, label %1492, label %1493

1492:                                             ; preds = %1488, %1482
  br label %1493

1493:                                             ; preds = %1488, %1492
  %.str.17.sink1168 = phi ptr [ @.str.17, %1492 ], [ @.str.14, %1488 ]
  store i32 %1483, ptr %247, align 4, !tbaa !5
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = load i32, ptr @test_count, align 4, !tbaa !5
  %1496 = load i32, ptr %193, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror(i32 noundef %1496, ptr noundef nonnull @.str.16) #13
  %1498 = load i32, ptr %193, align 4, !tbaa !5
  %1499 = call ptr @s2n_strerror_debug(i32 noundef %1498, ptr noundef nonnull @.str.16) #13
  %1500 = load i32, ptr %247, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #13
  %1502 = load i32, ptr %247, align 4, !tbaa !5
  %1503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1494, ptr noundef nonnull %.str.17.sink1168, i32 noundef %1495, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.13, i32 noundef 238, ptr noundef %1497, ptr noundef %1499, ptr noundef %1501, i32 noundef %1502) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1504:                                             ; preds = %1477
  %1505 = add nsw i32 %1478, 2
  store i32 %1505, ptr @test_count, align 4, !tbaa !5
  %1506 = load ptr, ptr %883, align 8, !tbaa !36
  %bcmp492 = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) @TEST_SHARED_SECRET, ptr noundef nonnull dereferenceable(4) %1506, i64 4)
  %1507 = icmp eq i32 %bcmp492, 0
  br i1 %1507, label %1530, label %1508

1508:                                             ; preds = %1504
  %1509 = load i32, ptr %247, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @s2n_print_stacktrace(ptr noundef %1510) #13
  %1512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1513 = trunc nuw i8 %1512 to i1
  br i1 %1513, label %1514, label %1518

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

1518:                                             ; preds = %1514, %1508
  br label %1519

1519:                                             ; preds = %1514, %1518
  %.str.17.sink1177 = phi ptr [ @.str.17, %1518 ], [ @.str.14, %1514 ]
  store i32 %1509, ptr %247, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = load i32, ptr %193, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef nonnull @.str.16) #13
  %1524 = load i32, ptr %193, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef nonnull @.str.16) #13
  %1526 = load i32, ptr %247, align 4, !tbaa !5
  %1527 = call ptr @strerror(i32 noundef %1526) #13
  %1528 = load i32, ptr %247, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef nonnull %.str.17.sink1177, i32 noundef %1521, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.13, i32 noundef 239, ptr noundef %1523, ptr noundef %1525, ptr noundef %1527, i32 noundef %1528) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1530:                                             ; preds = %1504
  %1531 = add nsw i32 %1478, 3
  store i32 %1531, ptr @test_count, align 4, !tbaa !5
  %1532 = load i32, ptr %880, align 8, !tbaa !30
  %1533 = icmp eq i32 %1532, 2
  br i1 %1533, label %1556, label %1534

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

1540:                                             ; preds = %1534
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @fileno(ptr noundef %1541) #13
  %1543 = call i32 @isatty(i32 noundef %1542) #13
  %.not494 = icmp eq i32 %1543, 0
  br i1 %.not494, label %1544, label %1545

1544:                                             ; preds = %1540, %1534
  br label %1545

1545:                                             ; preds = %1540, %1544
  %.str.17.sink1186 = phi ptr [ @.str.17, %1544 ], [ @.str.14, %1540 ]
  store i32 %1535, ptr %247, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = load i32, ptr %193, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef nonnull @.str.16) #13
  %1550 = load i32, ptr %193, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef nonnull @.str.16) #13
  %1552 = load i32, ptr %247, align 4, !tbaa !5
  %1553 = call ptr @strerror(i32 noundef %1552) #13
  %1554 = load i32, ptr %247, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef nonnull %.str.17.sink1186, i32 noundef %1547, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.13, i32 noundef 241, ptr noundef %1549, ptr noundef %1551, ptr noundef %1553, i32 noundef %1554) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1556:                                             ; preds = %1530
  %1557 = add nsw i32 %1478, 4
  store i32 %1557, ptr @test_count, align 4, !tbaa !5
  %1558 = load ptr, ptr %879, align 8, !tbaa !32
  %bcmp495 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) @TEST_PUBLIC_KEY, ptr noundef nonnull dereferenceable(2) %1558, i64 2)
  %1559 = icmp eq i32 %bcmp495, 0
  br i1 %1559, label %1582, label %1560

1560:                                             ; preds = %1556
  %1561 = load i32, ptr %247, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @s2n_print_stacktrace(ptr noundef %1562) #13
  %1564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1565 = trunc nuw i8 %1564 to i1
  br i1 %1565, label %1566, label %1570

1566:                                             ; preds = %1560
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @fileno(ptr noundef %1567) #13
  %1569 = call i32 @isatty(i32 noundef %1568) #13
  %.not496 = icmp eq i32 %1569, 0
  br i1 %.not496, label %1570, label %1571

1570:                                             ; preds = %1566, %1560
  br label %1571

1571:                                             ; preds = %1566, %1570
  %.str.17.sink1195 = phi ptr [ @.str.17, %1570 ], [ @.str.14, %1566 ]
  store i32 %1561, ptr %247, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = load i32, ptr @test_count, align 4, !tbaa !5
  %1574 = load i32, ptr %193, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror(i32 noundef %1574, ptr noundef nonnull @.str.16) #13
  %1576 = load i32, ptr %193, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef nonnull @.str.16) #13
  %1578 = load i32, ptr %247, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #13
  %1580 = load i32, ptr %247, align 4, !tbaa !5
  %1581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1572, ptr noundef nonnull %.str.17.sink1195, i32 noundef %1573, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.13, i32 noundef 242, ptr noundef %1575, ptr noundef %1577, ptr noundef %1579, i32 noundef %1580) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1582:                                             ; preds = %1556
  %1583 = add nsw i32 %1478, 5
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = load i32, ptr %882, align 8, !tbaa !31
  %1585 = icmp eq i32 %1584, 3
  br i1 %1585, label %1608, label %1586

1586:                                             ; preds = %1582
  %1587 = load i32, ptr %247, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #13
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1586
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #13
  %1595 = call i32 @isatty(i32 noundef %1594) #13
  %.not497 = icmp eq i32 %1595, 0
  br i1 %.not497, label %1596, label %1597

1596:                                             ; preds = %1592, %1586
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.17.sink1204 = phi ptr [ @.str.17, %1596 ], [ @.str.14, %1592 ]
  store i32 %1587, ptr %247, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = load i32, ptr %193, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.16) #13
  %1602 = load i32, ptr %193, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.16) #13
  %1604 = load i32, ptr %247, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #13
  %1606 = load i32, ptr %247, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.17.sink1204, i32 noundef %1599, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.13, i32 noundef 243, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1608:                                             ; preds = %1582
  %1609 = add nsw i32 %1478, 6
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = load ptr, ptr %881, align 8, !tbaa !33
  %bcmp498 = call i32 @bcmp(ptr noundef nonnull dereferenceable(3) @TEST_PRIVATE_KEY, ptr noundef nonnull dereferenceable(3) %1610, i64 3)
  %1611 = icmp eq i32 %bcmp498, 0
  br i1 %1611, label %1634, label %1612

1612:                                             ; preds = %1608
  %1613 = load i32, ptr %247, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @s2n_print_stacktrace(ptr noundef %1614) #13
  %1616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1617 = trunc nuw i8 %1616 to i1
  br i1 %1617, label %1618, label %1622

1618:                                             ; preds = %1612
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @fileno(ptr noundef %1619) #13
  %1621 = call i32 @isatty(i32 noundef %1620) #13
  %.not499 = icmp eq i32 %1621, 0
  br i1 %.not499, label %1622, label %1623

1622:                                             ; preds = %1618, %1612
  br label %1623

1623:                                             ; preds = %1618, %1622
  %.str.17.sink1213 = phi ptr [ @.str.17, %1622 ], [ @.str.14, %1618 ]
  store i32 %1613, ptr %247, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = load i32, ptr %193, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror(i32 noundef %1626, ptr noundef nonnull @.str.16) #13
  %1628 = load i32, ptr %193, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror_debug(i32 noundef %1628, ptr noundef nonnull @.str.16) #13
  %1630 = load i32, ptr %247, align 4, !tbaa !5
  %1631 = call ptr @strerror(i32 noundef %1630) #13
  %1632 = load i32, ptr %247, align 4, !tbaa !5
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef nonnull %.str.17.sink1213, i32 noundef %1625, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.13, i32 noundef 244, ptr noundef %1627, ptr noundef %1629, ptr noundef %1631, i32 noundef %1632) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1634:                                             ; preds = %1608
  %1635 = add nsw i32 %1478, 7
  store i32 %1635, ptr @test_count, align 4, !tbaa !5
  %1636 = call i32 @s2n_kem_free(ptr noundef nonnull %9) #13
  %1637 = icmp eq i32 %1636, -1
  br i1 %1637, label %1638, label %1660

1638:                                             ; preds = %1634
  %1639 = load i32, ptr %247, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = call i32 @s2n_print_stacktrace(ptr noundef %1640) #13
  %1642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1643 = trunc nuw i8 %1642 to i1
  br i1 %1643, label %1644, label %1648

1644:                                             ; preds = %1638
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @fileno(ptr noundef %1645) #13
  %1647 = call i32 @isatty(i32 noundef %1646) #13
  %.not642 = icmp eq i32 %1647, 0
  br i1 %.not642, label %1648, label %1649

1648:                                             ; preds = %1644, %1638
  br label %1649

1649:                                             ; preds = %1644, %1648
  %.str.17.sink1222 = phi ptr [ @.str.17, %1648 ], [ @.str.14, %1644 ]
  store i32 %1639, ptr %247, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = load i32, ptr %193, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror(i32 noundef %1652, ptr noundef nonnull @.str.16) #13
  %1654 = load i32, ptr %193, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror_debug(i32 noundef %1654, ptr noundef nonnull @.str.16) #13
  %1656 = load i32, ptr %247, align 4, !tbaa !5
  %1657 = call ptr @strerror(i32 noundef %1656) #13
  %1658 = load i32, ptr %247, align 4, !tbaa !5
  %1659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef nonnull %.str.17.sink1222, i32 noundef %1651, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.13, i32 noundef 246, ptr noundef %1653, ptr noundef %1655, ptr noundef %1657, i32 noundef %1658) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1660:                                             ; preds = %1634
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = add nsw i32 %1661, 1
  store i32 %1662, ptr @test_count, align 4, !tbaa !5
  %1663 = call i32 @s2n_kem_free(ptr noundef nonnull %10) #13
  %1664 = icmp eq i32 %1663, -1
  br i1 %1664, label %1665, label %1689

1665:                                             ; preds = %1660
  %1666 = load i32, ptr %247, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @s2n_print_stacktrace(ptr noundef %1667) #13
  %1669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1670 = trunc nuw i8 %1669 to i1
  br i1 %1670, label %1671, label %1675

1671:                                             ; preds = %1665
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @fileno(ptr noundef %1672) #13
  %1674 = call i32 @isatty(i32 noundef %1673) #13
  %.not641 = icmp eq i32 %1674, 0
  br i1 %.not641, label %1675, label %1676

1675:                                             ; preds = %1671, %1665
  br label %1676

1676:                                             ; preds = %1671, %1675
  %.str.17.sink1231 = phi ptr [ @.str.17, %1675 ], [ @.str.14, %1671 ]
  store i32 %1666, ptr %247, align 4, !tbaa !5
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = load i32, ptr %193, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror(i32 noundef %1679, ptr noundef nonnull @.str.16) #13
  %1681 = load i32, ptr %193, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror_debug(i32 noundef %1681, ptr noundef nonnull @.str.16) #13
  %1683 = load i32, ptr %247, align 4, !tbaa !5
  %1684 = call ptr @strerror(i32 noundef %1683) #13
  %1685 = load i32, ptr %247, align 4, !tbaa !5
  %1686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1677, ptr noundef nonnull %.str.17.sink1231, i32 noundef %1678, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.13, i32 noundef 247, ptr noundef %1680, ptr noundef %1682, ptr noundef %1684, i32 noundef %1685) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1687:                                             ; preds = %1185
  %1688 = call i32 @s2n_free(ptr noundef nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #13
  br label %.thread703

1689:                                             ; preds = %1660
  %1690 = call i32 @s2n_free(ptr noundef nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #13
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %12) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %942, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %12, align 8, !tbaa !28
  store i8 %.04467082359, ptr %895, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, i8 0, i64 24, i1 false)
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = add nsw i32 %1691, 1
  store i32 %1692, ptr @test_count, align 4, !tbaa !5
  %1693 = call i32 @s2n_alloc(ptr noundef nonnull %13, i32 noundef 4) #13
  %1694 = icmp eq i32 %1693, -1
  br i1 %1694, label %1695, label %1717

1695:                                             ; preds = %1689
  %1696 = load i32, ptr %247, align 4, !tbaa !5
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @s2n_print_stacktrace(ptr noundef %1697) #13
  %1699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1700 = trunc nuw i8 %1699 to i1
  br i1 %1700, label %1701, label %1705

1701:                                             ; preds = %1695
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = call i32 @fileno(ptr noundef %1702) #13
  %1704 = call i32 @isatty(i32 noundef %1703) #13
  %.not640 = icmp eq i32 %1704, 0
  br i1 %.not640, label %1705, label %1706

1705:                                             ; preds = %1701, %1695
  br label %1706

1706:                                             ; preds = %1701, %1705
  %.str.17.sink1240 = phi ptr [ @.str.17, %1705 ], [ @.str.14, %1701 ]
  store i32 %1696, ptr %247, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = load i32, ptr %193, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef nonnull @.str.16) #13
  %1711 = load i32, ptr %193, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror_debug(i32 noundef %1711, ptr noundef nonnull @.str.16) #13
  %1713 = load i32, ptr %247, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #13
  %1715 = load i32, ptr %247, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1707, ptr noundef nonnull %.str.17.sink1240, i32 noundef %1708, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.13, i32 noundef 254, ptr noundef %1710, ptr noundef %1712, ptr noundef %1714, i32 noundef %1715) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1717:                                             ; preds = %1689
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = add nsw i32 %1718, 1
  store i32 %1719, ptr @test_count, align 4, !tbaa !5
  %1720 = call i32 @s2n_stuffer_init(ptr noundef nonnull %14, ptr noundef nonnull %13) #13
  %1721 = icmp eq i32 %1720, -1
  br i1 %1721, label %1722, label %1744

1722:                                             ; preds = %1717
  %1723 = load i32, ptr %247, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @s2n_print_stacktrace(ptr noundef %1724) #13
  %1726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1727 = trunc nuw i8 %1726 to i1
  br i1 %1727, label %1728, label %1732

1728:                                             ; preds = %1722
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @fileno(ptr noundef %1729) #13
  %1731 = call i32 @isatty(i32 noundef %1730) #13
  %.not639 = icmp eq i32 %1731, 0
  br i1 %.not639, label %1732, label %1733

1732:                                             ; preds = %1728, %1722
  br label %1733

1733:                                             ; preds = %1728, %1732
  %.str.17.sink1249 = phi ptr [ @.str.17, %1732 ], [ @.str.14, %1728 ]
  store i32 %1723, ptr %247, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = load i32, ptr %193, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror(i32 noundef %1736, ptr noundef nonnull @.str.16) #13
  %1738 = load i32, ptr %193, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror_debug(i32 noundef %1738, ptr noundef nonnull @.str.16) #13
  %1740 = load i32, ptr %247, align 4, !tbaa !5
  %1741 = call ptr @strerror(i32 noundef %1740) #13
  %1742 = load i32, ptr %247, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef nonnull %.str.17.sink1249, i32 noundef %1735, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 256, ptr noundef %1737, ptr noundef %1739, ptr noundef %1741, i32 noundef %1742) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1744:                                             ; preds = %1717
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = add nsw i32 %1745, 1
  store i32 %1746, ptr @test_count, align 4, !tbaa !5
  %1747 = call i32 @s2n_kem_send_public_key(ptr noundef nonnull %14, ptr noundef nonnull %12) #13
  %1748 = icmp eq i32 %1747, -1
  br i1 %1748, label %1749, label %1771

1749:                                             ; preds = %1744
  %1750 = load i32, ptr %247, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751) #13
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc nuw i8 %1753 to i1
  br i1 %1754, label %1755, label %1759

1755:                                             ; preds = %1749
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #13
  %1758 = call i32 @isatty(i32 noundef %1757) #13
  %.not638 = icmp eq i32 %1758, 0
  br i1 %.not638, label %1759, label %1760

1759:                                             ; preds = %1755, %1749
  br label %1760

1760:                                             ; preds = %1755, %1759
  %.str.17.sink1258 = phi ptr [ @.str.17, %1759 ], [ @.str.14, %1755 ]
  store i32 %1750, ptr %247, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = load i32, ptr %193, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef nonnull @.str.16) #13
  %1765 = load i32, ptr %193, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror_debug(i32 noundef %1765, ptr noundef nonnull @.str.16) #13
  %1767 = load i32, ptr %247, align 4, !tbaa !5
  %1768 = call ptr @strerror(i32 noundef %1767) #13
  %1769 = load i32, ptr %247, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef nonnull %.str.17.sink1258, i32 noundef %1762, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.13, i32 noundef 258, ptr noundef %1764, ptr noundef %1766, ptr noundef %1768, i32 noundef %1769) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1771:                                             ; preds = %1744
  %spec.select = select i1 %.not4672358, i64 2, i64 4
  %spec.select666 = select i1 %.not4672358, ptr @__const.main.unprefixed_output, ptr @__const.main.prefixed_output
  %1772 = load i32, ptr @test_count, align 4, !tbaa !5
  %1773 = add nsw i32 %1772, 1
  store i32 %1773, ptr @test_count, align 4, !tbaa !5
  %1774 = load ptr, ptr %14, align 8, !tbaa !40
  %bcmp500 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %1774, ptr noundef nonnull dereferenceable(2) %spec.select666, i64 %spec.select)
  %1775 = icmp eq i32 %bcmp500, 0
  br i1 %1775, label %1798, label %1776

1776:                                             ; preds = %1771
  %1777 = load i32, ptr %247, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @s2n_print_stacktrace(ptr noundef %1778) #13
  %1780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1781 = trunc nuw i8 %1780 to i1
  br i1 %1781, label %1782, label %1786

1782:                                             ; preds = %1776
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = call i32 @fileno(ptr noundef %1783) #13
  %1785 = call i32 @isatty(i32 noundef %1784) #13
  %.not501 = icmp eq i32 %1785, 0
  br i1 %.not501, label %1786, label %1787

1786:                                             ; preds = %1782, %1776
  br label %1787

1787:                                             ; preds = %1782, %1786
  %.str.17.sink1267 = phi ptr [ @.str.17, %1786 ], [ @.str.14, %1782 ]
  store i32 %1777, ptr %247, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = load i32, ptr %193, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef nonnull @.str.16) #13
  %1792 = load i32, ptr %193, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef nonnull @.str.16) #13
  %1794 = load i32, ptr %247, align 4, !tbaa !5
  %1795 = call ptr @strerror(i32 noundef %1794) #13
  %1796 = load i32, ptr %247, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1788, ptr noundef nonnull %.str.17.sink1267, i32 noundef %1789, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.13, i32 noundef 273, ptr noundef %1791, ptr noundef %1793, ptr noundef %1795, i32 noundef %1796) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1798:                                             ; preds = %1771
  %1799 = add nsw i32 %1772, 2
  store i32 %1799, ptr @test_count, align 4, !tbaa !5
  %1800 = load i32, ptr %896, align 8, !tbaa !31
  %1801 = icmp eq i32 %1800, 3
  br i1 %1801, label %1824, label %1802

1802:                                             ; preds = %1798
  %1803 = load i32, ptr %247, align 4, !tbaa !5
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @s2n_print_stacktrace(ptr noundef %1804) #13
  %1806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1807 = trunc nuw i8 %1806 to i1
  br i1 %1807, label %1808, label %1812

1808:                                             ; preds = %1802
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @fileno(ptr noundef %1809) #13
  %1811 = call i32 @isatty(i32 noundef %1810) #13
  %.not502 = icmp eq i32 %1811, 0
  br i1 %.not502, label %1812, label %1813

1812:                                             ; preds = %1808, %1802
  br label %1813

1813:                                             ; preds = %1808, %1812
  %.str.17.sink1276 = phi ptr [ @.str.17, %1812 ], [ @.str.14, %1808 ]
  store i32 %1803, ptr %247, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = load i32, ptr %193, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror(i32 noundef %1816, ptr noundef nonnull @.str.16) #13
  %1818 = load i32, ptr %193, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror_debug(i32 noundef %1818, ptr noundef nonnull @.str.16) #13
  %1820 = load i32, ptr %247, align 4, !tbaa !5
  %1821 = call ptr @strerror(i32 noundef %1820) #13
  %1822 = load i32, ptr %247, align 4, !tbaa !5
  %1823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef nonnull %.str.17.sink1276, i32 noundef %1815, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.13, i32 noundef 275, ptr noundef %1817, ptr noundef %1819, ptr noundef %1821, i32 noundef %1822) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1824:                                             ; preds = %1798
  %1825 = add nsw i32 %1772, 3
  store i32 %1825, ptr @test_count, align 4, !tbaa !5
  %1826 = load ptr, ptr %897, align 8, !tbaa !33
  %bcmp503 = call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %1826, ptr noundef nonnull dereferenceable(3) @TEST_PRIVATE_KEY, i64 3)
  %1827 = icmp eq i32 %bcmp503, 0
  br i1 %1827, label %1850, label %1828

1828:                                             ; preds = %1824
  %1829 = load i32, ptr %247, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = call i32 @s2n_print_stacktrace(ptr noundef %1830) #13
  %1832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1833 = trunc nuw i8 %1832 to i1
  br i1 %1833, label %1834, label %1838

1834:                                             ; preds = %1828
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = call i32 @fileno(ptr noundef %1835) #13
  %1837 = call i32 @isatty(i32 noundef %1836) #13
  %.not504 = icmp eq i32 %1837, 0
  br i1 %.not504, label %1838, label %1839

1838:                                             ; preds = %1834, %1828
  br label %1839

1839:                                             ; preds = %1834, %1838
  %.str.17.sink1285 = phi ptr [ @.str.17, %1838 ], [ @.str.14, %1834 ]
  store i32 %1829, ptr %247, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = load i32, ptr %193, align 4, !tbaa !5
  %1843 = call ptr @s2n_strerror(i32 noundef %1842, ptr noundef nonnull @.str.16) #13
  %1844 = load i32, ptr %193, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror_debug(i32 noundef %1844, ptr noundef nonnull @.str.16) #13
  %1846 = load i32, ptr %247, align 4, !tbaa !5
  %1847 = call ptr @strerror(i32 noundef %1846) #13
  %1848 = load i32, ptr %247, align 4, !tbaa !5
  %1849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef nonnull %.str.17.sink1285, i32 noundef %1841, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.13, i32 noundef 276, ptr noundef %1843, ptr noundef %1845, ptr noundef %1847, i32 noundef %1848) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1850:                                             ; preds = %1824
  %1851 = add nsw i32 %1772, 4
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %1852 = load i32, ptr %898, align 8, !tbaa !30
  %1853 = icmp eq i32 %1852, 0
  br i1 %1853, label %1876, label %1854

1854:                                             ; preds = %1850
  %1855 = load i32, ptr %247, align 4, !tbaa !5
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @s2n_print_stacktrace(ptr noundef %1856) #13
  %1858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1859 = trunc nuw i8 %1858 to i1
  br i1 %1859, label %1860, label %1864

1860:                                             ; preds = %1854
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @fileno(ptr noundef %1861) #13
  %1863 = call i32 @isatty(i32 noundef %1862) #13
  %.not505 = icmp eq i32 %1863, 0
  br i1 %.not505, label %1864, label %1865

1864:                                             ; preds = %1860, %1854
  br label %1865

1865:                                             ; preds = %1860, %1864
  %.str.17.sink1294 = phi ptr [ @.str.17, %1864 ], [ @.str.14, %1860 ]
  store i32 %1855, ptr %247, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = load i32, ptr %193, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror(i32 noundef %1868, ptr noundef nonnull @.str.16) #13
  %1870 = load i32, ptr %193, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror_debug(i32 noundef %1870, ptr noundef nonnull @.str.16) #13
  %1872 = load i32, ptr %247, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #13
  %1874 = load i32, ptr %247, align 4, !tbaa !5
  %1875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef nonnull %.str.17.sink1294, i32 noundef %1867, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.13, i32 noundef 277, ptr noundef %1869, ptr noundef %1871, ptr noundef %1873, i32 noundef %1874) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1876:                                             ; preds = %1850
  %1877 = add nsw i32 %1772, 5
  store i32 %1877, ptr @test_count, align 4, !tbaa !5
  %1878 = load ptr, ptr %899, align 8, !tbaa !32
  %1879 = icmp eq ptr %1878, null
  br i1 %1879, label %1902, label %1880

1880:                                             ; preds = %1876
  %1881 = load i32, ptr %247, align 4, !tbaa !5
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @s2n_print_stacktrace(ptr noundef %1882) #13
  %1884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1885 = trunc nuw i8 %1884 to i1
  br i1 %1885, label %1886, label %1890

1886:                                             ; preds = %1880
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @fileno(ptr noundef %1887) #13
  %1889 = call i32 @isatty(i32 noundef %1888) #13
  %.not506 = icmp eq i32 %1889, 0
  br i1 %.not506, label %1890, label %1891

1890:                                             ; preds = %1886, %1880
  br label %1891

1891:                                             ; preds = %1886, %1890
  %.str.17.sink1303 = phi ptr [ @.str.17, %1890 ], [ @.str.14, %1886 ]
  store i32 %1881, ptr %247, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = load i32, ptr %193, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror(i32 noundef %1894, ptr noundef nonnull @.str.16) #13
  %1896 = load i32, ptr %193, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror_debug(i32 noundef %1896, ptr noundef nonnull @.str.16) #13
  %1898 = load i32, ptr %247, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #13
  %1900 = load i32, ptr %247, align 4, !tbaa !5
  %1901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1892, ptr noundef nonnull %.str.17.sink1303, i32 noundef %1893, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.13, i32 noundef 278, ptr noundef %1895, ptr noundef %1897, ptr noundef %1899, i32 noundef %1900) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1902:                                             ; preds = %1876
  %1903 = add nsw i32 %1772, 6
  store i32 %1903, ptr @test_count, align 4, !tbaa !5
  %1904 = load i32, ptr %900, align 8, !tbaa !34
  %1905 = icmp eq i32 %1904, 0
  br i1 %1905, label %1928, label %1906

1906:                                             ; preds = %1902
  %1907 = load i32, ptr %247, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = call i32 @s2n_print_stacktrace(ptr noundef %1908) #13
  %1910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1911 = trunc nuw i8 %1910 to i1
  br i1 %1911, label %1912, label %1916

1912:                                             ; preds = %1906
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @fileno(ptr noundef %1913) #13
  %1915 = call i32 @isatty(i32 noundef %1914) #13
  %.not507 = icmp eq i32 %1915, 0
  br i1 %.not507, label %1916, label %1917

1916:                                             ; preds = %1912, %1906
  br label %1917

1917:                                             ; preds = %1912, %1916
  %.str.17.sink1312 = phi ptr [ @.str.17, %1916 ], [ @.str.14, %1912 ]
  store i32 %1907, ptr %247, align 4, !tbaa !5
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = load i32, ptr %193, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror(i32 noundef %1920, ptr noundef nonnull @.str.16) #13
  %1922 = load i32, ptr %193, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror_debug(i32 noundef %1922, ptr noundef nonnull @.str.16) #13
  %1924 = load i32, ptr %247, align 4, !tbaa !5
  %1925 = call ptr @strerror(i32 noundef %1924) #13
  %1926 = load i32, ptr %247, align 4, !tbaa !5
  %1927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1918, ptr noundef nonnull %.str.17.sink1312, i32 noundef %1919, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.13, i32 noundef 279, ptr noundef %1921, ptr noundef %1923, ptr noundef %1925, i32 noundef %1926) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1928:                                             ; preds = %1902
  %1929 = add nsw i32 %1772, 7
  store i32 %1929, ptr @test_count, align 4, !tbaa !5
  %1930 = load ptr, ptr %901, align 8, !tbaa !36
  %1931 = icmp eq ptr %1930, null
  br i1 %1931, label %1954, label %1932

1932:                                             ; preds = %1928
  %1933 = load i32, ptr %247, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = call i32 @s2n_print_stacktrace(ptr noundef %1934) #13
  %1936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1937 = trunc nuw i8 %1936 to i1
  br i1 %1937, label %1938, label %1942

1938:                                             ; preds = %1932
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = call i32 @fileno(ptr noundef %1939) #13
  %1941 = call i32 @isatty(i32 noundef %1940) #13
  %.not508 = icmp eq i32 %1941, 0
  br i1 %.not508, label %1942, label %1943

1942:                                             ; preds = %1938, %1932
  br label %1943

1943:                                             ; preds = %1938, %1942
  %.str.17.sink1321 = phi ptr [ @.str.17, %1942 ], [ @.str.14, %1938 ]
  store i32 %1933, ptr %247, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = load i32, ptr @test_count, align 4, !tbaa !5
  %1946 = load i32, ptr %193, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef nonnull @.str.16) #13
  %1948 = load i32, ptr %193, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror_debug(i32 noundef %1948, ptr noundef nonnull @.str.16) #13
  %1950 = load i32, ptr %247, align 4, !tbaa !5
  %1951 = call ptr @strerror(i32 noundef %1950) #13
  %1952 = load i32, ptr %247, align 4, !tbaa !5
  %1953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1944, ptr noundef nonnull %.str.17.sink1321, i32 noundef %1945, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.13, i32 noundef 280, ptr noundef %1947, ptr noundef %1949, ptr noundef %1951, i32 noundef %1952) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1954:                                             ; preds = %1928
  %1955 = add nsw i32 %1772, 8
  store i32 %1955, ptr @test_count, align 4, !tbaa !5
  %1956 = load i32, ptr %902, align 4, !tbaa !42
  %1957 = icmp eq i32 %1956, 0
  br i1 %1957, label %1980, label %1958

1958:                                             ; preds = %1954
  %1959 = load i32, ptr %247, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @s2n_print_stacktrace(ptr noundef %1960) #13
  %1962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1963 = trunc nuw i8 %1962 to i1
  br i1 %1963, label %1964, label %1968

1964:                                             ; preds = %1958
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @fileno(ptr noundef %1965) #13
  %1967 = call i32 @isatty(i32 noundef %1966) #13
  %.not509 = icmp eq i32 %1967, 0
  br i1 %.not509, label %1968, label %1969

1968:                                             ; preds = %1964, %1958
  br label %1969

1969:                                             ; preds = %1964, %1968
  %.str.17.sink1330 = phi ptr [ @.str.17, %1968 ], [ @.str.14, %1964 ]
  store i32 %1959, ptr %247, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = load i32, ptr %193, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror(i32 noundef %1972, ptr noundef nonnull @.str.16) #13
  %1974 = load i32, ptr %193, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef nonnull @.str.16) #13
  %1976 = load i32, ptr %247, align 4, !tbaa !5
  %1977 = call ptr @strerror(i32 noundef %1976) #13
  %1978 = load i32, ptr %247, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1970, ptr noundef nonnull %.str.17.sink1330, i32 noundef %1971, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.13, i32 noundef 284, ptr noundef %1973, ptr noundef %1975, ptr noundef %1977, i32 noundef %1978) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1980:                                             ; preds = %1954
  %1981 = add nsw i32 %1772, 9
  store i32 %1981, ptr @test_count, align 4, !tbaa !5
  %1982 = load i32, ptr %903, align 4, !tbaa !35
  %1983 = icmp eq i32 %1982, 0
  br i1 %1983, label %2006, label %1984

1984:                                             ; preds = %1980
  %1985 = load i32, ptr %247, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @s2n_print_stacktrace(ptr noundef %1986) #13
  %1988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1989 = trunc nuw i8 %1988 to i1
  br i1 %1989, label %1990, label %1994

1990:                                             ; preds = %1984
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = call i32 @fileno(ptr noundef %1991) #13
  %1993 = call i32 @isatty(i32 noundef %1992) #13
  %.not510 = icmp eq i32 %1993, 0
  br i1 %.not510, label %1994, label %1995

1994:                                             ; preds = %1990, %1984
  br label %1995

1995:                                             ; preds = %1990, %1994
  %.str.17.sink1339 = phi ptr [ @.str.17, %1994 ], [ @.str.14, %1990 ]
  store i32 %1985, ptr %247, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %1998 = load i32, ptr %193, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror(i32 noundef %1998, ptr noundef nonnull @.str.16) #13
  %2000 = load i32, ptr %193, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef nonnull @.str.16) #13
  %2002 = load i32, ptr %247, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #13
  %2004 = load i32, ptr %247, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef nonnull %.str.17.sink1339, i32 noundef %1997, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.13, i32 noundef 285, ptr noundef %1999, ptr noundef %2001, ptr noundef %2003, i32 noundef %2004) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2006:                                             ; preds = %1980
  %2007 = add nsw i32 %1772, 10
  store i32 %2007, ptr @test_count, align 4, !tbaa !5
  %2008 = load i32, ptr %904, align 4, !tbaa !39
  %2009 = icmp eq i32 %2008, 0
  br i1 %2009, label %2010, label %2032

2010:                                             ; preds = %2006
  %2011 = load i32, ptr %247, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @s2n_print_stacktrace(ptr noundef %2012) #13
  %2014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2015 = trunc nuw i8 %2014 to i1
  br i1 %2015, label %2016, label %2020

2016:                                             ; preds = %2010
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @fileno(ptr noundef %2017) #13
  %2019 = call i32 @isatty(i32 noundef %2018) #13
  %.not637 = icmp eq i32 %2019, 0
  br i1 %.not637, label %2020, label %2021

2020:                                             ; preds = %2016, %2010
  br label %2021

2021:                                             ; preds = %2016, %2020
  %.str.17.sink1348 = phi ptr [ @.str.17, %2020 ], [ @.str.14, %2016 ]
  store i32 %2011, ptr %247, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = load i32, ptr %193, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror(i32 noundef %2024, ptr noundef nonnull @.str.16) #13
  %2026 = load i32, ptr %193, align 4, !tbaa !5
  %2027 = call ptr @s2n_strerror_debug(i32 noundef %2026, ptr noundef nonnull @.str.16) #13
  %2028 = load i32, ptr %247, align 4, !tbaa !5
  %2029 = call ptr @strerror(i32 noundef %2028) #13
  %2030 = load i32, ptr %247, align 4, !tbaa !5
  %2031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef nonnull %.str.17.sink1348, i32 noundef %2023, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.13, i32 noundef 286, ptr noundef %2025, ptr noundef %2027, ptr noundef %2029, i32 noundef %2030) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2032:                                             ; preds = %2006
  %2033 = add nsw i32 %1772, 11
  store i32 %2033, ptr @test_count, align 4, !tbaa !5
  %2034 = call i32 @s2n_kem_free(ptr noundef nonnull %12) #13
  %2035 = icmp eq i32 %2034, -1
  br i1 %2035, label %2036, label %2058

2036:                                             ; preds = %2032
  %2037 = load i32, ptr %247, align 4, !tbaa !5
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @s2n_print_stacktrace(ptr noundef %2038) #13
  %2040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2041 = trunc nuw i8 %2040 to i1
  br i1 %2041, label %2042, label %2046

2042:                                             ; preds = %2036
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @fileno(ptr noundef %2043) #13
  %2045 = call i32 @isatty(i32 noundef %2044) #13
  %.not636 = icmp eq i32 %2045, 0
  br i1 %.not636, label %2046, label %2047

2046:                                             ; preds = %2042, %2036
  br label %2047

2047:                                             ; preds = %2042, %2046
  %.str.17.sink1357 = phi ptr [ @.str.17, %2046 ], [ @.str.14, %2042 ]
  store i32 %2037, ptr %247, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = load i32, ptr %193, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror(i32 noundef %2050, ptr noundef nonnull @.str.16) #13
  %2052 = load i32, ptr %193, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror_debug(i32 noundef %2052, ptr noundef nonnull @.str.16) #13
  %2054 = load i32, ptr %247, align 4, !tbaa !5
  %2055 = call ptr @strerror(i32 noundef %2054) #13
  %2056 = load i32, ptr %247, align 4, !tbaa !5
  %2057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2048, ptr noundef nonnull %.str.17.sink1357, i32 noundef %2049, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 287, ptr noundef %2051, ptr noundef %2053, ptr noundef %2055, i32 noundef %2056) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2058:                                             ; preds = %2032
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #13
  %2059 = call i32 @s2n_free(ptr noundef nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #13
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = add nsw i32 %2060, 1
  store i32 %2061, ptr @test_count, align 4, !tbaa !5
  %2062 = call i32 @s2n_kem_send_public_key(ptr noundef null, ptr noundef null) #13
  %2063 = icmp eq i32 %2062, -1
  br i1 %2063, label %2086, label %2064

2064:                                             ; preds = %2058
  %2065 = load i32, ptr %247, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = call i32 @s2n_print_stacktrace(ptr noundef %2066) #13
  %2068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2069 = trunc nuw i8 %2068 to i1
  br i1 %2069, label %2070, label %2074

2070:                                             ; preds = %2064
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = call i32 @fileno(ptr noundef %2071) #13
  %2073 = call i32 @isatty(i32 noundef %2072) #13
  %.not511 = icmp eq i32 %2073, 0
  br i1 %.not511, label %2074, label %2075

2074:                                             ; preds = %2070, %2064
  br label %2075

2075:                                             ; preds = %2070, %2074
  %.str.17.sink1366 = phi ptr [ @.str.17, %2074 ], [ @.str.14, %2070 ]
  store i32 %2065, ptr %247, align 4, !tbaa !5
  %2076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2077 = load i32, ptr @test_count, align 4, !tbaa !5
  %2078 = load i32, ptr %193, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef nonnull @.str.16) #13
  %2080 = load i32, ptr %193, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror_debug(i32 noundef %2080, ptr noundef nonnull @.str.16) #13
  %2082 = load i32, ptr %247, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #13
  %2084 = load i32, ptr %247, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2076, ptr noundef nonnull %.str.17.sink1366, i32 noundef %2077, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.13, i32 noundef 291, ptr noundef %2079, ptr noundef %2081, ptr noundef %2083, i32 noundef %2084) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2086:                                             ; preds = %2058
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = add nsw i32 %2087, 1
  store i32 %2088, ptr @test_count, align 4, !tbaa !5
  %2089 = load i32, ptr %193, align 4, !tbaa !5
  %2090 = icmp eq i32 %2089, 402653193
  br i1 %2090, label %2113, label %2091

2091:                                             ; preds = %2086
  %2092 = load i32, ptr %247, align 4, !tbaa !5
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = call i32 @s2n_print_stacktrace(ptr noundef %2093) #13
  %2095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2096 = trunc nuw i8 %2095 to i1
  br i1 %2096, label %2097, label %2101

2097:                                             ; preds = %2091
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = call i32 @fileno(ptr noundef %2098) #13
  %2100 = call i32 @isatty(i32 noundef %2099) #13
  %.not512 = icmp eq i32 %2100, 0
  br i1 %.not512, label %2101, label %2102

2101:                                             ; preds = %2097, %2091
  br label %2102

2102:                                             ; preds = %2097, %2101
  %.str.17.sink1375 = phi ptr [ @.str.17, %2101 ], [ @.str.14, %2097 ]
  store i32 %2092, ptr %247, align 4, !tbaa !5
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = load i32, ptr @test_count, align 4, !tbaa !5
  %2105 = load i32, ptr %193, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror(i32 noundef %2105, ptr noundef nonnull @.str.16) #13
  %2107 = load i32, ptr %193, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror_debug(i32 noundef %2107, ptr noundef nonnull @.str.16) #13
  %2109 = load i32, ptr %247, align 4, !tbaa !5
  %2110 = call ptr @strerror(i32 noundef %2109) #13
  %2111 = load i32, ptr %247, align 4, !tbaa !5
  %2112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2103, ptr noundef nonnull %.str.17.sink1375, i32 noundef %2104, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 291, ptr noundef %2106, ptr noundef %2108, ptr noundef %2110, i32 noundef %2111) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2113:                                             ; preds = %2086
  %2114 = add nsw i32 %2087, 2
  store i32 %2114, ptr @test_count, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %2116 = icmp eq ptr %2115, null
  br i1 %2116, label %2117, label %2139

2117:                                             ; preds = %2113
  %2118 = load i32, ptr %247, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119) #13
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc nuw i8 %2121 to i1
  br i1 %2122, label %2123, label %2127

2123:                                             ; preds = %2117
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #13
  %2126 = call i32 @isatty(i32 noundef %2125) #13
  %.not635 = icmp eq i32 %2126, 0
  br i1 %.not635, label %2127, label %2128

2127:                                             ; preds = %2123, %2117
  br label %2128

2128:                                             ; preds = %2123, %2127
  %.str.17.sink1384 = phi ptr [ @.str.17, %2127 ], [ @.str.14, %2123 ]
  store i32 %2118, ptr %247, align 4, !tbaa !5
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = load i32, ptr @test_count, align 4, !tbaa !5
  %2131 = load i32, ptr %193, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef nonnull @.str.16) #13
  %2133 = load i32, ptr %193, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror_debug(i32 noundef %2133, ptr noundef nonnull @.str.16) #13
  %2135 = load i32, ptr %247, align 4, !tbaa !5
  %2136 = call ptr @strerror(i32 noundef %2135) #13
  %2137 = load i32, ptr %247, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2129, ptr noundef nonnull %.str.17.sink1384, i32 noundef %2130, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 291, ptr noundef %2132, ptr noundef %2134, ptr noundef %2136, i32 noundef %2137) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2139:                                             ; preds = %2113
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = add nsw i32 %2140, 1
  store i32 %2141, ptr @test_count, align 4, !tbaa !5
  %2142 = call i32 @s2n_alloc(ptr noundef nonnull %15, i32 noundef 1) #13
  %2143 = icmp eq i32 %2142, -1
  br i1 %2143, label %2144, label %2166

2144:                                             ; preds = %2139
  %2145 = load i32, ptr %247, align 4, !tbaa !5
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @s2n_print_stacktrace(ptr noundef %2146) #13
  %2148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2149 = trunc nuw i8 %2148 to i1
  br i1 %2149, label %2150, label %2154

2150:                                             ; preds = %2144
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = call i32 @fileno(ptr noundef %2151) #13
  %2153 = call i32 @isatty(i32 noundef %2152) #13
  %.not634 = icmp eq i32 %2153, 0
  br i1 %.not634, label %2154, label %2155

2154:                                             ; preds = %2150, %2144
  br label %2155

2155:                                             ; preds = %2150, %2154
  %.str.17.sink1393 = phi ptr [ @.str.17, %2154 ], [ @.str.14, %2150 ]
  store i32 %2145, ptr %247, align 4, !tbaa !5
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = load i32, ptr %193, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror(i32 noundef %2158, ptr noundef nonnull @.str.16) #13
  %2160 = load i32, ptr %193, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror_debug(i32 noundef %2160, ptr noundef nonnull @.str.16) #13
  %2162 = load i32, ptr %247, align 4, !tbaa !5
  %2163 = call ptr @strerror(i32 noundef %2162) #13
  %2164 = load i32, ptr %247, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef nonnull %.str.17.sink1393, i32 noundef %2157, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.13, i32 noundef 294, ptr noundef %2159, ptr noundef %2161, ptr noundef %2163, i32 noundef %2164) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2166:                                             ; preds = %2139
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = add nsw i32 %2167, 1
  store i32 %2168, ptr @test_count, align 4, !tbaa !5
  %2169 = call i32 @s2n_stuffer_init(ptr noundef nonnull %16, ptr noundef nonnull %15) #13
  %2170 = icmp eq i32 %2169, -1
  br i1 %2170, label %2171, label %2193

2171:                                             ; preds = %2166
  %2172 = load i32, ptr %247, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @s2n_print_stacktrace(ptr noundef %2173) #13
  %2175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2176 = trunc nuw i8 %2175 to i1
  br i1 %2176, label %2177, label %2181

2177:                                             ; preds = %2171
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = call i32 @fileno(ptr noundef %2178) #13
  %2180 = call i32 @isatty(i32 noundef %2179) #13
  %.not633 = icmp eq i32 %2180, 0
  br i1 %.not633, label %2181, label %2182

2181:                                             ; preds = %2177, %2171
  br label %2182

2182:                                             ; preds = %2177, %2181
  %.str.17.sink1402 = phi ptr [ @.str.17, %2181 ], [ @.str.14, %2177 ]
  store i32 %2172, ptr %247, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = load i32, ptr %193, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef nonnull @.str.16) #13
  %2187 = load i32, ptr %193, align 4, !tbaa !5
  %2188 = call ptr @s2n_strerror_debug(i32 noundef %2187, ptr noundef nonnull @.str.16) #13
  %2189 = load i32, ptr %247, align 4, !tbaa !5
  %2190 = call ptr @strerror(i32 noundef %2189) #13
  %2191 = load i32, ptr %247, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2183, ptr noundef nonnull %.str.17.sink1402, i32 noundef %2184, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 296, ptr noundef %2186, ptr noundef %2188, ptr noundef %2190, i32 noundef %2191) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2193:                                             ; preds = %2166
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = add nsw i32 %2194, 1
  store i32 %2195, ptr @test_count, align 4, !tbaa !5
  %2196 = call i32 @s2n_kem_send_public_key(ptr noundef nonnull %16, ptr noundef null) #13
  %2197 = icmp eq i32 %2196, -1
  br i1 %2197, label %2220, label %2198

2198:                                             ; preds = %2193
  %2199 = load i32, ptr %247, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @s2n_print_stacktrace(ptr noundef %2200) #13
  %2202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2203 = trunc nuw i8 %2202 to i1
  br i1 %2203, label %2204, label %2208

2204:                                             ; preds = %2198
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @fileno(ptr noundef %2205) #13
  %2207 = call i32 @isatty(i32 noundef %2206) #13
  %.not513 = icmp eq i32 %2207, 0
  br i1 %.not513, label %2208, label %2209

2208:                                             ; preds = %2204, %2198
  br label %2209

2209:                                             ; preds = %2204, %2208
  %.str.17.sink1411 = phi ptr [ @.str.17, %2208 ], [ @.str.14, %2204 ]
  store i32 %2199, ptr %247, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = load i32, ptr %193, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror(i32 noundef %2212, ptr noundef nonnull @.str.16) #13
  %2214 = load i32, ptr %193, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror_debug(i32 noundef %2214, ptr noundef nonnull @.str.16) #13
  %2216 = load i32, ptr %247, align 4, !tbaa !5
  %2217 = call ptr @strerror(i32 noundef %2216) #13
  %2218 = load i32, ptr %247, align 4, !tbaa !5
  %2219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef nonnull %.str.17.sink1411, i32 noundef %2211, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.13, i32 noundef 298, ptr noundef %2213, ptr noundef %2215, ptr noundef %2217, i32 noundef %2218) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2220:                                             ; preds = %2193
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = add nsw i32 %2221, 1
  store i32 %2222, ptr @test_count, align 4, !tbaa !5
  %2223 = load i32, ptr %193, align 4, !tbaa !5
  %2224 = icmp eq i32 %2223, 402653193
  br i1 %2224, label %2247, label %2225

2225:                                             ; preds = %2220
  %2226 = load i32, ptr %247, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @s2n_print_stacktrace(ptr noundef %2227) #13
  %2229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2230 = trunc nuw i8 %2229 to i1
  br i1 %2230, label %2231, label %2235

2231:                                             ; preds = %2225
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @fileno(ptr noundef %2232) #13
  %2234 = call i32 @isatty(i32 noundef %2233) #13
  %.not514 = icmp eq i32 %2234, 0
  br i1 %.not514, label %2235, label %2236

2235:                                             ; preds = %2231, %2225
  br label %2236

2236:                                             ; preds = %2231, %2235
  %.str.17.sink1420 = phi ptr [ @.str.17, %2235 ], [ @.str.14, %2231 ]
  store i32 %2226, ptr %247, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = load i32, ptr %193, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror(i32 noundef %2239, ptr noundef nonnull @.str.16) #13
  %2241 = load i32, ptr %193, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef nonnull @.str.16) #13
  %2243 = load i32, ptr %247, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #13
  %2245 = load i32, ptr %247, align 4, !tbaa !5
  %2246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef nonnull %.str.17.sink1420, i32 noundef %2238, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 298, ptr noundef %2240, ptr noundef %2242, ptr noundef %2244, i32 noundef %2245) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2247:                                             ; preds = %2220
  %2248 = add nsw i32 %2221, 2
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %2250 = icmp eq ptr %2249, null
  br i1 %2250, label %2251, label %2273

2251:                                             ; preds = %2247
  %2252 = load i32, ptr %247, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #13
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2251
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #13
  %2260 = call i32 @isatty(i32 noundef %2259) #13
  %.not632 = icmp eq i32 %2260, 0
  br i1 %.not632, label %2261, label %2262

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.17.sink1429 = phi ptr [ @.str.17, %2261 ], [ @.str.14, %2257 ]
  store i32 %2252, ptr %247, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %193, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.16) #13
  %2267 = load i32, ptr %193, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.16) #13
  %2269 = load i32, ptr %247, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #13
  %2271 = load i32, ptr %247, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.17.sink1429, i32 noundef %2264, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 298, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2273:                                             ; preds = %2247
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %17) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %17, i8 0, i64 88, i1 false)
  store i8 %.04467082359, ptr %905, align 8, !tbaa !29
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = add nsw i32 %2274, 1
  store i32 %2275, ptr @test_count, align 4, !tbaa !5
  %2276 = call i32 @s2n_kem_send_public_key(ptr noundef nonnull %16, ptr noundef nonnull %17) #13
  %2277 = icmp eq i32 %2276, -1
  br i1 %2277, label %2300, label %2278

2278:                                             ; preds = %2273
  %2279 = load i32, ptr %247, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #13
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2278
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #13
  %2287 = call i32 @isatty(i32 noundef %2286) #13
  %.not515 = icmp eq i32 %2287, 0
  br i1 %.not515, label %2288, label %2289

2288:                                             ; preds = %2284, %2278
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.17.sink1438 = phi ptr [ @.str.17, %2288 ], [ @.str.14, %2284 ]
  store i32 %2279, ptr %247, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = load i32, ptr %193, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef nonnull @.str.16) #13
  %2294 = load i32, ptr %193, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef nonnull @.str.16) #13
  %2296 = load i32, ptr %247, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #13
  %2298 = load i32, ptr %247, align 4, !tbaa !5
  %2299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.17.sink1438, i32 noundef %2291, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.13, i32 noundef 302, ptr noundef %2293, ptr noundef %2295, ptr noundef %2297, i32 noundef %2298) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2300:                                             ; preds = %2273
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = add nsw i32 %2301, 1
  store i32 %2302, ptr @test_count, align 4, !tbaa !5
  %2303 = load i32, ptr %193, align 4, !tbaa !5
  %2304 = icmp eq i32 %2303, 402653193
  br i1 %2304, label %2327, label %2305

2305:                                             ; preds = %2300
  %2306 = load i32, ptr %247, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #13
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2305
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #13
  %2314 = call i32 @isatty(i32 noundef %2313) #13
  %.not516 = icmp eq i32 %2314, 0
  br i1 %.not516, label %2315, label %2316

2315:                                             ; preds = %2311, %2305
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.17.sink1447 = phi ptr [ @.str.17, %2315 ], [ @.str.14, %2311 ]
  store i32 %2306, ptr %247, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = load i32, ptr %193, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef nonnull @.str.16) #13
  %2321 = load i32, ptr %193, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror_debug(i32 noundef %2321, ptr noundef nonnull @.str.16) #13
  %2323 = load i32, ptr %247, align 4, !tbaa !5
  %2324 = call ptr @strerror(i32 noundef %2323) #13
  %2325 = load i32, ptr %247, align 4, !tbaa !5
  %2326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.17.sink1447, i32 noundef %2318, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 302, ptr noundef %2320, ptr noundef %2322, ptr noundef %2324, i32 noundef %2325) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2327:                                             ; preds = %2300
  %2328 = add nsw i32 %2301, 2
  store i32 %2328, ptr @test_count, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %2330 = icmp eq ptr %2329, null
  br i1 %2330, label %2331, label %2353

2331:                                             ; preds = %2327
  %2332 = load i32, ptr %247, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = call i32 @s2n_print_stacktrace(ptr noundef %2333) #13
  %2335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2336 = trunc nuw i8 %2335 to i1
  br i1 %2336, label %2337, label %2341

2337:                                             ; preds = %2331
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @fileno(ptr noundef %2338) #13
  %2340 = call i32 @isatty(i32 noundef %2339) #13
  %.not631 = icmp eq i32 %2340, 0
  br i1 %.not631, label %2341, label %2342

2341:                                             ; preds = %2337, %2331
  br label %2342

2342:                                             ; preds = %2337, %2341
  %.str.17.sink1456 = phi ptr [ @.str.17, %2341 ], [ @.str.14, %2337 ]
  store i32 %2332, ptr %247, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = load i32, ptr %193, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror(i32 noundef %2345, ptr noundef nonnull @.str.16) #13
  %2347 = load i32, ptr %193, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror_debug(i32 noundef %2347, ptr noundef nonnull @.str.16) #13
  %2349 = load i32, ptr %247, align 4, !tbaa !5
  %2350 = call ptr @strerror(i32 noundef %2349) #13
  %2351 = load i32, ptr %247, align 4, !tbaa !5
  %2352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2343, ptr noundef nonnull %.str.17.sink1456, i32 noundef %2344, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 302, ptr noundef %2346, ptr noundef %2348, ptr noundef %2350, i32 noundef %2351) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2353:                                             ; preds = %2327
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #13
  %2354 = call i32 @s2n_free(ptr noundef nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #13
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %18) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %943, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %18, align 8, !tbaa !28
  store i8 %.04467082359, ptr %906, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, i8 0, i64 24, i1 false)
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = add nsw i32 %2355, 1
  store i32 %2356, ptr @test_count, align 4, !tbaa !5
  %2357 = call i32 @s2n_alloc(ptr noundef nonnull %19, i32 noundef 7) #13
  %2358 = icmp eq i32 %2357, -1
  br i1 %2358, label %2359, label %2381

2359:                                             ; preds = %2353
  %2360 = load i32, ptr %247, align 4, !tbaa !5
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @s2n_print_stacktrace(ptr noundef %2361) #13
  %2363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2364 = trunc nuw i8 %2363 to i1
  br i1 %2364, label %2365, label %2369

2365:                                             ; preds = %2359
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @fileno(ptr noundef %2366) #13
  %2368 = call i32 @isatty(i32 noundef %2367) #13
  %.not630 = icmp eq i32 %2368, 0
  br i1 %.not630, label %2369, label %2370

2369:                                             ; preds = %2365, %2359
  br label %2370

2370:                                             ; preds = %2365, %2369
  %.str.17.sink1465 = phi ptr [ @.str.17, %2369 ], [ @.str.14, %2365 ]
  store i32 %2360, ptr %247, align 4, !tbaa !5
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = load i32, ptr %193, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror(i32 noundef %2373, ptr noundef nonnull @.str.16) #13
  %2375 = load i32, ptr %193, align 4, !tbaa !5
  %2376 = call ptr @s2n_strerror_debug(i32 noundef %2375, ptr noundef nonnull @.str.16) #13
  %2377 = load i32, ptr %247, align 4, !tbaa !5
  %2378 = call ptr @strerror(i32 noundef %2377) #13
  %2379 = load i32, ptr %247, align 4, !tbaa !5
  %2380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2371, ptr noundef nonnull %.str.17.sink1465, i32 noundef %2372, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.13, i32 noundef 309, ptr noundef %2374, ptr noundef %2376, ptr noundef %2378, i32 noundef %2379) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2381:                                             ; preds = %2353
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %2382 = load i32, ptr @test_count, align 4, !tbaa !5
  %2383 = add nsw i32 %2382, 1
  store i32 %2383, ptr @test_count, align 4, !tbaa !5
  %2384 = call i32 @s2n_stuffer_init(ptr noundef nonnull %20, ptr noundef nonnull %19) #13
  %2385 = icmp eq i32 %2384, -1
  br i1 %2385, label %2386, label %2408

2386:                                             ; preds = %2381
  %2387 = load i32, ptr %247, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @s2n_print_stacktrace(ptr noundef %2388) #13
  %2390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2391 = trunc nuw i8 %2390 to i1
  br i1 %2391, label %2392, label %2396

2392:                                             ; preds = %2386
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @fileno(ptr noundef %2393) #13
  %2395 = call i32 @isatty(i32 noundef %2394) #13
  %.not629 = icmp eq i32 %2395, 0
  br i1 %.not629, label %2396, label %2397

2396:                                             ; preds = %2392, %2386
  br label %2397

2397:                                             ; preds = %2392, %2396
  %.str.17.sink1474 = phi ptr [ @.str.17, %2396 ], [ @.str.14, %2392 ]
  store i32 %2387, ptr %247, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = load i32, ptr %193, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef nonnull @.str.16) #13
  %2402 = load i32, ptr %193, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror_debug(i32 noundef %2402, ptr noundef nonnull @.str.16) #13
  %2404 = load i32, ptr %247, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #13
  %2406 = load i32, ptr %247, align 4, !tbaa !5
  %2407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef nonnull %.str.17.sink1474, i32 noundef %2399, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 311, ptr noundef %2401, ptr noundef %2403, ptr noundef %2405, i32 noundef %2406) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2408:                                             ; preds = %2381
  %2409 = load i32, ptr @test_count, align 4, !tbaa !5
  %2410 = add nsw i32 %2409, 1
  store i32 %2410, ptr @test_count, align 4, !tbaa !5
  %2411 = call i32 @s2n_alloc(ptr noundef nonnull %907, i32 noundef 2) #13
  %2412 = icmp eq i32 %2411, -1
  br i1 %2412, label %2413, label %2435

2413:                                             ; preds = %2408
  %2414 = load i32, ptr %247, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @s2n_print_stacktrace(ptr noundef %2415) #13
  %2417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2418 = trunc nuw i8 %2417 to i1
  br i1 %2418, label %2419, label %2423

2419:                                             ; preds = %2413
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = call i32 @fileno(ptr noundef %2420) #13
  %2422 = call i32 @isatty(i32 noundef %2421) #13
  %.not628 = icmp eq i32 %2422, 0
  br i1 %.not628, label %2423, label %2424

2423:                                             ; preds = %2419, %2413
  br label %2424

2424:                                             ; preds = %2419, %2423
  %.str.17.sink1483 = phi ptr [ @.str.17, %2423 ], [ @.str.14, %2419 ]
  store i32 %2414, ptr %247, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = load i32, ptr @test_count, align 4, !tbaa !5
  %2427 = load i32, ptr %193, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef nonnull @.str.16) #13
  %2429 = load i32, ptr %193, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror_debug(i32 noundef %2429, ptr noundef nonnull @.str.16) #13
  %2431 = load i32, ptr %247, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #13
  %2433 = load i32, ptr %247, align 4, !tbaa !5
  %2434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2425, ptr noundef nonnull %.str.17.sink1483, i32 noundef %2426, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.13, i32 noundef 313, ptr noundef %2428, ptr noundef %2430, ptr noundef %2432, i32 noundef %2433) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2435:                                             ; preds = %2408
  %2436 = load ptr, ptr %907, align 8, !tbaa !32
  %2437 = call ptr @s2n_ensure_memmove_trace(ptr noundef %2436, ptr noundef nonnull @TEST_PUBLIC_KEY, i64 noundef 2) #13
  %.not517.not.not.not = icmp eq ptr %2437, null
  br i1 %.not517.not.not.not, label %.critedge670, label %2438

2438:                                             ; preds = %2435
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = add nsw i32 %2439, 1
  store i32 %2440, ptr @test_count, align 4, !tbaa !5
  %2441 = call i32 @s2n_kem_send_ciphertext(ptr noundef nonnull %20, ptr noundef nonnull %18) #13
  %2442 = icmp eq i32 %2441, -1
  br i1 %2442, label %2443, label %2465

2443:                                             ; preds = %2438
  %2444 = load i32, ptr %247, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @s2n_print_stacktrace(ptr noundef %2445) #13
  %2447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2448 = trunc nuw i8 %2447 to i1
  br i1 %2448, label %2449, label %2453

2449:                                             ; preds = %2443
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @fileno(ptr noundef %2450) #13
  %2452 = call i32 @isatty(i32 noundef %2451) #13
  %.not627 = icmp eq i32 %2452, 0
  br i1 %.not627, label %2453, label %2454

2453:                                             ; preds = %2449, %2443
  br label %2454

2454:                                             ; preds = %2449, %2453
  %.str.17.sink1492 = phi ptr [ @.str.17, %2453 ], [ @.str.14, %2449 ]
  store i32 %2444, ptr %247, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = load i32, ptr %193, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef nonnull @.str.16) #13
  %2459 = load i32, ptr %193, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef nonnull @.str.16) #13
  %2461 = load i32, ptr %247, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #13
  %2463 = load i32, ptr %247, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2455, ptr noundef nonnull %.str.17.sink1492, i32 noundef %2456, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.13, i32 noundef 316, ptr noundef %2458, ptr noundef %2460, ptr noundef %2462, i32 noundef %2463) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2465:                                             ; preds = %2438
  %spec.select667 = select i1 %.not4672358, i64 5, i64 7
  %spec.select668 = select i1 %.not4672358, ptr @__const.main.unprefixed_output.90, ptr @__const.main.prefixed_output.89
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = add nsw i32 %2466, 1
  store i32 %2467, ptr @test_count, align 4, !tbaa !5
  %2468 = load ptr, ptr %20, align 8, !tbaa !40
  %bcmp519 = call i32 @bcmp(ptr noundef nonnull dereferenceable(5) %2468, ptr noundef nonnull dereferenceable(5) %spec.select668, i64 %spec.select667)
  %2469 = icmp eq i32 %bcmp519, 0
  br i1 %2469, label %2492, label %2470

2470:                                             ; preds = %2465
  %2471 = load i32, ptr %247, align 4, !tbaa !5
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @s2n_print_stacktrace(ptr noundef %2472) #13
  %2474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2475 = trunc nuw i8 %2474 to i1
  br i1 %2475, label %2476, label %2480

2476:                                             ; preds = %2470
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = call i32 @fileno(ptr noundef %2477) #13
  %2479 = call i32 @isatty(i32 noundef %2478) #13
  %.not520 = icmp eq i32 %2479, 0
  br i1 %.not520, label %2480, label %2481

2480:                                             ; preds = %2476, %2470
  br label %2481

2481:                                             ; preds = %2476, %2480
  %.str.17.sink1501 = phi ptr [ @.str.17, %2480 ], [ @.str.14, %2476 ]
  store i32 %2471, ptr %247, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = load i32, ptr @test_count, align 4, !tbaa !5
  %2484 = load i32, ptr %193, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror(i32 noundef %2484, ptr noundef nonnull @.str.16) #13
  %2486 = load i32, ptr %193, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror_debug(i32 noundef %2486, ptr noundef nonnull @.str.16) #13
  %2488 = load i32, ptr %247, align 4, !tbaa !5
  %2489 = call ptr @strerror(i32 noundef %2488) #13
  %2490 = load i32, ptr %247, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2482, ptr noundef nonnull %.str.17.sink1501, i32 noundef %2483, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.13, i32 noundef 331, ptr noundef %2485, ptr noundef %2487, ptr noundef %2489, i32 noundef %2490) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2492:                                             ; preds = %2465
  %2493 = add nsw i32 %2466, 2
  store i32 %2493, ptr @test_count, align 4, !tbaa !5
  %2494 = load i32, ptr %908, align 8, !tbaa !34
  %2495 = icmp eq i32 %2494, 4
  br i1 %2495, label %2518, label %2496

2496:                                             ; preds = %2492
  %2497 = load i32, ptr %247, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @s2n_print_stacktrace(ptr noundef %2498) #13
  %2500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2501 = trunc nuw i8 %2500 to i1
  br i1 %2501, label %2502, label %2506

2502:                                             ; preds = %2496
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @fileno(ptr noundef %2503) #13
  %2505 = call i32 @isatty(i32 noundef %2504) #13
  %.not521 = icmp eq i32 %2505, 0
  br i1 %.not521, label %2506, label %2507

2506:                                             ; preds = %2502, %2496
  br label %2507

2507:                                             ; preds = %2502, %2506
  %.str.17.sink1510 = phi ptr [ @.str.17, %2506 ], [ @.str.14, %2502 ]
  store i32 %2497, ptr %247, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = load i32, ptr %193, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror(i32 noundef %2510, ptr noundef nonnull @.str.16) #13
  %2512 = load i32, ptr %193, align 4, !tbaa !5
  %2513 = call ptr @s2n_strerror_debug(i32 noundef %2512, ptr noundef nonnull @.str.16) #13
  %2514 = load i32, ptr %247, align 4, !tbaa !5
  %2515 = call ptr @strerror(i32 noundef %2514) #13
  %2516 = load i32, ptr %247, align 4, !tbaa !5
  %2517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2508, ptr noundef nonnull %.str.17.sink1510, i32 noundef %2509, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.13, i32 noundef 333, ptr noundef %2511, ptr noundef %2513, ptr noundef %2515, i32 noundef %2516) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2518:                                             ; preds = %2492
  %2519 = add nsw i32 %2466, 3
  store i32 %2519, ptr @test_count, align 4, !tbaa !5
  %2520 = load ptr, ptr %909, align 8, !tbaa !36
  %bcmp522 = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %2520, ptr noundef nonnull dereferenceable(4) @TEST_SHARED_SECRET, i64 4)
  %2521 = icmp eq i32 %bcmp522, 0
  br i1 %2521, label %2544, label %2522

2522:                                             ; preds = %2518
  %2523 = load i32, ptr %247, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = call i32 @s2n_print_stacktrace(ptr noundef %2524) #13
  %2526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2527 = trunc nuw i8 %2526 to i1
  br i1 %2527, label %2528, label %2532

2528:                                             ; preds = %2522
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @fileno(ptr noundef %2529) #13
  %2531 = call i32 @isatty(i32 noundef %2530) #13
  %.not523 = icmp eq i32 %2531, 0
  br i1 %.not523, label %2532, label %2533

2532:                                             ; preds = %2528, %2522
  br label %2533

2533:                                             ; preds = %2528, %2532
  %.str.17.sink1519 = phi ptr [ @.str.17, %2532 ], [ @.str.14, %2528 ]
  store i32 %2523, ptr %247, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = load i32, ptr @test_count, align 4, !tbaa !5
  %2536 = load i32, ptr %193, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef nonnull @.str.16) #13
  %2538 = load i32, ptr %193, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror_debug(i32 noundef %2538, ptr noundef nonnull @.str.16) #13
  %2540 = load i32, ptr %247, align 4, !tbaa !5
  %2541 = call ptr @strerror(i32 noundef %2540) #13
  %2542 = load i32, ptr %247, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2534, ptr noundef nonnull %.str.17.sink1519, i32 noundef %2535, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.13, i32 noundef 334, ptr noundef %2537, ptr noundef %2539, ptr noundef %2541, i32 noundef %2542) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2544:                                             ; preds = %2518
  %2545 = add nsw i32 %2466, 4
  store i32 %2545, ptr @test_count, align 4, !tbaa !5
  %2546 = load i32, ptr %910, align 8, !tbaa !30
  %2547 = icmp eq i32 %2546, 2
  br i1 %2547, label %2570, label %2548

2548:                                             ; preds = %2544
  %2549 = load i32, ptr %247, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @s2n_print_stacktrace(ptr noundef %2550) #13
  %2552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2553 = trunc nuw i8 %2552 to i1
  br i1 %2553, label %2554, label %2558

2554:                                             ; preds = %2548
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @fileno(ptr noundef %2555) #13
  %2557 = call i32 @isatty(i32 noundef %2556) #13
  %.not524 = icmp eq i32 %2557, 0
  br i1 %.not524, label %2558, label %2559

2558:                                             ; preds = %2554, %2548
  br label %2559

2559:                                             ; preds = %2554, %2558
  %.str.17.sink1528 = phi ptr [ @.str.17, %2558 ], [ @.str.14, %2554 ]
  store i32 %2549, ptr %247, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = load i32, ptr %193, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror(i32 noundef %2562, ptr noundef nonnull @.str.16) #13
  %2564 = load i32, ptr %193, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef nonnull @.str.16) #13
  %2566 = load i32, ptr %247, align 4, !tbaa !5
  %2567 = call ptr @strerror(i32 noundef %2566) #13
  %2568 = load i32, ptr %247, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef nonnull %.str.17.sink1528, i32 noundef %2561, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.13, i32 noundef 335, ptr noundef %2563, ptr noundef %2565, ptr noundef %2567, i32 noundef %2568) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2570:                                             ; preds = %2544
  %2571 = add nsw i32 %2466, 5
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = load ptr, ptr %907, align 8, !tbaa !32
  %bcmp525 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %2572, ptr noundef nonnull dereferenceable(2) @TEST_PUBLIC_KEY, i64 2)
  %2573 = icmp eq i32 %bcmp525, 0
  br i1 %2573, label %2596, label %2574

2574:                                             ; preds = %2570
  %2575 = load i32, ptr %247, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = call i32 @s2n_print_stacktrace(ptr noundef %2576) #13
  %2578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2579 = trunc nuw i8 %2578 to i1
  br i1 %2579, label %2580, label %2584

2580:                                             ; preds = %2574
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = call i32 @fileno(ptr noundef %2581) #13
  %2583 = call i32 @isatty(i32 noundef %2582) #13
  %.not526 = icmp eq i32 %2583, 0
  br i1 %.not526, label %2584, label %2585

2584:                                             ; preds = %2580, %2574
  br label %2585

2585:                                             ; preds = %2580, %2584
  %.str.17.sink1537 = phi ptr [ @.str.17, %2584 ], [ @.str.14, %2580 ]
  store i32 %2575, ptr %247, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = load i32, ptr %193, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror(i32 noundef %2588, ptr noundef nonnull @.str.16) #13
  %2590 = load i32, ptr %193, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef nonnull @.str.16) #13
  %2592 = load i32, ptr %247, align 4, !tbaa !5
  %2593 = call ptr @strerror(i32 noundef %2592) #13
  %2594 = load i32, ptr %247, align 4, !tbaa !5
  %2595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2586, ptr noundef nonnull %.str.17.sink1537, i32 noundef %2587, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.13, i32 noundef 336, ptr noundef %2589, ptr noundef %2591, ptr noundef %2593, i32 noundef %2594) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2596:                                             ; preds = %2570
  %2597 = add nsw i32 %2466, 6
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = load i32, ptr %911, align 8, !tbaa !31
  %2599 = icmp eq i32 %2598, 0
  br i1 %2599, label %2622, label %2600

2600:                                             ; preds = %2596
  %2601 = load i32, ptr %247, align 4, !tbaa !5
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = call i32 @s2n_print_stacktrace(ptr noundef %2602) #13
  %2604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2605 = trunc nuw i8 %2604 to i1
  br i1 %2605, label %2606, label %2610

2606:                                             ; preds = %2600
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @fileno(ptr noundef %2607) #13
  %2609 = call i32 @isatty(i32 noundef %2608) #13
  %.not527 = icmp eq i32 %2609, 0
  br i1 %.not527, label %2610, label %2611

2610:                                             ; preds = %2606, %2600
  br label %2611

2611:                                             ; preds = %2606, %2610
  %.str.17.sink1546 = phi ptr [ @.str.17, %2610 ], [ @.str.14, %2606 ]
  store i32 %2601, ptr %247, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = load i32, ptr %193, align 4, !tbaa !5
  %2615 = call ptr @s2n_strerror(i32 noundef %2614, ptr noundef nonnull @.str.16) #13
  %2616 = load i32, ptr %193, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror_debug(i32 noundef %2616, ptr noundef nonnull @.str.16) #13
  %2618 = load i32, ptr %247, align 4, !tbaa !5
  %2619 = call ptr @strerror(i32 noundef %2618) #13
  %2620 = load i32, ptr %247, align 4, !tbaa !5
  %2621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2612, ptr noundef nonnull %.str.17.sink1546, i32 noundef %2613, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.13, i32 noundef 337, ptr noundef %2615, ptr noundef %2617, ptr noundef %2619, i32 noundef %2620) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2622:                                             ; preds = %2596
  %2623 = add nsw i32 %2466, 7
  store i32 %2623, ptr @test_count, align 4, !tbaa !5
  %2624 = load ptr, ptr %912, align 8, !tbaa !33
  %2625 = icmp eq ptr %2624, null
  br i1 %2625, label %2648, label %2626

2626:                                             ; preds = %2622
  %2627 = load i32, ptr %247, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = call i32 @s2n_print_stacktrace(ptr noundef %2628) #13
  %2630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2631 = trunc nuw i8 %2630 to i1
  br i1 %2631, label %2632, label %2636

2632:                                             ; preds = %2626
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = call i32 @fileno(ptr noundef %2633) #13
  %2635 = call i32 @isatty(i32 noundef %2634) #13
  %.not528 = icmp eq i32 %2635, 0
  br i1 %.not528, label %2636, label %2637

2636:                                             ; preds = %2632, %2626
  br label %2637

2637:                                             ; preds = %2632, %2636
  %.str.17.sink1555 = phi ptr [ @.str.17, %2636 ], [ @.str.14, %2632 ]
  store i32 %2627, ptr %247, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = load i32, ptr @test_count, align 4, !tbaa !5
  %2640 = load i32, ptr %193, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror(i32 noundef %2640, ptr noundef nonnull @.str.16) #13
  %2642 = load i32, ptr %193, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror_debug(i32 noundef %2642, ptr noundef nonnull @.str.16) #13
  %2644 = load i32, ptr %247, align 4, !tbaa !5
  %2645 = call ptr @strerror(i32 noundef %2644) #13
  %2646 = load i32, ptr %247, align 4, !tbaa !5
  %2647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2638, ptr noundef nonnull %.str.17.sink1555, i32 noundef %2639, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.13, i32 noundef 338, ptr noundef %2641, ptr noundef %2643, ptr noundef %2645, i32 noundef %2646) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2648:                                             ; preds = %2622
  %2649 = add nsw i32 %2466, 8
  store i32 %2649, ptr @test_count, align 4, !tbaa !5
  %2650 = load i32, ptr %913, align 4, !tbaa !39
  %2651 = icmp eq i32 %2650, 0
  br i1 %2651, label %2674, label %2652

2652:                                             ; preds = %2648
  %2653 = load i32, ptr %247, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = call i32 @s2n_print_stacktrace(ptr noundef %2654) #13
  %2656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2657 = trunc nuw i8 %2656 to i1
  br i1 %2657, label %2658, label %2662

2658:                                             ; preds = %2652
  %2659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2660 = call i32 @fileno(ptr noundef %2659) #13
  %2661 = call i32 @isatty(i32 noundef %2660) #13
  %.not529 = icmp eq i32 %2661, 0
  br i1 %.not529, label %2662, label %2663

2662:                                             ; preds = %2658, %2652
  br label %2663

2663:                                             ; preds = %2658, %2662
  %.str.17.sink1564 = phi ptr [ @.str.17, %2662 ], [ @.str.14, %2658 ]
  store i32 %2653, ptr %247, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = load i32, ptr %193, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror(i32 noundef %2666, ptr noundef nonnull @.str.16) #13
  %2668 = load i32, ptr %193, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror_debug(i32 noundef %2668, ptr noundef nonnull @.str.16) #13
  %2670 = load i32, ptr %247, align 4, !tbaa !5
  %2671 = call ptr @strerror(i32 noundef %2670) #13
  %2672 = load i32, ptr %247, align 4, !tbaa !5
  %2673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef nonnull %.str.17.sink1564, i32 noundef %2665, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.13, i32 noundef 342, ptr noundef %2667, ptr noundef %2669, ptr noundef %2671, i32 noundef %2672) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2674:                                             ; preds = %2648
  %2675 = add nsw i32 %2466, 9
  store i32 %2675, ptr @test_count, align 4, !tbaa !5
  %2676 = load i32, ptr %914, align 4, !tbaa !42
  %2677 = icmp eq i32 %2676, 0
  br i1 %2677, label %2678, label %2700

2678:                                             ; preds = %2674
  %2679 = load i32, ptr %247, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = call i32 @s2n_print_stacktrace(ptr noundef %2680) #13
  %2682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2683 = trunc nuw i8 %2682 to i1
  br i1 %2683, label %2684, label %2688

2684:                                             ; preds = %2678
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = call i32 @fileno(ptr noundef %2685) #13
  %2687 = call i32 @isatty(i32 noundef %2686) #13
  %.not626 = icmp eq i32 %2687, 0
  br i1 %.not626, label %2688, label %2689

2688:                                             ; preds = %2684, %2678
  br label %2689

2689:                                             ; preds = %2684, %2688
  %.str.17.sink1573 = phi ptr [ @.str.17, %2688 ], [ @.str.14, %2684 ]
  store i32 %2679, ptr %247, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = load i32, ptr @test_count, align 4, !tbaa !5
  %2692 = load i32, ptr %193, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror(i32 noundef %2692, ptr noundef nonnull @.str.16) #13
  %2694 = load i32, ptr %193, align 4, !tbaa !5
  %2695 = call ptr @s2n_strerror_debug(i32 noundef %2694, ptr noundef nonnull @.str.16) #13
  %2696 = load i32, ptr %247, align 4, !tbaa !5
  %2697 = call ptr @strerror(i32 noundef %2696) #13
  %2698 = load i32, ptr %247, align 4, !tbaa !5
  %2699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2690, ptr noundef nonnull %.str.17.sink1573, i32 noundef %2691, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.13, i32 noundef 343, ptr noundef %2693, ptr noundef %2695, ptr noundef %2697, i32 noundef %2698) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2700:                                             ; preds = %2674
  %2701 = add nsw i32 %2466, 11
  store i32 %2701, ptr @test_count, align 4, !tbaa !5
  %2702 = call i32 @s2n_kem_free(ptr noundef nonnull %18) #13
  %2703 = icmp eq i32 %2702, -1
  br i1 %2703, label %2704, label %2726

2704:                                             ; preds = %2700
  %2705 = load i32, ptr %247, align 4, !tbaa !5
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @s2n_print_stacktrace(ptr noundef %2706) #13
  %2708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2709 = trunc nuw i8 %2708 to i1
  br i1 %2709, label %2710, label %2714

2710:                                             ; preds = %2704
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @fileno(ptr noundef %2711) #13
  %2713 = call i32 @isatty(i32 noundef %2712) #13
  %.not624 = icmp eq i32 %2713, 0
  br i1 %.not624, label %2714, label %2715

2714:                                             ; preds = %2710, %2704
  br label %2715

2715:                                             ; preds = %2710, %2714
  %.str.17.sink1582 = phi ptr [ @.str.17, %2714 ], [ @.str.14, %2710 ]
  store i32 %2705, ptr %247, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = load i32, ptr %193, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef nonnull @.str.16) #13
  %2720 = load i32, ptr %193, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror_debug(i32 noundef %2720, ptr noundef nonnull @.str.16) #13
  %2722 = load i32, ptr %247, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #13
  %2724 = load i32, ptr %247, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2716, ptr noundef nonnull %.str.17.sink1582, i32 noundef %2717, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 345, ptr noundef %2719, ptr noundef %2721, ptr noundef %2723, i32 noundef %2724) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2726:                                             ; preds = %2700
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #13
  %2727 = call i32 @s2n_free(ptr noundef nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %18) #13
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = add nsw i32 %2728, 1
  store i32 %2729, ptr @test_count, align 4, !tbaa !5
  %2730 = call i32 @s2n_kem_send_ciphertext(ptr noundef null, ptr noundef null) #13
  %2731 = icmp eq i32 %2730, -1
  br i1 %2731, label %2754, label %2732

2732:                                             ; preds = %2726
  %2733 = load i32, ptr %247, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @s2n_print_stacktrace(ptr noundef %2734) #13
  %2736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2737 = trunc nuw i8 %2736 to i1
  br i1 %2737, label %2738, label %2742

2738:                                             ; preds = %2732
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = call i32 @fileno(ptr noundef %2739) #13
  %2741 = call i32 @isatty(i32 noundef %2740) #13
  %.not530 = icmp eq i32 %2741, 0
  br i1 %.not530, label %2742, label %2743

2742:                                             ; preds = %2738, %2732
  br label %2743

2743:                                             ; preds = %2738, %2742
  %.str.17.sink1591 = phi ptr [ @.str.17, %2742 ], [ @.str.14, %2738 ]
  store i32 %2733, ptr %247, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = load i32, ptr @test_count, align 4, !tbaa !5
  %2746 = load i32, ptr %193, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror(i32 noundef %2746, ptr noundef nonnull @.str.16) #13
  %2748 = load i32, ptr %193, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror_debug(i32 noundef %2748, ptr noundef nonnull @.str.16) #13
  %2750 = load i32, ptr %247, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #13
  %2752 = load i32, ptr %247, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef nonnull %.str.17.sink1591, i32 noundef %2745, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.13, i32 noundef 349, ptr noundef %2747, ptr noundef %2749, ptr noundef %2751, i32 noundef %2752) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2754:                                             ; preds = %2726
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = add nsw i32 %2755, 1
  store i32 %2756, ptr @test_count, align 4, !tbaa !5
  %2757 = load i32, ptr %193, align 4, !tbaa !5
  %2758 = icmp eq i32 %2757, 402653193
  br i1 %2758, label %2781, label %2759

2759:                                             ; preds = %2754
  %2760 = load i32, ptr %247, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = call i32 @s2n_print_stacktrace(ptr noundef %2761) #13
  %2763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2764 = trunc nuw i8 %2763 to i1
  br i1 %2764, label %2765, label %2769

2765:                                             ; preds = %2759
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = call i32 @fileno(ptr noundef %2766) #13
  %2768 = call i32 @isatty(i32 noundef %2767) #13
  %.not531 = icmp eq i32 %2768, 0
  br i1 %.not531, label %2769, label %2770

2769:                                             ; preds = %2765, %2759
  br label %2770

2770:                                             ; preds = %2765, %2769
  %.str.17.sink1600 = phi ptr [ @.str.17, %2769 ], [ @.str.14, %2765 ]
  store i32 %2760, ptr %247, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = load i32, ptr %193, align 4, !tbaa !5
  %2774 = call ptr @s2n_strerror(i32 noundef %2773, ptr noundef nonnull @.str.16) #13
  %2775 = load i32, ptr %193, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror_debug(i32 noundef %2775, ptr noundef nonnull @.str.16) #13
  %2777 = load i32, ptr %247, align 4, !tbaa !5
  %2778 = call ptr @strerror(i32 noundef %2777) #13
  %2779 = load i32, ptr %247, align 4, !tbaa !5
  %2780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2771, ptr noundef nonnull %.str.17.sink1600, i32 noundef %2772, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 349, ptr noundef %2774, ptr noundef %2776, ptr noundef %2778, i32 noundef %2779) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2781:                                             ; preds = %2754
  %2782 = add nsw i32 %2755, 2
  store i32 %2782, ptr @test_count, align 4, !tbaa !5
  %2783 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %2784 = icmp eq ptr %2783, null
  br i1 %2784, label %2785, label %2807

2785:                                             ; preds = %2781
  %2786 = load i32, ptr %247, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = call i32 @s2n_print_stacktrace(ptr noundef %2787) #13
  %2789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2790 = trunc nuw i8 %2789 to i1
  br i1 %2790, label %2791, label %2795

2791:                                             ; preds = %2785
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @fileno(ptr noundef %2792) #13
  %2794 = call i32 @isatty(i32 noundef %2793) #13
  %.not623 = icmp eq i32 %2794, 0
  br i1 %.not623, label %2795, label %2796

2795:                                             ; preds = %2791, %2785
  br label %2796

2796:                                             ; preds = %2791, %2795
  %.str.17.sink1609 = phi ptr [ @.str.17, %2795 ], [ @.str.14, %2791 ]
  store i32 %2786, ptr %247, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = load i32, ptr @test_count, align 4, !tbaa !5
  %2799 = load i32, ptr %193, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror(i32 noundef %2799, ptr noundef nonnull @.str.16) #13
  %2801 = load i32, ptr %193, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror_debug(i32 noundef %2801, ptr noundef nonnull @.str.16) #13
  %2803 = load i32, ptr %247, align 4, !tbaa !5
  %2804 = call ptr @strerror(i32 noundef %2803) #13
  %2805 = load i32, ptr %247, align 4, !tbaa !5
  %2806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2797, ptr noundef nonnull %.str.17.sink1609, i32 noundef %2798, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 349, ptr noundef %2800, ptr noundef %2802, ptr noundef %2804, i32 noundef %2805) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2807:                                             ; preds = %2781
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = call i32 @s2n_alloc(ptr noundef nonnull %21, i32 noundef 1) #13
  %2811 = icmp eq i32 %2810, -1
  br i1 %2811, label %2812, label %2834

2812:                                             ; preds = %2807
  %2813 = load i32, ptr %247, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = call i32 @s2n_print_stacktrace(ptr noundef %2814) #13
  %2816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2817 = trunc nuw i8 %2816 to i1
  br i1 %2817, label %2818, label %2822

2818:                                             ; preds = %2812
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = call i32 @fileno(ptr noundef %2819) #13
  %2821 = call i32 @isatty(i32 noundef %2820) #13
  %.not622 = icmp eq i32 %2821, 0
  br i1 %.not622, label %2822, label %2823

2822:                                             ; preds = %2818, %2812
  br label %2823

2823:                                             ; preds = %2818, %2822
  %.str.17.sink1618 = phi ptr [ @.str.17, %2822 ], [ @.str.14, %2818 ]
  store i32 %2813, ptr %247, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = load i32, ptr %193, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror(i32 noundef %2826, ptr noundef nonnull @.str.16) #13
  %2828 = load i32, ptr %193, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror_debug(i32 noundef %2828, ptr noundef nonnull @.str.16) #13
  %2830 = load i32, ptr %247, align 4, !tbaa !5
  %2831 = call ptr @strerror(i32 noundef %2830) #13
  %2832 = load i32, ptr %247, align 4, !tbaa !5
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef nonnull %.str.17.sink1618, i32 noundef %2825, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.13, i32 noundef 352, ptr noundef %2827, ptr noundef %2829, ptr noundef %2831, i32 noundef %2832) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2834:                                             ; preds = %2807
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, i8 0, i64 40, i1 false)
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = add nsw i32 %2835, 1
  store i32 %2836, ptr @test_count, align 4, !tbaa !5
  %2837 = call i32 @s2n_stuffer_init(ptr noundef nonnull %22, ptr noundef nonnull %21) #13
  %2838 = icmp eq i32 %2837, -1
  br i1 %2838, label %2839, label %2861

2839:                                             ; preds = %2834
  %2840 = load i32, ptr %247, align 4, !tbaa !5
  %2841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2842 = call i32 @s2n_print_stacktrace(ptr noundef %2841) #13
  %2843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2844 = trunc nuw i8 %2843 to i1
  br i1 %2844, label %2845, label %2849

2845:                                             ; preds = %2839
  %2846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2847 = call i32 @fileno(ptr noundef %2846) #13
  %2848 = call i32 @isatty(i32 noundef %2847) #13
  %.not621 = icmp eq i32 %2848, 0
  br i1 %.not621, label %2849, label %2850

2849:                                             ; preds = %2845, %2839
  br label %2850

2850:                                             ; preds = %2845, %2849
  %.str.17.sink1627 = phi ptr [ @.str.17, %2849 ], [ @.str.14, %2845 ]
  store i32 %2840, ptr %247, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = load i32, ptr @test_count, align 4, !tbaa !5
  %2853 = load i32, ptr %193, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror(i32 noundef %2853, ptr noundef nonnull @.str.16) #13
  %2855 = load i32, ptr %193, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror_debug(i32 noundef %2855, ptr noundef nonnull @.str.16) #13
  %2857 = load i32, ptr %247, align 4, !tbaa !5
  %2858 = call ptr @strerror(i32 noundef %2857) #13
  %2859 = load i32, ptr %247, align 4, !tbaa !5
  %2860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2851, ptr noundef nonnull %.str.17.sink1627, i32 noundef %2852, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 354, ptr noundef %2854, ptr noundef %2856, ptr noundef %2858, i32 noundef %2859) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2861:                                             ; preds = %2834
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = add nsw i32 %2862, 1
  store i32 %2863, ptr @test_count, align 4, !tbaa !5
  %2864 = call i32 @s2n_kem_send_ciphertext(ptr noundef nonnull %22, ptr noundef null) #13
  %2865 = icmp eq i32 %2864, -1
  br i1 %2865, label %2888, label %2866

2866:                                             ; preds = %2861
  %2867 = load i32, ptr %247, align 4, !tbaa !5
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = call i32 @s2n_print_stacktrace(ptr noundef %2868) #13
  %2870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2871 = trunc nuw i8 %2870 to i1
  br i1 %2871, label %2872, label %2876

2872:                                             ; preds = %2866
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = call i32 @fileno(ptr noundef %2873) #13
  %2875 = call i32 @isatty(i32 noundef %2874) #13
  %.not532 = icmp eq i32 %2875, 0
  br i1 %.not532, label %2876, label %2877

2876:                                             ; preds = %2872, %2866
  br label %2877

2877:                                             ; preds = %2872, %2876
  %.str.17.sink1636 = phi ptr [ @.str.17, %2876 ], [ @.str.14, %2872 ]
  store i32 %2867, ptr %247, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = load i32, ptr %193, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror(i32 noundef %2880, ptr noundef nonnull @.str.16) #13
  %2882 = load i32, ptr %193, align 4, !tbaa !5
  %2883 = call ptr @s2n_strerror_debug(i32 noundef %2882, ptr noundef nonnull @.str.16) #13
  %2884 = load i32, ptr %247, align 4, !tbaa !5
  %2885 = call ptr @strerror(i32 noundef %2884) #13
  %2886 = load i32, ptr %247, align 4, !tbaa !5
  %2887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef nonnull %.str.17.sink1636, i32 noundef %2879, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.13, i32 noundef 356, ptr noundef %2881, ptr noundef %2883, ptr noundef %2885, i32 noundef %2886) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2888:                                             ; preds = %2861
  %2889 = load i32, ptr @test_count, align 4, !tbaa !5
  %2890 = add nsw i32 %2889, 1
  store i32 %2890, ptr @test_count, align 4, !tbaa !5
  %2891 = load i32, ptr %193, align 4, !tbaa !5
  %2892 = icmp eq i32 %2891, 402653193
  br i1 %2892, label %2915, label %2893

2893:                                             ; preds = %2888
  %2894 = load i32, ptr %247, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @s2n_print_stacktrace(ptr noundef %2895) #13
  %2897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2898 = trunc nuw i8 %2897 to i1
  br i1 %2898, label %2899, label %2903

2899:                                             ; preds = %2893
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @fileno(ptr noundef %2900) #13
  %2902 = call i32 @isatty(i32 noundef %2901) #13
  %.not533 = icmp eq i32 %2902, 0
  br i1 %.not533, label %2903, label %2904

2903:                                             ; preds = %2899, %2893
  br label %2904

2904:                                             ; preds = %2899, %2903
  %.str.17.sink1645 = phi ptr [ @.str.17, %2903 ], [ @.str.14, %2899 ]
  store i32 %2894, ptr %247, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = load i32, ptr @test_count, align 4, !tbaa !5
  %2907 = load i32, ptr %193, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror(i32 noundef %2907, ptr noundef nonnull @.str.16) #13
  %2909 = load i32, ptr %193, align 4, !tbaa !5
  %2910 = call ptr @s2n_strerror_debug(i32 noundef %2909, ptr noundef nonnull @.str.16) #13
  %2911 = load i32, ptr %247, align 4, !tbaa !5
  %2912 = call ptr @strerror(i32 noundef %2911) #13
  %2913 = load i32, ptr %247, align 4, !tbaa !5
  %2914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2905, ptr noundef nonnull %.str.17.sink1645, i32 noundef %2906, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 356, ptr noundef %2908, ptr noundef %2910, ptr noundef %2912, i32 noundef %2913) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2915:                                             ; preds = %2888
  %2916 = add nsw i32 %2889, 2
  store i32 %2916, ptr @test_count, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %2918 = icmp eq ptr %2917, null
  br i1 %2918, label %2919, label %2941

2919:                                             ; preds = %2915
  %2920 = load i32, ptr %247, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = call i32 @s2n_print_stacktrace(ptr noundef %2921) #13
  %2923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2924 = trunc nuw i8 %2923 to i1
  br i1 %2924, label %2925, label %2929

2925:                                             ; preds = %2919
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = call i32 @fileno(ptr noundef %2926) #13
  %2928 = call i32 @isatty(i32 noundef %2927) #13
  %.not620 = icmp eq i32 %2928, 0
  br i1 %.not620, label %2929, label %2930

2929:                                             ; preds = %2925, %2919
  br label %2930

2930:                                             ; preds = %2925, %2929
  %.str.17.sink1654 = phi ptr [ @.str.17, %2929 ], [ @.str.14, %2925 ]
  store i32 %2920, ptr %247, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = load i32, ptr %193, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror(i32 noundef %2933, ptr noundef nonnull @.str.16) #13
  %2935 = load i32, ptr %193, align 4, !tbaa !5
  %2936 = call ptr @s2n_strerror_debug(i32 noundef %2935, ptr noundef nonnull @.str.16) #13
  %2937 = load i32, ptr %247, align 4, !tbaa !5
  %2938 = call ptr @strerror(i32 noundef %2937) #13
  %2939 = load i32, ptr %247, align 4, !tbaa !5
  %2940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2931, ptr noundef nonnull %.str.17.sink1654, i32 noundef %2932, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 356, ptr noundef %2934, ptr noundef %2936, ptr noundef %2938, i32 noundef %2939) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2941:                                             ; preds = %2915
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %23) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %23, i8 0, i64 88, i1 false)
  store i8 %.04467082359, ptr %915, align 8, !tbaa !29
  %2942 = load i32, ptr @test_count, align 4, !tbaa !5
  %2943 = add nsw i32 %2942, 1
  store i32 %2943, ptr @test_count, align 4, !tbaa !5
  %2944 = call i32 @s2n_kem_send_ciphertext(ptr noundef nonnull %22, ptr noundef nonnull %23) #13
  %2945 = icmp eq i32 %2944, -1
  br i1 %2945, label %2968, label %2946

2946:                                             ; preds = %2941
  %2947 = load i32, ptr %247, align 4, !tbaa !5
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = call i32 @s2n_print_stacktrace(ptr noundef %2948) #13
  %2950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2951 = trunc nuw i8 %2950 to i1
  br i1 %2951, label %2952, label %2956

2952:                                             ; preds = %2946
  %2953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2954 = call i32 @fileno(ptr noundef %2953) #13
  %2955 = call i32 @isatty(i32 noundef %2954) #13
  %.not534 = icmp eq i32 %2955, 0
  br i1 %.not534, label %2956, label %2957

2956:                                             ; preds = %2952, %2946
  br label %2957

2957:                                             ; preds = %2952, %2956
  %.str.17.sink1663 = phi ptr [ @.str.17, %2956 ], [ @.str.14, %2952 ]
  store i32 %2947, ptr %247, align 4, !tbaa !5
  %2958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2959 = load i32, ptr @test_count, align 4, !tbaa !5
  %2960 = load i32, ptr %193, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror(i32 noundef %2960, ptr noundef nonnull @.str.16) #13
  %2962 = load i32, ptr %193, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror_debug(i32 noundef %2962, ptr noundef nonnull @.str.16) #13
  %2964 = load i32, ptr %247, align 4, !tbaa !5
  %2965 = call ptr @strerror(i32 noundef %2964) #13
  %2966 = load i32, ptr %247, align 4, !tbaa !5
  %2967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2958, ptr noundef nonnull %.str.17.sink1663, i32 noundef %2959, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.13, i32 noundef 360, ptr noundef %2961, ptr noundef %2963, ptr noundef %2965, i32 noundef %2966) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2968:                                             ; preds = %2941
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = add nsw i32 %2969, 1
  store i32 %2970, ptr @test_count, align 4, !tbaa !5
  %2971 = load i32, ptr %193, align 4, !tbaa !5
  %2972 = icmp eq i32 %2971, 402653193
  br i1 %2972, label %2995, label %2973

2973:                                             ; preds = %2968
  %2974 = load i32, ptr %247, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = call i32 @s2n_print_stacktrace(ptr noundef %2975) #13
  %2977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2978 = trunc nuw i8 %2977 to i1
  br i1 %2978, label %2979, label %2983

2979:                                             ; preds = %2973
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @fileno(ptr noundef %2980) #13
  %2982 = call i32 @isatty(i32 noundef %2981) #13
  %.not535 = icmp eq i32 %2982, 0
  br i1 %.not535, label %2983, label %2984

2983:                                             ; preds = %2979, %2973
  br label %2984

2984:                                             ; preds = %2979, %2983
  %.str.17.sink1672 = phi ptr [ @.str.17, %2983 ], [ @.str.14, %2979 ]
  store i32 %2974, ptr %247, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = load i32, ptr %193, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror(i32 noundef %2987, ptr noundef nonnull @.str.16) #13
  %2989 = load i32, ptr %193, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror_debug(i32 noundef %2989, ptr noundef nonnull @.str.16) #13
  %2991 = load i32, ptr %247, align 4, !tbaa !5
  %2992 = call ptr @strerror(i32 noundef %2991) #13
  %2993 = load i32, ptr %247, align 4, !tbaa !5
  %2994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef nonnull %.str.17.sink1672, i32 noundef %2986, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 360, ptr noundef %2988, ptr noundef %2990, ptr noundef %2992, i32 noundef %2993) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2995:                                             ; preds = %2968
  %2996 = add nsw i32 %2969, 2
  store i32 %2996, ptr @test_count, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %2998 = icmp eq ptr %2997, null
  br i1 %2998, label %2999, label %3021

2999:                                             ; preds = %2995
  %3000 = load i32, ptr %247, align 4, !tbaa !5
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = call i32 @s2n_print_stacktrace(ptr noundef %3001) #13
  %3003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3004 = trunc nuw i8 %3003 to i1
  br i1 %3004, label %3005, label %3009

3005:                                             ; preds = %2999
  %3006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3007 = call i32 @fileno(ptr noundef %3006) #13
  %3008 = call i32 @isatty(i32 noundef %3007) #13
  %.not619 = icmp eq i32 %3008, 0
  br i1 %.not619, label %3009, label %3010

3009:                                             ; preds = %3005, %2999
  br label %3010

3010:                                             ; preds = %3005, %3009
  %.str.17.sink1681 = phi ptr [ @.str.17, %3009 ], [ @.str.14, %3005 ]
  store i32 %3000, ptr %247, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = load i32, ptr @test_count, align 4, !tbaa !5
  %3013 = load i32, ptr %193, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror(i32 noundef %3013, ptr noundef nonnull @.str.16) #13
  %3015 = load i32, ptr %193, align 4, !tbaa !5
  %3016 = call ptr @s2n_strerror_debug(i32 noundef %3015, ptr noundef nonnull @.str.16) #13
  %3017 = load i32, ptr %247, align 4, !tbaa !5
  %3018 = call ptr @strerror(i32 noundef %3017) #13
  %3019 = load i32, ptr %247, align 4, !tbaa !5
  %3020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3011, ptr noundef nonnull %.str.17.sink1681, i32 noundef %3012, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 360, ptr noundef %3014, ptr noundef %3016, ptr noundef %3018, i32 noundef %3019) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3021:                                             ; preds = %2995
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  store ptr @s2n_test_kem, ptr %23, align 8, !tbaa !28
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = add nsw i32 %3022, 1
  store i32 %3023, ptr @test_count, align 4, !tbaa !5
  %3024 = call i32 @s2n_kem_send_ciphertext(ptr noundef nonnull %22, ptr noundef nonnull %23) #13
  %3025 = icmp eq i32 %3024, -1
  br i1 %3025, label %3048, label %3026

3026:                                             ; preds = %3021
  %3027 = load i32, ptr %247, align 4, !tbaa !5
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @s2n_print_stacktrace(ptr noundef %3028) #13
  %3030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3031 = trunc nuw i8 %3030 to i1
  br i1 %3031, label %3032, label %3036

3032:                                             ; preds = %3026
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = call i32 @fileno(ptr noundef %3033) #13
  %3035 = call i32 @isatty(i32 noundef %3034) #13
  %.not536 = icmp eq i32 %3035, 0
  br i1 %.not536, label %3036, label %3037

3036:                                             ; preds = %3032, %3026
  br label %3037

3037:                                             ; preds = %3032, %3036
  %.str.17.sink1690 = phi ptr [ @.str.17, %3036 ], [ @.str.14, %3032 ]
  store i32 %3027, ptr %247, align 4, !tbaa !5
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = load i32, ptr @test_count, align 4, !tbaa !5
  %3040 = load i32, ptr %193, align 4, !tbaa !5
  %3041 = call ptr @s2n_strerror(i32 noundef %3040, ptr noundef nonnull @.str.16) #13
  %3042 = load i32, ptr %193, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror_debug(i32 noundef %3042, ptr noundef nonnull @.str.16) #13
  %3044 = load i32, ptr %247, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #13
  %3046 = load i32, ptr %247, align 4, !tbaa !5
  %3047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3038, ptr noundef nonnull %.str.17.sink1690, i32 noundef %3039, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.13, i32 noundef 363, ptr noundef %3041, ptr noundef %3043, ptr noundef %3045, i32 noundef %3046) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3048:                                             ; preds = %3021
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = add nsw i32 %3049, 1
  store i32 %3050, ptr @test_count, align 4, !tbaa !5
  %3051 = load i32, ptr %193, align 4, !tbaa !5
  %3052 = icmp eq i32 %3051, 402653193
  br i1 %3052, label %3075, label %3053

3053:                                             ; preds = %3048
  %3054 = load i32, ptr %247, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = call i32 @s2n_print_stacktrace(ptr noundef %3055) #13
  %3057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3058 = trunc nuw i8 %3057 to i1
  br i1 %3058, label %3059, label %3063

3059:                                             ; preds = %3053
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = call i32 @fileno(ptr noundef %3060) #13
  %3062 = call i32 @isatty(i32 noundef %3061) #13
  %.not537 = icmp eq i32 %3062, 0
  br i1 %.not537, label %3063, label %3064

3063:                                             ; preds = %3059, %3053
  br label %3064

3064:                                             ; preds = %3059, %3063
  %.str.17.sink1699 = phi ptr [ @.str.17, %3063 ], [ @.str.14, %3059 ]
  store i32 %3054, ptr %247, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = load i32, ptr %193, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror(i32 noundef %3067, ptr noundef nonnull @.str.16) #13
  %3069 = load i32, ptr %193, align 4, !tbaa !5
  %3070 = call ptr @s2n_strerror_debug(i32 noundef %3069, ptr noundef nonnull @.str.16) #13
  %3071 = load i32, ptr %247, align 4, !tbaa !5
  %3072 = call ptr @strerror(i32 noundef %3071) #13
  %3073 = load i32, ptr %247, align 4, !tbaa !5
  %3074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef nonnull %.str.17.sink1699, i32 noundef %3066, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 363, ptr noundef %3068, ptr noundef %3070, ptr noundef %3072, i32 noundef %3073) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3075:                                             ; preds = %3048
  %3076 = add nsw i32 %3049, 2
  store i32 %3076, ptr @test_count, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %3078 = icmp eq ptr %3077, null
  br i1 %3078, label %3079, label %3101

3079:                                             ; preds = %3075
  %3080 = load i32, ptr %247, align 4, !tbaa !5
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = call i32 @s2n_print_stacktrace(ptr noundef %3081) #13
  %3083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3084 = trunc nuw i8 %3083 to i1
  br i1 %3084, label %3085, label %3089

3085:                                             ; preds = %3079
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = call i32 @fileno(ptr noundef %3086) #13
  %3088 = call i32 @isatty(i32 noundef %3087) #13
  %.not618 = icmp eq i32 %3088, 0
  br i1 %.not618, label %3089, label %3090

3089:                                             ; preds = %3085, %3079
  br label %3090

3090:                                             ; preds = %3085, %3089
  %.str.17.sink1708 = phi ptr [ @.str.17, %3089 ], [ @.str.14, %3085 ]
  store i32 %3080, ptr %247, align 4, !tbaa !5
  %3091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3092 = load i32, ptr @test_count, align 4, !tbaa !5
  %3093 = load i32, ptr %193, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror(i32 noundef %3093, ptr noundef nonnull @.str.16) #13
  %3095 = load i32, ptr %193, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror_debug(i32 noundef %3095, ptr noundef nonnull @.str.16) #13
  %3097 = load i32, ptr %247, align 4, !tbaa !5
  %3098 = call ptr @strerror(i32 noundef %3097) #13
  %3099 = load i32, ptr %247, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3091, ptr noundef nonnull %.str.17.sink1708, i32 noundef %3092, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 363, ptr noundef %3094, ptr noundef %3096, ptr noundef %3098, i32 noundef %3099) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3101:                                             ; preds = %3075
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #13
  %3102 = call i32 @s2n_free(ptr noundef nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #13
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %24) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %944, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %24, align 8, !tbaa !28
  store i8 %.04467082359, ptr %916, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, i8 0, i64 24, i1 false)
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = add nsw i32 %3103, 1
  store i32 %3104, ptr @test_count, align 4, !tbaa !5
  %3105 = call i32 @s2n_alloc(ptr noundef nonnull %25, i32 noundef 7) #13
  %3106 = icmp eq i32 %3105, -1
  br i1 %3106, label %3107, label %3129

3107:                                             ; preds = %3101
  %3108 = load i32, ptr %247, align 4, !tbaa !5
  %3109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3110 = call i32 @s2n_print_stacktrace(ptr noundef %3109) #13
  %3111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3112 = trunc nuw i8 %3111 to i1
  br i1 %3112, label %3113, label %3117

3113:                                             ; preds = %3107
  %3114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3115 = call i32 @fileno(ptr noundef %3114) #13
  %3116 = call i32 @isatty(i32 noundef %3115) #13
  %.not617 = icmp eq i32 %3116, 0
  br i1 %.not617, label %3117, label %3118

3117:                                             ; preds = %3113, %3107
  br label %3118

3118:                                             ; preds = %3113, %3117
  %.str.17.sink1717 = phi ptr [ @.str.17, %3117 ], [ @.str.14, %3113 ]
  store i32 %3108, ptr %247, align 4, !tbaa !5
  %3119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3120 = load i32, ptr @test_count, align 4, !tbaa !5
  %3121 = load i32, ptr %193, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror(i32 noundef %3121, ptr noundef nonnull @.str.16) #13
  %3123 = load i32, ptr %193, align 4, !tbaa !5
  %3124 = call ptr @s2n_strerror_debug(i32 noundef %3123, ptr noundef nonnull @.str.16) #13
  %3125 = load i32, ptr %247, align 4, !tbaa !5
  %3126 = call ptr @strerror(i32 noundef %3125) #13
  %3127 = load i32, ptr %247, align 4, !tbaa !5
  %3128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3119, ptr noundef nonnull %.str.17.sink1717, i32 noundef %3120, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.13, i32 noundef 370, ptr noundef %3122, ptr noundef %3124, ptr noundef %3126, i32 noundef %3127) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3129:                                             ; preds = %3101
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %26) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %26, i8 0, i64 40, i1 false)
  %3130 = load i32, ptr @test_count, align 4, !tbaa !5
  %3131 = add nsw i32 %3130, 1
  store i32 %3131, ptr @test_count, align 4, !tbaa !5
  %3132 = call i32 @s2n_stuffer_init(ptr noundef nonnull %26, ptr noundef nonnull %25) #13
  %3133 = icmp eq i32 %3132, -1
  br i1 %3133, label %3134, label %3156

3134:                                             ; preds = %3129
  %3135 = load i32, ptr %247, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = call i32 @s2n_print_stacktrace(ptr noundef %3136) #13
  %3138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3139 = trunc nuw i8 %3138 to i1
  br i1 %3139, label %3140, label %3144

3140:                                             ; preds = %3134
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = call i32 @fileno(ptr noundef %3141) #13
  %3143 = call i32 @isatty(i32 noundef %3142) #13
  %.not616 = icmp eq i32 %3143, 0
  br i1 %.not616, label %3144, label %3145

3144:                                             ; preds = %3140, %3134
  br label %3145

3145:                                             ; preds = %3140, %3144
  %.str.17.sink1726 = phi ptr [ @.str.17, %3144 ], [ @.str.14, %3140 ]
  store i32 %3135, ptr %247, align 4, !tbaa !5
  %3146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = load i32, ptr %193, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror(i32 noundef %3148, ptr noundef nonnull @.str.16) #13
  %3150 = load i32, ptr %193, align 4, !tbaa !5
  %3151 = call ptr @s2n_strerror_debug(i32 noundef %3150, ptr noundef nonnull @.str.16) #13
  %3152 = load i32, ptr %247, align 4, !tbaa !5
  %3153 = call ptr @strerror(i32 noundef %3152) #13
  %3154 = load i32, ptr %247, align 4, !tbaa !5
  %3155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3146, ptr noundef nonnull %.str.17.sink1726, i32 noundef %3147, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 372, ptr noundef %3149, ptr noundef %3151, ptr noundef %3153, i32 noundef %3154) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3156:                                             ; preds = %3129
  %3157 = load i32, ptr @test_count, align 4, !tbaa !5
  %3158 = add nsw i32 %3157, 1
  store i32 %3158, ptr @test_count, align 4, !tbaa !5
  %3159 = call i32 @s2n_alloc(ptr noundef nonnull %917, i32 noundef 3) #13
  %3160 = icmp eq i32 %3159, -1
  br i1 %3160, label %3161, label %3183

3161:                                             ; preds = %3156
  %3162 = load i32, ptr %247, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @s2n_print_stacktrace(ptr noundef %3163) #13
  %3165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3166 = trunc nuw i8 %3165 to i1
  br i1 %3166, label %3167, label %3171

3167:                                             ; preds = %3161
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = call i32 @fileno(ptr noundef %3168) #13
  %3170 = call i32 @isatty(i32 noundef %3169) #13
  %.not615 = icmp eq i32 %3170, 0
  br i1 %.not615, label %3171, label %3172

3171:                                             ; preds = %3167, %3161
  br label %3172

3172:                                             ; preds = %3167, %3171
  %.str.17.sink1735 = phi ptr [ @.str.17, %3171 ], [ @.str.14, %3167 ]
  store i32 %3162, ptr %247, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = load i32, ptr %193, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror(i32 noundef %3175, ptr noundef nonnull @.str.16) #13
  %3177 = load i32, ptr %193, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror_debug(i32 noundef %3177, ptr noundef nonnull @.str.16) #13
  %3179 = load i32, ptr %247, align 4, !tbaa !5
  %3180 = call ptr @strerror(i32 noundef %3179) #13
  %3181 = load i32, ptr %247, align 4, !tbaa !5
  %3182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3173, ptr noundef nonnull %.str.17.sink1735, i32 noundef %3174, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.13, i32 noundef 374, ptr noundef %3176, ptr noundef %3178, ptr noundef %3180, i32 noundef %3181) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3183:                                             ; preds = %3156
  %3184 = load ptr, ptr %917, align 8, !tbaa !33
  %3185 = call ptr @s2n_ensure_memmove_trace(ptr noundef %3184, ptr noundef nonnull @TEST_PRIVATE_KEY, i64 noundef 3) #13
  %.not538.not.not.not = icmp eq ptr %3185, null
  br i1 %.not538.not.not.not, label %.critedge674, label %3186

3186:                                             ; preds = %3183
  call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %27) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %27, ptr noundef nonnull align 1 dereferenceable(7) @__const.main.prefixed_input, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %28) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %28, ptr noundef nonnull align 1 dereferenceable(5) @__const.main.unprefixed_input, i64 5, i1 false)
  %spec.select671 = select i1 %.not4672358, i32 5, i32 7
  %spec.select672 = select i1 %.not4672358, ptr %28, ptr %27
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = add nsw i32 %3187, 1
  store i32 %3188, ptr @test_count, align 4, !tbaa !5
  %3189 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %26, ptr noundef nonnull %spec.select672, i32 noundef %spec.select671) #13
  %3190 = icmp eq i32 %3189, -1
  br i1 %3190, label %3191, label %3213

3191:                                             ; preds = %3186
  %3192 = load i32, ptr %247, align 4, !tbaa !5
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = call i32 @s2n_print_stacktrace(ptr noundef %3193) #13
  %3195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3196 = trunc nuw i8 %3195 to i1
  br i1 %3196, label %3197, label %3201

3197:                                             ; preds = %3191
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = call i32 @fileno(ptr noundef %3198) #13
  %3200 = call i32 @isatty(i32 noundef %3199) #13
  %.not614 = icmp eq i32 %3200, 0
  br i1 %.not614, label %3201, label %3202

3201:                                             ; preds = %3197, %3191
  br label %3202

3202:                                             ; preds = %3197, %3201
  %.str.17.sink1744 = phi ptr [ @.str.17, %3201 ], [ @.str.14, %3197 ]
  store i32 %3192, ptr %247, align 4, !tbaa !5
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = load i32, ptr @test_count, align 4, !tbaa !5
  %3205 = load i32, ptr %193, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror(i32 noundef %3205, ptr noundef nonnull @.str.16) #13
  %3207 = load i32, ptr %193, align 4, !tbaa !5
  %3208 = call ptr @s2n_strerror_debug(i32 noundef %3207, ptr noundef nonnull @.str.16) #13
  %3209 = load i32, ptr %247, align 4, !tbaa !5
  %3210 = call ptr @strerror(i32 noundef %3209) #13
  %3211 = load i32, ptr %247, align 4, !tbaa !5
  %3212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3203, ptr noundef nonnull %.str.17.sink1744, i32 noundef %3204, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.13, i32 noundef 389, ptr noundef %3206, ptr noundef %3208, ptr noundef %3210, i32 noundef %3211) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3213:                                             ; preds = %3186
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = add nsw i32 %3214, 1
  store i32 %3215, ptr @test_count, align 4, !tbaa !5
  %3216 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %26) #13
  %3217 = icmp eq i32 %3216, -1
  br i1 %3217, label %3218, label %3240

3218:                                             ; preds = %3213
  %3219 = load i32, ptr %247, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = call i32 @s2n_print_stacktrace(ptr noundef %3220) #13
  %3222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3223 = trunc nuw i8 %3222 to i1
  br i1 %3223, label %3224, label %3228

3224:                                             ; preds = %3218
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @fileno(ptr noundef %3225) #13
  %3227 = call i32 @isatty(i32 noundef %3226) #13
  %.not613 = icmp eq i32 %3227, 0
  br i1 %.not613, label %3228, label %3229

3228:                                             ; preds = %3224, %3218
  br label %3229

3229:                                             ; preds = %3224, %3228
  %.str.17.sink1753 = phi ptr [ @.str.17, %3228 ], [ @.str.14, %3224 ]
  store i32 %3219, ptr %247, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = load i32, ptr @test_count, align 4, !tbaa !5
  %3232 = load i32, ptr %193, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror(i32 noundef %3232, ptr noundef nonnull @.str.16) #13
  %3234 = load i32, ptr %193, align 4, !tbaa !5
  %3235 = call ptr @s2n_strerror_debug(i32 noundef %3234, ptr noundef nonnull @.str.16) #13
  %3236 = load i32, ptr %247, align 4, !tbaa !5
  %3237 = call ptr @strerror(i32 noundef %3236) #13
  %3238 = load i32, ptr %247, align 4, !tbaa !5
  %3239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3230, ptr noundef nonnull %.str.17.sink1753, i32 noundef %3231, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.13, i32 noundef 390, ptr noundef %3233, ptr noundef %3235, ptr noundef %3237, i32 noundef %3238) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3240:                                             ; preds = %3213
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = add nsw i32 %3241, 1
  store i32 %3242, ptr @test_count, align 4, !tbaa !5
  %3243 = call i32 @s2n_kem_recv_ciphertext(ptr noundef nonnull %26, ptr noundef nonnull %24) #13
  %3244 = icmp eq i32 %3243, -1
  br i1 %3244, label %3245, label %3267

3245:                                             ; preds = %3240
  %3246 = load i32, ptr %247, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @s2n_print_stacktrace(ptr noundef %3247) #13
  %3249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3250 = trunc nuw i8 %3249 to i1
  br i1 %3250, label %3251, label %3255

3251:                                             ; preds = %3245
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = call i32 @fileno(ptr noundef %3252) #13
  %3254 = call i32 @isatty(i32 noundef %3253) #13
  %.not612 = icmp eq i32 %3254, 0
  br i1 %.not612, label %3255, label %3256

3255:                                             ; preds = %3251, %3245
  br label %3256

3256:                                             ; preds = %3251, %3255
  %.str.17.sink1762 = phi ptr [ @.str.17, %3255 ], [ @.str.14, %3251 ]
  store i32 %3246, ptr %247, align 4, !tbaa !5
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = load i32, ptr @test_count, align 4, !tbaa !5
  %3259 = load i32, ptr %193, align 4, !tbaa !5
  %3260 = call ptr @s2n_strerror(i32 noundef %3259, ptr noundef nonnull @.str.16) #13
  %3261 = load i32, ptr %193, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror_debug(i32 noundef %3261, ptr noundef nonnull @.str.16) #13
  %3263 = load i32, ptr %247, align 4, !tbaa !5
  %3264 = call ptr @strerror(i32 noundef %3263) #13
  %3265 = load i32, ptr %247, align 4, !tbaa !5
  %3266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3257, ptr noundef nonnull %.str.17.sink1762, i32 noundef %3258, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.13, i32 noundef 392, ptr noundef %3260, ptr noundef %3262, ptr noundef %3264, i32 noundef %3265) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3267:                                             ; preds = %3240
  %3268 = load i32, ptr @test_count, align 4, !tbaa !5
  %3269 = add nsw i32 %3268, 1
  store i32 %3269, ptr @test_count, align 4, !tbaa !5
  %3270 = load i32, ptr %918, align 8, !tbaa !34
  %3271 = icmp eq i32 %3270, 4
  br i1 %3271, label %3294, label %3272

3272:                                             ; preds = %3267
  %3273 = load i32, ptr %247, align 4, !tbaa !5
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = call i32 @s2n_print_stacktrace(ptr noundef %3274) #13
  %3276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3277 = trunc nuw i8 %3276 to i1
  br i1 %3277, label %3278, label %3282

3278:                                             ; preds = %3272
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = call i32 @fileno(ptr noundef %3279) #13
  %3281 = call i32 @isatty(i32 noundef %3280) #13
  %.not540 = icmp eq i32 %3281, 0
  br i1 %.not540, label %3282, label %3283

3282:                                             ; preds = %3278, %3272
  br label %3283

3283:                                             ; preds = %3278, %3282
  %.str.17.sink1771 = phi ptr [ @.str.17, %3282 ], [ @.str.14, %3278 ]
  store i32 %3273, ptr %247, align 4, !tbaa !5
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = load i32, ptr %193, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror(i32 noundef %3286, ptr noundef nonnull @.str.16) #13
  %3288 = load i32, ptr %193, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror_debug(i32 noundef %3288, ptr noundef nonnull @.str.16) #13
  %3290 = load i32, ptr %247, align 4, !tbaa !5
  %3291 = call ptr @strerror(i32 noundef %3290) #13
  %3292 = load i32, ptr %247, align 4, !tbaa !5
  %3293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3284, ptr noundef nonnull %.str.17.sink1771, i32 noundef %3285, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.13, i32 noundef 394, ptr noundef %3287, ptr noundef %3289, ptr noundef %3291, i32 noundef %3292) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3294:                                             ; preds = %3267
  %3295 = add nsw i32 %3268, 2
  store i32 %3295, ptr @test_count, align 4, !tbaa !5
  %3296 = load ptr, ptr %919, align 8, !tbaa !36
  %bcmp541 = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %3296, ptr noundef nonnull dereferenceable(4) @TEST_SHARED_SECRET, i64 4)
  %3297 = icmp eq i32 %bcmp541, 0
  br i1 %3297, label %3320, label %3298

3298:                                             ; preds = %3294
  %3299 = load i32, ptr %247, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = call i32 @s2n_print_stacktrace(ptr noundef %3300) #13
  %3302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3303 = trunc nuw i8 %3302 to i1
  br i1 %3303, label %3304, label %3308

3304:                                             ; preds = %3298
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = call i32 @fileno(ptr noundef %3305) #13
  %3307 = call i32 @isatty(i32 noundef %3306) #13
  %.not542 = icmp eq i32 %3307, 0
  br i1 %.not542, label %3308, label %3309

3308:                                             ; preds = %3304, %3298
  br label %3309

3309:                                             ; preds = %3304, %3308
  %.str.17.sink1780 = phi ptr [ @.str.17, %3308 ], [ @.str.14, %3304 ]
  store i32 %3299, ptr %247, align 4, !tbaa !5
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = load i32, ptr %193, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror(i32 noundef %3312, ptr noundef nonnull @.str.16) #13
  %3314 = load i32, ptr %193, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror_debug(i32 noundef %3314, ptr noundef nonnull @.str.16) #13
  %3316 = load i32, ptr %247, align 4, !tbaa !5
  %3317 = call ptr @strerror(i32 noundef %3316) #13
  %3318 = load i32, ptr %247, align 4, !tbaa !5
  %3319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3310, ptr noundef nonnull %.str.17.sink1780, i32 noundef %3311, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.13, i32 noundef 395, ptr noundef %3313, ptr noundef %3315, ptr noundef %3317, i32 noundef %3318) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3320:                                             ; preds = %3294
  %3321 = add nsw i32 %3268, 3
  store i32 %3321, ptr @test_count, align 4, !tbaa !5
  %3322 = load i32, ptr %920, align 8, !tbaa !30
  %3323 = icmp eq i32 %3322, 0
  br i1 %3323, label %3346, label %3324

3324:                                             ; preds = %3320
  %3325 = load i32, ptr %247, align 4, !tbaa !5
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = call i32 @s2n_print_stacktrace(ptr noundef %3326) #13
  %3328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3329 = trunc nuw i8 %3328 to i1
  br i1 %3329, label %3330, label %3334

3330:                                             ; preds = %3324
  %3331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3332 = call i32 @fileno(ptr noundef %3331) #13
  %3333 = call i32 @isatty(i32 noundef %3332) #13
  %.not543 = icmp eq i32 %3333, 0
  br i1 %.not543, label %3334, label %3335

3334:                                             ; preds = %3330, %3324
  br label %3335

3335:                                             ; preds = %3330, %3334
  %.str.17.sink1789 = phi ptr [ @.str.17, %3334 ], [ @.str.14, %3330 ]
  store i32 %3325, ptr %247, align 4, !tbaa !5
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = load i32, ptr @test_count, align 4, !tbaa !5
  %3338 = load i32, ptr %193, align 4, !tbaa !5
  %3339 = call ptr @s2n_strerror(i32 noundef %3338, ptr noundef nonnull @.str.16) #13
  %3340 = load i32, ptr %193, align 4, !tbaa !5
  %3341 = call ptr @s2n_strerror_debug(i32 noundef %3340, ptr noundef nonnull @.str.16) #13
  %3342 = load i32, ptr %247, align 4, !tbaa !5
  %3343 = call ptr @strerror(i32 noundef %3342) #13
  %3344 = load i32, ptr %247, align 4, !tbaa !5
  %3345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3336, ptr noundef nonnull %.str.17.sink1789, i32 noundef %3337, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.13, i32 noundef 396, ptr noundef %3339, ptr noundef %3341, ptr noundef %3343, i32 noundef %3344) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3346:                                             ; preds = %3320
  %3347 = add nsw i32 %3268, 4
  store i32 %3347, ptr @test_count, align 4, !tbaa !5
  %3348 = load ptr, ptr %921, align 8, !tbaa !32
  %3349 = icmp eq ptr %3348, null
  br i1 %3349, label %3372, label %3350

3350:                                             ; preds = %3346
  %3351 = load i32, ptr %247, align 4, !tbaa !5
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @s2n_print_stacktrace(ptr noundef %3352) #13
  %3354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3355 = trunc nuw i8 %3354 to i1
  br i1 %3355, label %3356, label %3360

3356:                                             ; preds = %3350
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = call i32 @fileno(ptr noundef %3357) #13
  %3359 = call i32 @isatty(i32 noundef %3358) #13
  %.not544 = icmp eq i32 %3359, 0
  br i1 %.not544, label %3360, label %3361

3360:                                             ; preds = %3356, %3350
  br label %3361

3361:                                             ; preds = %3356, %3360
  %.str.17.sink1798 = phi ptr [ @.str.17, %3360 ], [ @.str.14, %3356 ]
  store i32 %3351, ptr %247, align 4, !tbaa !5
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = load i32, ptr @test_count, align 4, !tbaa !5
  %3364 = load i32, ptr %193, align 4, !tbaa !5
  %3365 = call ptr @s2n_strerror(i32 noundef %3364, ptr noundef nonnull @.str.16) #13
  %3366 = load i32, ptr %193, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror_debug(i32 noundef %3366, ptr noundef nonnull @.str.16) #13
  %3368 = load i32, ptr %247, align 4, !tbaa !5
  %3369 = call ptr @strerror(i32 noundef %3368) #13
  %3370 = load i32, ptr %247, align 4, !tbaa !5
  %3371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3362, ptr noundef nonnull %.str.17.sink1798, i32 noundef %3363, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.13, i32 noundef 397, ptr noundef %3365, ptr noundef %3367, ptr noundef %3369, i32 noundef %3370) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3372:                                             ; preds = %3346
  %3373 = add nsw i32 %3268, 5
  store i32 %3373, ptr @test_count, align 4, !tbaa !5
  %3374 = load i32, ptr %922, align 4, !tbaa !42
  %3375 = icmp eq i32 %3374, 0
  br i1 %3375, label %3398, label %3376

3376:                                             ; preds = %3372
  %3377 = load i32, ptr %247, align 4, !tbaa !5
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = call i32 @s2n_print_stacktrace(ptr noundef %3378) #13
  %3380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3381 = trunc nuw i8 %3380 to i1
  br i1 %3381, label %3382, label %3386

3382:                                             ; preds = %3376
  %3383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3384 = call i32 @fileno(ptr noundef %3383) #13
  %3385 = call i32 @isatty(i32 noundef %3384) #13
  %.not545 = icmp eq i32 %3385, 0
  br i1 %.not545, label %3386, label %3387

3386:                                             ; preds = %3382, %3376
  br label %3387

3387:                                             ; preds = %3382, %3386
  %.str.17.sink1807 = phi ptr [ @.str.17, %3386 ], [ @.str.14, %3382 ]
  store i32 %3377, ptr %247, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = load i32, ptr @test_count, align 4, !tbaa !5
  %3390 = load i32, ptr %193, align 4, !tbaa !5
  %3391 = call ptr @s2n_strerror(i32 noundef %3390, ptr noundef nonnull @.str.16) #13
  %3392 = load i32, ptr %193, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror_debug(i32 noundef %3392, ptr noundef nonnull @.str.16) #13
  %3394 = load i32, ptr %247, align 4, !tbaa !5
  %3395 = call ptr @strerror(i32 noundef %3394) #13
  %3396 = load i32, ptr %247, align 4, !tbaa !5
  %3397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3388, ptr noundef nonnull %.str.17.sink1807, i32 noundef %3389, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.13, i32 noundef 401, ptr noundef %3391, ptr noundef %3393, ptr noundef %3395, i32 noundef %3396) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3398:                                             ; preds = %3372
  %3399 = add nsw i32 %3268, 6
  store i32 %3399, ptr @test_count, align 4, !tbaa !5
  %3400 = load i32, ptr %923, align 4, !tbaa !39
  %3401 = icmp eq i32 %3400, 0
  br i1 %3401, label %3402, label %3424

3402:                                             ; preds = %3398
  %3403 = load i32, ptr %247, align 4, !tbaa !5
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @s2n_print_stacktrace(ptr noundef %3404) #13
  %3406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3407 = trunc nuw i8 %3406 to i1
  br i1 %3407, label %3408, label %3412

3408:                                             ; preds = %3402
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @fileno(ptr noundef %3409) #13
  %3411 = call i32 @isatty(i32 noundef %3410) #13
  %.not611 = icmp eq i32 %3411, 0
  br i1 %.not611, label %3412, label %3413

3412:                                             ; preds = %3408, %3402
  br label %3413

3413:                                             ; preds = %3408, %3412
  %.str.17.sink1816 = phi ptr [ @.str.17, %3412 ], [ @.str.14, %3408 ]
  store i32 %3403, ptr %247, align 4, !tbaa !5
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = load i32, ptr @test_count, align 4, !tbaa !5
  %3416 = load i32, ptr %193, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef nonnull @.str.16) #13
  %3418 = load i32, ptr %193, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror_debug(i32 noundef %3418, ptr noundef nonnull @.str.16) #13
  %3420 = load i32, ptr %247, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #13
  %3422 = load i32, ptr %247, align 4, !tbaa !5
  %3423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3414, ptr noundef nonnull %.str.17.sink1816, i32 noundef %3415, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.13, i32 noundef 402, ptr noundef %3417, ptr noundef %3419, ptr noundef %3421, i32 noundef %3422) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3424:                                             ; preds = %3398
  %3425 = add nsw i32 %3268, 7
  store i32 %3425, ptr @test_count, align 4, !tbaa !5
  %3426 = load i32, ptr %924, align 4, !tbaa !35
  %3427 = icmp eq i32 %3426, 0
  br i1 %3427, label %3428, label %3450

3428:                                             ; preds = %3424
  %3429 = load i32, ptr %247, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @s2n_print_stacktrace(ptr noundef %3430) #13
  %3432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3433 = trunc nuw i8 %3432 to i1
  br i1 %3433, label %3434, label %3438

3434:                                             ; preds = %3428
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = call i32 @fileno(ptr noundef %3435) #13
  %3437 = call i32 @isatty(i32 noundef %3436) #13
  %.not610 = icmp eq i32 %3437, 0
  br i1 %.not610, label %3438, label %3439

3438:                                             ; preds = %3434, %3428
  br label %3439

3439:                                             ; preds = %3434, %3438
  %.str.17.sink1825 = phi ptr [ @.str.17, %3438 ], [ @.str.14, %3434 ]
  store i32 %3429, ptr %247, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = load i32, ptr %193, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror(i32 noundef %3442, ptr noundef nonnull @.str.16) #13
  %3444 = load i32, ptr %193, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror_debug(i32 noundef %3444, ptr noundef nonnull @.str.16) #13
  %3446 = load i32, ptr %247, align 4, !tbaa !5
  %3447 = call ptr @strerror(i32 noundef %3446) #13
  %3448 = load i32, ptr %247, align 4, !tbaa !5
  %3449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef nonnull %.str.17.sink1825, i32 noundef %3441, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.13, i32 noundef 403, ptr noundef %3443, ptr noundef %3445, ptr noundef %3447, i32 noundef %3448) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3450:                                             ; preds = %3424
  %3451 = add nsw i32 %3268, 8
  store i32 %3451, ptr @test_count, align 4, !tbaa !5
  %3452 = call i32 @s2n_kem_free(ptr noundef nonnull %24) #13
  %3453 = icmp eq i32 %3452, -1
  br i1 %3453, label %3454, label %3476

3454:                                             ; preds = %3450
  %3455 = load i32, ptr %247, align 4, !tbaa !5
  %3456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3457 = call i32 @s2n_print_stacktrace(ptr noundef %3456) #13
  %3458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3459 = trunc nuw i8 %3458 to i1
  br i1 %3459, label %3460, label %3464

3460:                                             ; preds = %3454
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = call i32 @fileno(ptr noundef %3461) #13
  %3463 = call i32 @isatty(i32 noundef %3462) #13
  %.not609 = icmp eq i32 %3463, 0
  br i1 %.not609, label %3464, label %3465

3464:                                             ; preds = %3460, %3454
  br label %3465

3465:                                             ; preds = %3460, %3464
  %.str.17.sink1834 = phi ptr [ @.str.17, %3464 ], [ @.str.14, %3460 ]
  store i32 %3455, ptr %247, align 4, !tbaa !5
  %3466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3467 = load i32, ptr @test_count, align 4, !tbaa !5
  %3468 = load i32, ptr %193, align 4, !tbaa !5
  %3469 = call ptr @s2n_strerror(i32 noundef %3468, ptr noundef nonnull @.str.16) #13
  %3470 = load i32, ptr %193, align 4, !tbaa !5
  %3471 = call ptr @s2n_strerror_debug(i32 noundef %3470, ptr noundef nonnull @.str.16) #13
  %3472 = load i32, ptr %247, align 4, !tbaa !5
  %3473 = call ptr @strerror(i32 noundef %3472) #13
  %3474 = load i32, ptr %247, align 4, !tbaa !5
  %3475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3466, ptr noundef nonnull %.str.17.sink1834, i32 noundef %3467, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 404, ptr noundef %3469, ptr noundef %3471, ptr noundef %3473, i32 noundef %3474) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3476:                                             ; preds = %3450
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %28) #13
  call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %27) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #13
  %3477 = call i32 @s2n_free(ptr noundef nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %24) #13
  %3478 = load i32, ptr @test_count, align 4, !tbaa !5
  %3479 = add nsw i32 %3478, 1
  store i32 %3479, ptr @test_count, align 4, !tbaa !5
  %3480 = call i32 @s2n_kem_recv_ciphertext(ptr noundef null, ptr noundef null) #13
  %3481 = icmp eq i32 %3480, -1
  br i1 %3481, label %3504, label %3482

3482:                                             ; preds = %3476
  %3483 = load i32, ptr %247, align 4, !tbaa !5
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = call i32 @s2n_print_stacktrace(ptr noundef %3484) #13
  %3486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3487 = trunc nuw i8 %3486 to i1
  br i1 %3487, label %3488, label %3492

3488:                                             ; preds = %3482
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @fileno(ptr noundef %3489) #13
  %3491 = call i32 @isatty(i32 noundef %3490) #13
  %.not546 = icmp eq i32 %3491, 0
  br i1 %.not546, label %3492, label %3493

3492:                                             ; preds = %3488, %3482
  br label %3493

3493:                                             ; preds = %3488, %3492
  %.str.17.sink1843 = phi ptr [ @.str.17, %3492 ], [ @.str.14, %3488 ]
  store i32 %3483, ptr %247, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = load i32, ptr %193, align 4, !tbaa !5
  %3497 = call ptr @s2n_strerror(i32 noundef %3496, ptr noundef nonnull @.str.16) #13
  %3498 = load i32, ptr %193, align 4, !tbaa !5
  %3499 = call ptr @s2n_strerror_debug(i32 noundef %3498, ptr noundef nonnull @.str.16) #13
  %3500 = load i32, ptr %247, align 4, !tbaa !5
  %3501 = call ptr @strerror(i32 noundef %3500) #13
  %3502 = load i32, ptr %247, align 4, !tbaa !5
  %3503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3494, ptr noundef nonnull %.str.17.sink1843, i32 noundef %3495, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.13, i32 noundef 408, ptr noundef %3497, ptr noundef %3499, ptr noundef %3501, i32 noundef %3502) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3504:                                             ; preds = %3476
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = add nsw i32 %3505, 1
  store i32 %3506, ptr @test_count, align 4, !tbaa !5
  %3507 = load i32, ptr %193, align 4, !tbaa !5
  %3508 = icmp eq i32 %3507, 402653193
  br i1 %3508, label %3531, label %3509

3509:                                             ; preds = %3504
  %3510 = load i32, ptr %247, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = call i32 @s2n_print_stacktrace(ptr noundef %3511) #13
  %3513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3514 = trunc nuw i8 %3513 to i1
  br i1 %3514, label %3515, label %3519

3515:                                             ; preds = %3509
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @fileno(ptr noundef %3516) #13
  %3518 = call i32 @isatty(i32 noundef %3517) #13
  %.not547 = icmp eq i32 %3518, 0
  br i1 %.not547, label %3519, label %3520

3519:                                             ; preds = %3515, %3509
  br label %3520

3520:                                             ; preds = %3515, %3519
  %.str.17.sink1852 = phi ptr [ @.str.17, %3519 ], [ @.str.14, %3515 ]
  store i32 %3510, ptr %247, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = load i32, ptr %193, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror(i32 noundef %3523, ptr noundef nonnull @.str.16) #13
  %3525 = load i32, ptr %193, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef nonnull @.str.16) #13
  %3527 = load i32, ptr %247, align 4, !tbaa !5
  %3528 = call ptr @strerror(i32 noundef %3527) #13
  %3529 = load i32, ptr %247, align 4, !tbaa !5
  %3530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3521, ptr noundef nonnull %.str.17.sink1852, i32 noundef %3522, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 408, ptr noundef %3524, ptr noundef %3526, ptr noundef %3528, i32 noundef %3529) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3531:                                             ; preds = %3504
  %3532 = add nsw i32 %3505, 2
  store i32 %3532, ptr @test_count, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %3534 = icmp eq ptr %3533, null
  br i1 %3534, label %3535, label %3557

3535:                                             ; preds = %3531
  %3536 = load i32, ptr %247, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = call i32 @s2n_print_stacktrace(ptr noundef %3537) #13
  %3539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3540 = trunc nuw i8 %3539 to i1
  br i1 %3540, label %3541, label %3545

3541:                                             ; preds = %3535
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = call i32 @fileno(ptr noundef %3542) #13
  %3544 = call i32 @isatty(i32 noundef %3543) #13
  %.not608 = icmp eq i32 %3544, 0
  br i1 %.not608, label %3545, label %3546

3545:                                             ; preds = %3541, %3535
  br label %3546

3546:                                             ; preds = %3541, %3545
  %.str.17.sink1861 = phi ptr [ @.str.17, %3545 ], [ @.str.14, %3541 ]
  store i32 %3536, ptr %247, align 4, !tbaa !5
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = load i32, ptr %193, align 4, !tbaa !5
  %3550 = call ptr @s2n_strerror(i32 noundef %3549, ptr noundef nonnull @.str.16) #13
  %3551 = load i32, ptr %193, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror_debug(i32 noundef %3551, ptr noundef nonnull @.str.16) #13
  %3553 = load i32, ptr %247, align 4, !tbaa !5
  %3554 = call ptr @strerror(i32 noundef %3553) #13
  %3555 = load i32, ptr %247, align 4, !tbaa !5
  %3556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3547, ptr noundef nonnull %.str.17.sink1861, i32 noundef %3548, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 408, ptr noundef %3550, ptr noundef %3552, ptr noundef %3554, i32 noundef %3555) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3557:                                             ; preds = %3531
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %29, i8 0, i64 24, i1 false)
  %3558 = load i32, ptr @test_count, align 4, !tbaa !5
  %3559 = add nsw i32 %3558, 1
  store i32 %3559, ptr @test_count, align 4, !tbaa !5
  %3560 = call i32 @s2n_alloc(ptr noundef nonnull %29, i32 noundef 1) #13
  %3561 = icmp eq i32 %3560, -1
  br i1 %3561, label %3562, label %3584

3562:                                             ; preds = %3557
  %3563 = load i32, ptr %247, align 4, !tbaa !5
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = call i32 @s2n_print_stacktrace(ptr noundef %3564) #13
  %3566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3567 = trunc nuw i8 %3566 to i1
  br i1 %3567, label %3568, label %3572

3568:                                             ; preds = %3562
  %3569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3570 = call i32 @fileno(ptr noundef %3569) #13
  %3571 = call i32 @isatty(i32 noundef %3570) #13
  %.not607 = icmp eq i32 %3571, 0
  br i1 %.not607, label %3572, label %3573

3572:                                             ; preds = %3568, %3562
  br label %3573

3573:                                             ; preds = %3568, %3572
  %.str.17.sink1870 = phi ptr [ @.str.17, %3572 ], [ @.str.14, %3568 ]
  store i32 %3563, ptr %247, align 4, !tbaa !5
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = load i32, ptr %193, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror(i32 noundef %3576, ptr noundef nonnull @.str.16) #13
  %3578 = load i32, ptr %193, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror_debug(i32 noundef %3578, ptr noundef nonnull @.str.16) #13
  %3580 = load i32, ptr %247, align 4, !tbaa !5
  %3581 = call ptr @strerror(i32 noundef %3580) #13
  %3582 = load i32, ptr %247, align 4, !tbaa !5
  %3583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3574, ptr noundef nonnull %.str.17.sink1870, i32 noundef %3575, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.13, i32 noundef 411, ptr noundef %3577, ptr noundef %3579, ptr noundef %3581, i32 noundef %3582) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3584:                                             ; preds = %3557
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %30, i8 0, i64 40, i1 false)
  %3585 = load i32, ptr @test_count, align 4, !tbaa !5
  %3586 = add nsw i32 %3585, 1
  store i32 %3586, ptr @test_count, align 4, !tbaa !5
  %3587 = call i32 @s2n_stuffer_init(ptr noundef nonnull %30, ptr noundef nonnull %29) #13
  %3588 = icmp eq i32 %3587, -1
  br i1 %3588, label %3589, label %3611

3589:                                             ; preds = %3584
  %3590 = load i32, ptr %247, align 4, !tbaa !5
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = call i32 @s2n_print_stacktrace(ptr noundef %3591) #13
  %3593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3594 = trunc nuw i8 %3593 to i1
  br i1 %3594, label %3595, label %3599

3595:                                             ; preds = %3589
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = call i32 @fileno(ptr noundef %3596) #13
  %3598 = call i32 @isatty(i32 noundef %3597) #13
  %.not606 = icmp eq i32 %3598, 0
  br i1 %.not606, label %3599, label %3600

3599:                                             ; preds = %3595, %3589
  br label %3600

3600:                                             ; preds = %3595, %3599
  %.str.17.sink1879 = phi ptr [ @.str.17, %3599 ], [ @.str.14, %3595 ]
  store i32 %3590, ptr %247, align 4, !tbaa !5
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = load i32, ptr %193, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror(i32 noundef %3603, ptr noundef nonnull @.str.16) #13
  %3605 = load i32, ptr %193, align 4, !tbaa !5
  %3606 = call ptr @s2n_strerror_debug(i32 noundef %3605, ptr noundef nonnull @.str.16) #13
  %3607 = load i32, ptr %247, align 4, !tbaa !5
  %3608 = call ptr @strerror(i32 noundef %3607) #13
  %3609 = load i32, ptr %247, align 4, !tbaa !5
  %3610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3601, ptr noundef nonnull %.str.17.sink1879, i32 noundef %3602, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 413, ptr noundef %3604, ptr noundef %3606, ptr noundef %3608, i32 noundef %3609) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3611:                                             ; preds = %3584
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = add nsw i32 %3612, 1
  store i32 %3613, ptr @test_count, align 4, !tbaa !5
  %3614 = call i32 @s2n_kem_recv_ciphertext(ptr noundef nonnull %30, ptr noundef null) #13
  %3615 = icmp eq i32 %3614, -1
  br i1 %3615, label %3638, label %3616

3616:                                             ; preds = %3611
  %3617 = load i32, ptr %247, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = call i32 @s2n_print_stacktrace(ptr noundef %3618) #13
  %3620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3621 = trunc nuw i8 %3620 to i1
  br i1 %3621, label %3622, label %3626

3622:                                             ; preds = %3616
  %3623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3624 = call i32 @fileno(ptr noundef %3623) #13
  %3625 = call i32 @isatty(i32 noundef %3624) #13
  %.not548 = icmp eq i32 %3625, 0
  br i1 %.not548, label %3626, label %3627

3626:                                             ; preds = %3622, %3616
  br label %3627

3627:                                             ; preds = %3622, %3626
  %.str.17.sink1888 = phi ptr [ @.str.17, %3626 ], [ @.str.14, %3622 ]
  store i32 %3617, ptr %247, align 4, !tbaa !5
  %3628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3629 = load i32, ptr @test_count, align 4, !tbaa !5
  %3630 = load i32, ptr %193, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror(i32 noundef %3630, ptr noundef nonnull @.str.16) #13
  %3632 = load i32, ptr %193, align 4, !tbaa !5
  %3633 = call ptr @s2n_strerror_debug(i32 noundef %3632, ptr noundef nonnull @.str.16) #13
  %3634 = load i32, ptr %247, align 4, !tbaa !5
  %3635 = call ptr @strerror(i32 noundef %3634) #13
  %3636 = load i32, ptr %247, align 4, !tbaa !5
  %3637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3628, ptr noundef nonnull %.str.17.sink1888, i32 noundef %3629, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.13, i32 noundef 415, ptr noundef %3631, ptr noundef %3633, ptr noundef %3635, i32 noundef %3636) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3638:                                             ; preds = %3611
  %3639 = load i32, ptr @test_count, align 4, !tbaa !5
  %3640 = add nsw i32 %3639, 1
  store i32 %3640, ptr @test_count, align 4, !tbaa !5
  %3641 = load i32, ptr %193, align 4, !tbaa !5
  %3642 = icmp eq i32 %3641, 402653193
  br i1 %3642, label %3665, label %3643

3643:                                             ; preds = %3638
  %3644 = load i32, ptr %247, align 4, !tbaa !5
  %3645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3646 = call i32 @s2n_print_stacktrace(ptr noundef %3645) #13
  %3647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3648 = trunc nuw i8 %3647 to i1
  br i1 %3648, label %3649, label %3653

3649:                                             ; preds = %3643
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = call i32 @fileno(ptr noundef %3650) #13
  %3652 = call i32 @isatty(i32 noundef %3651) #13
  %.not549 = icmp eq i32 %3652, 0
  br i1 %.not549, label %3653, label %3654

3653:                                             ; preds = %3649, %3643
  br label %3654

3654:                                             ; preds = %3649, %3653
  %.str.17.sink1897 = phi ptr [ @.str.17, %3653 ], [ @.str.14, %3649 ]
  store i32 %3644, ptr %247, align 4, !tbaa !5
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = load i32, ptr %193, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror(i32 noundef %3657, ptr noundef nonnull @.str.16) #13
  %3659 = load i32, ptr %193, align 4, !tbaa !5
  %3660 = call ptr @s2n_strerror_debug(i32 noundef %3659, ptr noundef nonnull @.str.16) #13
  %3661 = load i32, ptr %247, align 4, !tbaa !5
  %3662 = call ptr @strerror(i32 noundef %3661) #13
  %3663 = load i32, ptr %247, align 4, !tbaa !5
  %3664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3655, ptr noundef nonnull %.str.17.sink1897, i32 noundef %3656, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 415, ptr noundef %3658, ptr noundef %3660, ptr noundef %3662, i32 noundef %3663) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3665:                                             ; preds = %3638
  %3666 = add nsw i32 %3639, 2
  store i32 %3666, ptr @test_count, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %3668 = icmp eq ptr %3667, null
  br i1 %3668, label %3669, label %3691

3669:                                             ; preds = %3665
  %3670 = load i32, ptr %247, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = call i32 @s2n_print_stacktrace(ptr noundef %3671) #13
  %3673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3674 = trunc nuw i8 %3673 to i1
  br i1 %3674, label %3675, label %3679

3675:                                             ; preds = %3669
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = call i32 @fileno(ptr noundef %3676) #13
  %3678 = call i32 @isatty(i32 noundef %3677) #13
  %.not605 = icmp eq i32 %3678, 0
  br i1 %.not605, label %3679, label %3680

3679:                                             ; preds = %3675, %3669
  br label %3680

3680:                                             ; preds = %3675, %3679
  %.str.17.sink1906 = phi ptr [ @.str.17, %3679 ], [ @.str.14, %3675 ]
  store i32 %3670, ptr %247, align 4, !tbaa !5
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = load i32, ptr @test_count, align 4, !tbaa !5
  %3683 = load i32, ptr %193, align 4, !tbaa !5
  %3684 = call ptr @s2n_strerror(i32 noundef %3683, ptr noundef nonnull @.str.16) #13
  %3685 = load i32, ptr %193, align 4, !tbaa !5
  %3686 = call ptr @s2n_strerror_debug(i32 noundef %3685, ptr noundef nonnull @.str.16) #13
  %3687 = load i32, ptr %247, align 4, !tbaa !5
  %3688 = call ptr @strerror(i32 noundef %3687) #13
  %3689 = load i32, ptr %247, align 4, !tbaa !5
  %3690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3681, ptr noundef nonnull %.str.17.sink1906, i32 noundef %3682, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 415, ptr noundef %3684, ptr noundef %3686, ptr noundef %3688, i32 noundef %3689) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3691:                                             ; preds = %3665
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %31) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %31, i8 0, i64 88, i1 false)
  store i8 %.04467082359, ptr %925, align 8, !tbaa !29
  %3692 = load i32, ptr @test_count, align 4, !tbaa !5
  %3693 = add nsw i32 %3692, 1
  store i32 %3693, ptr @test_count, align 4, !tbaa !5
  %3694 = call i32 @s2n_kem_recv_ciphertext(ptr noundef nonnull %30, ptr noundef nonnull %31) #13
  %3695 = icmp eq i32 %3694, -1
  br i1 %3695, label %3718, label %3696

3696:                                             ; preds = %3691
  %3697 = load i32, ptr %247, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = call i32 @s2n_print_stacktrace(ptr noundef %3698) #13
  %3700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3701 = trunc nuw i8 %3700 to i1
  br i1 %3701, label %3702, label %3706

3702:                                             ; preds = %3696
  %3703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3704 = call i32 @fileno(ptr noundef %3703) #13
  %3705 = call i32 @isatty(i32 noundef %3704) #13
  %.not550 = icmp eq i32 %3705, 0
  br i1 %.not550, label %3706, label %3707

3706:                                             ; preds = %3702, %3696
  br label %3707

3707:                                             ; preds = %3702, %3706
  %.str.17.sink1915 = phi ptr [ @.str.17, %3706 ], [ @.str.14, %3702 ]
  store i32 %3697, ptr %247, align 4, !tbaa !5
  %3708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3709 = load i32, ptr @test_count, align 4, !tbaa !5
  %3710 = load i32, ptr %193, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror(i32 noundef %3710, ptr noundef nonnull @.str.16) #13
  %3712 = load i32, ptr %193, align 4, !tbaa !5
  %3713 = call ptr @s2n_strerror_debug(i32 noundef %3712, ptr noundef nonnull @.str.16) #13
  %3714 = load i32, ptr %247, align 4, !tbaa !5
  %3715 = call ptr @strerror(i32 noundef %3714) #13
  %3716 = load i32, ptr %247, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3708, ptr noundef nonnull %.str.17.sink1915, i32 noundef %3709, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.13, i32 noundef 419, ptr noundef %3711, ptr noundef %3713, ptr noundef %3715, i32 noundef %3716) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3718:                                             ; preds = %3691
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = add nsw i32 %3719, 1
  store i32 %3720, ptr @test_count, align 4, !tbaa !5
  %3721 = load i32, ptr %193, align 4, !tbaa !5
  %3722 = icmp eq i32 %3721, 402653193
  br i1 %3722, label %3745, label %3723

3723:                                             ; preds = %3718
  %3724 = load i32, ptr %247, align 4, !tbaa !5
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = call i32 @s2n_print_stacktrace(ptr noundef %3725) #13
  %3727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3728 = trunc nuw i8 %3727 to i1
  br i1 %3728, label %3729, label %3733

3729:                                             ; preds = %3723
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = call i32 @fileno(ptr noundef %3730) #13
  %3732 = call i32 @isatty(i32 noundef %3731) #13
  %.not551 = icmp eq i32 %3732, 0
  br i1 %.not551, label %3733, label %3734

3733:                                             ; preds = %3729, %3723
  br label %3734

3734:                                             ; preds = %3729, %3733
  %.str.17.sink1924 = phi ptr [ @.str.17, %3733 ], [ @.str.14, %3729 ]
  store i32 %3724, ptr %247, align 4, !tbaa !5
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = load i32, ptr @test_count, align 4, !tbaa !5
  %3737 = load i32, ptr %193, align 4, !tbaa !5
  %3738 = call ptr @s2n_strerror(i32 noundef %3737, ptr noundef nonnull @.str.16) #13
  %3739 = load i32, ptr %193, align 4, !tbaa !5
  %3740 = call ptr @s2n_strerror_debug(i32 noundef %3739, ptr noundef nonnull @.str.16) #13
  %3741 = load i32, ptr %247, align 4, !tbaa !5
  %3742 = call ptr @strerror(i32 noundef %3741) #13
  %3743 = load i32, ptr %247, align 4, !tbaa !5
  %3744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3735, ptr noundef nonnull %.str.17.sink1924, i32 noundef %3736, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 419, ptr noundef %3738, ptr noundef %3740, ptr noundef %3742, i32 noundef %3743) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3745:                                             ; preds = %3718
  %3746 = add nsw i32 %3719, 2
  store i32 %3746, ptr @test_count, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %3748 = icmp eq ptr %3747, null
  br i1 %3748, label %3749, label %3771

3749:                                             ; preds = %3745
  %3750 = load i32, ptr %247, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @s2n_print_stacktrace(ptr noundef %3751) #13
  %3753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3754 = trunc nuw i8 %3753 to i1
  br i1 %3754, label %3755, label %3759

3755:                                             ; preds = %3749
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @fileno(ptr noundef %3756) #13
  %3758 = call i32 @isatty(i32 noundef %3757) #13
  %.not604 = icmp eq i32 %3758, 0
  br i1 %.not604, label %3759, label %3760

3759:                                             ; preds = %3755, %3749
  br label %3760

3760:                                             ; preds = %3755, %3759
  %.str.17.sink1933 = phi ptr [ @.str.17, %3759 ], [ @.str.14, %3755 ]
  store i32 %3750, ptr %247, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = load i32, ptr @test_count, align 4, !tbaa !5
  %3763 = load i32, ptr %193, align 4, !tbaa !5
  %3764 = call ptr @s2n_strerror(i32 noundef %3763, ptr noundef nonnull @.str.16) #13
  %3765 = load i32, ptr %193, align 4, !tbaa !5
  %3766 = call ptr @s2n_strerror_debug(i32 noundef %3765, ptr noundef nonnull @.str.16) #13
  %3767 = load i32, ptr %247, align 4, !tbaa !5
  %3768 = call ptr @strerror(i32 noundef %3767) #13
  %3769 = load i32, ptr %247, align 4, !tbaa !5
  %3770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3761, ptr noundef nonnull %.str.17.sink1933, i32 noundef %3762, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 419, ptr noundef %3764, ptr noundef %3766, ptr noundef %3768, i32 noundef %3769) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3771:                                             ; preds = %3745
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  store ptr @s2n_test_kem, ptr %31, align 8, !tbaa !28
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = add nsw i32 %3772, 1
  store i32 %3773, ptr @test_count, align 4, !tbaa !5
  %3774 = call i32 @s2n_kem_recv_ciphertext(ptr noundef nonnull %30, ptr noundef nonnull %31) #13
  %3775 = icmp eq i32 %3774, -1
  br i1 %3775, label %3798, label %3776

3776:                                             ; preds = %3771
  %3777 = load i32, ptr %247, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @s2n_print_stacktrace(ptr noundef %3778) #13
  %3780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3781 = trunc nuw i8 %3780 to i1
  br i1 %3781, label %3782, label %3786

3782:                                             ; preds = %3776
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @fileno(ptr noundef %3783) #13
  %3785 = call i32 @isatty(i32 noundef %3784) #13
  %.not552 = icmp eq i32 %3785, 0
  br i1 %.not552, label %3786, label %3787

3786:                                             ; preds = %3782, %3776
  br label %3787

3787:                                             ; preds = %3782, %3786
  %.str.17.sink1942 = phi ptr [ @.str.17, %3786 ], [ @.str.14, %3782 ]
  store i32 %3777, ptr %247, align 4, !tbaa !5
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = load i32, ptr @test_count, align 4, !tbaa !5
  %3790 = load i32, ptr %193, align 4, !tbaa !5
  %3791 = call ptr @s2n_strerror(i32 noundef %3790, ptr noundef nonnull @.str.16) #13
  %3792 = load i32, ptr %193, align 4, !tbaa !5
  %3793 = call ptr @s2n_strerror_debug(i32 noundef %3792, ptr noundef nonnull @.str.16) #13
  %3794 = load i32, ptr %247, align 4, !tbaa !5
  %3795 = call ptr @strerror(i32 noundef %3794) #13
  %3796 = load i32, ptr %247, align 4, !tbaa !5
  %3797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3788, ptr noundef nonnull %.str.17.sink1942, i32 noundef %3789, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.13, i32 noundef 422, ptr noundef %3791, ptr noundef %3793, ptr noundef %3795, i32 noundef %3796) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3798:                                             ; preds = %3771
  %3799 = load i32, ptr @test_count, align 4, !tbaa !5
  %3800 = add nsw i32 %3799, 1
  store i32 %3800, ptr @test_count, align 4, !tbaa !5
  %3801 = load i32, ptr %193, align 4, !tbaa !5
  %3802 = icmp eq i32 %3801, 402653193
  br i1 %3802, label %3825, label %3803

3803:                                             ; preds = %3798
  %3804 = load i32, ptr %247, align 4, !tbaa !5
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = call i32 @s2n_print_stacktrace(ptr noundef %3805) #13
  %3807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3808 = trunc nuw i8 %3807 to i1
  br i1 %3808, label %3809, label %3813

3809:                                             ; preds = %3803
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = call i32 @fileno(ptr noundef %3810) #13
  %3812 = call i32 @isatty(i32 noundef %3811) #13
  %.not553 = icmp eq i32 %3812, 0
  br i1 %.not553, label %3813, label %3814

3813:                                             ; preds = %3809, %3803
  br label %3814

3814:                                             ; preds = %3809, %3813
  %.str.17.sink1951 = phi ptr [ @.str.17, %3813 ], [ @.str.14, %3809 ]
  store i32 %3804, ptr %247, align 4, !tbaa !5
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = load i32, ptr @test_count, align 4, !tbaa !5
  %3817 = load i32, ptr %193, align 4, !tbaa !5
  %3818 = call ptr @s2n_strerror(i32 noundef %3817, ptr noundef nonnull @.str.16) #13
  %3819 = load i32, ptr %193, align 4, !tbaa !5
  %3820 = call ptr @s2n_strerror_debug(i32 noundef %3819, ptr noundef nonnull @.str.16) #13
  %3821 = load i32, ptr %247, align 4, !tbaa !5
  %3822 = call ptr @strerror(i32 noundef %3821) #13
  %3823 = load i32, ptr %247, align 4, !tbaa !5
  %3824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3815, ptr noundef nonnull %.str.17.sink1951, i32 noundef %3816, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 422, ptr noundef %3818, ptr noundef %3820, ptr noundef %3822, i32 noundef %3823) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3825:                                             ; preds = %3798
  %3826 = add nsw i32 %3799, 2
  store i32 %3826, ptr @test_count, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %3828 = icmp eq ptr %3827, null
  br i1 %3828, label %3829, label %3851

3829:                                             ; preds = %3825
  %3830 = load i32, ptr %247, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = call i32 @s2n_print_stacktrace(ptr noundef %3831) #13
  %3833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3834 = trunc nuw i8 %3833 to i1
  br i1 %3834, label %3835, label %3839

3835:                                             ; preds = %3829
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = call i32 @fileno(ptr noundef %3836) #13
  %3838 = call i32 @isatty(i32 noundef %3837) #13
  %.not603 = icmp eq i32 %3838, 0
  br i1 %.not603, label %3839, label %3840

3839:                                             ; preds = %3835, %3829
  br label %3840

3840:                                             ; preds = %3835, %3839
  %.str.17.sink1960 = phi ptr [ @.str.17, %3839 ], [ @.str.14, %3835 ]
  store i32 %3830, ptr %247, align 4, !tbaa !5
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = load i32, ptr @test_count, align 4, !tbaa !5
  %3843 = load i32, ptr %193, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef nonnull @.str.16) #13
  %3845 = load i32, ptr %193, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror_debug(i32 noundef %3845, ptr noundef nonnull @.str.16) #13
  %3847 = load i32, ptr %247, align 4, !tbaa !5
  %3848 = call ptr @strerror(i32 noundef %3847) #13
  %3849 = load i32, ptr %247, align 4, !tbaa !5
  %3850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3841, ptr noundef nonnull %.str.17.sink1960, i32 noundef %3842, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 422, ptr noundef %3844, ptr noundef %3846, ptr noundef %3848, i32 noundef %3849) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3851:                                             ; preds = %3825
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  %3852 = load i32, ptr @test_count, align 4, !tbaa !5
  %3853 = add nsw i32 %3852, 1
  store i32 %3853, ptr @test_count, align 4, !tbaa !5
  %3854 = call i32 @s2n_alloc(ptr noundef nonnull %926, i32 noundef 3) #13
  %3855 = icmp eq i32 %3854, -1
  br i1 %3855, label %3856, label %3878

3856:                                             ; preds = %3851
  %3857 = load i32, ptr %247, align 4, !tbaa !5
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @s2n_print_stacktrace(ptr noundef %3858) #13
  %3860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3861 = trunc nuw i8 %3860 to i1
  br i1 %3861, label %3862, label %3866

3862:                                             ; preds = %3856
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = call i32 @fileno(ptr noundef %3863) #13
  %3865 = call i32 @isatty(i32 noundef %3864) #13
  %.not602 = icmp eq i32 %3865, 0
  br i1 %.not602, label %3866, label %3867

3866:                                             ; preds = %3862, %3856
  br label %3867

3867:                                             ; preds = %3862, %3866
  %.str.17.sink1969 = phi ptr [ @.str.17, %3866 ], [ @.str.14, %3862 ]
  store i32 %3857, ptr %247, align 4, !tbaa !5
  %3868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3869 = load i32, ptr @test_count, align 4, !tbaa !5
  %3870 = load i32, ptr %193, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror(i32 noundef %3870, ptr noundef nonnull @.str.16) #13
  %3872 = load i32, ptr %193, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror_debug(i32 noundef %3872, ptr noundef nonnull @.str.16) #13
  %3874 = load i32, ptr %247, align 4, !tbaa !5
  %3875 = call ptr @strerror(i32 noundef %3874) #13
  %3876 = load i32, ptr %247, align 4, !tbaa !5
  %3877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3868, ptr noundef nonnull %.str.17.sink1969, i32 noundef %3869, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.13, i32 noundef 425, ptr noundef %3871, ptr noundef %3873, ptr noundef %3875, i32 noundef %3876) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3878:                                             ; preds = %3851
  %3879 = load ptr, ptr %926, align 8, !tbaa !33
  %3880 = call ptr @s2n_ensure_memmove_trace(ptr noundef %3879, ptr noundef nonnull @TEST_PRIVATE_KEY, i64 noundef 3) #13
  %.not554.not.not.not = icmp eq ptr %3880, null
  br i1 %.not554.not.not.not, label %.critedge676, label %3881

3881:                                             ; preds = %3878
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, i8 0, i64 24, i1 false)
  %3882 = load i32, ptr @test_count, align 4, !tbaa !5
  %3883 = add nsw i32 %3882, 1
  store i32 %3883, ptr @test_count, align 4, !tbaa !5
  %3884 = call i32 @s2n_alloc(ptr noundef nonnull %32, i32 noundef 7) #13
  %3885 = icmp eq i32 %3884, -1
  br i1 %3885, label %3886, label %3908

3886:                                             ; preds = %3881
  %3887 = load i32, ptr %247, align 4, !tbaa !5
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = call i32 @s2n_print_stacktrace(ptr noundef %3888) #13
  %3890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3891 = trunc nuw i8 %3890 to i1
  br i1 %3891, label %3892, label %3896

3892:                                             ; preds = %3886
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = call i32 @fileno(ptr noundef %3893) #13
  %3895 = call i32 @isatty(i32 noundef %3894) #13
  %.not601 = icmp eq i32 %3895, 0
  br i1 %.not601, label %3896, label %3897

3896:                                             ; preds = %3892, %3886
  br label %3897

3897:                                             ; preds = %3892, %3896
  %.str.17.sink1978 = phi ptr [ @.str.17, %3896 ], [ @.str.14, %3892 ]
  store i32 %3887, ptr %247, align 4, !tbaa !5
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = load i32, ptr @test_count, align 4, !tbaa !5
  %3900 = load i32, ptr %193, align 4, !tbaa !5
  %3901 = call ptr @s2n_strerror(i32 noundef %3900, ptr noundef nonnull @.str.16) #13
  %3902 = load i32, ptr %193, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef nonnull @.str.16) #13
  %3904 = load i32, ptr %247, align 4, !tbaa !5
  %3905 = call ptr @strerror(i32 noundef %3904) #13
  %3906 = load i32, ptr %247, align 4, !tbaa !5
  %3907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3898, ptr noundef nonnull %.str.17.sink1978, i32 noundef %3899, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.13, i32 noundef 428, ptr noundef %3901, ptr noundef %3903, ptr noundef %3905, i32 noundef %3906) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3908:                                             ; preds = %3881
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %33, i8 0, i64 40, i1 false)
  %3909 = load i32, ptr @test_count, align 4, !tbaa !5
  %3910 = add nsw i32 %3909, 1
  store i32 %3910, ptr @test_count, align 4, !tbaa !5
  %3911 = call i32 @s2n_stuffer_init(ptr noundef nonnull %33, ptr noundef nonnull %32) #13
  %3912 = icmp eq i32 %3911, -1
  br i1 %3912, label %3913, label %3935

3913:                                             ; preds = %3908
  %3914 = load i32, ptr %247, align 4, !tbaa !5
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = call i32 @s2n_print_stacktrace(ptr noundef %3915) #13
  %3917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3918 = trunc nuw i8 %3917 to i1
  br i1 %3918, label %3919, label %3923

3919:                                             ; preds = %3913
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = call i32 @fileno(ptr noundef %3920) #13
  %3922 = call i32 @isatty(i32 noundef %3921) #13
  %.not600 = icmp eq i32 %3922, 0
  br i1 %.not600, label %3923, label %3924

3923:                                             ; preds = %3919, %3913
  br label %3924

3924:                                             ; preds = %3919, %3923
  %.str.17.sink1987 = phi ptr [ @.str.17, %3923 ], [ @.str.14, %3919 ]
  store i32 %3914, ptr %247, align 4, !tbaa !5
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = load i32, ptr @test_count, align 4, !tbaa !5
  %3927 = load i32, ptr %193, align 4, !tbaa !5
  %3928 = call ptr @s2n_strerror(i32 noundef %3927, ptr noundef nonnull @.str.16) #13
  %3929 = load i32, ptr %193, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror_debug(i32 noundef %3929, ptr noundef nonnull @.str.16) #13
  %3931 = load i32, ptr %247, align 4, !tbaa !5
  %3932 = call ptr @strerror(i32 noundef %3931) #13
  %3933 = load i32, ptr %247, align 4, !tbaa !5
  %3934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3925, ptr noundef nonnull %.str.17.sink1987, i32 noundef %3926, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.13, i32 noundef 430, ptr noundef %3928, ptr noundef %3930, ptr noundef %3932, i32 noundef %3933) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3935:                                             ; preds = %3908
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #13
  store i32 %927, ptr %34, align 4
  %3936 = load i32, ptr @test_count, align 4, !tbaa !5
  %3937 = add nsw i32 %3936, 1
  store i32 %3937, ptr @test_count, align 4, !tbaa !5
  %3938 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %33, ptr noundef nonnull %34, i32 noundef 4) #13
  %3939 = icmp eq i32 %3938, -1
  br i1 %3939, label %3940, label %3962

3940:                                             ; preds = %3935
  %3941 = load i32, ptr %247, align 4, !tbaa !5
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = call i32 @s2n_print_stacktrace(ptr noundef %3942) #13
  %3944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3945 = trunc nuw i8 %3944 to i1
  br i1 %3945, label %3946, label %3950

3946:                                             ; preds = %3940
  %3947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3948 = call i32 @fileno(ptr noundef %3947) #13
  %3949 = call i32 @isatty(i32 noundef %3948) #13
  %.not599 = icmp eq i32 %3949, 0
  br i1 %.not599, label %3950, label %3951

3950:                                             ; preds = %3946, %3940
  br label %3951

3951:                                             ; preds = %3946, %3950
  %.str.17.sink1996 = phi ptr [ @.str.17, %3950 ], [ @.str.14, %3946 ]
  store i32 %3941, ptr %247, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = load i32, ptr %193, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror(i32 noundef %3954, ptr noundef nonnull @.str.16) #13
  %3956 = load i32, ptr %193, align 4, !tbaa !5
  %3957 = call ptr @s2n_strerror_debug(i32 noundef %3956, ptr noundef nonnull @.str.16) #13
  %3958 = load i32, ptr %247, align 4, !tbaa !5
  %3959 = call ptr @strerror(i32 noundef %3958) #13
  %3960 = load i32, ptr %247, align 4, !tbaa !5
  %3961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef nonnull %.str.17.sink1996, i32 noundef %3953, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.13, i32 noundef 432, ptr noundef %3955, ptr noundef %3957, ptr noundef %3959, i32 noundef %3960) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3962:                                             ; preds = %3935
  %3963 = load i32, ptr @test_count, align 4, !tbaa !5
  %3964 = add nsw i32 %3963, 1
  store i32 %3964, ptr @test_count, align 4, !tbaa !5
  %3965 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %33) #13
  %3966 = icmp eq i32 %3965, -1
  br i1 %3966, label %3967, label %3989

3967:                                             ; preds = %3962
  %3968 = load i32, ptr %247, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = call i32 @s2n_print_stacktrace(ptr noundef %3969) #13
  %3971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3972 = trunc nuw i8 %3971 to i1
  br i1 %3972, label %3973, label %3977

3973:                                             ; preds = %3967
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = call i32 @fileno(ptr noundef %3974) #13
  %3976 = call i32 @isatty(i32 noundef %3975) #13
  %.not598 = icmp eq i32 %3976, 0
  br i1 %.not598, label %3977, label %3978

3977:                                             ; preds = %3973, %3967
  br label %3978

3978:                                             ; preds = %3973, %3977
  %.str.17.sink2005 = phi ptr [ @.str.17, %3977 ], [ @.str.14, %3973 ]
  store i32 %3968, ptr %247, align 4, !tbaa !5
  %3979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3980 = load i32, ptr @test_count, align 4, !tbaa !5
  %3981 = load i32, ptr %193, align 4, !tbaa !5
  %3982 = call ptr @s2n_strerror(i32 noundef %3981, ptr noundef nonnull @.str.16) #13
  %3983 = load i32, ptr %193, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror_debug(i32 noundef %3983, ptr noundef nonnull @.str.16) #13
  %3985 = load i32, ptr %247, align 4, !tbaa !5
  %3986 = call ptr @strerror(i32 noundef %3985) #13
  %3987 = load i32, ptr %247, align 4, !tbaa !5
  %3988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3979, ptr noundef nonnull %.str.17.sink2005, i32 noundef %3980, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.13, i32 noundef 433, ptr noundef %3982, ptr noundef %3984, ptr noundef %3986, i32 noundef %3987) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3989:                                             ; preds = %3962
  br i1 %.not4672358, label %4071, label %3990

3990:                                             ; preds = %3989
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = add nsw i32 %3991, 1
  store i32 %3992, ptr @test_count, align 4, !tbaa !5
  %3993 = call i32 @s2n_kem_recv_ciphertext(ptr noundef nonnull %33, ptr noundef nonnull %31) #13
  %3994 = icmp eq i32 %3993, -1
  br i1 %3994, label %4017, label %3995

3995:                                             ; preds = %3990
  %3996 = load i32, ptr %247, align 4, !tbaa !5
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3998 = call i32 @s2n_print_stacktrace(ptr noundef %3997) #13
  %3999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4000 = trunc nuw i8 %3999 to i1
  br i1 %4000, label %4001, label %4005

4001:                                             ; preds = %3995
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = call i32 @fileno(ptr noundef %4002) #13
  %4004 = call i32 @isatty(i32 noundef %4003) #13
  %.not556 = icmp eq i32 %4004, 0
  br i1 %.not556, label %4005, label %4006

4005:                                             ; preds = %4001, %3995
  br label %4006

4006:                                             ; preds = %4001, %4005
  %.str.17.sink2014 = phi ptr [ @.str.17, %4005 ], [ @.str.14, %4001 ]
  store i32 %3996, ptr %247, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = load i32, ptr %193, align 4, !tbaa !5
  %4010 = call ptr @s2n_strerror(i32 noundef %4009, ptr noundef nonnull @.str.16) #13
  %4011 = load i32, ptr %193, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef nonnull @.str.16) #13
  %4013 = load i32, ptr %247, align 4, !tbaa !5
  %4014 = call ptr @strerror(i32 noundef %4013) #13
  %4015 = load i32, ptr %247, align 4, !tbaa !5
  %4016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4007, ptr noundef nonnull %.str.17.sink2014, i32 noundef %4008, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.13, i32 noundef 436, ptr noundef %4010, ptr noundef %4012, ptr noundef %4014, i32 noundef %4015) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4017:                                             ; preds = %3990
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = add nsw i32 %4018, 1
  store i32 %4019, ptr @test_count, align 4, !tbaa !5
  %4020 = load i32, ptr %193, align 4, !tbaa !5
  %4021 = icmp eq i32 %4020, 335544322
  br i1 %4021, label %4044, label %4022

4022:                                             ; preds = %4017
  %4023 = load i32, ptr %247, align 4, !tbaa !5
  %4024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4025 = call i32 @s2n_print_stacktrace(ptr noundef %4024) #13
  %4026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4027 = trunc nuw i8 %4026 to i1
  br i1 %4027, label %4028, label %4032

4028:                                             ; preds = %4022
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = call i32 @fileno(ptr noundef %4029) #13
  %4031 = call i32 @isatty(i32 noundef %4030) #13
  %.not557 = icmp eq i32 %4031, 0
  br i1 %.not557, label %4032, label %4033

4032:                                             ; preds = %4028, %4022
  br label %4033

4033:                                             ; preds = %4028, %4032
  %.str.17.sink2023 = phi ptr [ @.str.17, %4032 ], [ @.str.14, %4028 ]
  store i32 %4023, ptr %247, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = load i32, ptr @test_count, align 4, !tbaa !5
  %4036 = load i32, ptr %193, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror(i32 noundef %4036, ptr noundef nonnull @.str.16) #13
  %4038 = load i32, ptr %193, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror_debug(i32 noundef %4038, ptr noundef nonnull @.str.16) #13
  %4040 = load i32, ptr %247, align 4, !tbaa !5
  %4041 = call ptr @strerror(i32 noundef %4040) #13
  %4042 = load i32, ptr %247, align 4, !tbaa !5
  %4043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4034, ptr noundef nonnull %.str.17.sink2023, i32 noundef %4035, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.13, i32 noundef 436, ptr noundef %4037, ptr noundef %4039, ptr noundef %4041, i32 noundef %4042) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4044:                                             ; preds = %4017
  %4045 = add nsw i32 %4018, 2
  store i32 %4045, ptr @test_count, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.16) #13
  %4047 = icmp eq ptr %4046, null
  br i1 %4047, label %4048, label %4070

4048:                                             ; preds = %4044
  %4049 = load i32, ptr %247, align 4, !tbaa !5
  %4050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4051 = call i32 @s2n_print_stacktrace(ptr noundef %4050) #13
  %4052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4053 = trunc nuw i8 %4052 to i1
  br i1 %4053, label %4054, label %4058

4054:                                             ; preds = %4048
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @fileno(ptr noundef %4055) #13
  %4057 = call i32 @isatty(i32 noundef %4056) #13
  %.not597 = icmp eq i32 %4057, 0
  br i1 %.not597, label %4058, label %4059

4058:                                             ; preds = %4054, %4048
  br label %4059

4059:                                             ; preds = %4054, %4058
  %.str.17.sink2032 = phi ptr [ @.str.17, %4058 ], [ @.str.14, %4054 ]
  store i32 %4049, ptr %247, align 4, !tbaa !5
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = load i32, ptr @test_count, align 4, !tbaa !5
  %4062 = load i32, ptr %193, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror(i32 noundef %4062, ptr noundef nonnull @.str.16) #13
  %4064 = load i32, ptr %193, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror_debug(i32 noundef %4064, ptr noundef nonnull @.str.16) #13
  %4066 = load i32, ptr %247, align 4, !tbaa !5
  %4067 = call ptr @strerror(i32 noundef %4066) #13
  %4068 = load i32, ptr %247, align 4, !tbaa !5
  %4069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4060, ptr noundef nonnull %.str.17.sink2032, i32 noundef %4061, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 436, ptr noundef %4063, ptr noundef %4065, ptr noundef %4067, i32 noundef %4068) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4070:                                             ; preds = %4044
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  br label %4071

4071:                                             ; preds = %3989, %4070
  %4072 = load i32, ptr @test_count, align 4, !tbaa !5
  %4073 = add nsw i32 %4072, 1
  store i32 %4073, ptr @test_count, align 4, !tbaa !5
  %4074 = load i32, ptr %928, align 4, !tbaa !39
  %4075 = icmp eq i32 %4074, 0
  br i1 %4075, label %4076, label %4098

4076:                                             ; preds = %4071
  %4077 = load i32, ptr %247, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = call i32 @s2n_print_stacktrace(ptr noundef %4078) #13
  %4080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4081 = trunc nuw i8 %4080 to i1
  br i1 %4081, label %4082, label %4086

4082:                                             ; preds = %4076
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = call i32 @fileno(ptr noundef %4083) #13
  %4085 = call i32 @isatty(i32 noundef %4084) #13
  %.not596 = icmp eq i32 %4085, 0
  br i1 %.not596, label %4086, label %4087

4086:                                             ; preds = %4082, %4076
  br label %4087

4087:                                             ; preds = %4082, %4086
  %.str.17.sink2041 = phi ptr [ @.str.17, %4086 ], [ @.str.14, %4082 ]
  store i32 %4077, ptr %247, align 4, !tbaa !5
  %4088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4089 = load i32, ptr @test_count, align 4, !tbaa !5
  %4090 = load i32, ptr %193, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror(i32 noundef %4090, ptr noundef nonnull @.str.16) #13
  %4092 = load i32, ptr %193, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror_debug(i32 noundef %4092, ptr noundef nonnull @.str.16) #13
  %4094 = load i32, ptr %247, align 4, !tbaa !5
  %4095 = call ptr @strerror(i32 noundef %4094) #13
  %4096 = load i32, ptr %247, align 4, !tbaa !5
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4088, ptr noundef nonnull %.str.17.sink2041, i32 noundef %4089, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.13, i32 noundef 441, ptr noundef %4091, ptr noundef %4093, ptr noundef %4095, i32 noundef %4096) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4098:                                             ; preds = %4071
  %4099 = add nsw i32 %4072, 2
  store i32 %4099, ptr @test_count, align 4, !tbaa !5
  %4100 = load i32, ptr %929, align 4, !tbaa !42
  %4101 = icmp eq i32 %4100, 0
  br i1 %4101, label %4124, label %4102

4102:                                             ; preds = %4098
  %4103 = load i32, ptr %247, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = call i32 @s2n_print_stacktrace(ptr noundef %4104) #13
  %4106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4107 = trunc nuw i8 %4106 to i1
  br i1 %4107, label %4108, label %4112

4108:                                             ; preds = %4102
  %4109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4110 = call i32 @fileno(ptr noundef %4109) #13
  %4111 = call i32 @isatty(i32 noundef %4110) #13
  %.not558 = icmp eq i32 %4111, 0
  br i1 %.not558, label %4112, label %4113

4112:                                             ; preds = %4108, %4102
  br label %4113

4113:                                             ; preds = %4108, %4112
  %.str.17.sink2050 = phi ptr [ @.str.17, %4112 ], [ @.str.14, %4108 ]
  store i32 %4103, ptr %247, align 4, !tbaa !5
  %4114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4115 = load i32, ptr @test_count, align 4, !tbaa !5
  %4116 = load i32, ptr %193, align 4, !tbaa !5
  %4117 = call ptr @s2n_strerror(i32 noundef %4116, ptr noundef nonnull @.str.16) #13
  %4118 = load i32, ptr %193, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef nonnull @.str.16) #13
  %4120 = load i32, ptr %247, align 4, !tbaa !5
  %4121 = call ptr @strerror(i32 noundef %4120) #13
  %4122 = load i32, ptr %247, align 4, !tbaa !5
  %4123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4114, ptr noundef nonnull %.str.17.sink2050, i32 noundef %4115, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.13, i32 noundef 442, ptr noundef %4117, ptr noundef %4119, ptr noundef %4121, i32 noundef %4122) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4124:                                             ; preds = %4098
  %4125 = add nsw i32 %4072, 3
  store i32 %4125, ptr @test_count, align 4, !tbaa !5
  %4126 = load i32, ptr %930, align 4, !tbaa !35
  %4127 = icmp eq i32 %4126, 0
  br i1 %4127, label %4150, label %4128

4128:                                             ; preds = %4124
  %4129 = load i32, ptr %247, align 4, !tbaa !5
  %4130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4131 = call i32 @s2n_print_stacktrace(ptr noundef %4130) #13
  %4132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4133 = trunc nuw i8 %4132 to i1
  br i1 %4133, label %4134, label %4138

4134:                                             ; preds = %4128
  %4135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4136 = call i32 @fileno(ptr noundef %4135) #13
  %4137 = call i32 @isatty(i32 noundef %4136) #13
  %.not559 = icmp eq i32 %4137, 0
  br i1 %.not559, label %4138, label %4139

4138:                                             ; preds = %4134, %4128
  br label %4139

4139:                                             ; preds = %4134, %4138
  %.str.17.sink2059 = phi ptr [ @.str.17, %4138 ], [ @.str.14, %4134 ]
  store i32 %4129, ptr %247, align 4, !tbaa !5
  %4140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = load i32, ptr %193, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror(i32 noundef %4142, ptr noundef nonnull @.str.16) #13
  %4144 = load i32, ptr %193, align 4, !tbaa !5
  %4145 = call ptr @s2n_strerror_debug(i32 noundef %4144, ptr noundef nonnull @.str.16) #13
  %4146 = load i32, ptr %247, align 4, !tbaa !5
  %4147 = call ptr @strerror(i32 noundef %4146) #13
  %4148 = load i32, ptr %247, align 4, !tbaa !5
  %4149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4140, ptr noundef nonnull %.str.17.sink2059, i32 noundef %4141, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.13, i32 noundef 443, ptr noundef %4143, ptr noundef %4145, ptr noundef %4147, i32 noundef %4148) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4150:                                             ; preds = %4124
  %4151 = add nsw i32 %4072, 4
  store i32 %4151, ptr @test_count, align 4, !tbaa !5
  %4152 = call i32 @s2n_kem_free(ptr noundef nonnull %31) #13
  %4153 = icmp eq i32 %4152, -1
  br i1 %4153, label %4154, label %4176

4154:                                             ; preds = %4150
  %4155 = load i32, ptr %247, align 4, !tbaa !5
  %4156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4157 = call i32 @s2n_print_stacktrace(ptr noundef %4156) #13
  %4158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4159 = trunc nuw i8 %4158 to i1
  br i1 %4159, label %4160, label %4164

4160:                                             ; preds = %4154
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @fileno(ptr noundef %4161) #13
  %4163 = call i32 @isatty(i32 noundef %4162) #13
  %.not595 = icmp eq i32 %4163, 0
  br i1 %.not595, label %4164, label %4165

4164:                                             ; preds = %4160, %4154
  br label %4165

4165:                                             ; preds = %4160, %4164
  %.str.17.sink2068 = phi ptr [ @.str.17, %4164 ], [ @.str.14, %4160 ]
  store i32 %4155, ptr %247, align 4, !tbaa !5
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = load i32, ptr @test_count, align 4, !tbaa !5
  %4168 = load i32, ptr %193, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror(i32 noundef %4168, ptr noundef nonnull @.str.16) #13
  %4170 = load i32, ptr %193, align 4, !tbaa !5
  %4171 = call ptr @s2n_strerror_debug(i32 noundef %4170, ptr noundef nonnull @.str.16) #13
  %4172 = load i32, ptr %247, align 4, !tbaa !5
  %4173 = call ptr @strerror(i32 noundef %4172) #13
  %4174 = load i32, ptr %247, align 4, !tbaa !5
  %4175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4166, ptr noundef nonnull %.str.17.sink2068, i32 noundef %4167, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 444, ptr noundef %4169, ptr noundef %4171, ptr noundef %4173, i32 noundef %4174) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4176:                                             ; preds = %4150
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #13
  %4177 = call i32 @s2n_free(ptr noundef nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %31) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #13
  %4178 = call i32 @s2n_free(ptr noundef nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #13
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %35) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %945, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %35, align 8, !tbaa !28
  store i8 %.04467082359, ptr %931, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %36, i8 0, i64 24, i1 false)
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = add nsw i32 %4179, 1
  store i32 %4180, ptr @test_count, align 4, !tbaa !5
  %4181 = call i32 @s2n_alloc(ptr noundef nonnull %36, i32 noundef 4) #13
  %4182 = icmp eq i32 %4181, -1
  br i1 %4182, label %4183, label %4205

4183:                                             ; preds = %4176
  %4184 = load i32, ptr %247, align 4, !tbaa !5
  %4185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4186 = call i32 @s2n_print_stacktrace(ptr noundef %4185) #13
  %4187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4188 = trunc nuw i8 %4187 to i1
  br i1 %4188, label %4189, label %4193

4189:                                             ; preds = %4183
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = call i32 @fileno(ptr noundef %4190) #13
  %4192 = call i32 @isatty(i32 noundef %4191) #13
  %.not594 = icmp eq i32 %4192, 0
  br i1 %.not594, label %4193, label %4194

4193:                                             ; preds = %4189, %4183
  br label %4194

4194:                                             ; preds = %4189, %4193
  %.str.17.sink2077 = phi ptr [ @.str.17, %4193 ], [ @.str.14, %4189 ]
  store i32 %4184, ptr %247, align 4, !tbaa !5
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = load i32, ptr @test_count, align 4, !tbaa !5
  %4197 = load i32, ptr %193, align 4, !tbaa !5
  %4198 = call ptr @s2n_strerror(i32 noundef %4197, ptr noundef nonnull @.str.16) #13
  %4199 = load i32, ptr %193, align 4, !tbaa !5
  %4200 = call ptr @s2n_strerror_debug(i32 noundef %4199, ptr noundef nonnull @.str.16) #13
  %4201 = load i32, ptr %247, align 4, !tbaa !5
  %4202 = call ptr @strerror(i32 noundef %4201) #13
  %4203 = load i32, ptr %247, align 4, !tbaa !5
  %4204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4195, ptr noundef nonnull %.str.17.sink2077, i32 noundef %4196, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.13, i32 noundef 451, ptr noundef %4198, ptr noundef %4200, ptr noundef %4202, i32 noundef %4203) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4205:                                             ; preds = %4176
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %37, i8 0, i64 40, i1 false)
  %4206 = load i32, ptr @test_count, align 4, !tbaa !5
  %4207 = add nsw i32 %4206, 1
  store i32 %4207, ptr @test_count, align 4, !tbaa !5
  %4208 = call i32 @s2n_stuffer_init(ptr noundef nonnull %37, ptr noundef nonnull %36) #13
  %4209 = icmp eq i32 %4208, -1
  br i1 %4209, label %4210, label %4232

4210:                                             ; preds = %4205
  %4211 = load i32, ptr %247, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = call i32 @s2n_print_stacktrace(ptr noundef %4212) #13
  %4214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4215 = trunc nuw i8 %4214 to i1
  br i1 %4215, label %4216, label %4220

4216:                                             ; preds = %4210
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = call i32 @fileno(ptr noundef %4217) #13
  %4219 = call i32 @isatty(i32 noundef %4218) #13
  %.not593 = icmp eq i32 %4219, 0
  br i1 %.not593, label %4220, label %4221

4220:                                             ; preds = %4216, %4210
  br label %4221

4221:                                             ; preds = %4216, %4220
  %.str.17.sink2086 = phi ptr [ @.str.17, %4220 ], [ @.str.14, %4216 ]
  store i32 %4211, ptr %247, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = load i32, ptr @test_count, align 4, !tbaa !5
  %4224 = load i32, ptr %193, align 4, !tbaa !5
  %4225 = call ptr @s2n_strerror(i32 noundef %4224, ptr noundef nonnull @.str.16) #13
  %4226 = load i32, ptr %193, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror_debug(i32 noundef %4226, ptr noundef nonnull @.str.16) #13
  %4228 = load i32, ptr %247, align 4, !tbaa !5
  %4229 = call ptr @strerror(i32 noundef %4228) #13
  %4230 = load i32, ptr %247, align 4, !tbaa !5
  %4231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4222, ptr noundef nonnull %.str.17.sink2086, i32 noundef %4223, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 453, ptr noundef %4225, ptr noundef %4227, ptr noundef %4229, i32 noundef %4230) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4232:                                             ; preds = %4205
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #13
  store i32 %932, ptr %38, align 4
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %39) #13
  store i16 %933, ptr %39, align 2
  %spec.select677 = select i1 %.not4672358, i32 2, i32 4
  %spec.select678 = select i1 %.not4672358, ptr %39, ptr %38
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = add nsw i32 %4233, 1
  store i32 %4234, ptr @test_count, align 4, !tbaa !5
  %4235 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %37, ptr noundef nonnull %spec.select678, i32 noundef %spec.select677) #13
  %4236 = icmp eq i32 %4235, -1
  br i1 %4236, label %4237, label %4259

4237:                                             ; preds = %4232
  %4238 = load i32, ptr %247, align 4, !tbaa !5
  %4239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4240 = call i32 @s2n_print_stacktrace(ptr noundef %4239) #13
  %4241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4242 = trunc nuw i8 %4241 to i1
  br i1 %4242, label %4243, label %4247

4243:                                             ; preds = %4237
  %4244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4245 = call i32 @fileno(ptr noundef %4244) #13
  %4246 = call i32 @isatty(i32 noundef %4245) #13
  %.not592 = icmp eq i32 %4246, 0
  br i1 %.not592, label %4247, label %4248

4247:                                             ; preds = %4243, %4237
  br label %4248

4248:                                             ; preds = %4243, %4247
  %.str.17.sink2095 = phi ptr [ @.str.17, %4247 ], [ @.str.14, %4243 ]
  store i32 %4238, ptr %247, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = load i32, ptr @test_count, align 4, !tbaa !5
  %4251 = load i32, ptr %193, align 4, !tbaa !5
  %4252 = call ptr @s2n_strerror(i32 noundef %4251, ptr noundef nonnull @.str.16) #13
  %4253 = load i32, ptr %193, align 4, !tbaa !5
  %4254 = call ptr @s2n_strerror_debug(i32 noundef %4253, ptr noundef nonnull @.str.16) #13
  %4255 = load i32, ptr %247, align 4, !tbaa !5
  %4256 = call ptr @strerror(i32 noundef %4255) #13
  %4257 = load i32, ptr %247, align 4, !tbaa !5
  %4258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4249, ptr noundef nonnull %.str.17.sink2095, i32 noundef %4250, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.13, i32 noundef 468, ptr noundef %4252, ptr noundef %4254, ptr noundef %4256, i32 noundef %4257) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4259:                                             ; preds = %4232
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = add nsw i32 %4260, 1
  store i32 %4261, ptr @test_count, align 4, !tbaa !5
  %4262 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %37) #13
  %4263 = icmp eq i32 %4262, -1
  br i1 %4263, label %4264, label %4286

4264:                                             ; preds = %4259
  %4265 = load i32, ptr %247, align 4, !tbaa !5
  %4266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4267 = call i32 @s2n_print_stacktrace(ptr noundef %4266) #13
  %4268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4269 = trunc nuw i8 %4268 to i1
  br i1 %4269, label %4270, label %4274

4270:                                             ; preds = %4264
  %4271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4272 = call i32 @fileno(ptr noundef %4271) #13
  %4273 = call i32 @isatty(i32 noundef %4272) #13
  %.not591 = icmp eq i32 %4273, 0
  br i1 %.not591, label %4274, label %4275

4274:                                             ; preds = %4270, %4264
  br label %4275

4275:                                             ; preds = %4270, %4274
  %.str.17.sink2104 = phi ptr [ @.str.17, %4274 ], [ @.str.14, %4270 ]
  store i32 %4265, ptr %247, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = load i32, ptr @test_count, align 4, !tbaa !5
  %4278 = load i32, ptr %193, align 4, !tbaa !5
  %4279 = call ptr @s2n_strerror(i32 noundef %4278, ptr noundef nonnull @.str.16) #13
  %4280 = load i32, ptr %193, align 4, !tbaa !5
  %4281 = call ptr @s2n_strerror_debug(i32 noundef %4280, ptr noundef nonnull @.str.16) #13
  %4282 = load i32, ptr %247, align 4, !tbaa !5
  %4283 = call ptr @strerror(i32 noundef %4282) #13
  %4284 = load i32, ptr %247, align 4, !tbaa !5
  %4285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4276, ptr noundef nonnull %.str.17.sink2104, i32 noundef %4277, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.13, i32 noundef 469, ptr noundef %4279, ptr noundef %4281, ptr noundef %4283, i32 noundef %4284) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4286:                                             ; preds = %4259
  %4287 = load i32, ptr @test_count, align 4, !tbaa !5
  %4288 = add nsw i32 %4287, 1
  store i32 %4288, ptr @test_count, align 4, !tbaa !5
  %4289 = call i32 @s2n_kem_recv_public_key(ptr noundef nonnull %37, ptr noundef nonnull %35) #13
  %4290 = icmp eq i32 %4289, -1
  br i1 %4290, label %4291, label %4313

4291:                                             ; preds = %4286
  %4292 = load i32, ptr %247, align 4, !tbaa !5
  %4293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4294 = call i32 @s2n_print_stacktrace(ptr noundef %4293) #13
  %4295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4296 = trunc nuw i8 %4295 to i1
  br i1 %4296, label %4297, label %4301

4297:                                             ; preds = %4291
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @fileno(ptr noundef %4298) #13
  %4300 = call i32 @isatty(i32 noundef %4299) #13
  %.not590 = icmp eq i32 %4300, 0
  br i1 %.not590, label %4301, label %4302

4301:                                             ; preds = %4297, %4291
  br label %4302

4302:                                             ; preds = %4297, %4301
  %.str.17.sink2113 = phi ptr [ @.str.17, %4301 ], [ @.str.14, %4297 ]
  store i32 %4292, ptr %247, align 4, !tbaa !5
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = load i32, ptr @test_count, align 4, !tbaa !5
  %4305 = load i32, ptr %193, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror(i32 noundef %4305, ptr noundef nonnull @.str.16) #13
  %4307 = load i32, ptr %193, align 4, !tbaa !5
  %4308 = call ptr @s2n_strerror_debug(i32 noundef %4307, ptr noundef nonnull @.str.16) #13
  %4309 = load i32, ptr %247, align 4, !tbaa !5
  %4310 = call ptr @strerror(i32 noundef %4309) #13
  %4311 = load i32, ptr %247, align 4, !tbaa !5
  %4312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4303, ptr noundef nonnull %.str.17.sink2113, i32 noundef %4304, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.13, i32 noundef 471, ptr noundef %4306, ptr noundef %4308, ptr noundef %4310, i32 noundef %4311) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4313:                                             ; preds = %4286
  %4314 = load i32, ptr @test_count, align 4, !tbaa !5
  %4315 = add nsw i32 %4314, 1
  store i32 %4315, ptr @test_count, align 4, !tbaa !5
  %4316 = load i32, ptr %935, align 8, !tbaa !30
  %4317 = icmp eq i32 %4316, 2
  br i1 %4317, label %4340, label %4318

4318:                                             ; preds = %4313
  %4319 = load i32, ptr %247, align 4, !tbaa !5
  %4320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4321 = call i32 @s2n_print_stacktrace(ptr noundef %4320) #13
  %4322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4323 = trunc nuw i8 %4322 to i1
  br i1 %4323, label %4324, label %4328

4324:                                             ; preds = %4318
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4326 = call i32 @fileno(ptr noundef %4325) #13
  %4327 = call i32 @isatty(i32 noundef %4326) #13
  %.not565 = icmp eq i32 %4327, 0
  br i1 %.not565, label %4328, label %4329

4328:                                             ; preds = %4324, %4318
  br label %4329

4329:                                             ; preds = %4324, %4328
  %.str.17.sink2122 = phi ptr [ @.str.17, %4328 ], [ @.str.14, %4324 ]
  store i32 %4319, ptr %247, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = load i32, ptr @test_count, align 4, !tbaa !5
  %4332 = load i32, ptr %193, align 4, !tbaa !5
  %4333 = call ptr @s2n_strerror(i32 noundef %4332, ptr noundef nonnull @.str.16) #13
  %4334 = load i32, ptr %193, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror_debug(i32 noundef %4334, ptr noundef nonnull @.str.16) #13
  %4336 = load i32, ptr %247, align 4, !tbaa !5
  %4337 = call ptr @strerror(i32 noundef %4336) #13
  %4338 = load i32, ptr %247, align 4, !tbaa !5
  %4339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4330, ptr noundef nonnull %.str.17.sink2122, i32 noundef %4331, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.13, i32 noundef 474, ptr noundef %4333, ptr noundef %4335, ptr noundef %4337, i32 noundef %4338) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4340:                                             ; preds = %4313
  %4341 = add nsw i32 %4314, 2
  store i32 %4341, ptr @test_count, align 4, !tbaa !5
  %4342 = load i32, ptr %936, align 4, !tbaa !42
  %4343 = icmp eq i32 %4342, 0
  br i1 %4343, label %4344, label %4366

4344:                                             ; preds = %4340
  %4345 = load i32, ptr %247, align 4, !tbaa !5
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = call i32 @s2n_print_stacktrace(ptr noundef %4346) #13
  %4348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4349 = trunc nuw i8 %4348 to i1
  br i1 %4349, label %4350, label %4354

4350:                                             ; preds = %4344
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = call i32 @fileno(ptr noundef %4351) #13
  %4353 = call i32 @isatty(i32 noundef %4352) #13
  %.not589 = icmp eq i32 %4353, 0
  br i1 %.not589, label %4354, label %4355

4354:                                             ; preds = %4350, %4344
  br label %4355

4355:                                             ; preds = %4350, %4354
  %.str.17.sink2131 = phi ptr [ @.str.17, %4354 ], [ @.str.14, %4350 ]
  store i32 %4345, ptr %247, align 4, !tbaa !5
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = load i32, ptr @test_count, align 4, !tbaa !5
  %4358 = load i32, ptr %193, align 4, !tbaa !5
  %4359 = call ptr @s2n_strerror(i32 noundef %4358, ptr noundef nonnull @.str.16) #13
  %4360 = load i32, ptr %193, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror_debug(i32 noundef %4360, ptr noundef nonnull @.str.16) #13
  %4362 = load i32, ptr %247, align 4, !tbaa !5
  %4363 = call ptr @strerror(i32 noundef %4362) #13
  %4364 = load i32, ptr %247, align 4, !tbaa !5
  %4365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4356, ptr noundef nonnull %.str.17.sink2131, i32 noundef %4357, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.13, i32 noundef 475, ptr noundef %4359, ptr noundef %4361, ptr noundef %4363, i32 noundef %4364) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4366:                                             ; preds = %4340
  %4367 = add nsw i32 %4314, 3
  store i32 %4367, ptr @test_count, align 4, !tbaa !5
  %4368 = load ptr, ptr %934, align 8, !tbaa !32
  %bcmp566 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %4368, ptr noundef nonnull dereferenceable(2) @TEST_PUBLIC_KEY, i64 2)
  %4369 = icmp eq i32 %bcmp566, 0
  br i1 %4369, label %4392, label %4370

4370:                                             ; preds = %4366
  %4371 = load i32, ptr %247, align 4, !tbaa !5
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = call i32 @s2n_print_stacktrace(ptr noundef %4372) #13
  %4374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4375 = trunc nuw i8 %4374 to i1
  br i1 %4375, label %4376, label %4380

4376:                                             ; preds = %4370
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = call i32 @fileno(ptr noundef %4377) #13
  %4379 = call i32 @isatty(i32 noundef %4378) #13
  %.not567 = icmp eq i32 %4379, 0
  br i1 %.not567, label %4380, label %4381

4380:                                             ; preds = %4376, %4370
  br label %4381

4381:                                             ; preds = %4376, %4380
  %.str.17.sink2140 = phi ptr [ @.str.17, %4380 ], [ @.str.14, %4376 ]
  store i32 %4371, ptr %247, align 4, !tbaa !5
  %4382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4383 = load i32, ptr @test_count, align 4, !tbaa !5
  %4384 = load i32, ptr %193, align 4, !tbaa !5
  %4385 = call ptr @s2n_strerror(i32 noundef %4384, ptr noundef nonnull @.str.16) #13
  %4386 = load i32, ptr %193, align 4, !tbaa !5
  %4387 = call ptr @s2n_strerror_debug(i32 noundef %4386, ptr noundef nonnull @.str.16) #13
  %4388 = load i32, ptr %247, align 4, !tbaa !5
  %4389 = call ptr @strerror(i32 noundef %4388) #13
  %4390 = load i32, ptr %247, align 4, !tbaa !5
  %4391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4382, ptr noundef nonnull %.str.17.sink2140, i32 noundef %4383, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.13, i32 noundef 476, ptr noundef %4385, ptr noundef %4387, ptr noundef %4389, i32 noundef %4390) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4392:                                             ; preds = %4366
  %4393 = add nsw i32 %4314, 4
  store i32 %4393, ptr @test_count, align 4, !tbaa !5
  %4394 = load i32, ptr %937, align 4, !tbaa !35
  %4395 = icmp eq i32 %4394, 0
  br i1 %4395, label %4418, label %4396

4396:                                             ; preds = %4392
  %4397 = load i32, ptr %247, align 4, !tbaa !5
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = call i32 @s2n_print_stacktrace(ptr noundef %4398) #13
  %4400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4401 = trunc nuw i8 %4400 to i1
  br i1 %4401, label %4402, label %4406

4402:                                             ; preds = %4396
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = call i32 @fileno(ptr noundef %4403) #13
  %4405 = call i32 @isatty(i32 noundef %4404) #13
  %.not568 = icmp eq i32 %4405, 0
  br i1 %.not568, label %4406, label %4407

4406:                                             ; preds = %4402, %4396
  br label %4407

4407:                                             ; preds = %4402, %4406
  %.str.17.sink2149 = phi ptr [ @.str.17, %4406 ], [ @.str.14, %4402 ]
  store i32 %4397, ptr %247, align 4, !tbaa !5
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = load i32, ptr @test_count, align 4, !tbaa !5
  %4410 = load i32, ptr %193, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror(i32 noundef %4410, ptr noundef nonnull @.str.16) #13
  %4412 = load i32, ptr %193, align 4, !tbaa !5
  %4413 = call ptr @s2n_strerror_debug(i32 noundef %4412, ptr noundef nonnull @.str.16) #13
  %4414 = load i32, ptr %247, align 4, !tbaa !5
  %4415 = call ptr @strerror(i32 noundef %4414) #13
  %4416 = load i32, ptr %247, align 4, !tbaa !5
  %4417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4408, ptr noundef nonnull %.str.17.sink2149, i32 noundef %4409, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.13, i32 noundef 477, ptr noundef %4411, ptr noundef %4413, ptr noundef %4415, i32 noundef %4416) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4418:                                             ; preds = %4392
  %4419 = add nsw i32 %4314, 5
  store i32 %4419, ptr @test_count, align 4, !tbaa !5
  %4420 = load i32, ptr %938, align 4, !tbaa !39
  %4421 = icmp eq i32 %4420, 0
  br i1 %4421, label %4444, label %4422

4422:                                             ; preds = %4418
  %4423 = load i32, ptr %247, align 4, !tbaa !5
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = call i32 @s2n_print_stacktrace(ptr noundef %4424) #13
  %4426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4427 = trunc nuw i8 %4426 to i1
  br i1 %4427, label %4428, label %4432

4428:                                             ; preds = %4422
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = call i32 @fileno(ptr noundef %4429) #13
  %4431 = call i32 @isatty(i32 noundef %4430) #13
  %.not569 = icmp eq i32 %4431, 0
  br i1 %.not569, label %4432, label %4433

4432:                                             ; preds = %4428, %4422
  br label %4433

4433:                                             ; preds = %4428, %4432
  %.str.17.sink2158 = phi ptr [ @.str.17, %4432 ], [ @.str.14, %4428 ]
  store i32 %4423, ptr %247, align 4, !tbaa !5
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = load i32, ptr @test_count, align 4, !tbaa !5
  %4436 = load i32, ptr %193, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror(i32 noundef %4436, ptr noundef nonnull @.str.16) #13
  %4438 = load i32, ptr %193, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror_debug(i32 noundef %4438, ptr noundef nonnull @.str.16) #13
  %4440 = load i32, ptr %247, align 4, !tbaa !5
  %4441 = call ptr @strerror(i32 noundef %4440) #13
  %4442 = load i32, ptr %247, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4434, ptr noundef nonnull %.str.17.sink2158, i32 noundef %4435, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.13, i32 noundef 478, ptr noundef %4437, ptr noundef %4439, ptr noundef %4441, i32 noundef %4442) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4444:                                             ; preds = %4418
  %4445 = add nsw i32 %4314, 6
  store i32 %4445, ptr @test_count, align 4, !tbaa !5
  %4446 = call i32 @s2n_kem_free(ptr noundef nonnull %35) #13
  %4447 = icmp eq i32 %4446, -1
  br i1 %4447, label %4448, label %4470

4448:                                             ; preds = %4444
  %4449 = load i32, ptr %247, align 4, !tbaa !5
  %4450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4451 = call i32 @s2n_print_stacktrace(ptr noundef %4450) #13
  %4452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4453 = trunc nuw i8 %4452 to i1
  br i1 %4453, label %4454, label %4458

4454:                                             ; preds = %4448
  %4455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4456 = call i32 @fileno(ptr noundef %4455) #13
  %4457 = call i32 @isatty(i32 noundef %4456) #13
  %.not588 = icmp eq i32 %4457, 0
  br i1 %.not588, label %4458, label %4459

4458:                                             ; preds = %4454, %4448
  br label %4459

4459:                                             ; preds = %4454, %4458
  %.str.17.sink2167 = phi ptr [ @.str.17, %4458 ], [ @.str.14, %4454 ]
  store i32 %4449, ptr %247, align 4, !tbaa !5
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4461 = load i32, ptr @test_count, align 4, !tbaa !5
  %4462 = load i32, ptr %193, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror(i32 noundef %4462, ptr noundef nonnull @.str.16) #13
  %4464 = load i32, ptr %193, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror_debug(i32 noundef %4464, ptr noundef nonnull @.str.16) #13
  %4466 = load i32, ptr %247, align 4, !tbaa !5
  %4467 = call ptr @strerror(i32 noundef %4466) #13
  %4468 = load i32, ptr %247, align 4, !tbaa !5
  %4469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4460, ptr noundef nonnull %.str.17.sink2167, i32 noundef %4461, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.13, i32 noundef 479, ptr noundef %4463, ptr noundef %4465, ptr noundef %4467, i32 noundef %4468) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4470:                                             ; preds = %4444
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %39) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #13
  %4471 = call i32 @s2n_free(ptr noundef nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %35) #13
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = add nsw i32 %4472, 1
  store i32 %4473, ptr @test_count, align 4, !tbaa !5
  %4474 = call i32 @s2n_kem_recv_public_key(ptr noundef null, ptr noundef null) #13
  %4475 = icmp eq i32 %4474, -1
  br i1 %4475, label %4498, label %4476

4476:                                             ; preds = %4470
  %4477 = load i32, ptr %247, align 4, !tbaa !5
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @s2n_print_stacktrace(ptr noundef %4478) #13
  %4480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4481 = trunc nuw i8 %4480 to i1
  br i1 %4481, label %4482, label %4486

4482:                                             ; preds = %4476
  %4483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4484 = call i32 @fileno(ptr noundef %4483) #13
  %4485 = call i32 @isatty(i32 noundef %4484) #13
  %.not570 = icmp eq i32 %4485, 0
  br i1 %.not570, label %4486, label %4487

4486:                                             ; preds = %4482, %4476
  br label %4487

4487:                                             ; preds = %4482, %4486
  %.str.17.sink2176 = phi ptr [ @.str.17, %4486 ], [ @.str.14, %4482 ]
  store i32 %4477, ptr %247, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = load i32, ptr %193, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror(i32 noundef %4490, ptr noundef nonnull @.str.16) #13
  %4492 = load i32, ptr %193, align 4, !tbaa !5
  %4493 = call ptr @s2n_strerror_debug(i32 noundef %4492, ptr noundef nonnull @.str.16) #13
  %4494 = load i32, ptr %247, align 4, !tbaa !5
  %4495 = call ptr @strerror(i32 noundef %4494) #13
  %4496 = load i32, ptr %247, align 4, !tbaa !5
  %4497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4488, ptr noundef nonnull %.str.17.sink2176, i32 noundef %4489, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.13, i32 noundef 483, ptr noundef %4491, ptr noundef %4493, ptr noundef %4495, i32 noundef %4496) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4498:                                             ; preds = %4470
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = add nsw i32 %4499, 1
  store i32 %4500, ptr @test_count, align 4, !tbaa !5
  %4501 = load i32, ptr %193, align 4, !tbaa !5
  %4502 = icmp eq i32 %4501, 402653193
  br i1 %4502, label %4525, label %4503

4503:                                             ; preds = %4498
  %4504 = load i32, ptr %247, align 4, !tbaa !5
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = call i32 @s2n_print_stacktrace(ptr noundef %4505) #13
  %4507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4508 = trunc nuw i8 %4507 to i1
  br i1 %4508, label %4509, label %4513

4509:                                             ; preds = %4503
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = call i32 @fileno(ptr noundef %4510) #13
  %4512 = call i32 @isatty(i32 noundef %4511) #13
  %.not571 = icmp eq i32 %4512, 0
  br i1 %.not571, label %4513, label %4514

4513:                                             ; preds = %4509, %4503
  br label %4514

4514:                                             ; preds = %4509, %4513
  %.str.17.sink2185 = phi ptr [ @.str.17, %4513 ], [ @.str.14, %4509 ]
  store i32 %4504, ptr %247, align 4, !tbaa !5
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = load i32, ptr @test_count, align 4, !tbaa !5
  %4517 = load i32, ptr %193, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror(i32 noundef %4517, ptr noundef nonnull @.str.16) #13
  %4519 = load i32, ptr %193, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror_debug(i32 noundef %4519, ptr noundef nonnull @.str.16) #13
  %4521 = load i32, ptr %247, align 4, !tbaa !5
  %4522 = call ptr @strerror(i32 noundef %4521) #13
  %4523 = load i32, ptr %247, align 4, !tbaa !5
  %4524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4515, ptr noundef nonnull %.str.17.sink2185, i32 noundef %4516, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 483, ptr noundef %4518, ptr noundef %4520, ptr noundef %4522, i32 noundef %4523) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4525:                                             ; preds = %4498
  %4526 = add nsw i32 %4499, 2
  store i32 %4526, ptr @test_count, align 4, !tbaa !5
  %4527 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %4528 = icmp eq ptr %4527, null
  br i1 %4528, label %4529, label %4551

4529:                                             ; preds = %4525
  %4530 = load i32, ptr %247, align 4, !tbaa !5
  %4531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4532 = call i32 @s2n_print_stacktrace(ptr noundef %4531) #13
  %4533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4534 = trunc nuw i8 %4533 to i1
  br i1 %4534, label %4535, label %4539

4535:                                             ; preds = %4529
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = call i32 @fileno(ptr noundef %4536) #13
  %4538 = call i32 @isatty(i32 noundef %4537) #13
  %.not587 = icmp eq i32 %4538, 0
  br i1 %.not587, label %4539, label %4540

4539:                                             ; preds = %4535, %4529
  br label %4540

4540:                                             ; preds = %4535, %4539
  %.str.17.sink2194 = phi ptr [ @.str.17, %4539 ], [ @.str.14, %4535 ]
  store i32 %4530, ptr %247, align 4, !tbaa !5
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4542 = load i32, ptr @test_count, align 4, !tbaa !5
  %4543 = load i32, ptr %193, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror(i32 noundef %4543, ptr noundef nonnull @.str.16) #13
  %4545 = load i32, ptr %193, align 4, !tbaa !5
  %4546 = call ptr @s2n_strerror_debug(i32 noundef %4545, ptr noundef nonnull @.str.16) #13
  %4547 = load i32, ptr %247, align 4, !tbaa !5
  %4548 = call ptr @strerror(i32 noundef %4547) #13
  %4549 = load i32, ptr %247, align 4, !tbaa !5
  %4550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4541, ptr noundef nonnull %.str.17.sink2194, i32 noundef %4542, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 483, ptr noundef %4544, ptr noundef %4546, ptr noundef %4548, i32 noundef %4549) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4551:                                             ; preds = %4525
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %40, i8 0, i64 24, i1 false)
  %4552 = load i32, ptr @test_count, align 4, !tbaa !5
  %4553 = add nsw i32 %4552, 1
  store i32 %4553, ptr @test_count, align 4, !tbaa !5
  %4554 = call i32 @s2n_alloc(ptr noundef nonnull %40, i32 noundef 1) #13
  %4555 = icmp eq i32 %4554, -1
  br i1 %4555, label %4556, label %4578

4556:                                             ; preds = %4551
  %4557 = load i32, ptr %247, align 4, !tbaa !5
  %4558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4559 = call i32 @s2n_print_stacktrace(ptr noundef %4558) #13
  %4560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4561 = trunc nuw i8 %4560 to i1
  br i1 %4561, label %4562, label %4566

4562:                                             ; preds = %4556
  %4563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4564 = call i32 @fileno(ptr noundef %4563) #13
  %4565 = call i32 @isatty(i32 noundef %4564) #13
  %.not586 = icmp eq i32 %4565, 0
  br i1 %.not586, label %4566, label %4567

4566:                                             ; preds = %4562, %4556
  br label %4567

4567:                                             ; preds = %4562, %4566
  %.str.17.sink2203 = phi ptr [ @.str.17, %4566 ], [ @.str.14, %4562 ]
  store i32 %4557, ptr %247, align 4, !tbaa !5
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = load i32, ptr @test_count, align 4, !tbaa !5
  %4570 = load i32, ptr %193, align 4, !tbaa !5
  %4571 = call ptr @s2n_strerror(i32 noundef %4570, ptr noundef nonnull @.str.16) #13
  %4572 = load i32, ptr %193, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror_debug(i32 noundef %4572, ptr noundef nonnull @.str.16) #13
  %4574 = load i32, ptr %247, align 4, !tbaa !5
  %4575 = call ptr @strerror(i32 noundef %4574) #13
  %4576 = load i32, ptr %247, align 4, !tbaa !5
  %4577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4568, ptr noundef nonnull %.str.17.sink2203, i32 noundef %4569, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.13, i32 noundef 486, ptr noundef %4571, ptr noundef %4573, ptr noundef %4575, i32 noundef %4576) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4578:                                             ; preds = %4551
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %41) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %41, i8 0, i64 40, i1 false)
  %4579 = load i32, ptr @test_count, align 4, !tbaa !5
  %4580 = add nsw i32 %4579, 1
  store i32 %4580, ptr @test_count, align 4, !tbaa !5
  %4581 = call i32 @s2n_stuffer_init(ptr noundef nonnull %41, ptr noundef nonnull %40) #13
  %4582 = icmp eq i32 %4581, -1
  br i1 %4582, label %4583, label %4605

4583:                                             ; preds = %4578
  %4584 = load i32, ptr %247, align 4, !tbaa !5
  %4585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4586 = call i32 @s2n_print_stacktrace(ptr noundef %4585) #13
  %4587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4588 = trunc nuw i8 %4587 to i1
  br i1 %4588, label %4589, label %4593

4589:                                             ; preds = %4583
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = call i32 @fileno(ptr noundef %4590) #13
  %4592 = call i32 @isatty(i32 noundef %4591) #13
  %.not585 = icmp eq i32 %4592, 0
  br i1 %.not585, label %4593, label %4594

4593:                                             ; preds = %4589, %4583
  br label %4594

4594:                                             ; preds = %4589, %4593
  %.str.17.sink2212 = phi ptr [ @.str.17, %4593 ], [ @.str.14, %4589 ]
  store i32 %4584, ptr %247, align 4, !tbaa !5
  %4595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4596 = load i32, ptr @test_count, align 4, !tbaa !5
  %4597 = load i32, ptr %193, align 4, !tbaa !5
  %4598 = call ptr @s2n_strerror(i32 noundef %4597, ptr noundef nonnull @.str.16) #13
  %4599 = load i32, ptr %193, align 4, !tbaa !5
  %4600 = call ptr @s2n_strerror_debug(i32 noundef %4599, ptr noundef nonnull @.str.16) #13
  %4601 = load i32, ptr %247, align 4, !tbaa !5
  %4602 = call ptr @strerror(i32 noundef %4601) #13
  %4603 = load i32, ptr %247, align 4, !tbaa !5
  %4604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4595, ptr noundef nonnull %.str.17.sink2212, i32 noundef %4596, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.13, i32 noundef 488, ptr noundef %4598, ptr noundef %4600, ptr noundef %4602, i32 noundef %4603) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4605:                                             ; preds = %4578
  %4606 = load i32, ptr @test_count, align 4, !tbaa !5
  %4607 = add nsw i32 %4606, 1
  store i32 %4607, ptr @test_count, align 4, !tbaa !5
  %4608 = call i32 @s2n_kem_recv_public_key(ptr noundef nonnull %41, ptr noundef null) #13
  %4609 = icmp eq i32 %4608, -1
  br i1 %4609, label %4632, label %4610

4610:                                             ; preds = %4605
  %4611 = load i32, ptr %247, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = call i32 @s2n_print_stacktrace(ptr noundef %4612) #13
  %4614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4615 = trunc nuw i8 %4614 to i1
  br i1 %4615, label %4616, label %4620

4616:                                             ; preds = %4610
  %4617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4618 = call i32 @fileno(ptr noundef %4617) #13
  %4619 = call i32 @isatty(i32 noundef %4618) #13
  %.not572 = icmp eq i32 %4619, 0
  br i1 %.not572, label %4620, label %4621

4620:                                             ; preds = %4616, %4610
  br label %4621

4621:                                             ; preds = %4616, %4620
  %.str.17.sink2221 = phi ptr [ @.str.17, %4620 ], [ @.str.14, %4616 ]
  store i32 %4611, ptr %247, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = load i32, ptr %193, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror(i32 noundef %4624, ptr noundef nonnull @.str.16) #13
  %4626 = load i32, ptr %193, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror_debug(i32 noundef %4626, ptr noundef nonnull @.str.16) #13
  %4628 = load i32, ptr %247, align 4, !tbaa !5
  %4629 = call ptr @strerror(i32 noundef %4628) #13
  %4630 = load i32, ptr %247, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef nonnull %.str.17.sink2221, i32 noundef %4623, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.13, i32 noundef 490, ptr noundef %4625, ptr noundef %4627, ptr noundef %4629, i32 noundef %4630) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4632:                                             ; preds = %4605
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = add nsw i32 %4633, 1
  store i32 %4634, ptr @test_count, align 4, !tbaa !5
  %4635 = load i32, ptr %193, align 4, !tbaa !5
  %4636 = icmp eq i32 %4635, 402653193
  br i1 %4636, label %4659, label %4637

4637:                                             ; preds = %4632
  %4638 = load i32, ptr %247, align 4, !tbaa !5
  %4639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4640 = call i32 @s2n_print_stacktrace(ptr noundef %4639) #13
  %4641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4642 = trunc nuw i8 %4641 to i1
  br i1 %4642, label %4643, label %4647

4643:                                             ; preds = %4637
  %4644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4645 = call i32 @fileno(ptr noundef %4644) #13
  %4646 = call i32 @isatty(i32 noundef %4645) #13
  %.not573 = icmp eq i32 %4646, 0
  br i1 %.not573, label %4647, label %4648

4647:                                             ; preds = %4643, %4637
  br label %4648

4648:                                             ; preds = %4643, %4647
  %.str.17.sink2230 = phi ptr [ @.str.17, %4647 ], [ @.str.14, %4643 ]
  store i32 %4638, ptr %247, align 4, !tbaa !5
  %4649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4650 = load i32, ptr @test_count, align 4, !tbaa !5
  %4651 = load i32, ptr %193, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror(i32 noundef %4651, ptr noundef nonnull @.str.16) #13
  %4653 = load i32, ptr %193, align 4, !tbaa !5
  %4654 = call ptr @s2n_strerror_debug(i32 noundef %4653, ptr noundef nonnull @.str.16) #13
  %4655 = load i32, ptr %247, align 4, !tbaa !5
  %4656 = call ptr @strerror(i32 noundef %4655) #13
  %4657 = load i32, ptr %247, align 4, !tbaa !5
  %4658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4649, ptr noundef nonnull %.str.17.sink2230, i32 noundef %4650, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 490, ptr noundef %4652, ptr noundef %4654, ptr noundef %4656, i32 noundef %4657) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4659:                                             ; preds = %4632
  %4660 = add nsw i32 %4633, 2
  store i32 %4660, ptr @test_count, align 4, !tbaa !5
  %4661 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %4662 = icmp eq ptr %4661, null
  br i1 %4662, label %4663, label %4685

4663:                                             ; preds = %4659
  %4664 = load i32, ptr %247, align 4, !tbaa !5
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = call i32 @s2n_print_stacktrace(ptr noundef %4665) #13
  %4667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4668 = trunc nuw i8 %4667 to i1
  br i1 %4668, label %4669, label %4673

4669:                                             ; preds = %4663
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = call i32 @fileno(ptr noundef %4670) #13
  %4672 = call i32 @isatty(i32 noundef %4671) #13
  %.not584 = icmp eq i32 %4672, 0
  br i1 %.not584, label %4673, label %4674

4673:                                             ; preds = %4669, %4663
  br label %4674

4674:                                             ; preds = %4669, %4673
  %.str.17.sink2239 = phi ptr [ @.str.17, %4673 ], [ @.str.14, %4669 ]
  store i32 %4664, ptr %247, align 4, !tbaa !5
  %4675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4676 = load i32, ptr @test_count, align 4, !tbaa !5
  %4677 = load i32, ptr %193, align 4, !tbaa !5
  %4678 = call ptr @s2n_strerror(i32 noundef %4677, ptr noundef nonnull @.str.16) #13
  %4679 = load i32, ptr %193, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror_debug(i32 noundef %4679, ptr noundef nonnull @.str.16) #13
  %4681 = load i32, ptr %247, align 4, !tbaa !5
  %4682 = call ptr @strerror(i32 noundef %4681) #13
  %4683 = load i32, ptr %247, align 4, !tbaa !5
  %4684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4675, ptr noundef nonnull %.str.17.sink2239, i32 noundef %4676, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 490, ptr noundef %4678, ptr noundef %4680, ptr noundef %4682, i32 noundef %4683) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4685:                                             ; preds = %4659
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %42) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %42, i8 0, i64 88, i1 false)
  store i8 %.04467082359, ptr %939, align 8, !tbaa !29
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = add nsw i32 %4686, 1
  store i32 %4687, ptr @test_count, align 4, !tbaa !5
  %4688 = call i32 @s2n_kem_recv_public_key(ptr noundef nonnull %41, ptr noundef nonnull %42) #13
  %4689 = icmp eq i32 %4688, -1
  br i1 %4689, label %4712, label %4690

4690:                                             ; preds = %4685
  %4691 = load i32, ptr %247, align 4, !tbaa !5
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = call i32 @s2n_print_stacktrace(ptr noundef %4692) #13
  %4694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4695 = trunc nuw i8 %4694 to i1
  br i1 %4695, label %4696, label %4700

4696:                                             ; preds = %4690
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = call i32 @fileno(ptr noundef %4697) #13
  %4699 = call i32 @isatty(i32 noundef %4698) #13
  %.not574 = icmp eq i32 %4699, 0
  br i1 %.not574, label %4700, label %4701

4700:                                             ; preds = %4696, %4690
  br label %4701

4701:                                             ; preds = %4696, %4700
  %.str.17.sink2248 = phi ptr [ @.str.17, %4700 ], [ @.str.14, %4696 ]
  store i32 %4691, ptr %247, align 4, !tbaa !5
  %4702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4703 = load i32, ptr @test_count, align 4, !tbaa !5
  %4704 = load i32, ptr %193, align 4, !tbaa !5
  %4705 = call ptr @s2n_strerror(i32 noundef %4704, ptr noundef nonnull @.str.16) #13
  %4706 = load i32, ptr %193, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror_debug(i32 noundef %4706, ptr noundef nonnull @.str.16) #13
  %4708 = load i32, ptr %247, align 4, !tbaa !5
  %4709 = call ptr @strerror(i32 noundef %4708) #13
  %4710 = load i32, ptr %247, align 4, !tbaa !5
  %4711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4702, ptr noundef nonnull %.str.17.sink2248, i32 noundef %4703, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.13, i32 noundef 494, ptr noundef %4705, ptr noundef %4707, ptr noundef %4709, i32 noundef %4710) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4712:                                             ; preds = %4685
  %4713 = load i32, ptr @test_count, align 4, !tbaa !5
  %4714 = add nsw i32 %4713, 1
  store i32 %4714, ptr @test_count, align 4, !tbaa !5
  %4715 = load i32, ptr %193, align 4, !tbaa !5
  %4716 = icmp eq i32 %4715, 402653193
  br i1 %4716, label %4739, label %4717

4717:                                             ; preds = %4712
  %4718 = load i32, ptr %247, align 4, !tbaa !5
  %4719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4720 = call i32 @s2n_print_stacktrace(ptr noundef %4719) #13
  %4721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4722 = trunc nuw i8 %4721 to i1
  br i1 %4722, label %4723, label %4727

4723:                                             ; preds = %4717
  %4724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4725 = call i32 @fileno(ptr noundef %4724) #13
  %4726 = call i32 @isatty(i32 noundef %4725) #13
  %.not575 = icmp eq i32 %4726, 0
  br i1 %.not575, label %4727, label %4728

4727:                                             ; preds = %4723, %4717
  br label %4728

4728:                                             ; preds = %4723, %4727
  %.str.17.sink2257 = phi ptr [ @.str.17, %4727 ], [ @.str.14, %4723 ]
  store i32 %4718, ptr %247, align 4, !tbaa !5
  %4729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4730 = load i32, ptr @test_count, align 4, !tbaa !5
  %4731 = load i32, ptr %193, align 4, !tbaa !5
  %4732 = call ptr @s2n_strerror(i32 noundef %4731, ptr noundef nonnull @.str.16) #13
  %4733 = load i32, ptr %193, align 4, !tbaa !5
  %4734 = call ptr @s2n_strerror_debug(i32 noundef %4733, ptr noundef nonnull @.str.16) #13
  %4735 = load i32, ptr %247, align 4, !tbaa !5
  %4736 = call ptr @strerror(i32 noundef %4735) #13
  %4737 = load i32, ptr %247, align 4, !tbaa !5
  %4738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4729, ptr noundef nonnull %.str.17.sink2257, i32 noundef %4730, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.13, i32 noundef 494, ptr noundef %4732, ptr noundef %4734, ptr noundef %4736, i32 noundef %4737) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4739:                                             ; preds = %4712
  %4740 = add nsw i32 %4713, 2
  store i32 %4740, ptr @test_count, align 4, !tbaa !5
  %4741 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.16) #13
  %4742 = icmp eq ptr %4741, null
  br i1 %4742, label %4743, label %4765

4743:                                             ; preds = %4739
  %4744 = load i32, ptr %247, align 4, !tbaa !5
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @s2n_print_stacktrace(ptr noundef %4745) #13
  %4747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4748 = trunc nuw i8 %4747 to i1
  br i1 %4748, label %4749, label %4753

4749:                                             ; preds = %4743
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = call i32 @fileno(ptr noundef %4750) #13
  %4752 = call i32 @isatty(i32 noundef %4751) #13
  %.not583 = icmp eq i32 %4752, 0
  br i1 %.not583, label %4753, label %4754

4753:                                             ; preds = %4749, %4743
  br label %4754

4754:                                             ; preds = %4749, %4753
  %.str.17.sink2266 = phi ptr [ @.str.17, %4753 ], [ @.str.14, %4749 ]
  store i32 %4744, ptr %247, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = load i32, ptr %193, align 4, !tbaa !5
  %4758 = call ptr @s2n_strerror(i32 noundef %4757, ptr noundef nonnull @.str.16) #13
  %4759 = load i32, ptr %193, align 4, !tbaa !5
  %4760 = call ptr @s2n_strerror_debug(i32 noundef %4759, ptr noundef nonnull @.str.16) #13
  %4761 = load i32, ptr %247, align 4, !tbaa !5
  %4762 = call ptr @strerror(i32 noundef %4761) #13
  %4763 = load i32, ptr %247, align 4, !tbaa !5
  %4764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4755, ptr noundef nonnull %.str.17.sink2266, i32 noundef %4756, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 494, ptr noundef %4758, ptr noundef %4760, ptr noundef %4762, i32 noundef %4763) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4765:                                             ; preds = %4739
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  store ptr @s2n_test_kem, ptr %42, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, i8 0, i64 24, i1 false)
  %4766 = load i32, ptr @test_count, align 4, !tbaa !5
  %4767 = add nsw i32 %4766, 1
  store i32 %4767, ptr @test_count, align 4, !tbaa !5
  %4768 = call i32 @s2n_alloc(ptr noundef nonnull %43, i32 noundef 5) #13
  %4769 = icmp eq i32 %4768, -1
  br i1 %4769, label %4770, label %4792

4770:                                             ; preds = %4765
  %4771 = load i32, ptr %247, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @s2n_print_stacktrace(ptr noundef %4772) #13
  %4774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4775 = trunc nuw i8 %4774 to i1
  br i1 %4775, label %4776, label %4780

4776:                                             ; preds = %4770
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = call i32 @fileno(ptr noundef %4777) #13
  %4779 = call i32 @isatty(i32 noundef %4778) #13
  %.not582 = icmp eq i32 %4779, 0
  br i1 %.not582, label %4780, label %4781

4780:                                             ; preds = %4776, %4770
  br label %4781

4781:                                             ; preds = %4776, %4780
  %.str.17.sink2275 = phi ptr [ @.str.17, %4780 ], [ @.str.14, %4776 ]
  store i32 %4771, ptr %247, align 4, !tbaa !5
  %4782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4783 = load i32, ptr @test_count, align 4, !tbaa !5
  %4784 = load i32, ptr %193, align 4, !tbaa !5
  %4785 = call ptr @s2n_strerror(i32 noundef %4784, ptr noundef nonnull @.str.16) #13
  %4786 = load i32, ptr %193, align 4, !tbaa !5
  %4787 = call ptr @s2n_strerror_debug(i32 noundef %4786, ptr noundef nonnull @.str.16) #13
  %4788 = load i32, ptr %247, align 4, !tbaa !5
  %4789 = call ptr @strerror(i32 noundef %4788) #13
  %4790 = load i32, ptr %247, align 4, !tbaa !5
  %4791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4782, ptr noundef nonnull %.str.17.sink2275, i32 noundef %4783, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.13, i32 noundef 500, ptr noundef %4785, ptr noundef %4787, ptr noundef %4789, i32 noundef %4790) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4792:                                             ; preds = %4765
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %44) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %44, i8 0, i64 40, i1 false)
  %4793 = load i32, ptr @test_count, align 4, !tbaa !5
  %4794 = add nsw i32 %4793, 1
  store i32 %4794, ptr @test_count, align 4, !tbaa !5
  %4795 = call i32 @s2n_stuffer_init(ptr noundef nonnull %44, ptr noundef nonnull %43) #13
  %4796 = icmp eq i32 %4795, -1
  br i1 %4796, label %4797, label %4819

4797:                                             ; preds = %4792
  %4798 = load i32, ptr %247, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @s2n_print_stacktrace(ptr noundef %4799) #13
  %4801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4802 = trunc nuw i8 %4801 to i1
  br i1 %4802, label %4803, label %4807

4803:                                             ; preds = %4797
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @fileno(ptr noundef %4804) #13
  %4806 = call i32 @isatty(i32 noundef %4805) #13
  %.not581 = icmp eq i32 %4806, 0
  br i1 %.not581, label %4807, label %4808

4807:                                             ; preds = %4803, %4797
  br label %4808

4808:                                             ; preds = %4803, %4807
  %.str.17.sink2284 = phi ptr [ @.str.17, %4807 ], [ @.str.14, %4803 ]
  store i32 %4798, ptr %247, align 4, !tbaa !5
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = load i32, ptr @test_count, align 4, !tbaa !5
  %4811 = load i32, ptr %193, align 4, !tbaa !5
  %4812 = call ptr @s2n_strerror(i32 noundef %4811, ptr noundef nonnull @.str.16) #13
  %4813 = load i32, ptr %193, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror_debug(i32 noundef %4813, ptr noundef nonnull @.str.16) #13
  %4815 = load i32, ptr %247, align 4, !tbaa !5
  %4816 = call ptr @strerror(i32 noundef %4815) #13
  %4817 = load i32, ptr %247, align 4, !tbaa !5
  %4818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4809, ptr noundef nonnull %.str.17.sink2284, i32 noundef %4810, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.13, i32 noundef 502, ptr noundef %4812, ptr noundef %4814, ptr noundef %4816, i32 noundef %4817) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4819:                                             ; preds = %4792
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %45) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %45, ptr noundef nonnull align 1 dereferenceable(5) @__const.main.bad_pk_input_3, i64 5, i1 false)
  %4820 = load i32, ptr @test_count, align 4, !tbaa !5
  %4821 = add nsw i32 %4820, 1
  store i32 %4821, ptr @test_count, align 4, !tbaa !5
  %4822 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %44, ptr noundef nonnull %45, i32 noundef 5) #13
  %4823 = icmp eq i32 %4822, -1
  br i1 %4823, label %4824, label %4846

4824:                                             ; preds = %4819
  %4825 = load i32, ptr %247, align 4, !tbaa !5
  %4826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4827 = call i32 @s2n_print_stacktrace(ptr noundef %4826) #13
  %4828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4829 = trunc nuw i8 %4828 to i1
  br i1 %4829, label %4830, label %4834

4830:                                             ; preds = %4824
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = call i32 @fileno(ptr noundef %4831) #13
  %4833 = call i32 @isatty(i32 noundef %4832) #13
  %.not580 = icmp eq i32 %4833, 0
  br i1 %.not580, label %4834, label %4835

4834:                                             ; preds = %4830, %4824
  br label %4835

4835:                                             ; preds = %4830, %4834
  %.str.17.sink2293 = phi ptr [ @.str.17, %4834 ], [ @.str.14, %4830 ]
  store i32 %4825, ptr %247, align 4, !tbaa !5
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = load i32, ptr @test_count, align 4, !tbaa !5
  %4838 = load i32, ptr %193, align 4, !tbaa !5
  %4839 = call ptr @s2n_strerror(i32 noundef %4838, ptr noundef nonnull @.str.16) #13
  %4840 = load i32, ptr %193, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror_debug(i32 noundef %4840, ptr noundef nonnull @.str.16) #13
  %4842 = load i32, ptr %247, align 4, !tbaa !5
  %4843 = call ptr @strerror(i32 noundef %4842) #13
  %4844 = load i32, ptr %247, align 4, !tbaa !5
  %4845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4836, ptr noundef nonnull %.str.17.sink2293, i32 noundef %4837, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.13, i32 noundef 504, ptr noundef %4839, ptr noundef %4841, ptr noundef %4843, i32 noundef %4844) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4846:                                             ; preds = %4819
  %4847 = load i32, ptr @test_count, align 4, !tbaa !5
  %4848 = add nsw i32 %4847, 1
  store i32 %4848, ptr @test_count, align 4, !tbaa !5
  %4849 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %44) #13
  %4850 = icmp eq i32 %4849, -1
  br i1 %4850, label %4851, label %4873

4851:                                             ; preds = %4846
  %4852 = load i32, ptr %247, align 4, !tbaa !5
  %4853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4854 = call i32 @s2n_print_stacktrace(ptr noundef %4853) #13
  %4855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4856 = trunc nuw i8 %4855 to i1
  br i1 %4856, label %4857, label %4861

4857:                                             ; preds = %4851
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = call i32 @fileno(ptr noundef %4858) #13
  %4860 = call i32 @isatty(i32 noundef %4859) #13
  %.not579 = icmp eq i32 %4860, 0
  br i1 %.not579, label %4861, label %4862

4861:                                             ; preds = %4857, %4851
  br label %4862

4862:                                             ; preds = %4857, %4861
  %.str.17.sink2302 = phi ptr [ @.str.17, %4861 ], [ @.str.14, %4857 ]
  store i32 %4852, ptr %247, align 4, !tbaa !5
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = load i32, ptr @test_count, align 4, !tbaa !5
  %4865 = load i32, ptr %193, align 4, !tbaa !5
  %4866 = call ptr @s2n_strerror(i32 noundef %4865, ptr noundef nonnull @.str.16) #13
  %4867 = load i32, ptr %193, align 4, !tbaa !5
  %4868 = call ptr @s2n_strerror_debug(i32 noundef %4867, ptr noundef nonnull @.str.16) #13
  %4869 = load i32, ptr %247, align 4, !tbaa !5
  %4870 = call ptr @strerror(i32 noundef %4869) #13
  %4871 = load i32, ptr %247, align 4, !tbaa !5
  %4872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4863, ptr noundef nonnull %.str.17.sink2302, i32 noundef %4864, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.13, i32 noundef 505, ptr noundef %4866, ptr noundef %4868, ptr noundef %4870, i32 noundef %4871) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4873:                                             ; preds = %4846
  br i1 %.not4672358, label %.critedge2339, label %4874

4874:                                             ; preds = %4873
  %4875 = load i32, ptr @test_count, align 4, !tbaa !5
  %4876 = add nsw i32 %4875, 1
  store i32 %4876, ptr @test_count, align 4, !tbaa !5
  %4877 = call i32 @s2n_kem_recv_public_key(ptr noundef nonnull %44, ptr noundef nonnull %42) #13
  %4878 = icmp eq i32 %4877, -1
  br i1 %4878, label %4901, label %4879

4879:                                             ; preds = %4874
  %4880 = load i32, ptr %247, align 4, !tbaa !5
  %4881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4882 = call i32 @s2n_print_stacktrace(ptr noundef %4881) #13
  %4883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4884 = trunc nuw i8 %4883 to i1
  br i1 %4884, label %4885, label %4889

4885:                                             ; preds = %4879
  %4886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4887 = call i32 @fileno(ptr noundef %4886) #13
  %4888 = call i32 @isatty(i32 noundef %4887) #13
  %.not576 = icmp eq i32 %4888, 0
  br i1 %.not576, label %4889, label %4890

4889:                                             ; preds = %4885, %4879
  br label %4890

4890:                                             ; preds = %4885, %4889
  %.str.17.sink2311 = phi ptr [ @.str.17, %4889 ], [ @.str.14, %4885 ]
  store i32 %4880, ptr %247, align 4, !tbaa !5
  %4891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4892 = load i32, ptr @test_count, align 4, !tbaa !5
  %4893 = load i32, ptr %193, align 4, !tbaa !5
  %4894 = call ptr @s2n_strerror(i32 noundef %4893, ptr noundef nonnull @.str.16) #13
  %4895 = load i32, ptr %193, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror_debug(i32 noundef %4895, ptr noundef nonnull @.str.16) #13
  %4897 = load i32, ptr %247, align 4, !tbaa !5
  %4898 = call ptr @strerror(i32 noundef %4897) #13
  %4899 = load i32, ptr %247, align 4, !tbaa !5
  %4900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4891, ptr noundef nonnull %.str.17.sink2311, i32 noundef %4892, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.13, i32 noundef 507, ptr noundef %4894, ptr noundef %4896, ptr noundef %4898, i32 noundef %4899) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4901:                                             ; preds = %4874
  %4902 = load i32, ptr @test_count, align 4, !tbaa !5
  %4903 = add nsw i32 %4902, 1
  store i32 %4903, ptr @test_count, align 4, !tbaa !5
  %4904 = load i32, ptr %193, align 4, !tbaa !5
  %4905 = icmp eq i32 %4904, 335544322
  br i1 %4905, label %4928, label %4906

4906:                                             ; preds = %4901
  %4907 = load i32, ptr %247, align 4, !tbaa !5
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = call i32 @s2n_print_stacktrace(ptr noundef %4908) #13
  %4910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4911 = trunc nuw i8 %4910 to i1
  br i1 %4911, label %4912, label %4916

4912:                                             ; preds = %4906
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = call i32 @fileno(ptr noundef %4913) #13
  %4915 = call i32 @isatty(i32 noundef %4914) #13
  %.not577 = icmp eq i32 %4915, 0
  br i1 %.not577, label %4916, label %4917

4916:                                             ; preds = %4912, %4906
  br label %4917

4917:                                             ; preds = %4912, %4916
  %.str.17.sink2320 = phi ptr [ @.str.17, %4916 ], [ @.str.14, %4912 ]
  store i32 %4907, ptr %247, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = load i32, ptr %193, align 4, !tbaa !5
  %4921 = call ptr @s2n_strerror(i32 noundef %4920, ptr noundef nonnull @.str.16) #13
  %4922 = load i32, ptr %193, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror_debug(i32 noundef %4922, ptr noundef nonnull @.str.16) #13
  %4924 = load i32, ptr %247, align 4, !tbaa !5
  %4925 = call ptr @strerror(i32 noundef %4924) #13
  %4926 = load i32, ptr %247, align 4, !tbaa !5
  %4927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4918, ptr noundef nonnull %.str.17.sink2320, i32 noundef %4919, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.13, i32 noundef 507, ptr noundef %4921, ptr noundef %4923, ptr noundef %4925, i32 noundef %4926) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4928:                                             ; preds = %4901
  %4929 = add nsw i32 %4902, 2
  store i32 %4929, ptr @test_count, align 4, !tbaa !5
  %4930 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.16) #13
  %4931 = icmp eq ptr %4930, null
  br i1 %4931, label %4932, label %4954

4932:                                             ; preds = %4928
  %4933 = load i32, ptr %247, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = call i32 @s2n_print_stacktrace(ptr noundef %4934) #13
  %4936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4937 = trunc nuw i8 %4936 to i1
  br i1 %4937, label %4938, label %4942

4938:                                             ; preds = %4932
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = call i32 @fileno(ptr noundef %4939) #13
  %4941 = call i32 @isatty(i32 noundef %4940) #13
  %.not578 = icmp eq i32 %4941, 0
  br i1 %.not578, label %4942, label %4943

4942:                                             ; preds = %4938, %4932
  br label %4943

4943:                                             ; preds = %4938, %4942
  %.str.17.sink2329 = phi ptr [ @.str.17, %4942 ], [ @.str.14, %4938 ]
  store i32 %4933, ptr %247, align 4, !tbaa !5
  %4944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4945 = load i32, ptr @test_count, align 4, !tbaa !5
  %4946 = load i32, ptr %193, align 4, !tbaa !5
  %4947 = call ptr @s2n_strerror(i32 noundef %4946, ptr noundef nonnull @.str.16) #13
  %4948 = load i32, ptr %193, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror_debug(i32 noundef %4948, ptr noundef nonnull @.str.16) #13
  %4950 = load i32, ptr %247, align 4, !tbaa !5
  %4951 = call ptr @strerror(i32 noundef %4950) #13
  %4952 = load i32, ptr %247, align 4, !tbaa !5
  %4953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4944, ptr noundef nonnull %.str.17.sink2329, i32 noundef %4945, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.13, i32 noundef 507, ptr noundef %4947, ptr noundef %4949, ptr noundef %4951, i32 noundef %4952) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4954:                                             ; preds = %4928
  store i32 0, ptr %193, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %247, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %45) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #13
  %4955 = call i32 @s2n_free(ptr noundef nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #13
  %4956 = call i32 @s2n_free(ptr noundef nonnull %40) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #13
  br i1 %.not4672358, label %.backedge, label %4982

.backedge:                                        ; preds = %4954, %.critedge2339
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %940, i8 0, i64 80, i1 false)
  store ptr @s2n_test_kem, ptr %9, align 8, !tbaa !28
  store i8 1, ptr %878, align 8, !tbaa !29
  %4957 = load i32, ptr @test_count, align 4, !tbaa !5
  %4958 = add nsw i32 %4957, 1
  store i32 %4958, ptr @test_count, align 4, !tbaa !5
  %4959 = call i32 @s2n_alloc(ptr noundef nonnull %879, i32 noundef 2) #13
  %4960 = icmp eq i32 %4959, -1
  br i1 %4960, label %._crit_edge, label %.lr.ph, !llvm.loop !43

.critedge670:                                     ; preds = %2435
  %4961 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.87, ptr %4961, align 8, !tbaa !45
  %4962 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.87, i64 21), i32 noundef 47) #17
  %.not518 = icmp eq ptr %4962, null
  %4963 = getelementptr inbounds i8, ptr %4962, i64 1
  %4964 = select i1 %.not518, ptr getelementptr inbounds (i8, ptr @.str.87, i64 21), ptr %4963
  %4965 = getelementptr inbounds i8, ptr %4961, i64 8
  store ptr %4964, ptr %4965, align 8, !tbaa !47
  store i32 402653193, ptr %193, align 4, !tbaa !5
  %4966 = call i32 @s2n_calculate_stacktrace() #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #13
  %4967 = call i32 @s2n_free(ptr noundef nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %18) #13
  br label %.thread703

.critedge674:                                     ; preds = %3183
  %4968 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.103, ptr %4968, align 8, !tbaa !45
  %4969 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.103, i64 21), i32 noundef 47) #17
  %.not539 = icmp eq ptr %4969, null
  %4970 = getelementptr inbounds i8, ptr %4969, i64 1
  %4971 = select i1 %.not539, ptr getelementptr inbounds (i8, ptr @.str.103, i64 21), ptr %4970
  %4972 = getelementptr inbounds i8, ptr %4968, i64 8
  store ptr %4971, ptr %4972, align 8, !tbaa !47
  store i32 402653193, ptr %193, align 4, !tbaa !5
  %4973 = call i32 @s2n_calculate_stacktrace() #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #13
  %4974 = call i32 @s2n_free(ptr noundef nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %24) #13
  br label %.thread703

.critedge676:                                     ; preds = %3878
  %4975 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.112, ptr %4975, align 8, !tbaa !45
  %4976 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.112, i64 21), i32 noundef 47) #17
  %.not555 = icmp eq ptr %4976, null
  %4977 = getelementptr inbounds i8, ptr %4976, i64 1
  %4978 = select i1 %.not555, ptr getelementptr inbounds (i8, ptr @.str.112, i64 21), ptr %4977
  %4979 = getelementptr inbounds i8, ptr %4975, i64 8
  store ptr %4978, ptr %4979, align 8, !tbaa !47
  store i32 402653193, ptr %193, align 4, !tbaa !5
  %4980 = call i32 @s2n_calculate_stacktrace() #13
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %31) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #13
  %4981 = call i32 @s2n_free(ptr noundef nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #13
  br label %.thread703

4982:                                             ; preds = %4954
  %4983 = call i32 @s2n_cleanup() #13
  %4984 = icmp eq i32 %4983, -1
  br i1 %4984, label %4985, label %5007

4985:                                             ; preds = %4982
  %4986 = load i32, ptr %247, align 4, !tbaa !5
  %4987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4988 = call i32 @s2n_print_stacktrace(ptr noundef %4987) #13
  %4989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4990 = trunc nuw i8 %4989 to i1
  br i1 %4990, label %4991, label %4995

4991:                                             ; preds = %4985
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = call i32 @fileno(ptr noundef %4992) #13
  %4994 = call i32 @isatty(i32 noundef %4993) #13
  %.not564 = icmp eq i32 %4994, 0
  br i1 %.not564, label %4995, label %4996

4995:                                             ; preds = %4991, %4985
  br label %4996

4996:                                             ; preds = %4991, %4995
  %.str.17.sink2340 = phi ptr [ @.str.17, %4995 ], [ @.str.14, %4991 ]
  store i32 %4986, ptr %247, align 4, !tbaa !5
  %4997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = load i32, ptr %193, align 4, !tbaa !5
  %5000 = call ptr @s2n_strerror(i32 noundef %4999, ptr noundef nonnull @.str.16) #13
  %5001 = load i32, ptr %193, align 4, !tbaa !5
  %5002 = call ptr @s2n_strerror_debug(i32 noundef %5001, ptr noundef nonnull @.str.16) #13
  %5003 = load i32, ptr %247, align 4, !tbaa !5
  %5004 = call ptr @strerror(i32 noundef %5003) #13
  %5005 = load i32, ptr %247, align 4, !tbaa !5
  %5006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4997, ptr noundef nonnull %.str.17.sink2340, i32 noundef %4998, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.13, i32 noundef 512, ptr noundef %5000, ptr noundef %5002, ptr noundef %5004, i32 noundef %5005) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5007:                                             ; preds = %4982
  %5008 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %5009 = icmp eq i32 %5008, -1
  br i1 %5009, label %5010, label %5032

5010:                                             ; preds = %5007
  %5011 = load i32, ptr %247, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = call i32 @s2n_print_stacktrace(ptr noundef %5012) #13
  %5014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5015 = trunc nuw i8 %5014 to i1
  br i1 %5015, label %5016, label %5020

5016:                                             ; preds = %5010
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @fileno(ptr noundef %5017) #13
  %5019 = call i32 @isatty(i32 noundef %5018) #13
  %.not563 = icmp eq i32 %5019, 0
  br i1 %.not563, label %5020, label %5021

5020:                                             ; preds = %5016, %5010
  br label %5021

5021:                                             ; preds = %5016, %5020
  %.str.17.sink2349 = phi ptr [ @.str.17, %5020 ], [ @.str.14, %5016 ]
  store i32 %5011, ptr %247, align 4, !tbaa !5
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = load i32, ptr %193, align 4, !tbaa !5
  %5025 = call ptr @s2n_strerror(i32 noundef %5024, ptr noundef nonnull @.str.16) #13
  %5026 = load i32, ptr %193, align 4, !tbaa !5
  %5027 = call ptr @s2n_strerror_debug(i32 noundef %5026, ptr noundef nonnull @.str.16) #13
  %5028 = load i32, ptr %247, align 4, !tbaa !5
  %5029 = call ptr @strerror(i32 noundef %5028) #13
  %5030 = load i32, ptr %247, align 4, !tbaa !5
  %5031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5022, ptr noundef nonnull %.str.17.sink2349, i32 noundef %5023, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.13, i32 noundef 512, ptr noundef %5025, ptr noundef %5027, ptr noundef %5029, i32 noundef %5030) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5032:                                             ; preds = %5007
  %5033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5034 = trunc nuw i8 %5033 to i1
  br i1 %5034, label %5035, label %5046

5035:                                             ; preds = %5032
  %5036 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5037 = call i32 @fileno(ptr noundef %5036) #13
  %5038 = call i32 @isatty(i32 noundef %5037) #13
  %.not560 = icmp eq i32 %5038, 0
  br i1 %.not560, label %5046, label %5039

5039:                                             ; preds = %5035
  %5040 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not562 = icmp eq i32 %5040, 0
  %5041 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not562, label %5044, label %5042

5042:                                             ; preds = %5039
  %5043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5041, ptr noundef nonnull @.str.130, i32 noundef %5040) #13
  br label %.thread703

5044:                                             ; preds = %5039
  %5045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5041, ptr noundef nonnull @.str.131) #13
  br label %.thread703

5046:                                             ; preds = %5035, %5032
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not561 = icmp eq i32 %5047, 0
  %5048 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not561, label %5051, label %5049

5049:                                             ; preds = %5046
  %5050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5048, ptr noundef nonnull @.str.132, i32 noundef %5047) #13
  br label %.thread703

5051:                                             ; preds = %5046
  %5052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5048, ptr noundef nonnull @.str.133) #13
  br label %.thread703

.thread703:                                       ; preds = %.thread684, %.critedge676, %.critedge674, %.critedge670, %1687, %.thread, %5044, %5042, %5051, %5049
  %.14 = phi i32 [ 0, %5049 ], [ 0, %5051 ], [ 0, %5042 ], [ 0, %5044 ], [ -1, %.thread ], [ -1, %.thread684 ], [ -1, %.critedge676 ], [ -1, %.critedge674 ], [ -1, %.critedge670 ], [ -1, %1687 ]
  ret i32 %.14
}

; 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 #1

; 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 #1

; 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 #1

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

; 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 #1

declare i32 @s2n_init() local_unnamed_addr #1

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

declare i32 @s2n_cipher_suite_to_kem(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @s2n_debug_info_reset() local_unnamed_addr #1

declare i32 @s2n_kem_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_kem_group_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_ecdhe_parameters_send(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #1

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

declare i32 @s2n_get_kem_from_extension_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #1

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

declare i32 @s2n_kem_generate_keypair(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_kem_encapsulate(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_kem_decapsulate(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_kem_send_public_key(ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #1

declare i32 @s2n_kem_send_ciphertext(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_kem_recv_ciphertext(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_kem_recv_public_key(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_cleanup() local_unnamed_addr #1

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 16}
!16 = !{!"s2n_iana_to_kem", !7, i64 0, !10, i64 8, !7, i64 16}
!17 = !{!16, !10, i64 8}
!18 = !{!19, !20, i64 12}
!19 = !{!"s2n_kem", !10, i64 0, !6, i64 8, !20, i64 12, !20, i64 14, !20, i64 16, !20, i64 18, !20, i64 20, !10, i64 24, !10, i64 32, !10, i64 40}
!20 = !{!"short", !7, i64 0}
!21 = !{!22, !10, i64 96}
!22 = !{!"s2n_kem_group_params", !10, i64 0, !23, i64 8, !25, i64 96}
!23 = !{!"s2n_kem_params", !10, i64 0, !24, i64 8, !24, i64 32, !24, i64 56, !12, i64 80}
!24 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!22, !10, i64 104}
!27 = !{!20, !20, i64 0}
!28 = !{!23, !10, i64 0}
!29 = !{!23, !12, i64 80}
!30 = !{!23, !6, i64 16}
!31 = !{!23, !6, i64 40}
!32 = !{!23, !10, i64 8}
!33 = !{!23, !10, i64 32}
!34 = !{!23, !6, i64 64}
!35 = !{!23, !6, i64 68}
!36 = !{!23, !10, i64 56}
!37 = !{!24, !6, i64 8}
!38 = !{!24, !10, i64 0}
!39 = !{!23, !6, i64 44}
!40 = !{!41, !10, i64 0}
!41 = !{!"s2n_stuffer", !24, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!42 = !{!23, !6, i64 20}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = !{!46, !10, i64 0}
!46 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!47 = !{!46, !10, i64 8}


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