; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_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_signature_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_result = type { i32 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [77 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@test_type = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [118 x i8], align 1
@__const.main.rsa_pss_rsae_sig_schemes = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.74 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

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

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

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

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

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

declare zeroext i1 @s2n_is_in_fips_mode() #3

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [12000 x i8], align 16
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %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 i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %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 i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca [3 x ptr], align 16
  %68 = alloca %struct.s2n_signature_preferences, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca %struct.s2n_security_policy, align 8
  %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 i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca ptr, align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i64, align 8
  %102 = alloca i64, align 8
  %103 = alloca i32, align 4
  %104 = alloca ptr, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca %struct.s2n_result, align 4
  %115 = alloca %struct.s2n_result, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  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 %122

122:                                              ; preds = %2
  br label %123

123:                                              ; preds = %122
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %124 = load ptr, ptr @stdout, align 8, !tbaa !9
  %125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef @.str.36, ptr noundef @.str.2) #9
  %126 = load ptr, ptr @stdout, align 8, !tbaa !9
  %127 = call i32 @fflush(ptr noundef %126)
  br label %128

128:                                              ; preds = %123
  %129 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %130 = icmp eq i32 %129, -1
  br i1 %130, label %131, label %182

131:                                              ; preds = %128
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %134 = call ptr @__errno_location() #10
  %135 = load i32, ptr %134, align 4, !tbaa !5
  store i32 %135, ptr %6, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = call i32 @s2n_print_stacktrace(ptr noundef %136)
  %138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %139 = trunc i8 %138 to i1
  br i1 %139, label %140, label %162

140:                                              ; preds = %133
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = call i32 @fileno(ptr noundef %141) #9
  %143 = call i32 @isatty(i32 noundef %142) #9
  %144 = icmp ne i32 %143, 0
  br i1 %144, label %145, label %162

145:                                              ; preds = %140
  %146 = load i32, ptr %6, align 4, !tbaa !5
  %147 = call ptr @__errno_location() #10
  store i32 %146, ptr %147, align 4, !tbaa !5
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = call ptr @s2n_strerror(i32 noundef %151, ptr noundef @.str.3)
  %153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = call ptr @s2n_strerror_debug(i32 noundef %154, ptr noundef @.str.3)
  %156 = call ptr @__errno_location() #10
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @strerror(i32 noundef %157) #9
  %159 = call ptr @__errno_location() #10
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef @.str, i32 noundef %149, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 237, ptr noundef %152, ptr noundef %155, ptr noundef %158, i32 noundef %160) #9
  br label %179

162:                                              ; preds = %140, %133
  %163 = load i32, ptr %6, align 4, !tbaa !5
  %164 = call ptr @__errno_location() #10
  store i32 %163, ptr %164, align 4, !tbaa !5
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = call ptr @s2n_strerror(i32 noundef %168, ptr noundef @.str.3)
  %170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %171 = load i32, ptr %170, align 4, !tbaa !5
  %172 = call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef @.str.3)
  %173 = call ptr @__errno_location() #10
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @strerror(i32 noundef %174) #9
  %176 = call ptr @__errno_location() #10
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef @.str.4, i32 noundef %166, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 237, ptr noundef %169, ptr noundef %172, ptr noundef %175, i32 noundef %177) #9
  br label %179

179:                                              ; preds = %162, %145
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %180

180:                                              ; preds = %179
  call void @exit(i32 noundef 1) #11
  unreachable

181:                                              ; No predecessors!
  br label %182

182:                                              ; preds = %181, %128
  br label %183

183:                                              ; preds = %182
  br label %184

184:                                              ; preds = %183
  %185 = load i32, ptr @test_count, align 4, !tbaa !5
  %186 = add nsw i32 %185, 1
  store i32 %186, ptr @test_count, align 4, !tbaa !5
  %187 = call i32 @s2n_enable_atexit()
  %188 = icmp eq i32 %187, -1
  br i1 %188, label %189, label %240

189:                                              ; preds = %184
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %192 = call ptr @__errno_location() #10
  %193 = load i32, ptr %192, align 4, !tbaa !5
  store i32 %193, ptr %7, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @s2n_print_stacktrace(ptr noundef %194)
  %196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %197 = trunc i8 %196 to i1
  br i1 %197, label %198, label %220

198:                                              ; preds = %191
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @fileno(ptr noundef %199) #9
  %201 = call i32 @isatty(i32 noundef %200) #9
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %203, label %220

203:                                              ; preds = %198
  %204 = load i32, ptr %7, align 4, !tbaa !5
  %205 = call ptr @__errno_location() #10
  store i32 %204, ptr %205, align 4, !tbaa !5
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = call ptr @s2n_strerror(i32 noundef %209, ptr noundef @.str.3)
  %211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef @.str.3)
  %214 = call ptr @__errno_location() #10
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @strerror(i32 noundef %215) #9
  %217 = call ptr @__errno_location() #10
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %206, ptr noundef @.str, i32 noundef %207, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 237, ptr noundef %210, ptr noundef %213, ptr noundef %216, i32 noundef %218) #9
  br label %237

220:                                              ; preds = %198, %191
  %221 = load i32, ptr %7, align 4, !tbaa !5
  %222 = call ptr @__errno_location() #10
  store i32 %221, ptr %222, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror(i32 noundef %226, ptr noundef @.str.3)
  %228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef @.str.3)
  %231 = call ptr @__errno_location() #10
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @strerror(i32 noundef %232) #9
  %234 = call ptr @__errno_location() #10
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef @.str.4, i32 noundef %224, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 237, ptr noundef %227, ptr noundef %230, ptr noundef %233, i32 noundef %235) #9
  br label %237

237:                                              ; preds = %220, %203
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %238

238:                                              ; preds = %237
  call void @exit(i32 noundef 1) #11
  unreachable

239:                                              ; No predecessors!
  br label %240

240:                                              ; preds = %239, %184
  br label %241

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242
  %244 = call i32 @s2n_init()
  %245 = icmp eq i32 %244, -1
  br i1 %245, label %246, label %297

246:                                              ; preds = %243
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %249 = call ptr @__errno_location() #10
  %250 = load i32, ptr %249, align 4, !tbaa !5
  store i32 %250, ptr %8, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @s2n_print_stacktrace(ptr noundef %251)
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc i8 %253 to i1
  br i1 %254, label %255, label %277

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @fileno(ptr noundef %256) #9
  %258 = call i32 @isatty(i32 noundef %257) #9
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %277

260:                                              ; preds = %255
  %261 = load i32, ptr %8, align 4, !tbaa !5
  %262 = call ptr @__errno_location() #10
  store i32 %261, ptr %262, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror(i32 noundef %266, ptr noundef @.str.3)
  %268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror_debug(i32 noundef %269, ptr noundef @.str.3)
  %271 = call ptr @__errno_location() #10
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #9
  %274 = call ptr @__errno_location() #10
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str, i32 noundef %264, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 237, ptr noundef %267, ptr noundef %270, ptr noundef %273, i32 noundef %275) #9
  br label %294

277:                                              ; preds = %255, %248
  %278 = load i32, ptr %8, align 4, !tbaa !5
  %279 = call ptr @__errno_location() #10
  store i32 %278, ptr %279, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef @.str.3)
  %285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef @.str.3)
  %288 = call ptr @__errno_location() #10
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @strerror(i32 noundef %289) #9
  %291 = call ptr @__errno_location() #10
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef @.str.4, i32 noundef %281, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 237, ptr noundef %284, ptr noundef %287, ptr noundef %290, i32 noundef %292) #9
  br label %294

294:                                              ; preds = %277, %260
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %295

295:                                              ; preds = %294
  call void @exit(i32 noundef 1) #11
  unreachable

296:                                              ; No predecessors!
  br label %297

297:                                              ; preds = %296, %243
  br label %298

298:                                              ; preds = %297
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  %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 = call i32 (...) @s2n_disable_tls13_in_test()
  %304 = icmp eq i32 %303, -1
  br i1 %304, label %305, label %356

305:                                              ; preds = %300
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %308 = call ptr @__errno_location() #10
  %309 = load i32, ptr %308, align 4, !tbaa !5
  store i32 %309, ptr %9, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = call i32 @s2n_print_stacktrace(ptr noundef %310)
  %312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %313 = trunc i8 %312 to i1
  br i1 %313, label %314, label %336

314:                                              ; preds = %307
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @fileno(ptr noundef %315) #9
  %317 = call i32 @isatty(i32 noundef %316) #9
  %318 = icmp ne i32 %317, 0
  br i1 %318, label %319, label %336

319:                                              ; preds = %314
  %320 = load i32, ptr %9, align 4, !tbaa !5
  %321 = call ptr @__errno_location() #10
  store i32 %320, ptr %321, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef @.str.3)
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef @.str.3)
  %330 = call ptr @__errno_location() #10
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #9
  %333 = call ptr @__errno_location() #10
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef @.str, i32 noundef %323, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 238, ptr noundef %326, ptr noundef %329, ptr noundef %332, i32 noundef %334) #9
  br label %353

336:                                              ; preds = %314, %307
  %337 = load i32, ptr %9, align 4, !tbaa !5
  %338 = call ptr @__errno_location() #10
  store i32 %337, ptr %338, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror(i32 noundef %342, ptr noundef @.str.3)
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef @.str.3)
  %347 = call ptr @__errno_location() #10
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #9
  %350 = call ptr @__errno_location() #10
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %339, ptr noundef @.str.4, i32 noundef %340, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 238, ptr noundef %343, ptr noundef %346, ptr noundef %349, i32 noundef %351) #9
  br label %353

353:                                              ; preds = %336, %319
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %354

354:                                              ; preds = %353
  call void @exit(i32 noundef 1) #11
  unreachable

355:                                              ; No predecessors!
  br label %356

356:                                              ; preds = %355, %300
  br label %357

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 12000, ptr %10) #9
  br label %358

358:                                              ; preds = %357
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = add nsw i32 %359, 1
  store i32 %360, ptr @test_count, align 4, !tbaa !5
  %361 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %362 = call i32 @s2n_read_test_pem(ptr noundef @.str.41, ptr noundef %361, i64 noundef 12000)
  %363 = icmp eq i32 %362, -1
  br i1 %363, label %364, label %417

364:                                              ; preds = %358
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %367 = call ptr @__errno_location() #10
  %368 = load i32, ptr %367, align 4, !tbaa !5
  store i32 %368, ptr %11, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = call i32 @s2n_print_stacktrace(ptr noundef %369)
  %371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %372 = trunc i8 %371 to i1
  br i1 %372, label %373, label %395

373:                                              ; preds = %366
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 @fileno(ptr noundef %374) #9
  %376 = call i32 @isatty(i32 noundef %375) #9
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %395

378:                                              ; preds = %373
  %379 = load i32, ptr %11, align 4, !tbaa !5
  %380 = call ptr @__errno_location() #10
  store i32 %379, ptr %380, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror(i32 noundef %384, ptr noundef @.str.3)
  %386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror_debug(i32 noundef %387, ptr noundef @.str.3)
  %389 = call ptr @__errno_location() #10
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call ptr @strerror(i32 noundef %390) #9
  %392 = call ptr @__errno_location() #10
  %393 = load i32, ptr %392, align 4, !tbaa !5
  %394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef @.str, i32 noundef %382, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 241, ptr noundef %385, ptr noundef %388, ptr noundef %391, i32 noundef %393) #9
  br label %412

395:                                              ; preds = %373, %366
  %396 = load i32, ptr %11, align 4, !tbaa !5
  %397 = call ptr @__errno_location() #10
  store i32 %396, ptr %397, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = call ptr @s2n_strerror(i32 noundef %401, ptr noundef @.str.3)
  %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_debug(i32 noundef %404, ptr noundef @.str.3)
  %406 = call ptr @__errno_location() #10
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #9
  %409 = call ptr @__errno_location() #10
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %398, ptr noundef @.str.4, i32 noundef %399, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 241, ptr noundef %402, ptr noundef %405, ptr noundef %408, i32 noundef %410) #9
  br label %412

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

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413
  call void @exit(i32 noundef 1) #11
  unreachable

415:                                              ; No predecessors!
  br label %416

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416, %358
  br label %418

418:                                              ; preds = %417
  br label %419

419:                                              ; preds = %418
  store i32 0, ptr @test_type, align 4, !tbaa !5
  br label %420

420:                                              ; preds = %4848, %419
  %421 = load i32, ptr @test_type, align 4, !tbaa !5
  %422 = icmp ult i32 %421, 2
  br i1 %422, label %423, label %4851

423:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store ptr null, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %424

424:                                              ; preds = %423
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %14, ptr noundef @.str.43, ptr noundef @.str.44)
  %428 = icmp eq i32 %427, -1
  br i1 %428, label %429, label %482

429:                                              ; preds = %424
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %432 = call ptr @__errno_location() #10
  %433 = load i32, ptr %432, align 4, !tbaa !5
  store i32 %433, ptr %15, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @s2n_print_stacktrace(ptr noundef %434)
  %436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %437 = trunc i8 %436 to i1
  br i1 %437, label %438, label %460

438:                                              ; preds = %431
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @fileno(ptr noundef %439) #9
  %441 = call i32 @isatty(i32 noundef %440) #9
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %443, label %460

443:                                              ; preds = %438
  %444 = load i32, ptr %15, align 4, !tbaa !5
  %445 = call ptr @__errno_location() #10
  store i32 %444, ptr %445, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror(i32 noundef %449, ptr noundef @.str.3)
  %451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @s2n_strerror_debug(i32 noundef %452, ptr noundef @.str.3)
  %454 = call ptr @__errno_location() #10
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #9
  %457 = call ptr @__errno_location() #10
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef @.str, i32 noundef %447, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 250, ptr noundef %450, ptr noundef %453, ptr noundef %456, i32 noundef %458) #9
  br label %477

460:                                              ; preds = %438, %431
  %461 = load i32, ptr %15, align 4, !tbaa !5
  %462 = call ptr @__errno_location() #10
  store i32 %461, ptr %462, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %466, ptr noundef @.str.3)
  %468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror_debug(i32 noundef %469, ptr noundef @.str.3)
  %471 = call ptr @__errno_location() #10
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @strerror(i32 noundef %472) #9
  %474 = call ptr @__errno_location() #10
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef @.str.4, i32 noundef %464, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 250, ptr noundef %467, ptr noundef %470, ptr noundef %473, i32 noundef %475) #9
  br label %477

477:                                              ; preds = %460, %443
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  call void @exit(i32 noundef 1) #11
  unreachable

480:                                              ; No predecessors!
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481, %424
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = call ptr @s2n_config_new()
  store ptr %488, ptr %12, align 8, !tbaa !9
  %489 = icmp eq ptr %488, null
  br i1 %489, label %490, label %543

490:                                              ; preds = %485
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %493 = call ptr @__errno_location() #10
  %494 = load i32, ptr %493, align 4, !tbaa !5
  store i32 %494, ptr %16, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @s2n_print_stacktrace(ptr noundef %495)
  %497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %498 = trunc i8 %497 to i1
  br i1 %498, label %499, label %521

499:                                              ; preds = %492
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = call i32 @fileno(ptr noundef %500) #9
  %502 = call i32 @isatty(i32 noundef %501) #9
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %504, label %521

504:                                              ; preds = %499
  %505 = load i32, ptr %16, align 4, !tbaa !5
  %506 = call ptr @__errno_location() #10
  store i32 %505, ptr %506, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = load i32, ptr @test_count, align 4, !tbaa !5
  %509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror(i32 noundef %510, ptr noundef @.str.3)
  %512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror_debug(i32 noundef %513, ptr noundef @.str.3)
  %515 = call ptr @__errno_location() #10
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #9
  %518 = call ptr @__errno_location() #10
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %507, ptr noundef @.str, i32 noundef %508, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 252, ptr noundef %511, ptr noundef %514, ptr noundef %517, i32 noundef %519) #9
  br label %538

521:                                              ; preds = %499, %492
  %522 = load i32, ptr %16, align 4, !tbaa !5
  %523 = call ptr @__errno_location() #10
  store i32 %522, ptr %523, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror(i32 noundef %527, ptr noundef @.str.3)
  %529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef @.str.3)
  %532 = call ptr @__errno_location() #10
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #9
  %535 = call ptr @__errno_location() #10
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef @.str.4, i32 noundef %525, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 252, ptr noundef %528, ptr noundef %531, ptr noundef %534, i32 noundef %536) #9
  br label %538

538:                                              ; preds = %521, %504
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  call void @exit(i32 noundef 1) #11
  unreachable

541:                                              ; No predecessors!
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542, %485
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  %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 = load ptr, ptr %12, align 8, !tbaa !9
  %550 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %549, ptr noundef @.str.47)
  %551 = icmp eq i32 %550, -1
  br i1 %551, label %552, label %605

552:                                              ; preds = %546
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %555 = call ptr @__errno_location() #10
  %556 = load i32, ptr %555, align 4, !tbaa !5
  store i32 %556, ptr %17, align 4, !tbaa !5
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = call i32 @s2n_print_stacktrace(ptr noundef %557)
  %559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %560 = trunc i8 %559 to i1
  br i1 %560, label %561, label %583

561:                                              ; preds = %554
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @fileno(ptr noundef %562) #9
  %564 = call i32 @isatty(i32 noundef %563) #9
  %565 = icmp ne i32 %564, 0
  br i1 %565, label %566, label %583

566:                                              ; preds = %561
  %567 = load i32, ptr %17, align 4, !tbaa !5
  %568 = call ptr @__errno_location() #10
  store i32 %567, ptr %568, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror(i32 noundef %572, ptr noundef @.str.3)
  %574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef @.str.3)
  %577 = call ptr @__errno_location() #10
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @strerror(i32 noundef %578) #9
  %580 = call ptr @__errno_location() #10
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef @.str, i32 noundef %570, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 254, ptr noundef %573, ptr noundef %576, ptr noundef %579, i32 noundef %581) #9
  br label %600

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

600:                                              ; preds = %583, %566
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  call void @exit(i32 noundef 1) #11
  unreachable

603:                                              ; No predecessors!
  br label %604

604:                                              ; preds = %603
  br label %605

605:                                              ; preds = %604, %546
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  br label %608

608:                                              ; preds = %607
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr @test_count, align 4, !tbaa !5
  %611 = load ptr, ptr %12, align 8, !tbaa !9
  %612 = load ptr, ptr %14, align 8, !tbaa !9
  %613 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %611, ptr noundef %612)
  %614 = icmp eq i32 %613, -1
  br i1 %614, label %615, label %668

615:                                              ; preds = %608
  br label %616

616:                                              ; preds = %615
  br label %617

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

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

629:                                              ; preds = %624
  %630 = load i32, ptr %18, align 4, !tbaa !5
  %631 = call ptr @__errno_location() #10
  store i32 %630, ptr %631, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror(i32 noundef %635, ptr noundef @.str.3)
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef @.str.3)
  %640 = call ptr @__errno_location() #10
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #9
  %643 = call ptr @__errno_location() #10
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef @.str, i32 noundef %633, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 255, ptr noundef %636, ptr noundef %639, ptr noundef %642, i32 noundef %644) #9
  br label %663

646:                                              ; preds = %624, %617
  %647 = load i32, ptr %18, align 4, !tbaa !5
  %648 = call ptr @__errno_location() #10
  store i32 %647, ptr %648, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef @.str.3)
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef @.str.3)
  %657 = call ptr @__errno_location() #10
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #9
  %660 = call ptr @__errno_location() #10
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef @.str.4, i32 noundef %650, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 255, ptr noundef %653, ptr noundef %656, ptr noundef %659, i32 noundef %661) #9
  br label %663

663:                                              ; preds = %646, %629
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %664

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %664
  call void @exit(i32 noundef 1) #11
  unreachable

666:                                              ; No predecessors!
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667, %608
  br label %669

669:                                              ; preds = %668
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = load ptr, ptr %12, align 8, !tbaa !9
  %675 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %676 = call i32 @s2n_config_add_dhparams(ptr noundef %674, ptr noundef %675)
  %677 = icmp eq i32 %676, -1
  br i1 %677, label %678, label %731

678:                                              ; preds = %671
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %681 = call ptr @__errno_location() #10
  %682 = load i32, ptr %681, align 4, !tbaa !5
  store i32 %682, ptr %19, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = call i32 @s2n_print_stacktrace(ptr noundef %683)
  %685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %686 = trunc i8 %685 to i1
  br i1 %686, label %687, label %709

687:                                              ; preds = %680
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @fileno(ptr noundef %688) #9
  %690 = call i32 @isatty(i32 noundef %689) #9
  %691 = icmp ne i32 %690, 0
  br i1 %691, label %692, label %709

692:                                              ; preds = %687
  %693 = load i32, ptr %19, align 4, !tbaa !5
  %694 = call ptr @__errno_location() #10
  store i32 %693, ptr %694, align 4, !tbaa !5
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror(i32 noundef %698, ptr noundef @.str.3)
  %700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef @.str.3)
  %703 = call ptr @__errno_location() #10
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @strerror(i32 noundef %704) #9
  %706 = call ptr @__errno_location() #10
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %695, ptr noundef @.str, i32 noundef %696, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 256, ptr noundef %699, ptr noundef %702, ptr noundef %705, i32 noundef %707) #9
  br label %726

709:                                              ; preds = %687, %680
  %710 = load i32, ptr %19, align 4, !tbaa !5
  %711 = call ptr @__errno_location() #10
  store i32 %710, ptr %711, align 4, !tbaa !5
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = load i32, ptr @test_count, align 4, !tbaa !5
  %714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @s2n_strerror(i32 noundef %715, ptr noundef @.str.3)
  %717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror_debug(i32 noundef %718, ptr noundef @.str.3)
  %720 = call ptr @__errno_location() #10
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = call ptr @strerror(i32 noundef %721) #9
  %723 = call ptr @__errno_location() #10
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %712, ptr noundef @.str.4, i32 noundef %713, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 256, ptr noundef %716, ptr noundef %719, ptr noundef %722, i32 noundef %724) #9
  br label %726

726:                                              ; preds = %709, %692
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727
  call void @exit(i32 noundef 1) #11
  unreachable

729:                                              ; No predecessors!
  br label %730

730:                                              ; preds = %729
  br label %731

731:                                              ; preds = %730, %671
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  br label %734

734:                                              ; preds = %733
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr @test_count, align 4, !tbaa !5
  %737 = load ptr, ptr %12, align 8, !tbaa !9
  %738 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %737, i32 noundef 1)
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %740, label %793

740:                                              ; preds = %734
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %743 = call ptr @__errno_location() #10
  %744 = load i32, ptr %743, align 4, !tbaa !5
  store i32 %744, ptr %20, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745)
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc i8 %747 to i1
  br i1 %748, label %749, label %771

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #9
  %752 = call i32 @isatty(i32 noundef %751) #9
  %753 = icmp ne i32 %752, 0
  br i1 %753, label %754, label %771

754:                                              ; preds = %749
  %755 = load i32, ptr %20, align 4, !tbaa !5
  %756 = call ptr @__errno_location() #10
  store i32 %755, ptr %756, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror(i32 noundef %760, ptr noundef @.str.3)
  %762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror_debug(i32 noundef %763, ptr noundef @.str.3)
  %765 = call ptr @__errno_location() #10
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call ptr @strerror(i32 noundef %766) #9
  %768 = call ptr @__errno_location() #10
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef @.str, i32 noundef %758, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 258, ptr noundef %761, ptr noundef %764, ptr noundef %767, i32 noundef %769) #9
  br label %788

771:                                              ; preds = %749, %742
  %772 = load i32, ptr %20, align 4, !tbaa !5
  %773 = call ptr @__errno_location() #10
  store i32 %772, ptr %773, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror(i32 noundef %777, ptr noundef @.str.3)
  %779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @s2n_strerror_debug(i32 noundef %780, ptr noundef @.str.3)
  %782 = call ptr @__errno_location() #10
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @strerror(i32 noundef %783) #9
  %785 = call ptr @__errno_location() #10
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef @.str.4, i32 noundef %775, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 258, ptr noundef %778, ptr noundef %781, ptr noundef %784, i32 noundef %786) #9
  br label %788

788:                                              ; preds = %771, %754
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789
  call void @exit(i32 noundef 1) #11
  unreachable

791:                                              ; No predecessors!
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792, %734
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794
  %796 = load i32, ptr @test_type, align 4, !tbaa !5
  %797 = icmp eq i32 %796, 1
  br i1 %797, label %798, label %861

798:                                              ; preds = %795
  br label %799

799:                                              ; preds = %798
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr @test_count, align 4, !tbaa !5
  %802 = load ptr, ptr %12, align 8, !tbaa !9
  %803 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %802, ptr noundef @async_pkey_fn)
  %804 = icmp eq i32 %803, -1
  br i1 %804, label %805, label %858

805:                                              ; preds = %799
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %808 = call ptr @__errno_location() #10
  %809 = load i32, ptr %808, align 4, !tbaa !5
  store i32 %809, ptr %21, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @s2n_print_stacktrace(ptr noundef %810)
  %812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %813 = trunc i8 %812 to i1
  br i1 %813, label %814, label %836

814:                                              ; preds = %807
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @fileno(ptr noundef %815) #9
  %817 = call i32 @isatty(i32 noundef %816) #9
  %818 = icmp ne i32 %817, 0
  br i1 %818, label %819, label %836

819:                                              ; preds = %814
  %820 = load i32, ptr %21, align 4, !tbaa !5
  %821 = call ptr @__errno_location() #10
  store i32 %820, ptr %821, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror(i32 noundef %825, ptr noundef @.str.3)
  %827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef @.str.3)
  %830 = call ptr @__errno_location() #10
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #9
  %833 = call ptr @__errno_location() #10
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %822, ptr noundef @.str, i32 noundef %823, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 260, ptr noundef %826, ptr noundef %829, ptr noundef %832, i32 noundef %834) #9
  br label %853

836:                                              ; preds = %814, %807
  %837 = load i32, ptr %21, align 4, !tbaa !5
  %838 = call ptr @__errno_location() #10
  store i32 %837, ptr %838, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror(i32 noundef %842, ptr noundef @.str.3)
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror_debug(i32 noundef %845, ptr noundef @.str.3)
  %847 = call ptr @__errno_location() #10
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #9
  %850 = call ptr @__errno_location() #10
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %839, ptr noundef @.str.4, i32 noundef %840, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 260, ptr noundef %843, ptr noundef %846, ptr noundef %849, i32 noundef %851) #9
  br label %853

853:                                              ; preds = %836, %819
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  call void @exit(i32 noundef 1) #11
  unreachable

856:                                              ; No predecessors!
  br label %857

857:                                              ; preds = %856
  br label %858

858:                                              ; preds = %857, %799
  br label %859

859:                                              ; preds = %858
  br label %860

860:                                              ; preds = %859
  br label %861

861:                                              ; preds = %860, %795
  br label %862

862:                                              ; preds = %861
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr @test_count, align 4, !tbaa !5
  %865 = call ptr @s2n_config_new()
  store ptr %865, ptr %13, align 8, !tbaa !9
  %866 = icmp eq ptr %865, null
  br i1 %866, label %867, label %920

867:                                              ; preds = %862
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %870 = call ptr @__errno_location() #10
  %871 = load i32, ptr %870, align 4, !tbaa !5
  store i32 %871, ptr %22, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872)
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc i8 %874 to i1
  br i1 %875, label %876, label %898

876:                                              ; preds = %869
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #9
  %879 = call i32 @isatty(i32 noundef %878) #9
  %880 = icmp ne i32 %879, 0
  br i1 %880, label %881, label %898

881:                                              ; preds = %876
  %882 = load i32, ptr %22, align 4, !tbaa !5
  %883 = call ptr @__errno_location() #10
  store i32 %882, ptr %883, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror(i32 noundef %887, ptr noundef @.str.3)
  %889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror_debug(i32 noundef %890, ptr noundef @.str.3)
  %892 = call ptr @__errno_location() #10
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #9
  %895 = call ptr @__errno_location() #10
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %884, ptr noundef @.str, i32 noundef %885, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 263, ptr noundef %888, ptr noundef %891, ptr noundef %894, i32 noundef %896) #9
  br label %915

898:                                              ; preds = %876, %869
  %899 = load i32, ptr %22, align 4, !tbaa !5
  %900 = call ptr @__errno_location() #10
  store i32 %899, ptr %900, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef @.str.3)
  %906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror_debug(i32 noundef %907, ptr noundef @.str.3)
  %909 = call ptr @__errno_location() #10
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call ptr @strerror(i32 noundef %910) #9
  %912 = call ptr @__errno_location() #10
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef @.str.4, i32 noundef %902, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 263, ptr noundef %905, ptr noundef %908, ptr noundef %911, i32 noundef %913) #9
  br label %915

915:                                              ; preds = %898, %881
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  call void @exit(i32 noundef 1) #11
  unreachable

918:                                              ; No predecessors!
  br label %919

919:                                              ; preds = %918
  br label %920

920:                                              ; preds = %919, %862
  br label %921

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %922
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = load ptr, ptr %13, align 8, !tbaa !9
  %927 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %926, ptr noundef @.str.47)
  %928 = icmp eq i32 %927, -1
  br i1 %928, label %929, label %982

929:                                              ; preds = %923
  br label %930

930:                                              ; preds = %929
  br label %931

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

938:                                              ; preds = %931
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #9
  %941 = call i32 @isatty(i32 noundef %940) #9
  %942 = icmp ne i32 %941, 0
  br i1 %942, label %943, label %960

943:                                              ; preds = %938
  %944 = load i32, ptr %23, align 4, !tbaa !5
  %945 = call ptr @__errno_location() #10
  store i32 %944, ptr %945, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror(i32 noundef %949, ptr noundef @.str.3)
  %951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror_debug(i32 noundef %952, ptr noundef @.str.3)
  %954 = call ptr @__errno_location() #10
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @strerror(i32 noundef %955) #9
  %957 = call ptr @__errno_location() #10
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %946, ptr noundef @.str, i32 noundef %947, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 264, ptr noundef %950, ptr noundef %953, ptr noundef %956, i32 noundef %958) #9
  br label %977

960:                                              ; preds = %938, %931
  %961 = load i32, ptr %23, align 4, !tbaa !5
  %962 = call ptr @__errno_location() #10
  store i32 %961, ptr %962, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror(i32 noundef %966, ptr noundef @.str.3)
  %968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef @.str.3)
  %971 = call ptr @__errno_location() #10
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #9
  %974 = call ptr @__errno_location() #10
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef @.str.4, i32 noundef %964, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 264, ptr noundef %967, ptr noundef %970, ptr noundef %973, i32 noundef %975) #9
  br label %977

977:                                              ; preds = %960, %943
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  call void @exit(i32 noundef 1) #11
  unreachable

980:                                              ; No predecessors!
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981, %923
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983
  br label %985

985:                                              ; preds = %984
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = add nsw i32 %986, 1
  store i32 %987, ptr @test_count, align 4, !tbaa !5
  %988 = load ptr, ptr %13, align 8, !tbaa !9
  %989 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %988)
  %990 = icmp eq i32 %989, -1
  br i1 %990, label %991, label %1044

991:                                              ; preds = %985
  br label %992

992:                                              ; preds = %991
  br label %993

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

1000:                                             ; preds = %993
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @fileno(ptr noundef %1001) #9
  %1003 = call i32 @isatty(i32 noundef %1002) #9
  %1004 = icmp ne i32 %1003, 0
  br i1 %1004, label %1005, label %1022

1005:                                             ; preds = %1000
  %1006 = load i32, ptr %24, align 4, !tbaa !5
  %1007 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %1016 = call ptr @__errno_location() #10
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #9
  %1019 = call ptr @__errno_location() #10
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1008, ptr noundef @.str, i32 noundef %1009, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 265, ptr noundef %1012, ptr noundef %1015, ptr noundef %1018, i32 noundef %1020) #9
  br label %1039

1022:                                             ; preds = %1000, %993
  %1023 = load i32, ptr %24, align 4, !tbaa !5
  %1024 = call ptr @__errno_location() #10
  store i32 %1023, ptr %1024, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror(i32 noundef %1028, ptr noundef @.str.3)
  %1030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef @.str.3)
  %1033 = call ptr @__errno_location() #10
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @strerror(i32 noundef %1034) #9
  %1036 = call ptr @__errno_location() #10
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1025, ptr noundef @.str.4, i32 noundef %1026, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 265, ptr noundef %1029, ptr noundef %1032, ptr noundef %1035, i32 noundef %1037) #9
  br label %1039

1039:                                             ; preds = %1022, %1005
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1040

1040:                                             ; preds = %1039
  br label %1041

1041:                                             ; preds = %1040
  call void @exit(i32 noundef 1) #11
  unreachable

1042:                                             ; No predecessors!
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043, %985
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

1047:                                             ; preds = %1046
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = add nsw i32 %1048, 1
  store i32 %1049, ptr @test_count, align 4, !tbaa !5
  %1050 = load ptr, ptr %13, align 8, !tbaa !9
  %1051 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %1050, ptr noundef @.str.43, ptr noundef null)
  %1052 = icmp eq i32 %1051, -1
  br i1 %1052, label %1053, label %1106

1053:                                             ; preds = %1047
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

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

1062:                                             ; preds = %1055
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @fileno(ptr noundef %1063) #9
  %1065 = call i32 @isatty(i32 noundef %1064) #9
  %1066 = icmp ne i32 %1065, 0
  br i1 %1066, label %1067, label %1084

1067:                                             ; preds = %1062
  %1068 = load i32, ptr %25, align 4, !tbaa !5
  %1069 = call ptr @__errno_location() #10
  store i32 %1068, ptr %1069, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror(i32 noundef %1073, ptr noundef @.str.3)
  %1075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror_debug(i32 noundef %1076, ptr noundef @.str.3)
  %1078 = call ptr @__errno_location() #10
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @strerror(i32 noundef %1079) #9
  %1081 = call ptr @__errno_location() #10
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1070, ptr noundef @.str, i32 noundef %1071, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 267, ptr noundef %1074, ptr noundef %1077, ptr noundef %1080, i32 noundef %1082) #9
  br label %1101

1084:                                             ; preds = %1062, %1055
  %1085 = load i32, ptr %25, align 4, !tbaa !5
  %1086 = call ptr @__errno_location() #10
  store i32 %1085, ptr %1086, align 4, !tbaa !5
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror(i32 noundef %1090, ptr noundef @.str.3)
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror_debug(i32 noundef %1093, ptr noundef @.str.3)
  %1095 = call ptr @__errno_location() #10
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @strerror(i32 noundef %1096) #9
  %1098 = call ptr @__errno_location() #10
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1087, ptr noundef @.str.4, i32 noundef %1088, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 267, ptr noundef %1091, ptr noundef %1094, ptr noundef %1097, i32 noundef %1099) #9
  br label %1101

1101:                                             ; preds = %1084, %1067
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  call void @exit(i32 noundef 1) #11
  unreachable

1104:                                             ; No predecessors!
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105, %1047
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = add nsw i32 %1110, 1
  store i32 %1111, ptr @test_count, align 4, !tbaa !5
  %1112 = load ptr, ptr %12, align 8, !tbaa !9
  %1113 = load ptr, ptr %13, align 8, !tbaa !9
  %1114 = load ptr, ptr %14, align 8, !tbaa !9
  %1115 = call i32 @test_cipher_preferences(ptr noundef %1112, ptr noundef %1113, ptr noundef %1114, i32 noundef 1)
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1170

1117:                                             ; preds = %1109
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

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

1126:                                             ; preds = %1119
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = call i32 @fileno(ptr noundef %1127) #9
  %1129 = call i32 @isatty(i32 noundef %1128) #9
  %1130 = icmp ne i32 %1129, 0
  br i1 %1130, label %1131, label %1148

1131:                                             ; preds = %1126
  %1132 = load i32, ptr %26, align 4, !tbaa !5
  %1133 = call ptr @__errno_location() #10
  store i32 %1132, ptr %1133, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef @.str.3)
  %1139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef @.str.3)
  %1142 = call ptr @__errno_location() #10
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @strerror(i32 noundef %1143) #9
  %1145 = call ptr @__errno_location() #10
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef @.str, i32 noundef %1135, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 270, ptr noundef %1138, ptr noundef %1141, ptr noundef %1144, i32 noundef %1146) #9
  br label %1165

1148:                                             ; preds = %1126, %1119
  %1149 = load i32, ptr %26, align 4, !tbaa !5
  %1150 = call ptr @__errno_location() #10
  store i32 %1149, ptr %1150, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef @.str.3)
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror_debug(i32 noundef %1157, ptr noundef @.str.3)
  %1159 = call ptr @__errno_location() #10
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @strerror(i32 noundef %1160) #9
  %1162 = call ptr @__errno_location() #10
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1151, ptr noundef @.str.4, i32 noundef %1152, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 270, ptr noundef %1155, ptr noundef %1158, ptr noundef %1161, i32 noundef %1163) #9
  br label %1165

1165:                                             ; preds = %1148, %1131
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166
  call void @exit(i32 noundef 1) #11
  unreachable

1168:                                             ; No predecessors!
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169, %1109
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr @test_count, align 4, !tbaa !5
  %1176 = load ptr, ptr %14, align 8, !tbaa !9
  %1177 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1176)
  %1178 = icmp eq i32 %1177, -1
  br i1 %1178, label %1179, label %1232

1179:                                             ; preds = %1173
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1182 = call ptr @__errno_location() #10
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  store i32 %1183, ptr %27, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @s2n_print_stacktrace(ptr noundef %1184)
  %1186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1187 = trunc i8 %1186 to i1
  br i1 %1187, label %1188, label %1210

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

1193:                                             ; preds = %1188
  %1194 = load i32, ptr %27, align 4, !tbaa !5
  %1195 = call ptr @__errno_location() #10
  store i32 %1194, ptr %1195, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef @.str.3)
  %1201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef @.str.3)
  %1204 = call ptr @__errno_location() #10
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #9
  %1207 = call ptr @__errno_location() #10
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1196, ptr noundef @.str, i32 noundef %1197, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 272, ptr noundef %1200, ptr noundef %1203, ptr noundef %1206, i32 noundef %1208) #9
  br label %1227

1210:                                             ; preds = %1188, %1181
  %1211 = load i32, ptr %27, align 4, !tbaa !5
  %1212 = call ptr @__errno_location() #10
  store i32 %1211, ptr %1212, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef @.str.3)
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef @.str.3)
  %1221 = call ptr @__errno_location() #10
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @strerror(i32 noundef %1222) #9
  %1224 = call ptr @__errno_location() #10
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef @.str.4, i32 noundef %1214, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 272, ptr noundef %1217, ptr noundef %1220, ptr noundef %1223, i32 noundef %1225) #9
  br label %1227

1227:                                             ; preds = %1210, %1193
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  call void @exit(i32 noundef 1) #11
  unreachable

1230:                                             ; No predecessors!
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231, %1173
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

1235:                                             ; preds = %1234
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr @test_count, align 4, !tbaa !5
  %1238 = load ptr, ptr %12, align 8, !tbaa !9
  %1239 = call i32 @s2n_config_free(ptr noundef %1238)
  %1240 = icmp eq i32 %1239, -1
  br i1 %1240, label %1241, label %1294

1241:                                             ; preds = %1235
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1244 = call ptr @__errno_location() #10
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  store i32 %1245, ptr %28, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @s2n_print_stacktrace(ptr noundef %1246)
  %1248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc i8 %1248 to i1
  br i1 %1249, label %1250, label %1272

1250:                                             ; preds = %1243
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @fileno(ptr noundef %1251) #9
  %1253 = call i32 @isatty(i32 noundef %1252) #9
  %1254 = icmp ne i32 %1253, 0
  br i1 %1254, label %1255, label %1272

1255:                                             ; preds = %1250
  %1256 = load i32, ptr %28, align 4, !tbaa !5
  %1257 = call ptr @__errno_location() #10
  store i32 %1256, ptr %1257, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef @.str.3)
  %1263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror_debug(i32 noundef %1264, ptr noundef @.str.3)
  %1266 = call ptr @__errno_location() #10
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @strerror(i32 noundef %1267) #9
  %1269 = call ptr @__errno_location() #10
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef @.str, i32 noundef %1259, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 273, ptr noundef %1262, ptr noundef %1265, ptr noundef %1268, i32 noundef %1270) #9
  br label %1289

1272:                                             ; preds = %1250, %1243
  %1273 = load i32, ptr %28, align 4, !tbaa !5
  %1274 = call ptr @__errno_location() #10
  store i32 %1273, ptr %1274, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef @.str.3)
  %1280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror_debug(i32 noundef %1281, ptr noundef @.str.3)
  %1283 = call ptr @__errno_location() #10
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #9
  %1286 = call ptr @__errno_location() #10
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef @.str.4, i32 noundef %1276, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 273, ptr noundef %1279, ptr noundef %1282, ptr noundef %1285, i32 noundef %1287) #9
  br label %1289

1289:                                             ; preds = %1272, %1255
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  call void @exit(i32 noundef 1) #11
  unreachable

1292:                                             ; No predecessors!
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293, %1235
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr @test_count, align 4, !tbaa !5
  %1300 = load ptr, ptr %13, align 8, !tbaa !9
  %1301 = call i32 @s2n_config_free(ptr noundef %1300)
  %1302 = icmp eq i32 %1301, -1
  br i1 %1302, label %1303, label %1356

1303:                                             ; preds = %1297
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1306 = call ptr @__errno_location() #10
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  store i32 %1307, ptr %29, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @s2n_print_stacktrace(ptr noundef %1308)
  %1310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1311 = trunc i8 %1310 to i1
  br i1 %1311, label %1312, label %1334

1312:                                             ; preds = %1305
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @fileno(ptr noundef %1313) #9
  %1315 = call i32 @isatty(i32 noundef %1314) #9
  %1316 = icmp ne i32 %1315, 0
  br i1 %1316, label %1317, label %1334

1317:                                             ; preds = %1312
  %1318 = load i32, ptr %29, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #10
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.3)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.3)
  %1328 = call ptr @__errno_location() #10
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #9
  %1331 = call ptr @__errno_location() #10
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str, i32 noundef %1321, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 274, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #9
  br label %1351

1334:                                             ; preds = %1312, %1305
  %1335 = load i32, ptr %29, align 4, !tbaa !5
  %1336 = call ptr @__errno_location() #10
  store i32 %1335, ptr %1336, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef @.str.3)
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror_debug(i32 noundef %1343, ptr noundef @.str.3)
  %1345 = call ptr @__errno_location() #10
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #9
  %1348 = call ptr @__errno_location() #10
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef @.str.4, i32 noundef %1338, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 274, ptr noundef %1341, ptr noundef %1344, ptr noundef %1347, i32 noundef %1349) #9
  br label %1351

1351:                                             ; preds = %1334, %1317
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352
  call void @exit(i32 noundef 1) #11
  unreachable

1354:                                             ; No predecessors!
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355, %1297
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  %1359 = call zeroext i1 @s2n_is_in_fips_mode()
  br i1 %1359, label %2355, label %1360

1360:                                             ; preds = %1358
  br label %1361

1361:                                             ; preds = %1360
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %1363 = add nsw i32 %1362, 1
  store i32 %1363, ptr @test_count, align 4, !tbaa !5
  %1364 = call i32 (...) @s2n_enable_tls13_in_test()
  %1365 = icmp eq i32 %1364, -1
  br i1 %1365, label %1366, label %1419

1366:                                             ; preds = %1361
  br label %1367

1367:                                             ; preds = %1366
  br label %1368

1368:                                             ; preds = %1367
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1369 = call ptr @__errno_location() #10
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  store i32 %1370, ptr %30, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @s2n_print_stacktrace(ptr noundef %1371)
  %1373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1374 = trunc i8 %1373 to i1
  br i1 %1374, label %1375, label %1397

1375:                                             ; preds = %1368
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @fileno(ptr noundef %1376) #9
  %1378 = call i32 @isatty(i32 noundef %1377) #9
  %1379 = icmp ne i32 %1378, 0
  br i1 %1379, label %1380, label %1397

1380:                                             ; preds = %1375
  %1381 = load i32, ptr %30, align 4, !tbaa !5
  %1382 = call ptr @__errno_location() #10
  store i32 %1381, ptr %1382, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef @.str.3)
  %1388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror_debug(i32 noundef %1389, ptr noundef @.str.3)
  %1391 = call ptr @__errno_location() #10
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @strerror(i32 noundef %1392) #9
  %1394 = call ptr @__errno_location() #10
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef @.str, i32 noundef %1384, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 281, ptr noundef %1387, ptr noundef %1390, ptr noundef %1393, i32 noundef %1395) #9
  br label %1414

1397:                                             ; preds = %1375, %1368
  %1398 = load i32, ptr %30, align 4, !tbaa !5
  %1399 = call ptr @__errno_location() #10
  store i32 %1398, ptr %1399, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = load i32, ptr @test_count, align 4, !tbaa !5
  %1402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef @.str.3)
  %1405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror_debug(i32 noundef %1406, ptr noundef @.str.3)
  %1408 = call ptr @__errno_location() #10
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call ptr @strerror(i32 noundef %1409) #9
  %1411 = call ptr @__errno_location() #10
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1400, ptr noundef @.str.4, i32 noundef %1401, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 281, ptr noundef %1404, ptr noundef %1407, ptr noundef %1410, i32 noundef %1412) #9
  br label %1414

1414:                                             ; preds = %1397, %1380
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415
  call void @exit(i32 noundef 1) #11
  unreachable

1417:                                             ; No predecessors!
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418, %1361
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  store ptr null, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  store ptr null, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  store ptr null, ptr %33, align 8, !tbaa !9
  br label %1422

1422:                                             ; preds = %1421
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = add nsw i32 %1423, 1
  store i32 %1424, ptr @test_count, align 4, !tbaa !5
  %1425 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %33, ptr noundef @.str.43, ptr noundef @.str.44)
  %1426 = icmp eq i32 %1425, -1
  br i1 %1426, label %1427, label %1480

1427:                                             ; preds = %1422
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1430 = call ptr @__errno_location() #10
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  store i32 %1431, ptr %34, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = call i32 @s2n_print_stacktrace(ptr noundef %1432)
  %1434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1435 = trunc i8 %1434 to i1
  br i1 %1435, label %1436, label %1458

1436:                                             ; preds = %1429
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = call i32 @fileno(ptr noundef %1437) #9
  %1439 = call i32 @isatty(i32 noundef %1438) #9
  %1440 = icmp ne i32 %1439, 0
  br i1 %1440, label %1441, label %1458

1441:                                             ; preds = %1436
  %1442 = load i32, ptr %34, align 4, !tbaa !5
  %1443 = call ptr @__errno_location() #10
  store i32 %1442, ptr %1443, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef @.str.3)
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef @.str.3)
  %1452 = call ptr @__errno_location() #10
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @strerror(i32 noundef %1453) #9
  %1455 = call ptr @__errno_location() #10
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef @.str, i32 noundef %1445, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 286, ptr noundef %1448, ptr noundef %1451, ptr noundef %1454, i32 noundef %1456) #9
  br label %1475

1458:                                             ; preds = %1436, %1429
  %1459 = load i32, ptr %34, align 4, !tbaa !5
  %1460 = call ptr @__errno_location() #10
  store i32 %1459, ptr %1460, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef @.str.3)
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef @.str.3)
  %1469 = call ptr @__errno_location() #10
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @strerror(i32 noundef %1470) #9
  %1472 = call ptr @__errno_location() #10
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef @.str.4, i32 noundef %1462, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 286, ptr noundef %1465, ptr noundef %1468, ptr noundef %1471, i32 noundef %1473) #9
  br label %1475

1475:                                             ; preds = %1458, %1441
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  call void @exit(i32 noundef 1) #11
  unreachable

1478:                                             ; No predecessors!
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479, %1422
  br label %1481

1481:                                             ; preds = %1480
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = add nsw i32 %1484, 1
  store i32 %1485, ptr @test_count, align 4, !tbaa !5
  %1486 = call ptr @s2n_config_new()
  store ptr %1486, ptr %31, align 8, !tbaa !9
  %1487 = icmp eq ptr %1486, null
  br i1 %1487, label %1488, label %1541

1488:                                             ; preds = %1483
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1491 = call ptr @__errno_location() #10
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  store i32 %1492, ptr %35, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493)
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc i8 %1495 to i1
  br i1 %1496, label %1497, label %1519

1497:                                             ; preds = %1490
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #9
  %1500 = call i32 @isatty(i32 noundef %1499) #9
  %1501 = icmp ne i32 %1500, 0
  br i1 %1501, label %1502, label %1519

1502:                                             ; preds = %1497
  %1503 = load i32, ptr %35, align 4, !tbaa !5
  %1504 = call ptr @__errno_location() #10
  store i32 %1503, ptr %1504, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = load i32, ptr @test_count, align 4, !tbaa !5
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror(i32 noundef %1508, ptr noundef @.str.3)
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror_debug(i32 noundef %1511, ptr noundef @.str.3)
  %1513 = call ptr @__errno_location() #10
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @strerror(i32 noundef %1514) #9
  %1516 = call ptr @__errno_location() #10
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1505, ptr noundef @.str, i32 noundef %1506, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 288, ptr noundef %1509, ptr noundef %1512, ptr noundef %1515, i32 noundef %1517) #9
  br label %1536

1519:                                             ; preds = %1497, %1490
  %1520 = load i32, ptr %35, align 4, !tbaa !5
  %1521 = call ptr @__errno_location() #10
  store i32 %1520, ptr %1521, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %1524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror(i32 noundef %1525, ptr noundef @.str.3)
  %1527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror_debug(i32 noundef %1528, ptr noundef @.str.3)
  %1530 = call ptr @__errno_location() #10
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @strerror(i32 noundef %1531) #9
  %1533 = call ptr @__errno_location() #10
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1522, ptr noundef @.str.4, i32 noundef %1523, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 288, ptr noundef %1526, ptr noundef %1529, ptr noundef %1532, i32 noundef %1534) #9
  br label %1536

1536:                                             ; preds = %1519, %1502
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  call void @exit(i32 noundef 1) #11
  unreachable

1539:                                             ; No predecessors!
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540, %1483
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = add nsw i32 %1545, 1
  store i32 %1546, ptr @test_count, align 4, !tbaa !5
  %1547 = load ptr, ptr %31, align 8, !tbaa !9
  %1548 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1547, ptr noundef @.str.62)
  %1549 = icmp eq i32 %1548, -1
  br i1 %1549, label %1550, label %1603

1550:                                             ; preds = %1544
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1553 = call ptr @__errno_location() #10
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  store i32 %1554, ptr %36, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @s2n_print_stacktrace(ptr noundef %1555)
  %1557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc i8 %1557 to i1
  br i1 %1558, label %1559, label %1581

1559:                                             ; preds = %1552
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @fileno(ptr noundef %1560) #9
  %1562 = call i32 @isatty(i32 noundef %1561) #9
  %1563 = icmp ne i32 %1562, 0
  br i1 %1563, label %1564, label %1581

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %36, align 4, !tbaa !5
  %1566 = call ptr @__errno_location() #10
  store i32 %1565, ptr %1566, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef @.str.3)
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror_debug(i32 noundef %1573, ptr noundef @.str.3)
  %1575 = call ptr @__errno_location() #10
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #9
  %1578 = call ptr @__errno_location() #10
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef @.str, i32 noundef %1568, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 290, ptr noundef %1571, ptr noundef %1574, ptr noundef %1577, i32 noundef %1579) #9
  br label %1598

1581:                                             ; preds = %1559, %1552
  %1582 = load i32, ptr %36, align 4, !tbaa !5
  %1583 = call ptr @__errno_location() #10
  store i32 %1582, ptr %1583, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef @.str.3)
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef @.str.3)
  %1592 = call ptr @__errno_location() #10
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #9
  %1595 = call ptr @__errno_location() #10
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef @.str.4, i32 noundef %1585, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 290, ptr noundef %1588, ptr noundef %1591, ptr noundef %1594, i32 noundef %1596) #9
  br label %1598

1598:                                             ; preds = %1581, %1564
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599
  call void @exit(i32 noundef 1) #11
  unreachable

1601:                                             ; No predecessors!
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602, %1544
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1605
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %1608 = add nsw i32 %1607, 1
  store i32 %1608, ptr @test_count, align 4, !tbaa !5
  %1609 = load ptr, ptr %31, align 8, !tbaa !9
  %1610 = load ptr, ptr %33, align 8, !tbaa !9
  %1611 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1609, ptr noundef %1610)
  %1612 = icmp eq i32 %1611, -1
  br i1 %1612, label %1613, label %1666

1613:                                             ; preds = %1606
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

1615:                                             ; preds = %1614
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1616 = call ptr @__errno_location() #10
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  store i32 %1617, ptr %37, align 4, !tbaa !5
  %1618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1619 = call i32 @s2n_print_stacktrace(ptr noundef %1618)
  %1620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1621 = trunc i8 %1620 to i1
  br i1 %1621, label %1622, label %1644

1622:                                             ; preds = %1615
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = call i32 @fileno(ptr noundef %1623) #9
  %1625 = call i32 @isatty(i32 noundef %1624) #9
  %1626 = icmp ne i32 %1625, 0
  br i1 %1626, label %1627, label %1644

1627:                                             ; preds = %1622
  %1628 = load i32, ptr %37, align 4, !tbaa !5
  %1629 = call ptr @__errno_location() #10
  store i32 %1628, ptr %1629, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef @.str.3)
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef @.str.3)
  %1638 = call ptr @__errno_location() #10
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #9
  %1641 = call ptr @__errno_location() #10
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef @.str, i32 noundef %1631, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 291, ptr noundef %1634, ptr noundef %1637, ptr noundef %1640, i32 noundef %1642) #9
  br label %1661

1644:                                             ; preds = %1622, %1615
  %1645 = load i32, ptr %37, align 4, !tbaa !5
  %1646 = call ptr @__errno_location() #10
  store i32 %1645, ptr %1646, align 4, !tbaa !5
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror(i32 noundef %1650, ptr noundef @.str.3)
  %1652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror_debug(i32 noundef %1653, ptr noundef @.str.3)
  %1655 = call ptr @__errno_location() #10
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @strerror(i32 noundef %1656) #9
  %1658 = call ptr @__errno_location() #10
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1647, ptr noundef @.str.4, i32 noundef %1648, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 291, ptr noundef %1651, ptr noundef %1654, ptr noundef %1657, i32 noundef %1659) #9
  br label %1661

1661:                                             ; preds = %1644, %1627
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  call void @exit(i32 noundef 1) #11
  unreachable

1664:                                             ; No predecessors!
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665, %1606
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %1671 = add nsw i32 %1670, 1
  store i32 %1671, ptr @test_count, align 4, !tbaa !5
  %1672 = load ptr, ptr %31, align 8, !tbaa !9
  %1673 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %1672, i32 noundef 1)
  %1674 = icmp eq i32 %1673, -1
  br i1 %1674, label %1675, label %1728

1675:                                             ; preds = %1669
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

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

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #9
  %1687 = call i32 @isatty(i32 noundef %1686) #9
  %1688 = icmp ne i32 %1687, 0
  br i1 %1688, label %1689, label %1706

1689:                                             ; preds = %1684
  %1690 = load i32, ptr %38, align 4, !tbaa !5
  %1691 = call ptr @__errno_location() #10
  store i32 %1690, ptr %1691, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = load i32, ptr @test_count, align 4, !tbaa !5
  %1694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror(i32 noundef %1695, ptr noundef @.str.3)
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror_debug(i32 noundef %1698, ptr noundef @.str.3)
  %1700 = call ptr @__errno_location() #10
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @strerror(i32 noundef %1701) #9
  %1703 = call ptr @__errno_location() #10
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1692, ptr noundef @.str, i32 noundef %1693, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 293, ptr noundef %1696, ptr noundef %1699, ptr noundef %1702, i32 noundef %1704) #9
  br label %1723

1706:                                             ; preds = %1684, %1677
  %1707 = load i32, ptr %38, align 4, !tbaa !5
  %1708 = call ptr @__errno_location() #10
  store i32 %1707, ptr %1708, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror(i32 noundef %1712, ptr noundef @.str.3)
  %1714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror_debug(i32 noundef %1715, ptr noundef @.str.3)
  %1717 = call ptr @__errno_location() #10
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @strerror(i32 noundef %1718) #9
  %1720 = call ptr @__errno_location() #10
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef @.str.4, i32 noundef %1710, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 293, ptr noundef %1713, ptr noundef %1716, ptr noundef %1719, i32 noundef %1721) #9
  br label %1723

1723:                                             ; preds = %1706, %1689
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  call void @exit(i32 noundef 1) #11
  unreachable

1726:                                             ; No predecessors!
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727, %1669
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  %1731 = load i32, ptr @test_type, align 4, !tbaa !5
  %1732 = icmp eq i32 %1731, 1
  br i1 %1732, label %1733, label %1796

1733:                                             ; preds = %1730
  br label %1734

1734:                                             ; preds = %1733
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = add nsw i32 %1735, 1
  store i32 %1736, ptr @test_count, align 4, !tbaa !5
  %1737 = load ptr, ptr %31, align 8, !tbaa !9
  %1738 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %1737, ptr noundef @async_pkey_fn)
  %1739 = icmp eq i32 %1738, -1
  br i1 %1739, label %1740, label %1793

1740:                                             ; preds = %1734
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1743 = call ptr @__errno_location() #10
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  store i32 %1744, ptr %39, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745)
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc i8 %1747 to i1
  br i1 %1748, label %1749, label %1771

1749:                                             ; preds = %1742
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #9
  %1752 = call i32 @isatty(i32 noundef %1751) #9
  %1753 = icmp ne i32 %1752, 0
  br i1 %1753, label %1754, label %1771

1754:                                             ; preds = %1749
  %1755 = load i32, ptr %39, align 4, !tbaa !5
  %1756 = call ptr @__errno_location() #10
  store i32 %1755, ptr %1756, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror(i32 noundef %1760, ptr noundef @.str.3)
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef @.str.3)
  %1765 = call ptr @__errno_location() #10
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #9
  %1768 = call ptr @__errno_location() #10
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef @.str, i32 noundef %1758, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 295, ptr noundef %1761, ptr noundef %1764, ptr noundef %1767, i32 noundef %1769) #9
  br label %1788

1771:                                             ; preds = %1749, %1742
  %1772 = load i32, ptr %39, align 4, !tbaa !5
  %1773 = call ptr @__errno_location() #10
  store i32 %1772, ptr %1773, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror(i32 noundef %1777, ptr noundef @.str.3)
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror_debug(i32 noundef %1780, ptr noundef @.str.3)
  %1782 = call ptr @__errno_location() #10
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @strerror(i32 noundef %1783) #9
  %1785 = call ptr @__errno_location() #10
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1774, ptr noundef @.str.4, i32 noundef %1775, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 295, ptr noundef %1778, ptr noundef %1781, ptr noundef %1784, i32 noundef %1786) #9
  br label %1788

1788:                                             ; preds = %1771, %1754
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  call void @exit(i32 noundef 1) #11
  unreachable

1791:                                             ; No predecessors!
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792, %1734
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795, %1730
  br label %1797

1797:                                             ; preds = %1796
  %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 = call ptr @s2n_config_new()
  store ptr %1800, ptr %32, align 8, !tbaa !9
  %1801 = icmp eq ptr %1800, null
  br i1 %1801, label %1802, label %1855

1802:                                             ; preds = %1797
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

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

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

1816:                                             ; preds = %1811
  %1817 = load i32, ptr %40, align 4, !tbaa !5
  %1818 = call ptr @__errno_location() #10
  store i32 %1817, ptr %1818, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef @.str.3)
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef @.str.3)
  %1827 = call ptr @__errno_location() #10
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #9
  %1830 = call ptr @__errno_location() #10
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef @.str, i32 noundef %1820, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 298, ptr noundef %1823, ptr noundef %1826, ptr noundef %1829, i32 noundef %1831) #9
  br label %1850

1833:                                             ; preds = %1811, %1804
  %1834 = load i32, ptr %40, align 4, !tbaa !5
  %1835 = call ptr @__errno_location() #10
  store i32 %1834, ptr %1835, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef @.str.3)
  %1841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call ptr @s2n_strerror_debug(i32 noundef %1842, ptr noundef @.str.3)
  %1844 = call ptr @__errno_location() #10
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call ptr @strerror(i32 noundef %1845) #9
  %1847 = call ptr @__errno_location() #10
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef @.str.4, i32 noundef %1837, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 298, ptr noundef %1840, ptr noundef %1843, ptr noundef %1846, i32 noundef %1848) #9
  br label %1850

1850:                                             ; preds = %1833, %1816
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

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

1853:                                             ; No predecessors!
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

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

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = add nsw i32 %1859, 1
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = load ptr, ptr %32, align 8, !tbaa !9
  %1862 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1861, ptr noundef @.str.64)
  %1863 = icmp eq i32 %1862, -1
  br i1 %1863, label %1864, label %1917

1864:                                             ; preds = %1858
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1867 = call ptr @__errno_location() #10
  %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) #9
  %1876 = call i32 @isatty(i32 noundef %1875) #9
  %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() #10
  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.3)
  %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.3)
  %1889 = call ptr @__errno_location() #10
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @strerror(i32 noundef %1890) #9
  %1892 = call ptr @__errno_location() #10
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1881, ptr noundef @.str, i32 noundef %1882, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 299, ptr noundef %1885, ptr noundef %1888, ptr noundef %1891, i32 noundef %1893) #9
  br label %1912

1895:                                             ; preds = %1873, %1866
  %1896 = load i32, ptr %41, align 4, !tbaa !5
  %1897 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %1906 = call ptr @__errno_location() #10
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @strerror(i32 noundef %1907) #9
  %1909 = call ptr @__errno_location() #10
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef @.str.4, i32 noundef %1899, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 299, ptr noundef %1902, ptr noundef %1905, ptr noundef %1908, i32 noundef %1910) #9
  br label %1912

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

1913:                                             ; preds = %1912
  br label %1914

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

1915:                                             ; No predecessors!
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916, %1858
  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 ptr, ptr %32, align 8, !tbaa !9
  %1924 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1923)
  %1925 = icmp eq i32 %1924, -1
  br i1 %1925, label %1926, label %1979

1926:                                             ; preds = %1920
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

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

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

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

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

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

1975:                                             ; preds = %1974
  br label %1976

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

1977:                                             ; No predecessors!
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

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

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = load ptr, ptr %32, align 8, !tbaa !9
  %1986 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %1985, ptr noundef @.str.43, ptr noundef null)
  %1987 = icmp eq i32 %1986, -1
  br i1 %1987, label %1988, label %2041

1988:                                             ; preds = %1982
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1991 = call ptr @__errno_location() #10
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  store i32 %1992, ptr %43, align 4, !tbaa !5
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @s2n_print_stacktrace(ptr noundef %1993)
  %1995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1996 = trunc i8 %1995 to i1
  br i1 %1996, label %1997, label %2019

1997:                                             ; preds = %1990
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @fileno(ptr noundef %1998) #9
  %2000 = call i32 @isatty(i32 noundef %1999) #9
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2019

2002:                                             ; preds = %1997
  %2003 = load i32, ptr %43, align 4, !tbaa !5
  %2004 = call ptr @__errno_location() #10
  store i32 %2003, ptr %2004, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror(i32 noundef %2008, ptr noundef @.str.3)
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror_debug(i32 noundef %2011, ptr noundef @.str.3)
  %2013 = call ptr @__errno_location() #10
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #9
  %2016 = call ptr @__errno_location() #10
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef @.str, i32 noundef %2006, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 302, ptr noundef %2009, ptr noundef %2012, ptr noundef %2015, i32 noundef %2017) #9
  br label %2036

2019:                                             ; preds = %1997, %1990
  %2020 = load i32, ptr %43, align 4, !tbaa !5
  %2021 = call ptr @__errno_location() #10
  store i32 %2020, ptr %2021, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror(i32 noundef %2025, ptr noundef @.str.3)
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror_debug(i32 noundef %2028, ptr noundef @.str.3)
  %2030 = call ptr @__errno_location() #10
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #9
  %2033 = call ptr @__errno_location() #10
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef @.str.4, i32 noundef %2023, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 302, ptr noundef %2026, ptr noundef %2029, ptr noundef %2032, i32 noundef %2034) #9
  br label %2036

2036:                                             ; preds = %2019, %2002
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  call void @exit(i32 noundef 1) #11
  unreachable

2039:                                             ; No predecessors!
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040, %1982
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = load ptr, ptr %31, align 8, !tbaa !9
  %2048 = load ptr, ptr %32, align 8, !tbaa !9
  %2049 = load ptr, ptr %33, align 8, !tbaa !9
  %2050 = call i32 @test_cipher_preferences(ptr noundef %2047, ptr noundef %2048, ptr noundef %2049, i32 noundef 1)
  %2051 = icmp eq i32 %2050, -1
  br i1 %2051, label %2052, label %2105

2052:                                             ; preds = %2044
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

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

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

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

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

2100:                                             ; preds = %2083, %2066
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

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

2103:                                             ; No predecessors!
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104, %2044
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = add nsw i32 %2109, 1
  store i32 %2110, ptr @test_count, align 4, !tbaa !5
  %2111 = load ptr, ptr %33, align 8, !tbaa !9
  %2112 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2111)
  %2113 = icmp eq i32 %2112, -1
  br i1 %2113, label %2114, label %2167

2114:                                             ; preds = %2108
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %2117 = call ptr @__errno_location() #10
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  store i32 %2118, ptr %45, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119)
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc i8 %2121 to i1
  br i1 %2122, label %2123, label %2145

2123:                                             ; preds = %2116
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #9
  %2126 = call i32 @isatty(i32 noundef %2125) #9
  %2127 = icmp ne i32 %2126, 0
  br i1 %2127, label %2128, label %2145

2128:                                             ; preds = %2123
  %2129 = load i32, ptr %45, align 4, !tbaa !5
  %2130 = call ptr @__errno_location() #10
  store i32 %2129, ptr %2130, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror(i32 noundef %2134, ptr noundef @.str.3)
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef %2137, ptr noundef @.str.3)
  %2139 = call ptr @__errno_location() #10
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @strerror(i32 noundef %2140) #9
  %2142 = call ptr @__errno_location() #10
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2131, ptr noundef @.str, i32 noundef %2132, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 309, ptr noundef %2135, ptr noundef %2138, ptr noundef %2141, i32 noundef %2143) #9
  br label %2162

2145:                                             ; preds = %2123, %2116
  %2146 = load i32, ptr %45, align 4, !tbaa !5
  %2147 = call ptr @__errno_location() #10
  store i32 %2146, ptr %2147, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror(i32 noundef %2151, ptr noundef @.str.3)
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef @.str.3)
  %2156 = call ptr @__errno_location() #10
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #9
  %2159 = call ptr @__errno_location() #10
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef @.str.4, i32 noundef %2149, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 309, ptr noundef %2152, ptr noundef %2155, ptr noundef %2158, i32 noundef %2160) #9
  br label %2162

2162:                                             ; preds = %2145, %2128
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163
  call void @exit(i32 noundef 1) #11
  unreachable

2165:                                             ; No predecessors!
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166, %2108
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = add nsw i32 %2171, 1
  store i32 %2172, ptr @test_count, align 4, !tbaa !5
  %2173 = load ptr, ptr %31, align 8, !tbaa !9
  %2174 = call i32 @s2n_config_free(ptr noundef %2173)
  %2175 = icmp eq i32 %2174, -1
  br i1 %2175, label %2176, label %2229

2176:                                             ; preds = %2170
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2179 = call ptr @__errno_location() #10
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  store i32 %2180, ptr %46, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181)
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc i8 %2183 to i1
  br i1 %2184, label %2185, label %2207

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #9
  %2188 = call i32 @isatty(i32 noundef %2187) #9
  %2189 = icmp ne i32 %2188, 0
  br i1 %2189, label %2190, label %2207

2190:                                             ; preds = %2185
  %2191 = load i32, ptr %46, align 4, !tbaa !5
  %2192 = call ptr @__errno_location() #10
  store i32 %2191, ptr %2192, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef @.str.3)
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror_debug(i32 noundef %2199, ptr noundef @.str.3)
  %2201 = call ptr @__errno_location() #10
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @strerror(i32 noundef %2202) #9
  %2204 = call ptr @__errno_location() #10
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2193, ptr noundef @.str, i32 noundef %2194, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 310, ptr noundef %2197, ptr noundef %2200, ptr noundef %2203, i32 noundef %2205) #9
  br label %2224

2207:                                             ; preds = %2185, %2178
  %2208 = load i32, ptr %46, align 4, !tbaa !5
  %2209 = call ptr @__errno_location() #10
  store i32 %2208, ptr %2209, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef @.str.3)
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror_debug(i32 noundef %2216, ptr noundef @.str.3)
  %2218 = call ptr @__errno_location() #10
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @strerror(i32 noundef %2219) #9
  %2221 = call ptr @__errno_location() #10
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef @.str.4, i32 noundef %2211, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 310, ptr noundef %2214, ptr noundef %2217, ptr noundef %2220, i32 noundef %2222) #9
  br label %2224

2224:                                             ; preds = %2207, %2190
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2225

2225:                                             ; preds = %2224
  br label %2226

2226:                                             ; preds = %2225
  call void @exit(i32 noundef 1) #11
  unreachable

2227:                                             ; No predecessors!
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228, %2170
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = add nsw i32 %2233, 1
  store i32 %2234, ptr @test_count, align 4, !tbaa !5
  %2235 = load ptr, ptr %32, align 8, !tbaa !9
  %2236 = call i32 @s2n_config_free(ptr noundef %2235)
  %2237 = icmp eq i32 %2236, -1
  br i1 %2237, label %2238, label %2291

2238:                                             ; preds = %2232
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

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

2247:                                             ; preds = %2240
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @fileno(ptr noundef %2248) #9
  %2250 = call i32 @isatty(i32 noundef %2249) #9
  %2251 = icmp ne i32 %2250, 0
  br i1 %2251, label %2252, label %2269

2252:                                             ; preds = %2247
  %2253 = load i32, ptr %47, align 4, !tbaa !5
  %2254 = call ptr @__errno_location() #10
  store i32 %2253, ptr %2254, align 4, !tbaa !5
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %2257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @s2n_strerror(i32 noundef %2258, ptr noundef @.str.3)
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef @.str.3)
  %2263 = call ptr @__errno_location() #10
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @strerror(i32 noundef %2264) #9
  %2266 = call ptr @__errno_location() #10
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2255, ptr noundef @.str, i32 noundef %2256, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 311, ptr noundef %2259, ptr noundef %2262, ptr noundef %2265, i32 noundef %2267) #9
  br label %2286

2269:                                             ; preds = %2247, %2240
  %2270 = load i32, ptr %47, align 4, !tbaa !5
  %2271 = call ptr @__errno_location() #10
  store i32 %2270, ptr %2271, align 4, !tbaa !5
  %2272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2273 = load i32, ptr @test_count, align 4, !tbaa !5
  %2274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror(i32 noundef %2275, ptr noundef @.str.3)
  %2277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror_debug(i32 noundef %2278, ptr noundef @.str.3)
  %2280 = call ptr @__errno_location() #10
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #9
  %2283 = call ptr @__errno_location() #10
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2272, ptr noundef @.str.4, i32 noundef %2273, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 311, ptr noundef %2276, ptr noundef %2279, ptr noundef %2282, i32 noundef %2284) #9
  br label %2286

2286:                                             ; preds = %2269, %2252
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2287

2287:                                             ; preds = %2286
  br label %2288

2288:                                             ; preds = %2287
  call void @exit(i32 noundef 1) #11
  unreachable

2289:                                             ; No predecessors!
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290, %2232
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = add nsw i32 %2295, 1
  store i32 %2296, ptr @test_count, align 4, !tbaa !5
  %2297 = call i32 (...) @s2n_disable_tls13_in_test()
  %2298 = icmp eq i32 %2297, -1
  br i1 %2298, label %2299, label %2352

2299:                                             ; preds = %2294
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %2302 = call ptr @__errno_location() #10
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  store i32 %2303, ptr %48, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = call i32 @s2n_print_stacktrace(ptr noundef %2304)
  %2306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2307 = trunc i8 %2306 to i1
  br i1 %2307, label %2308, label %2330

2308:                                             ; preds = %2301
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = call i32 @fileno(ptr noundef %2309) #9
  %2311 = call i32 @isatty(i32 noundef %2310) #9
  %2312 = icmp ne i32 %2311, 0
  br i1 %2312, label %2313, label %2330

2313:                                             ; preds = %2308
  %2314 = load i32, ptr %48, align 4, !tbaa !5
  %2315 = call ptr @__errno_location() #10
  store i32 %2314, ptr %2315, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef @.str.3)
  %2321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef @.str.3)
  %2324 = call ptr @__errno_location() #10
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #9
  %2327 = call ptr @__errno_location() #10
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef @.str, i32 noundef %2317, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 312, ptr noundef %2320, ptr noundef %2323, ptr noundef %2326, i32 noundef %2328) #9
  br label %2347

2330:                                             ; preds = %2308, %2301
  %2331 = load i32, ptr %48, align 4, !tbaa !5
  %2332 = call ptr @__errno_location() #10
  store i32 %2331, ptr %2332, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @s2n_strerror(i32 noundef %2336, ptr noundef @.str.3)
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror_debug(i32 noundef %2339, ptr noundef @.str.3)
  %2341 = call ptr @__errno_location() #10
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @strerror(i32 noundef %2342) #9
  %2344 = call ptr @__errno_location() #10
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2333, ptr noundef @.str.4, i32 noundef %2334, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 312, ptr noundef %2337, ptr noundef %2340, ptr noundef %2343, i32 noundef %2345) #9
  br label %2347

2347:                                             ; preds = %2330, %2313
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2348

2348:                                             ; preds = %2347
  br label %2349

2349:                                             ; preds = %2348
  call void @exit(i32 noundef 1) #11
  unreachable

2350:                                             ; No predecessors!
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

2352:                                             ; preds = %2351, %2294
  br label %2353

2353:                                             ; preds = %2352
  br label %2354

2354:                                             ; preds = %2353
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %2355

2355:                                             ; preds = %2354, %1358
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  store ptr null, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  store ptr null, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  store ptr null, ptr %51, align 8, !tbaa !9
  br label %2356

2356:                                             ; preds = %2355
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = add nsw i32 %2357, 1
  store i32 %2358, ptr @test_count, align 4, !tbaa !5
  %2359 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %51, ptr noundef @.str.66, ptr noundef @.str.67)
  %2360 = icmp eq i32 %2359, -1
  br i1 %2360, label %2361, label %2414

2361:                                             ; preds = %2356
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %2364 = call ptr @__errno_location() #10
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  store i32 %2365, ptr %52, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366)
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc i8 %2368 to i1
  br i1 %2369, label %2370, label %2392

2370:                                             ; preds = %2363
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #9
  %2373 = call i32 @isatty(i32 noundef %2372) #9
  %2374 = icmp ne i32 %2373, 0
  br i1 %2374, label %2375, label %2392

2375:                                             ; preds = %2370
  %2376 = load i32, ptr %52, align 4, !tbaa !5
  %2377 = call ptr @__errno_location() #10
  store i32 %2376, ptr %2377, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef @.str.3)
  %2383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror_debug(i32 noundef %2384, ptr noundef @.str.3)
  %2386 = call ptr @__errno_location() #10
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @strerror(i32 noundef %2387) #9
  %2389 = call ptr @__errno_location() #10
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef @.str, i32 noundef %2379, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 322, ptr noundef %2382, ptr noundef %2385, ptr noundef %2388, i32 noundef %2390) #9
  br label %2409

2392:                                             ; preds = %2370, %2363
  %2393 = load i32, ptr %52, align 4, !tbaa !5
  %2394 = call ptr @__errno_location() #10
  store i32 %2393, ptr %2394, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef @.str.3)
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror_debug(i32 noundef %2401, ptr noundef @.str.3)
  %2403 = call ptr @__errno_location() #10
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #9
  %2406 = call ptr @__errno_location() #10
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2395, ptr noundef @.str.4, i32 noundef %2396, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 322, ptr noundef %2399, ptr noundef %2402, ptr noundef %2405, i32 noundef %2407) #9
  br label %2409

2409:                                             ; preds = %2392, %2375
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2410

2410:                                             ; preds = %2409
  br label %2411

2411:                                             ; preds = %2410
  call void @exit(i32 noundef 1) #11
  unreachable

2412:                                             ; No predecessors!
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413, %2356
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

2416:                                             ; preds = %2415
  br label %2417

2417:                                             ; preds = %2416
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = add nsw i32 %2418, 1
  store i32 %2419, ptr @test_count, align 4, !tbaa !5
  %2420 = call ptr @s2n_config_new()
  store ptr %2420, ptr %49, align 8, !tbaa !9
  %2421 = icmp eq ptr %2420, null
  br i1 %2421, label %2422, label %2475

2422:                                             ; preds = %2417
  br label %2423

2423:                                             ; preds = %2422
  br label %2424

2424:                                             ; preds = %2423
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2425 = call ptr @__errno_location() #10
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  store i32 %2426, ptr %53, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = call i32 @s2n_print_stacktrace(ptr noundef %2427)
  %2429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2430 = trunc i8 %2429 to i1
  br i1 %2430, label %2431, label %2453

2431:                                             ; preds = %2424
  %2432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2433 = call i32 @fileno(ptr noundef %2432) #9
  %2434 = call i32 @isatty(i32 noundef %2433) #9
  %2435 = icmp ne i32 %2434, 0
  br i1 %2435, label %2436, label %2453

2436:                                             ; preds = %2431
  %2437 = load i32, ptr %53, align 4, !tbaa !5
  %2438 = call ptr @__errno_location() #10
  store i32 %2437, ptr %2438, align 4, !tbaa !5
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror(i32 noundef %2442, ptr noundef @.str.3)
  %2444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call ptr @s2n_strerror_debug(i32 noundef %2445, ptr noundef @.str.3)
  %2447 = call ptr @__errno_location() #10
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = call ptr @strerror(i32 noundef %2448) #9
  %2450 = call ptr @__errno_location() #10
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2439, ptr noundef @.str, i32 noundef %2440, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 324, ptr noundef %2443, ptr noundef %2446, ptr noundef %2449, i32 noundef %2451) #9
  br label %2470

2453:                                             ; preds = %2431, %2424
  %2454 = load i32, ptr %53, align 4, !tbaa !5
  %2455 = call ptr @__errno_location() #10
  store i32 %2454, ptr %2455, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror(i32 noundef %2459, ptr noundef @.str.3)
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror_debug(i32 noundef %2462, ptr noundef @.str.3)
  %2464 = call ptr @__errno_location() #10
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @strerror(i32 noundef %2465) #9
  %2467 = call ptr @__errno_location() #10
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2456, ptr noundef @.str.4, i32 noundef %2457, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 324, ptr noundef %2460, ptr noundef %2463, ptr noundef %2466, i32 noundef %2468) #9
  br label %2470

2470:                                             ; preds = %2453, %2436
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

2472:                                             ; preds = %2471
  call void @exit(i32 noundef 1) #11
  unreachable

2473:                                             ; No predecessors!
  br label %2474

2474:                                             ; preds = %2473
  br label %2475

2475:                                             ; preds = %2474, %2417
  br label %2476

2476:                                             ; preds = %2475
  br label %2477

2477:                                             ; preds = %2476
  br label %2478

2478:                                             ; preds = %2477
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = add nsw i32 %2479, 1
  store i32 %2480, ptr @test_count, align 4, !tbaa !5
  %2481 = load ptr, ptr %49, align 8, !tbaa !9
  %2482 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2481, ptr noundef @.str.69)
  %2483 = icmp eq i32 %2482, -1
  br i1 %2483, label %2484, label %2537

2484:                                             ; preds = %2478
  br label %2485

2485:                                             ; preds = %2484
  br label %2486

2486:                                             ; preds = %2485
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2487 = call ptr @__errno_location() #10
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  store i32 %2488, ptr %54, align 4, !tbaa !5
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = call i32 @s2n_print_stacktrace(ptr noundef %2489)
  %2491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2492 = trunc i8 %2491 to i1
  br i1 %2492, label %2493, label %2515

2493:                                             ; preds = %2486
  %2494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2495 = call i32 @fileno(ptr noundef %2494) #9
  %2496 = call i32 @isatty(i32 noundef %2495) #9
  %2497 = icmp ne i32 %2496, 0
  br i1 %2497, label %2498, label %2515

2498:                                             ; preds = %2493
  %2499 = load i32, ptr %54, align 4, !tbaa !5
  %2500 = call ptr @__errno_location() #10
  store i32 %2499, ptr %2500, align 4, !tbaa !5
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = load i32, ptr @test_count, align 4, !tbaa !5
  %2503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = call ptr @s2n_strerror(i32 noundef %2504, ptr noundef @.str.3)
  %2506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror_debug(i32 noundef %2507, ptr noundef @.str.3)
  %2509 = call ptr @__errno_location() #10
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call ptr @strerror(i32 noundef %2510) #9
  %2512 = call ptr @__errno_location() #10
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2501, ptr noundef @.str, i32 noundef %2502, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 325, ptr noundef %2505, ptr noundef %2508, ptr noundef %2511, i32 noundef %2513) #9
  br label %2532

2515:                                             ; preds = %2493, %2486
  %2516 = load i32, ptr %54, align 4, !tbaa !5
  %2517 = call ptr @__errno_location() #10
  store i32 %2516, ptr %2517, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror(i32 noundef %2521, ptr noundef @.str.3)
  %2523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @s2n_strerror_debug(i32 noundef %2524, ptr noundef @.str.3)
  %2526 = call ptr @__errno_location() #10
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @strerror(i32 noundef %2527) #9
  %2529 = call ptr @__errno_location() #10
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2518, ptr noundef @.str.4, i32 noundef %2519, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 325, ptr noundef %2522, ptr noundef %2525, ptr noundef %2528, i32 noundef %2530) #9
  br label %2532

2532:                                             ; preds = %2515, %2498
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2533

2533:                                             ; preds = %2532
  br label %2534

2534:                                             ; preds = %2533
  call void @exit(i32 noundef 1) #11
  unreachable

2535:                                             ; No predecessors!
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

2537:                                             ; preds = %2536, %2478
  br label %2538

2538:                                             ; preds = %2537
  br label %2539

2539:                                             ; preds = %2538
  br label %2540

2540:                                             ; preds = %2539
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = add nsw i32 %2541, 1
  store i32 %2542, ptr @test_count, align 4, !tbaa !5
  %2543 = load ptr, ptr %49, align 8, !tbaa !9
  %2544 = load ptr, ptr %51, align 8, !tbaa !9
  %2545 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2543, ptr noundef %2544)
  %2546 = icmp eq i32 %2545, -1
  br i1 %2546, label %2547, label %2600

2547:                                             ; preds = %2540
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

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

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

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

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

2596:                                             ; preds = %2595
  br label %2597

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

2598:                                             ; No predecessors!
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

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

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  br label %2603

2603:                                             ; preds = %2602
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = add nsw i32 %2604, 1
  store i32 %2605, ptr @test_count, align 4, !tbaa !5
  %2606 = load ptr, ptr %49, align 8, !tbaa !9
  %2607 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %2608 = call i32 @s2n_config_add_dhparams(ptr noundef %2606, ptr noundef %2607)
  %2609 = icmp eq i32 %2608, -1
  br i1 %2609, label %2610, label %2663

2610:                                             ; preds = %2603
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

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

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

2624:                                             ; preds = %2619
  %2625 = load i32, ptr %56, align 4, !tbaa !5
  %2626 = call ptr @__errno_location() #10
  store i32 %2625, ptr %2626, align 4, !tbaa !5
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = load i32, ptr @test_count, align 4, !tbaa !5
  %2629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror(i32 noundef %2630, ptr noundef @.str.3)
  %2632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2633 = load i32, ptr %2632, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror_debug(i32 noundef %2633, ptr noundef @.str.3)
  %2635 = call ptr @__errno_location() #10
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @strerror(i32 noundef %2636) #9
  %2638 = call ptr @__errno_location() #10
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2627, ptr noundef @.str, i32 noundef %2628, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 327, ptr noundef %2631, ptr noundef %2634, ptr noundef %2637, i32 noundef %2639) #9
  br label %2658

2641:                                             ; preds = %2619, %2612
  %2642 = load i32, ptr %56, align 4, !tbaa !5
  %2643 = call ptr @__errno_location() #10
  store i32 %2642, ptr %2643, align 4, !tbaa !5
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = load i32, ptr @test_count, align 4, !tbaa !5
  %2646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror(i32 noundef %2647, ptr noundef @.str.3)
  %2649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror_debug(i32 noundef %2650, ptr noundef @.str.3)
  %2652 = call ptr @__errno_location() #10
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @strerror(i32 noundef %2653) #9
  %2655 = call ptr @__errno_location() #10
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2644, ptr noundef @.str.4, i32 noundef %2645, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 327, ptr noundef %2648, ptr noundef %2651, ptr noundef %2654, i32 noundef %2656) #9
  br label %2658

2658:                                             ; preds = %2641, %2624
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2659

2659:                                             ; preds = %2658
  br label %2660

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

2661:                                             ; No predecessors!
  br label %2662

2662:                                             ; preds = %2661
  br label %2663

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

2664:                                             ; preds = %2663
  br label %2665

2665:                                             ; preds = %2664
  br label %2666

2666:                                             ; preds = %2665
  %2667 = load i32, ptr @test_count, align 4, !tbaa !5
  %2668 = add nsw i32 %2667, 1
  store i32 %2668, ptr @test_count, align 4, !tbaa !5
  %2669 = load ptr, ptr %49, align 8, !tbaa !9
  %2670 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %2669, i32 noundef 1)
  %2671 = icmp eq i32 %2670, -1
  br i1 %2671, label %2672, label %2725

2672:                                             ; preds = %2666
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

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

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

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

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

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

2721:                                             ; preds = %2720
  br label %2722

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

2723:                                             ; No predecessors!
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

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

2726:                                             ; preds = %2725
  br label %2727

2727:                                             ; preds = %2726
  %2728 = load i32, ptr @test_type, align 4, !tbaa !5
  %2729 = icmp eq i32 %2728, 1
  br i1 %2729, label %2730, label %2793

2730:                                             ; preds = %2727
  br label %2731

2731:                                             ; preds = %2730
  %2732 = load i32, ptr @test_count, align 4, !tbaa !5
  %2733 = add nsw i32 %2732, 1
  store i32 %2733, ptr @test_count, align 4, !tbaa !5
  %2734 = load ptr, ptr %49, align 8, !tbaa !9
  %2735 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %2734, ptr noundef @async_pkey_fn)
  %2736 = icmp eq i32 %2735, -1
  br i1 %2736, label %2737, label %2790

2737:                                             ; preds = %2731
  br label %2738

2738:                                             ; preds = %2737
  br label %2739

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

2746:                                             ; preds = %2739
  %2747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2748 = call i32 @fileno(ptr noundef %2747) #9
  %2749 = call i32 @isatty(i32 noundef %2748) #9
  %2750 = icmp ne i32 %2749, 0
  br i1 %2750, label %2751, label %2768

2751:                                             ; preds = %2746
  %2752 = load i32, ptr %58, align 4, !tbaa !5
  %2753 = call ptr @__errno_location() #10
  store i32 %2752, ptr %2753, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror(i32 noundef %2757, ptr noundef @.str.3)
  %2759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror_debug(i32 noundef %2760, ptr noundef @.str.3)
  %2762 = call ptr @__errno_location() #10
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @strerror(i32 noundef %2763) #9
  %2765 = call ptr @__errno_location() #10
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef @.str, i32 noundef %2755, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 331, ptr noundef %2758, ptr noundef %2761, ptr noundef %2764, i32 noundef %2766) #9
  br label %2785

2768:                                             ; preds = %2746, %2739
  %2769 = load i32, ptr %58, align 4, !tbaa !5
  %2770 = call ptr @__errno_location() #10
  store i32 %2769, ptr %2770, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror(i32 noundef %2774, ptr noundef @.str.3)
  %2776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror_debug(i32 noundef %2777, ptr noundef @.str.3)
  %2779 = call ptr @__errno_location() #10
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  %2781 = call ptr @strerror(i32 noundef %2780) #9
  %2782 = call ptr @__errno_location() #10
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2771, ptr noundef @.str.4, i32 noundef %2772, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 331, ptr noundef %2775, ptr noundef %2778, ptr noundef %2781, i32 noundef %2783) #9
  br label %2785

2785:                                             ; preds = %2768, %2751
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  call void @exit(i32 noundef 1) #11
  unreachable

2788:                                             ; No predecessors!
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

2790:                                             ; preds = %2789, %2731
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

2793:                                             ; preds = %2792, %2727
  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 ptr @s2n_config_new()
  store ptr %2797, ptr %50, align 8, !tbaa !9
  %2798 = icmp eq ptr %2797, null
  br i1 %2798, label %2799, label %2852

2799:                                             ; preds = %2794
  br label %2800

2800:                                             ; preds = %2799
  br label %2801

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

2808:                                             ; preds = %2801
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = call i32 @fileno(ptr noundef %2809) #9
  %2811 = call i32 @isatty(i32 noundef %2810) #9
  %2812 = icmp ne i32 %2811, 0
  br i1 %2812, label %2813, label %2830

2813:                                             ; preds = %2808
  %2814 = load i32, ptr %59, align 4, !tbaa !5
  %2815 = call ptr @__errno_location() #10
  store i32 %2814, ptr %2815, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = load i32, ptr @test_count, align 4, !tbaa !5
  %2818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror(i32 noundef %2819, ptr noundef @.str.3)
  %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_debug(i32 noundef %2822, ptr noundef @.str.3)
  %2824 = call ptr @__errno_location() #10
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @strerror(i32 noundef %2825) #9
  %2827 = call ptr @__errno_location() #10
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2816, ptr noundef @.str, i32 noundef %2817, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 334, ptr noundef %2820, ptr noundef %2823, ptr noundef %2826, i32 noundef %2828) #9
  br label %2847

2830:                                             ; preds = %2808, %2801
  %2831 = load i32, ptr %59, align 4, !tbaa !5
  %2832 = call ptr @__errno_location() #10
  store i32 %2831, ptr %2832, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror(i32 noundef %2836, ptr noundef @.str.3)
  %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_debug(i32 noundef %2839, ptr noundef @.str.3)
  %2841 = call ptr @__errno_location() #10
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @strerror(i32 noundef %2842) #9
  %2844 = call ptr @__errno_location() #10
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2833, ptr noundef @.str.4, i32 noundef %2834, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 334, ptr noundef %2837, ptr noundef %2840, ptr noundef %2843, i32 noundef %2845) #9
  br label %2847

2847:                                             ; preds = %2830, %2813
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2848

2848:                                             ; preds = %2847
  br label %2849

2849:                                             ; preds = %2848
  call void @exit(i32 noundef 1) #11
  unreachable

2850:                                             ; No predecessors!
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

2852:                                             ; preds = %2851, %2794
  br label %2853

2853:                                             ; preds = %2852
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = add nsw i32 %2856, 1
  store i32 %2857, ptr @test_count, align 4, !tbaa !5
  %2858 = load ptr, ptr %50, align 8, !tbaa !9
  %2859 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2858, ptr noundef @.str.69)
  %2860 = icmp eq i32 %2859, -1
  br i1 %2860, label %2861, label %2914

2861:                                             ; preds = %2855
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

2863:                                             ; preds = %2862
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2864 = call ptr @__errno_location() #10
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  store i32 %2865, ptr %60, align 4, !tbaa !5
  %2866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2867 = call i32 @s2n_print_stacktrace(ptr noundef %2866)
  %2868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2869 = trunc i8 %2868 to i1
  br i1 %2869, label %2870, label %2892

2870:                                             ; preds = %2863
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @fileno(ptr noundef %2871) #9
  %2873 = call i32 @isatty(i32 noundef %2872) #9
  %2874 = icmp ne i32 %2873, 0
  br i1 %2874, label %2875, label %2892

2875:                                             ; preds = %2870
  %2876 = load i32, ptr %60, align 4, !tbaa !5
  %2877 = call ptr @__errno_location() #10
  store i32 %2876, ptr %2877, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef @.str.3)
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror_debug(i32 noundef %2884, ptr noundef @.str.3)
  %2886 = call ptr @__errno_location() #10
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #9
  %2889 = call ptr @__errno_location() #10
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef @.str, i32 noundef %2879, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 335, ptr noundef %2882, ptr noundef %2885, ptr noundef %2888, i32 noundef %2890) #9
  br label %2909

2892:                                             ; preds = %2870, %2863
  %2893 = load i32, ptr %60, align 4, !tbaa !5
  %2894 = call ptr @__errno_location() #10
  store i32 %2893, ptr %2894, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = load i32, ptr @test_count, align 4, !tbaa !5
  %2897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call ptr @s2n_strerror(i32 noundef %2898, ptr noundef @.str.3)
  %2900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call ptr @s2n_strerror_debug(i32 noundef %2901, ptr noundef @.str.3)
  %2903 = call ptr @__errno_location() #10
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call ptr @strerror(i32 noundef %2904) #9
  %2906 = call ptr @__errno_location() #10
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2895, ptr noundef @.str.4, i32 noundef %2896, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 335, ptr noundef %2899, ptr noundef %2902, ptr noundef %2905, i32 noundef %2907) #9
  br label %2909

2909:                                             ; preds = %2892, %2875
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

2911:                                             ; preds = %2910
  call void @exit(i32 noundef 1) #11
  unreachable

2912:                                             ; No predecessors!
  br label %2913

2913:                                             ; preds = %2912
  br label %2914

2914:                                             ; preds = %2913, %2855
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2916
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = add nsw i32 %2918, 1
  store i32 %2919, ptr @test_count, align 4, !tbaa !5
  %2920 = load ptr, ptr %50, align 8, !tbaa !9
  %2921 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %2920)
  %2922 = icmp eq i32 %2921, -1
  br i1 %2922, label %2923, label %2976

2923:                                             ; preds = %2917
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

2925:                                             ; preds = %2924
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2926 = call ptr @__errno_location() #10
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  store i32 %2927, ptr %61, align 4, !tbaa !5
  %2928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2929 = call i32 @s2n_print_stacktrace(ptr noundef %2928)
  %2930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2931 = trunc i8 %2930 to i1
  br i1 %2931, label %2932, label %2954

2932:                                             ; preds = %2925
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @fileno(ptr noundef %2933) #9
  %2935 = call i32 @isatty(i32 noundef %2934) #9
  %2936 = icmp ne i32 %2935, 0
  br i1 %2936, label %2937, label %2954

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

2954:                                             ; preds = %2932, %2925
  %2955 = load i32, ptr %61, align 4, !tbaa !5
  %2956 = call ptr @__errno_location() #10
  store i32 %2955, ptr %2956, align 4, !tbaa !5
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = load i32, ptr @test_count, align 4, !tbaa !5
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror(i32 noundef %2960, ptr noundef @.str.3)
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror_debug(i32 noundef %2963, ptr noundef @.str.3)
  %2965 = call ptr @__errno_location() #10
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #9
  %2968 = call ptr @__errno_location() #10
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2957, ptr noundef @.str.4, i32 noundef %2958, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 336, ptr noundef %2961, ptr noundef %2964, ptr noundef %2967, i32 noundef %2969) #9
  br label %2971

2971:                                             ; preds = %2954, %2937
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

2973:                                             ; preds = %2972
  call void @exit(i32 noundef 1) #11
  unreachable

2974:                                             ; No predecessors!
  br label %2975

2975:                                             ; preds = %2974
  br label %2976

2976:                                             ; preds = %2975, %2917
  br label %2977

2977:                                             ; preds = %2976
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978
  %2980 = load i32, ptr @test_count, align 4, !tbaa !5
  %2981 = add nsw i32 %2980, 1
  store i32 %2981, ptr @test_count, align 4, !tbaa !5
  %2982 = load ptr, ptr %50, align 8, !tbaa !9
  %2983 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2982, ptr noundef @.str.66, ptr noundef null)
  %2984 = icmp eq i32 %2983, -1
  br i1 %2984, label %2985, label %3038

2985:                                             ; preds = %2979
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2988 = call ptr @__errno_location() #10
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  store i32 %2989, ptr %62, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = call i32 @s2n_print_stacktrace(ptr noundef %2990)
  %2992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2993 = trunc i8 %2992 to i1
  br i1 %2993, label %2994, label %3016

2994:                                             ; preds = %2987
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = call i32 @fileno(ptr noundef %2995) #9
  %2997 = call i32 @isatty(i32 noundef %2996) #9
  %2998 = icmp ne i32 %2997, 0
  br i1 %2998, label %2999, label %3016

2999:                                             ; preds = %2994
  %3000 = load i32, ptr %62, align 4, !tbaa !5
  %3001 = call ptr @__errno_location() #10
  store i32 %3000, ptr %3001, align 4, !tbaa !5
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror(i32 noundef %3005, ptr noundef @.str.3)
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror_debug(i32 noundef %3008, ptr noundef @.str.3)
  %3010 = call ptr @__errno_location() #10
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @strerror(i32 noundef %3011) #9
  %3013 = call ptr @__errno_location() #10
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3002, ptr noundef @.str, i32 noundef %3003, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 338, ptr noundef %3006, ptr noundef %3009, ptr noundef %3012, i32 noundef %3014) #9
  br label %3033

3016:                                             ; preds = %2994, %2987
  %3017 = load i32, ptr %62, align 4, !tbaa !5
  %3018 = call ptr @__errno_location() #10
  store i32 %3017, ptr %3018, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = load i32, ptr @test_count, align 4, !tbaa !5
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror(i32 noundef %3022, ptr noundef @.str.3)
  %3024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror_debug(i32 noundef %3025, ptr noundef @.str.3)
  %3027 = call ptr @__errno_location() #10
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @strerror(i32 noundef %3028) #9
  %3030 = call ptr @__errno_location() #10
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3019, ptr noundef @.str.4, i32 noundef %3020, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 338, ptr noundef %3023, ptr noundef %3026, ptr noundef %3029, i32 noundef %3031) #9
  br label %3033

3033:                                             ; preds = %3016, %2999
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %3034

3034:                                             ; preds = %3033
  br label %3035

3035:                                             ; preds = %3034
  call void @exit(i32 noundef 1) #11
  unreachable

3036:                                             ; No predecessors!
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

3038:                                             ; preds = %3037, %2979
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

3041:                                             ; preds = %3040
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = add nsw i32 %3042, 1
  store i32 %3043, ptr @test_count, align 4, !tbaa !5
  %3044 = load ptr, ptr %49, align 8, !tbaa !9
  %3045 = load ptr, ptr %50, align 8, !tbaa !9
  %3046 = load ptr, ptr %51, align 8, !tbaa !9
  %3047 = call i32 @test_cipher_preferences(ptr noundef %3044, ptr noundef %3045, ptr noundef %3046, i32 noundef 3)
  %3048 = icmp eq i32 %3047, -1
  br i1 %3048, label %3049, label %3102

3049:                                             ; preds = %3041
  br label %3050

3050:                                             ; preds = %3049
  br label %3051

3051:                                             ; preds = %3050
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %3052 = call ptr @__errno_location() #10
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  store i32 %3053, ptr %63, align 4, !tbaa !5
  %3054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3055 = call i32 @s2n_print_stacktrace(ptr noundef %3054)
  %3056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3057 = trunc i8 %3056 to i1
  br i1 %3057, label %3058, label %3080

3058:                                             ; preds = %3051
  %3059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3060 = call i32 @fileno(ptr noundef %3059) #9
  %3061 = call i32 @isatty(i32 noundef %3060) #9
  %3062 = icmp ne i32 %3061, 0
  br i1 %3062, label %3063, label %3080

3063:                                             ; preds = %3058
  %3064 = load i32, ptr %63, align 4, !tbaa !5
  %3065 = call ptr @__errno_location() #10
  store i32 %3064, ptr %3065, align 4, !tbaa !5
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = load i32, ptr @test_count, align 4, !tbaa !5
  %3068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call ptr @s2n_strerror(i32 noundef %3069, ptr noundef @.str.3)
  %3071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  %3073 = call ptr @s2n_strerror_debug(i32 noundef %3072, ptr noundef @.str.3)
  %3074 = call ptr @__errno_location() #10
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = call ptr @strerror(i32 noundef %3075) #9
  %3077 = call ptr @__errno_location() #10
  %3078 = load i32, ptr %3077, align 4, !tbaa !5
  %3079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3066, ptr noundef @.str, i32 noundef %3067, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 341, ptr noundef %3070, ptr noundef %3073, ptr noundef %3076, i32 noundef %3078) #9
  br label %3097

3080:                                             ; preds = %3058, %3051
  %3081 = load i32, ptr %63, align 4, !tbaa !5
  %3082 = call ptr @__errno_location() #10
  store i32 %3081, ptr %3082, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call ptr @s2n_strerror(i32 noundef %3086, ptr noundef @.str.3)
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef @.str.3)
  %3091 = call ptr @__errno_location() #10
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #9
  %3094 = call ptr @__errno_location() #10
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef @.str.4, i32 noundef %3084, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 341, ptr noundef %3087, ptr noundef %3090, ptr noundef %3093, i32 noundef %3095) #9
  br label %3097

3097:                                             ; preds = %3080, %3063
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098
  call void @exit(i32 noundef 1) #11
  unreachable

3100:                                             ; No predecessors!
  br label %3101

3101:                                             ; preds = %3100
  br label %3102

3102:                                             ; preds = %3101, %3041
  br label %3103

3103:                                             ; preds = %3102
  br label %3104

3104:                                             ; preds = %3103
  br label %3105

3105:                                             ; preds = %3104
  %3106 = load i32, ptr @test_count, align 4, !tbaa !5
  %3107 = add nsw i32 %3106, 1
  store i32 %3107, ptr @test_count, align 4, !tbaa !5
  %3108 = load ptr, ptr %51, align 8, !tbaa !9
  %3109 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %3108)
  %3110 = icmp eq i32 %3109, -1
  br i1 %3110, label %3111, label %3164

3111:                                             ; preds = %3105
  br label %3112

3112:                                             ; preds = %3111
  br label %3113

3113:                                             ; preds = %3112
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %3114 = call ptr @__errno_location() #10
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  store i32 %3115, ptr %64, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = call i32 @s2n_print_stacktrace(ptr noundef %3116)
  %3118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3119 = trunc i8 %3118 to i1
  br i1 %3119, label %3120, label %3142

3120:                                             ; preds = %3113
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = call i32 @fileno(ptr noundef %3121) #9
  %3123 = call i32 @isatty(i32 noundef %3122) #9
  %3124 = icmp ne i32 %3123, 0
  br i1 %3124, label %3125, label %3142

3125:                                             ; preds = %3120
  %3126 = load i32, ptr %64, align 4, !tbaa !5
  %3127 = call ptr @__errno_location() #10
  store i32 %3126, ptr %3127, align 4, !tbaa !5
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call ptr @s2n_strerror(i32 noundef %3131, ptr noundef @.str.3)
  %3133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror_debug(i32 noundef %3134, ptr noundef @.str.3)
  %3136 = call ptr @__errno_location() #10
  %3137 = load i32, ptr %3136, align 4, !tbaa !5
  %3138 = call ptr @strerror(i32 noundef %3137) #9
  %3139 = call ptr @__errno_location() #10
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3128, ptr noundef @.str, i32 noundef %3129, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 343, ptr noundef %3132, ptr noundef %3135, ptr noundef %3138, i32 noundef %3140) #9
  br label %3159

3142:                                             ; preds = %3120, %3113
  %3143 = load i32, ptr %64, align 4, !tbaa !5
  %3144 = call ptr @__errno_location() #10
  store i32 %3143, ptr %3144, align 4, !tbaa !5
  %3145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3146 = load i32, ptr @test_count, align 4, !tbaa !5
  %3147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror(i32 noundef %3148, ptr noundef @.str.3)
  %3150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror_debug(i32 noundef %3151, ptr noundef @.str.3)
  %3153 = call ptr @__errno_location() #10
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call ptr @strerror(i32 noundef %3154) #9
  %3156 = call ptr @__errno_location() #10
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  %3158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3145, ptr noundef @.str.4, i32 noundef %3146, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 343, ptr noundef %3149, ptr noundef %3152, ptr noundef %3155, i32 noundef %3157) #9
  br label %3159

3159:                                             ; preds = %3142, %3125
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  call void @exit(i32 noundef 1) #11
  unreachable

3162:                                             ; No predecessors!
  br label %3163

3163:                                             ; preds = %3162
  br label %3164

3164:                                             ; preds = %3163, %3105
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

3166:                                             ; preds = %3165
  br label %3167

3167:                                             ; preds = %3166
  %3168 = load i32, ptr @test_count, align 4, !tbaa !5
  %3169 = add nsw i32 %3168, 1
  store i32 %3169, ptr @test_count, align 4, !tbaa !5
  %3170 = load ptr, ptr %49, align 8, !tbaa !9
  %3171 = call i32 @s2n_config_free(ptr noundef %3170)
  %3172 = icmp eq i32 %3171, -1
  br i1 %3172, label %3173, label %3226

3173:                                             ; preds = %3167
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

3175:                                             ; preds = %3174
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %3176 = call ptr @__errno_location() #10
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  store i32 %3177, ptr %65, align 4, !tbaa !5
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @s2n_print_stacktrace(ptr noundef %3178)
  %3180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3181 = trunc i8 %3180 to i1
  br i1 %3181, label %3182, label %3204

3182:                                             ; preds = %3175
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = call i32 @fileno(ptr noundef %3183) #9
  %3185 = call i32 @isatty(i32 noundef %3184) #9
  %3186 = icmp ne i32 %3185, 0
  br i1 %3186, label %3187, label %3204

3187:                                             ; preds = %3182
  %3188 = load i32, ptr %65, align 4, !tbaa !5
  %3189 = call ptr @__errno_location() #10
  store i32 %3188, ptr %3189, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %3192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror(i32 noundef %3193, ptr noundef @.str.3)
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3196, ptr noundef @.str.3)
  %3198 = call ptr @__errno_location() #10
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @strerror(i32 noundef %3199) #9
  %3201 = call ptr @__errno_location() #10
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3190, ptr noundef @.str, i32 noundef %3191, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 344, ptr noundef %3194, ptr noundef %3197, ptr noundef %3200, i32 noundef %3202) #9
  br label %3221

3204:                                             ; preds = %3182, %3175
  %3205 = load i32, ptr %65, align 4, !tbaa !5
  %3206 = call ptr @__errno_location() #10
  store i32 %3205, ptr %3206, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef @.str.3)
  %3212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror_debug(i32 noundef %3213, ptr noundef @.str.3)
  %3215 = call ptr @__errno_location() #10
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @strerror(i32 noundef %3216) #9
  %3218 = call ptr @__errno_location() #10
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef @.str.4, i32 noundef %3208, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 344, ptr noundef %3211, ptr noundef %3214, ptr noundef %3217, i32 noundef %3219) #9
  br label %3221

3221:                                             ; preds = %3204, %3187
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  call void @exit(i32 noundef 1) #11
  unreachable

3224:                                             ; No predecessors!
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225, %3167
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

3229:                                             ; preds = %3228
  %3230 = load i32, ptr @test_count, align 4, !tbaa !5
  %3231 = add nsw i32 %3230, 1
  store i32 %3231, ptr @test_count, align 4, !tbaa !5
  %3232 = load ptr, ptr %50, align 8, !tbaa !9
  %3233 = call i32 @s2n_config_free(ptr noundef %3232)
  %3234 = icmp eq i32 %3233, -1
  br i1 %3234, label %3235, label %3288

3235:                                             ; preds = %3229
  br label %3236

3236:                                             ; preds = %3235
  br label %3237

3237:                                             ; preds = %3236
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %3238 = call ptr @__errno_location() #10
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  store i32 %3239, ptr %66, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = call i32 @s2n_print_stacktrace(ptr noundef %3240)
  %3242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3243 = trunc i8 %3242 to i1
  br i1 %3243, label %3244, label %3266

3244:                                             ; preds = %3237
  %3245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3246 = call i32 @fileno(ptr noundef %3245) #9
  %3247 = call i32 @isatty(i32 noundef %3246) #9
  %3248 = icmp ne i32 %3247, 0
  br i1 %3248, label %3249, label %3266

3249:                                             ; preds = %3244
  %3250 = load i32, ptr %66, align 4, !tbaa !5
  %3251 = call ptr @__errno_location() #10
  store i32 %3250, ptr %3251, align 4, !tbaa !5
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = load i32, ptr @test_count, align 4, !tbaa !5
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror(i32 noundef %3255, ptr noundef @.str.3)
  %3257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @s2n_strerror_debug(i32 noundef %3258, ptr noundef @.str.3)
  %3260 = call ptr @__errno_location() #10
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call ptr @strerror(i32 noundef %3261) #9
  %3263 = call ptr @__errno_location() #10
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3252, ptr noundef @.str, i32 noundef %3253, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 345, ptr noundef %3256, ptr noundef %3259, ptr noundef %3262, i32 noundef %3264) #9
  br label %3283

3266:                                             ; preds = %3244, %3237
  %3267 = load i32, ptr %66, align 4, !tbaa !5
  %3268 = call ptr @__errno_location() #10
  store i32 %3267, ptr %3268, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror(i32 noundef %3272, ptr noundef @.str.3)
  %3274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror_debug(i32 noundef %3275, ptr noundef @.str.3)
  %3277 = call ptr @__errno_location() #10
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call ptr @strerror(i32 noundef %3278) #9
  %3280 = call ptr @__errno_location() #10
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3269, ptr noundef @.str.4, i32 noundef %3270, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 345, ptr noundef %3273, ptr noundef %3276, ptr noundef %3279, i32 noundef %3281) #9
  br label %3283

3283:                                             ; preds = %3266, %3249
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284
  call void @exit(i32 noundef 1) #11
  unreachable

3286:                                             ; No predecessors!
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287, %3229
  br label %3289

3289:                                             ; preds = %3288
  br label %3290

3290:                                             ; preds = %3289
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  %3291 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %3291, label %3292, label %4086

3292:                                             ; preds = %3290
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %67, ptr align 16 @__const.main.rsa_pss_rsae_sig_schemes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #9
  %3293 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %68, i32 0, i32 0
  store i8 3, ptr %3293, align 8, !tbaa !15
  %3294 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %68, i32 0, i32 1
  %3295 = getelementptr inbounds [3 x ptr], ptr %67, i64 0, i64 0
  store ptr %3295, ptr %3294, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  store ptr null, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  store ptr null, ptr %70, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  store ptr null, ptr %71, align 8, !tbaa !9
  br label %3296

3296:                                             ; preds = %3292
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = add nsw i32 %3297, 1
  store i32 %3298, ptr @test_count, align 4, !tbaa !5
  %3299 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %71, ptr noundef @.str.43, ptr noundef @.str.44)
  %3300 = icmp eq i32 %3299, -1
  br i1 %3300, label %3301, label %3354

3301:                                             ; preds = %3296
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

3303:                                             ; preds = %3302
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3304 = call ptr @__errno_location() #10
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  store i32 %3305, ptr %72, align 4, !tbaa !5
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = call i32 @s2n_print_stacktrace(ptr noundef %3306)
  %3308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3309 = trunc i8 %3308 to i1
  br i1 %3309, label %3310, label %3332

3310:                                             ; preds = %3303
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @fileno(ptr noundef %3311) #9
  %3313 = call i32 @isatty(i32 noundef %3312) #9
  %3314 = icmp ne i32 %3313, 0
  br i1 %3314, label %3315, label %3332

3315:                                             ; preds = %3310
  %3316 = load i32, ptr %72, align 4, !tbaa !5
  %3317 = call ptr @__errno_location() #10
  store i32 %3316, ptr %3317, align 4, !tbaa !5
  %3318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3319 = load i32, ptr @test_count, align 4, !tbaa !5
  %3320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call ptr @s2n_strerror(i32 noundef %3321, ptr noundef @.str.3)
  %3323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3324 = load i32, ptr %3323, align 4, !tbaa !5
  %3325 = call ptr @s2n_strerror_debug(i32 noundef %3324, ptr noundef @.str.3)
  %3326 = call ptr @__errno_location() #10
  %3327 = load i32, ptr %3326, align 4, !tbaa !5
  %3328 = call ptr @strerror(i32 noundef %3327) #9
  %3329 = call ptr @__errno_location() #10
  %3330 = load i32, ptr %3329, align 4, !tbaa !5
  %3331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3318, ptr noundef @.str, i32 noundef %3319, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 366, ptr noundef %3322, ptr noundef %3325, ptr noundef %3328, i32 noundef %3330) #9
  br label %3349

3332:                                             ; preds = %3310, %3303
  %3333 = load i32, ptr %72, align 4, !tbaa !5
  %3334 = call ptr @__errno_location() #10
  store i32 %3333, ptr %3334, align 4, !tbaa !5
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call ptr @s2n_strerror(i32 noundef %3338, ptr noundef @.str.3)
  %3340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call ptr @s2n_strerror_debug(i32 noundef %3341, ptr noundef @.str.3)
  %3343 = call ptr @__errno_location() #10
  %3344 = load i32, ptr %3343, align 4, !tbaa !5
  %3345 = call ptr @strerror(i32 noundef %3344) #9
  %3346 = call ptr @__errno_location() #10
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  %3348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3335, ptr noundef @.str.4, i32 noundef %3336, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 366, ptr noundef %3339, ptr noundef %3342, ptr noundef %3345, i32 noundef %3347) #9
  br label %3349

3349:                                             ; preds = %3332, %3315
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3350

3350:                                             ; preds = %3349
  br label %3351

3351:                                             ; preds = %3350
  call void @exit(i32 noundef 1) #11
  unreachable

3352:                                             ; No predecessors!
  br label %3353

3353:                                             ; preds = %3352
  br label %3354

3354:                                             ; preds = %3353, %3296
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

3357:                                             ; preds = %3356
  %3358 = load i32, ptr @test_count, align 4, !tbaa !5
  %3359 = add nsw i32 %3358, 1
  store i32 %3359, ptr @test_count, align 4, !tbaa !5
  %3360 = call ptr @s2n_config_new()
  store ptr %3360, ptr %69, align 8, !tbaa !9
  %3361 = icmp eq ptr %3360, null
  br i1 %3361, label %3362, label %3415

3362:                                             ; preds = %3357
  br label %3363

3363:                                             ; preds = %3362
  br label %3364

3364:                                             ; preds = %3363
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3365 = call ptr @__errno_location() #10
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  store i32 %3366, ptr %73, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = call i32 @s2n_print_stacktrace(ptr noundef %3367)
  %3369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3370 = trunc i8 %3369 to i1
  br i1 %3370, label %3371, label %3393

3371:                                             ; preds = %3364
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = call i32 @fileno(ptr noundef %3372) #9
  %3374 = call i32 @isatty(i32 noundef %3373) #9
  %3375 = icmp ne i32 %3374, 0
  br i1 %3375, label %3376, label %3393

3376:                                             ; preds = %3371
  %3377 = load i32, ptr %73, align 4, !tbaa !5
  %3378 = call ptr @__errno_location() #10
  store i32 %3377, ptr %3378, align 4, !tbaa !5
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = load i32, ptr @test_count, align 4, !tbaa !5
  %3381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror(i32 noundef %3382, ptr noundef @.str.3)
  %3384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @s2n_strerror_debug(i32 noundef %3385, ptr noundef @.str.3)
  %3387 = call ptr @__errno_location() #10
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call ptr @strerror(i32 noundef %3388) #9
  %3390 = call ptr @__errno_location() #10
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3379, ptr noundef @.str, i32 noundef %3380, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 368, ptr noundef %3383, ptr noundef %3386, ptr noundef %3389, i32 noundef %3391) #9
  br label %3410

3393:                                             ; preds = %3371, %3364
  %3394 = load i32, ptr %73, align 4, !tbaa !5
  %3395 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3404 = call ptr @__errno_location() #10
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @strerror(i32 noundef %3405) #9
  %3407 = call ptr @__errno_location() #10
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3396, ptr noundef @.str.4, i32 noundef %3397, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 368, ptr noundef %3400, ptr noundef %3403, ptr noundef %3406, i32 noundef %3408) #9
  br label %3410

3410:                                             ; preds = %3393, %3376
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  call void @exit(i32 noundef 1) #11
  unreachable

3413:                                             ; No predecessors!
  br label %3414

3414:                                             ; preds = %3413
  br label %3415

3415:                                             ; preds = %3414, %3357
  br label %3416

3416:                                             ; preds = %3415
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

3418:                                             ; preds = %3417
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = add nsw i32 %3419, 1
  store i32 %3420, ptr @test_count, align 4, !tbaa !5
  %3421 = load ptr, ptr %69, align 8, !tbaa !9
  %3422 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3421, ptr noundef @.str.47)
  %3423 = icmp eq i32 %3422, -1
  br i1 %3423, label %3424, label %3477

3424:                                             ; preds = %3418
  br label %3425

3425:                                             ; preds = %3424
  br label %3426

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

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

3438:                                             ; preds = %3433
  %3439 = load i32, ptr %74, align 4, !tbaa !5
  %3440 = call ptr @__errno_location() #10
  store i32 %3439, ptr %3440, align 4, !tbaa !5
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = load i32, ptr @test_count, align 4, !tbaa !5
  %3443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef @.str.3)
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror_debug(i32 noundef %3447, ptr noundef @.str.3)
  %3449 = call ptr @__errno_location() #10
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @strerror(i32 noundef %3450) #9
  %3452 = call ptr @__errno_location() #10
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3441, ptr noundef @.str, i32 noundef %3442, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 370, ptr noundef %3445, ptr noundef %3448, ptr noundef %3451, i32 noundef %3453) #9
  br label %3472

3455:                                             ; preds = %3433, %3426
  %3456 = load i32, ptr %74, align 4, !tbaa !5
  %3457 = call ptr @__errno_location() #10
  store i32 %3456, ptr %3457, align 4, !tbaa !5
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = load i32, ptr @test_count, align 4, !tbaa !5
  %3460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3461 = load i32, ptr %3460, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror(i32 noundef %3461, ptr noundef @.str.3)
  %3463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror_debug(i32 noundef %3464, ptr noundef @.str.3)
  %3466 = call ptr @__errno_location() #10
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call ptr @strerror(i32 noundef %3467) #9
  %3469 = call ptr @__errno_location() #10
  %3470 = load i32, ptr %3469, align 4, !tbaa !5
  %3471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3458, ptr noundef @.str.4, i32 noundef %3459, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 370, ptr noundef %3462, ptr noundef %3465, ptr noundef %3468, i32 noundef %3470) #9
  br label %3472

3472:                                             ; preds = %3455, %3438
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3473

3473:                                             ; preds = %3472
  br label %3474

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

3475:                                             ; No predecessors!
  br label %3476

3476:                                             ; preds = %3475
  br label %3477

3477:                                             ; preds = %3476, %3418
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478
  call void @llvm.lifetime.start.p0(i64 64, ptr %75) #9
  %3480 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 0
  %3481 = load ptr, ptr %69, align 8, !tbaa !9
  %3482 = getelementptr inbounds %struct.s2n_config, ptr %3481, i32 0, i32 7
  %3483 = load ptr, ptr %3482, align 8, !tbaa !18
  %3484 = getelementptr inbounds %struct.s2n_security_policy, ptr %3483, i32 0, i32 0
  %3485 = load i8, ptr %3484, align 8, !tbaa !25
  store i8 %3485, ptr %3480, align 8, !tbaa !25
  %3486 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 1
  %3487 = load ptr, ptr %69, align 8, !tbaa !9
  %3488 = getelementptr inbounds %struct.s2n_config, ptr %3487, i32 0, i32 7
  %3489 = load ptr, ptr %3488, align 8, !tbaa !18
  %3490 = getelementptr inbounds %struct.s2n_security_policy, ptr %3489, i32 0, i32 1
  %3491 = load ptr, ptr %3490, align 8, !tbaa !27
  store ptr %3491, ptr %3486, align 8, !tbaa !27
  %3492 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 2
  %3493 = load ptr, ptr %69, align 8, !tbaa !9
  %3494 = getelementptr inbounds %struct.s2n_config, ptr %3493, i32 0, i32 7
  %3495 = load ptr, ptr %3494, align 8, !tbaa !18
  %3496 = getelementptr inbounds %struct.s2n_security_policy, ptr %3495, i32 0, i32 2
  %3497 = load ptr, ptr %3496, align 8, !tbaa !28
  store ptr %3497, ptr %3492, align 8, !tbaa !28
  %3498 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 3
  store ptr %68, ptr %3498, align 8, !tbaa !29
  %3499 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 4
  store ptr null, ptr %3499, align 8, !tbaa !30
  %3500 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 5
  %3501 = load ptr, ptr %69, align 8, !tbaa !9
  %3502 = getelementptr inbounds %struct.s2n_config, ptr %3501, i32 0, i32 7
  %3503 = load ptr, ptr %3502, align 8, !tbaa !18
  %3504 = getelementptr inbounds %struct.s2n_security_policy, ptr %3503, i32 0, i32 5
  %3505 = load ptr, ptr %3504, align 8, !tbaa !31
  store ptr %3505, ptr %3500, align 8, !tbaa !31
  %3506 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 6
  store ptr null, ptr %3506, align 8, !tbaa !32
  %3507 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 7
  store i8 0, ptr %3507, align 8, !tbaa !33
  %3508 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %3508, i8 0, i64 2, i1 false)
  br label %3509

3509:                                             ; preds = %3479
  %3510 = load i32, ptr @test_count, align 4, !tbaa !5
  %3511 = add nsw i32 %3510, 1
  store i32 %3511, ptr @test_count, align 4, !tbaa !5
  %3512 = load ptr, ptr %69, align 8, !tbaa !9
  %3513 = load ptr, ptr %71, align 8, !tbaa !9
  %3514 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3512, ptr noundef %3513)
  %3515 = icmp eq i32 %3514, -1
  br i1 %3515, label %3516, label %3569

3516:                                             ; preds = %3509
  br label %3517

3517:                                             ; preds = %3516
  br label %3518

3518:                                             ; preds = %3517
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3519 = call ptr @__errno_location() #10
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  store i32 %3520, ptr %76, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = call i32 @s2n_print_stacktrace(ptr noundef %3521)
  %3523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3524 = trunc i8 %3523 to i1
  br i1 %3524, label %3525, label %3547

3525:                                             ; preds = %3518
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = call i32 @fileno(ptr noundef %3526) #9
  %3528 = call i32 @isatty(i32 noundef %3527) #9
  %3529 = icmp ne i32 %3528, 0
  br i1 %3529, label %3530, label %3547

3530:                                             ; preds = %3525
  %3531 = load i32, ptr %76, align 4, !tbaa !5
  %3532 = call ptr @__errno_location() #10
  store i32 %3531, ptr %3532, align 4, !tbaa !5
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror(i32 noundef %3536, ptr noundef @.str.3)
  %3538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror_debug(i32 noundef %3539, ptr noundef @.str.3)
  %3541 = call ptr @__errno_location() #10
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @strerror(i32 noundef %3542) #9
  %3544 = call ptr @__errno_location() #10
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3533, ptr noundef @.str, i32 noundef %3534, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 380, ptr noundef %3537, ptr noundef %3540, ptr noundef %3543, i32 noundef %3545) #9
  br label %3564

3547:                                             ; preds = %3525, %3518
  %3548 = load i32, ptr %76, align 4, !tbaa !5
  %3549 = call ptr @__errno_location() #10
  store i32 %3548, ptr %3549, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror(i32 noundef %3553, ptr noundef @.str.3)
  %3555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  %3557 = call ptr @s2n_strerror_debug(i32 noundef %3556, ptr noundef @.str.3)
  %3558 = call ptr @__errno_location() #10
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @strerror(i32 noundef %3559) #9
  %3561 = call ptr @__errno_location() #10
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef @.str.4, i32 noundef %3551, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 380, ptr noundef %3554, ptr noundef %3557, ptr noundef %3560, i32 noundef %3562) #9
  br label %3564

3564:                                             ; preds = %3547, %3530
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

3566:                                             ; preds = %3565
  call void @exit(i32 noundef 1) #11
  unreachable

3567:                                             ; No predecessors!
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

3569:                                             ; preds = %3568, %3509
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570
  br label %3572

3572:                                             ; preds = %3571
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = add nsw i32 %3573, 1
  store i32 %3574, ptr @test_count, align 4, !tbaa !5
  %3575 = load ptr, ptr %69, align 8, !tbaa !9
  %3576 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %3577 = call i32 @s2n_config_add_dhparams(ptr noundef %3575, ptr noundef %3576)
  %3578 = icmp eq i32 %3577, -1
  br i1 %3578, label %3579, label %3632

3579:                                             ; preds = %3572
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

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

3588:                                             ; preds = %3581
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = call i32 @fileno(ptr noundef %3589) #9
  %3591 = call i32 @isatty(i32 noundef %3590) #9
  %3592 = icmp ne i32 %3591, 0
  br i1 %3592, label %3593, label %3610

3593:                                             ; preds = %3588
  %3594 = load i32, ptr %77, align 4, !tbaa !5
  %3595 = call ptr @__errno_location() #10
  store i32 %3594, ptr %3595, align 4, !tbaa !5
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror(i32 noundef %3599, ptr noundef @.str.3)
  %3601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call ptr @s2n_strerror_debug(i32 noundef %3602, ptr noundef @.str.3)
  %3604 = call ptr @__errno_location() #10
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  %3606 = call ptr @strerror(i32 noundef %3605) #9
  %3607 = call ptr @__errno_location() #10
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3596, ptr noundef @.str, i32 noundef %3597, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 381, ptr noundef %3600, ptr noundef %3603, ptr noundef %3606, i32 noundef %3608) #9
  br label %3627

3610:                                             ; preds = %3588, %3581
  %3611 = load i32, ptr %77, align 4, !tbaa !5
  %3612 = call ptr @__errno_location() #10
  store i32 %3611, ptr %3612, align 4, !tbaa !5
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = load i32, ptr @test_count, align 4, !tbaa !5
  %3615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror(i32 noundef %3616, ptr noundef @.str.3)
  %3618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror_debug(i32 noundef %3619, ptr noundef @.str.3)
  %3621 = call ptr @__errno_location() #10
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @strerror(i32 noundef %3622) #9
  %3624 = call ptr @__errno_location() #10
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3613, ptr noundef @.str.4, i32 noundef %3614, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 381, ptr noundef %3617, ptr noundef %3620, ptr noundef %3623, i32 noundef %3625) #9
  br label %3627

3627:                                             ; preds = %3610, %3593
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3628

3628:                                             ; preds = %3627
  br label %3629

3629:                                             ; preds = %3628
  call void @exit(i32 noundef 1) #11
  unreachable

3630:                                             ; No predecessors!
  br label %3631

3631:                                             ; preds = %3630
  br label %3632

3632:                                             ; preds = %3631, %3572
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633
  %3635 = load i32, ptr @test_type, align 4, !tbaa !5
  %3636 = icmp eq i32 %3635, 1
  br i1 %3636, label %3637, label %3700

3637:                                             ; preds = %3634
  br label %3638

3638:                                             ; preds = %3637
  %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 ptr, ptr %69, align 8, !tbaa !9
  %3642 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %3641, ptr noundef @async_pkey_fn)
  %3643 = icmp eq i32 %3642, -1
  br i1 %3643, label %3644, label %3697

3644:                                             ; preds = %3638
  br label %3645

3645:                                             ; preds = %3644
  br label %3646

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

3653:                                             ; preds = %3646
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = call i32 @fileno(ptr noundef %3654) #9
  %3656 = call i32 @isatty(i32 noundef %3655) #9
  %3657 = icmp ne i32 %3656, 0
  br i1 %3657, label %3658, label %3675

3658:                                             ; preds = %3653
  %3659 = load i32, ptr %78, align 4, !tbaa !5
  %3660 = call ptr @__errno_location() #10
  store i32 %3659, ptr %3660, align 4, !tbaa !5
  %3661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3662 = load i32, ptr @test_count, align 4, !tbaa !5
  %3663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror(i32 noundef %3664, ptr noundef @.str.3)
  %3666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call ptr @s2n_strerror_debug(i32 noundef %3667, ptr noundef @.str.3)
  %3669 = call ptr @__errno_location() #10
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call ptr @strerror(i32 noundef %3670) #9
  %3672 = call ptr @__errno_location() #10
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3661, ptr noundef @.str, i32 noundef %3662, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 383, ptr noundef %3665, ptr noundef %3668, ptr noundef %3671, i32 noundef %3673) #9
  br label %3692

3675:                                             ; preds = %3653, %3646
  %3676 = load i32, ptr %78, align 4, !tbaa !5
  %3677 = call ptr @__errno_location() #10
  store i32 %3676, ptr %3677, align 4, !tbaa !5
  %3678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3679 = load i32, ptr @test_count, align 4, !tbaa !5
  %3680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  %3682 = call ptr @s2n_strerror(i32 noundef %3681, ptr noundef @.str.3)
  %3683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  %3685 = call ptr @s2n_strerror_debug(i32 noundef %3684, ptr noundef @.str.3)
  %3686 = call ptr @__errno_location() #10
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call ptr @strerror(i32 noundef %3687) #9
  %3689 = call ptr @__errno_location() #10
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3678, ptr noundef @.str.4, i32 noundef %3679, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 383, ptr noundef %3682, ptr noundef %3685, ptr noundef %3688, i32 noundef %3690) #9
  br label %3692

3692:                                             ; preds = %3675, %3658
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3693

3693:                                             ; preds = %3692
  br label %3694

3694:                                             ; preds = %3693
  call void @exit(i32 noundef 1) #11
  unreachable

3695:                                             ; No predecessors!
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696, %3638
  br label %3698

3698:                                             ; preds = %3697
  br label %3699

3699:                                             ; preds = %3698
  br label %3700

3700:                                             ; preds = %3699, %3634
  %3701 = load ptr, ptr %69, align 8, !tbaa !9
  %3702 = getelementptr inbounds %struct.s2n_config, ptr %3701, i32 0, i32 7
  store ptr %75, ptr %3702, align 8, !tbaa !18
  br label %3703

3703:                                             ; preds = %3700
  %3704 = load i32, ptr @test_count, align 4, !tbaa !5
  %3705 = add nsw i32 %3704, 1
  store i32 %3705, ptr @test_count, align 4, !tbaa !5
  %3706 = call ptr @s2n_config_new()
  store ptr %3706, ptr %70, align 8, !tbaa !9
  %3707 = icmp eq ptr %3706, null
  br i1 %3707, label %3708, label %3761

3708:                                             ; preds = %3703
  br label %3709

3709:                                             ; preds = %3708
  br label %3710

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

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

3722:                                             ; preds = %3717
  %3723 = load i32, ptr %79, align 4, !tbaa !5
  %3724 = call ptr @__errno_location() #10
  store i32 %3723, ptr %3724, align 4, !tbaa !5
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = load i32, ptr @test_count, align 4, !tbaa !5
  %3727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3728 = load i32, ptr %3727, align 4, !tbaa !5
  %3729 = call ptr @s2n_strerror(i32 noundef %3728, ptr noundef @.str.3)
  %3730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror_debug(i32 noundef %3731, ptr noundef @.str.3)
  %3733 = call ptr @__errno_location() #10
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call ptr @strerror(i32 noundef %3734) #9
  %3736 = call ptr @__errno_location() #10
  %3737 = load i32, ptr %3736, align 4, !tbaa !5
  %3738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3725, ptr noundef @.str, i32 noundef %3726, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 387, ptr noundef %3729, ptr noundef %3732, ptr noundef %3735, i32 noundef %3737) #9
  br label %3756

3739:                                             ; preds = %3717, %3710
  %3740 = load i32, ptr %79, align 4, !tbaa !5
  %3741 = call ptr @__errno_location() #10
  store i32 %3740, ptr %3741, align 4, !tbaa !5
  %3742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3743 = load i32, ptr @test_count, align 4, !tbaa !5
  %3744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3745 = load i32, ptr %3744, align 4, !tbaa !5
  %3746 = call ptr @s2n_strerror(i32 noundef %3745, ptr noundef @.str.3)
  %3747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3748 = load i32, ptr %3747, align 4, !tbaa !5
  %3749 = call ptr @s2n_strerror_debug(i32 noundef %3748, ptr noundef @.str.3)
  %3750 = call ptr @__errno_location() #10
  %3751 = load i32, ptr %3750, align 4, !tbaa !5
  %3752 = call ptr @strerror(i32 noundef %3751) #9
  %3753 = call ptr @__errno_location() #10
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3742, ptr noundef @.str.4, i32 noundef %3743, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 387, ptr noundef %3746, ptr noundef %3749, ptr noundef %3752, i32 noundef %3754) #9
  br label %3756

3756:                                             ; preds = %3739, %3722
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3757

3757:                                             ; preds = %3756
  br label %3758

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

3759:                                             ; No predecessors!
  br label %3760

3760:                                             ; preds = %3759
  br label %3761

3761:                                             ; preds = %3760, %3703
  br label %3762

3762:                                             ; preds = %3761
  br label %3763

3763:                                             ; preds = %3762
  %3764 = load ptr, ptr %70, align 8, !tbaa !9
  %3765 = load i32, ptr %3764, align 8
  %3766 = and i32 %3765, -33
  %3767 = or i32 %3766, 0
  store i32 %3767, ptr %3764, align 8
  %3768 = load ptr, ptr %70, align 8, !tbaa !9
  %3769 = load i32, ptr %3768, align 8
  %3770 = and i32 %3769, -129
  %3771 = or i32 %3770, 128
  store i32 %3771, ptr %3768, align 8
  %3772 = load ptr, ptr %70, align 8, !tbaa !9
  %3773 = getelementptr inbounds %struct.s2n_config, ptr %3772, i32 0, i32 7
  store ptr %75, ptr %3773, align 8, !tbaa !18
  br label %3774

3774:                                             ; preds = %3763
  %3775 = load i32, ptr @test_count, align 4, !tbaa !5
  %3776 = add nsw i32 %3775, 1
  store i32 %3776, ptr @test_count, align 4, !tbaa !5
  %3777 = load ptr, ptr %70, align 8, !tbaa !9
  %3778 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %3777, ptr noundef @.str.43, ptr noundef null)
  %3779 = icmp eq i32 %3778, -1
  br i1 %3779, label %3780, label %3833

3780:                                             ; preds = %3774
  br label %3781

3781:                                             ; preds = %3780
  br label %3782

3782:                                             ; preds = %3781
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3783 = call ptr @__errno_location() #10
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  store i32 %3784, ptr %80, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = call i32 @s2n_print_stacktrace(ptr noundef %3785)
  %3787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3788 = trunc i8 %3787 to i1
  br i1 %3788, label %3789, label %3811

3789:                                             ; preds = %3782
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = call i32 @fileno(ptr noundef %3790) #9
  %3792 = call i32 @isatty(i32 noundef %3791) #9
  %3793 = icmp ne i32 %3792, 0
  br i1 %3793, label %3794, label %3811

3794:                                             ; preds = %3789
  %3795 = load i32, ptr %80, align 4, !tbaa !5
  %3796 = call ptr @__errno_location() #10
  store i32 %3795, ptr %3796, align 4, !tbaa !5
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = load i32, ptr @test_count, align 4, !tbaa !5
  %3799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror(i32 noundef %3800, ptr noundef @.str.3)
  %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_debug(i32 noundef %3803, ptr noundef @.str.3)
  %3805 = call ptr @__errno_location() #10
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @strerror(i32 noundef %3806) #9
  %3808 = call ptr @__errno_location() #10
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3797, ptr noundef @.str, i32 noundef %3798, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 392, ptr noundef %3801, ptr noundef %3804, ptr noundef %3807, i32 noundef %3809) #9
  br label %3828

3811:                                             ; preds = %3789, %3782
  %3812 = load i32, ptr %80, align 4, !tbaa !5
  %3813 = call ptr @__errno_location() #10
  store i32 %3812, ptr %3813, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = load i32, ptr @test_count, align 4, !tbaa !5
  %3816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call ptr @s2n_strerror(i32 noundef %3817, ptr noundef @.str.3)
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call ptr @s2n_strerror_debug(i32 noundef %3820, ptr noundef @.str.3)
  %3822 = call ptr @__errno_location() #10
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @strerror(i32 noundef %3823) #9
  %3825 = call ptr @__errno_location() #10
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3814, ptr noundef @.str.4, i32 noundef %3815, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 392, ptr noundef %3818, ptr noundef %3821, ptr noundef %3824, i32 noundef %3826) #9
  br label %3828

3828:                                             ; preds = %3811, %3794
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3829

3829:                                             ; preds = %3828
  br label %3830

3830:                                             ; preds = %3829
  call void @exit(i32 noundef 1) #11
  unreachable

3831:                                             ; No predecessors!
  br label %3832

3832:                                             ; preds = %3831
  br label %3833

3833:                                             ; preds = %3832, %3774
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

3835:                                             ; preds = %3834
  br label %3836

3836:                                             ; preds = %3835
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = add nsw i32 %3837, 1
  store i32 %3838, ptr @test_count, align 4, !tbaa !5
  %3839 = load ptr, ptr %69, align 8, !tbaa !9
  %3840 = load ptr, ptr %70, align 8, !tbaa !9
  %3841 = load ptr, ptr %71, align 8, !tbaa !9
  %3842 = call i32 @test_cipher_preferences(ptr noundef %3839, ptr noundef %3840, ptr noundef %3841, i32 noundef 224)
  %3843 = icmp eq i32 %3842, -1
  br i1 %3843, label %3844, label %3897

3844:                                             ; preds = %3836
  br label %3845

3845:                                             ; preds = %3844
  br label %3846

3846:                                             ; preds = %3845
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3847 = call ptr @__errno_location() #10
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  store i32 %3848, ptr %81, align 4, !tbaa !5
  %3849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3850 = call i32 @s2n_print_stacktrace(ptr noundef %3849)
  %3851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3852 = trunc i8 %3851 to i1
  br i1 %3852, label %3853, label %3875

3853:                                             ; preds = %3846
  %3854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3855 = call i32 @fileno(ptr noundef %3854) #9
  %3856 = call i32 @isatty(i32 noundef %3855) #9
  %3857 = icmp ne i32 %3856, 0
  br i1 %3857, label %3858, label %3875

3858:                                             ; preds = %3853
  %3859 = load i32, ptr %81, align 4, !tbaa !5
  %3860 = call ptr @__errno_location() #10
  store i32 %3859, ptr %3860, align 4, !tbaa !5
  %3861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3862 = load i32, ptr @test_count, align 4, !tbaa !5
  %3863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror(i32 noundef %3864, ptr noundef @.str.3)
  %3866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef @.str.3)
  %3869 = call ptr @__errno_location() #10
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @strerror(i32 noundef %3870) #9
  %3872 = call ptr @__errno_location() #10
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3861, ptr noundef @.str, i32 noundef %3862, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 395, ptr noundef %3865, ptr noundef %3868, ptr noundef %3871, i32 noundef %3873) #9
  br label %3892

3875:                                             ; preds = %3853, %3846
  %3876 = load i32, ptr %81, align 4, !tbaa !5
  %3877 = call ptr @__errno_location() #10
  store i32 %3876, ptr %3877, align 4, !tbaa !5
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = load i32, ptr @test_count, align 4, !tbaa !5
  %3880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3881 = load i32, ptr %3880, align 4, !tbaa !5
  %3882 = call ptr @s2n_strerror(i32 noundef %3881, ptr noundef @.str.3)
  %3883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3884 = load i32, ptr %3883, align 4, !tbaa !5
  %3885 = call ptr @s2n_strerror_debug(i32 noundef %3884, ptr noundef @.str.3)
  %3886 = call ptr @__errno_location() #10
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call ptr @strerror(i32 noundef %3887) #9
  %3889 = call ptr @__errno_location() #10
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  %3891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3878, ptr noundef @.str.4, i32 noundef %3879, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 395, ptr noundef %3882, ptr noundef %3885, ptr noundef %3888, i32 noundef %3890) #9
  br label %3892

3892:                                             ; preds = %3875, %3858
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %3893

3893:                                             ; preds = %3892
  br label %3894

3894:                                             ; preds = %3893
  call void @exit(i32 noundef 1) #11
  unreachable

3895:                                             ; No predecessors!
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

3897:                                             ; preds = %3896, %3836
  br label %3898

3898:                                             ; preds = %3897
  br label %3899

3899:                                             ; preds = %3898
  br label %3900

3900:                                             ; preds = %3899
  %3901 = load i32, ptr @test_count, align 4, !tbaa !5
  %3902 = add nsw i32 %3901, 1
  store i32 %3902, ptr @test_count, align 4, !tbaa !5
  %3903 = load ptr, ptr %71, align 8, !tbaa !9
  %3904 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %3903)
  %3905 = icmp eq i32 %3904, -1
  br i1 %3905, label %3906, label %3959

3906:                                             ; preds = %3900
  br label %3907

3907:                                             ; preds = %3906
  br label %3908

3908:                                             ; preds = %3907
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3909 = call ptr @__errno_location() #10
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  store i32 %3910, ptr %82, align 4, !tbaa !5
  %3911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3912 = call i32 @s2n_print_stacktrace(ptr noundef %3911)
  %3913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3914 = trunc i8 %3913 to i1
  br i1 %3914, label %3915, label %3937

3915:                                             ; preds = %3908
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = call i32 @fileno(ptr noundef %3916) #9
  %3918 = call i32 @isatty(i32 noundef %3917) #9
  %3919 = icmp ne i32 %3918, 0
  br i1 %3919, label %3920, label %3937

3920:                                             ; preds = %3915
  %3921 = load i32, ptr %82, align 4, !tbaa !5
  %3922 = call ptr @__errno_location() #10
  store i32 %3921, ptr %3922, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = load i32, ptr @test_count, align 4, !tbaa !5
  %3925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3926 = load i32, ptr %3925, align 4, !tbaa !5
  %3927 = call ptr @s2n_strerror(i32 noundef %3926, ptr noundef @.str.3)
  %3928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror_debug(i32 noundef %3929, ptr noundef @.str.3)
  %3931 = call ptr @__errno_location() #10
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @strerror(i32 noundef %3932) #9
  %3934 = call ptr @__errno_location() #10
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3923, ptr noundef @.str, i32 noundef %3924, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 397, ptr noundef %3927, ptr noundef %3930, ptr noundef %3933, i32 noundef %3935) #9
  br label %3954

3937:                                             ; preds = %3915, %3908
  %3938 = load i32, ptr %82, align 4, !tbaa !5
  %3939 = call ptr @__errno_location() #10
  store i32 %3938, ptr %3939, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = load i32, ptr @test_count, align 4, !tbaa !5
  %3942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3943 = load i32, ptr %3942, align 4, !tbaa !5
  %3944 = call ptr @s2n_strerror(i32 noundef %3943, ptr noundef @.str.3)
  %3945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror_debug(i32 noundef %3946, ptr noundef @.str.3)
  %3948 = call ptr @__errno_location() #10
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call ptr @strerror(i32 noundef %3949) #9
  %3951 = call ptr @__errno_location() #10
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3940, ptr noundef @.str.4, i32 noundef %3941, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 397, ptr noundef %3944, ptr noundef %3947, ptr noundef %3950, i32 noundef %3952) #9
  br label %3954

3954:                                             ; preds = %3937, %3920
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3955

3955:                                             ; preds = %3954
  br label %3956

3956:                                             ; preds = %3955
  call void @exit(i32 noundef 1) #11
  unreachable

3957:                                             ; No predecessors!
  br label %3958

3958:                                             ; preds = %3957
  br label %3959

3959:                                             ; preds = %3958, %3900
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

3961:                                             ; preds = %3960
  br label %3962

3962:                                             ; preds = %3961
  %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 = load ptr, ptr %69, align 8, !tbaa !9
  %3966 = call i32 @s2n_config_free(ptr noundef %3965)
  %3967 = icmp eq i32 %3966, -1
  br i1 %3967, label %3968, label %4021

3968:                                             ; preds = %3962
  br label %3969

3969:                                             ; preds = %3968
  br label %3970

3970:                                             ; preds = %3969
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3971 = call ptr @__errno_location() #10
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  store i32 %3972, ptr %83, align 4, !tbaa !5
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = call i32 @s2n_print_stacktrace(ptr noundef %3973)
  %3975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3976 = trunc i8 %3975 to i1
  br i1 %3976, label %3977, label %3999

3977:                                             ; preds = %3970
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = call i32 @fileno(ptr noundef %3978) #9
  %3980 = call i32 @isatty(i32 noundef %3979) #9
  %3981 = icmp ne i32 %3980, 0
  br i1 %3981, label %3982, label %3999

3982:                                             ; preds = %3977
  %3983 = load i32, ptr %83, align 4, !tbaa !5
  %3984 = call ptr @__errno_location() #10
  store i32 %3983, ptr %3984, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = load i32, ptr @test_count, align 4, !tbaa !5
  %3987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror(i32 noundef %3988, ptr noundef @.str.3)
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror_debug(i32 noundef %3991, ptr noundef @.str.3)
  %3993 = call ptr @__errno_location() #10
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @strerror(i32 noundef %3994) #9
  %3996 = call ptr @__errno_location() #10
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3985, ptr noundef @.str, i32 noundef %3986, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 398, ptr noundef %3989, ptr noundef %3992, ptr noundef %3995, i32 noundef %3997) #9
  br label %4016

3999:                                             ; preds = %3977, %3970
  %4000 = load i32, ptr %83, align 4, !tbaa !5
  %4001 = call ptr @__errno_location() #10
  store i32 %4000, ptr %4001, align 4, !tbaa !5
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = load i32, ptr @test_count, align 4, !tbaa !5
  %4004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call ptr @s2n_strerror(i32 noundef %4005, ptr noundef @.str.3)
  %4007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4008 = load i32, ptr %4007, align 4, !tbaa !5
  %4009 = call ptr @s2n_strerror_debug(i32 noundef %4008, ptr noundef @.str.3)
  %4010 = call ptr @__errno_location() #10
  %4011 = load i32, ptr %4010, align 4, !tbaa !5
  %4012 = call ptr @strerror(i32 noundef %4011) #9
  %4013 = call ptr @__errno_location() #10
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4002, ptr noundef @.str.4, i32 noundef %4003, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 398, ptr noundef %4006, ptr noundef %4009, ptr noundef %4012, i32 noundef %4014) #9
  br label %4016

4016:                                             ; preds = %3999, %3982
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %4017

4017:                                             ; preds = %4016
  br label %4018

4018:                                             ; preds = %4017
  call void @exit(i32 noundef 1) #11
  unreachable

4019:                                             ; No predecessors!
  br label %4020

4020:                                             ; preds = %4019
  br label %4021

4021:                                             ; preds = %4020, %3962
  br label %4022

4022:                                             ; preds = %4021
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

4024:                                             ; preds = %4023
  %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 = load ptr, ptr %70, align 8, !tbaa !9
  %4028 = call i32 @s2n_config_free(ptr noundef %4027)
  %4029 = icmp eq i32 %4028, -1
  br i1 %4029, label %4030, label %4083

4030:                                             ; preds = %4024
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

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

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

4044:                                             ; preds = %4039
  %4045 = load i32, ptr %84, align 4, !tbaa !5
  %4046 = call ptr @__errno_location() #10
  store i32 %4045, ptr %4046, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror(i32 noundef %4050, ptr noundef @.str.3)
  %4052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror_debug(i32 noundef %4053, ptr noundef @.str.3)
  %4055 = call ptr @__errno_location() #10
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @strerror(i32 noundef %4056) #9
  %4058 = call ptr @__errno_location() #10
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4047, ptr noundef @.str, i32 noundef %4048, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 399, ptr noundef %4051, ptr noundef %4054, ptr noundef %4057, i32 noundef %4059) #9
  br label %4078

4061:                                             ; preds = %4039, %4032
  %4062 = load i32, ptr %84, align 4, !tbaa !5
  %4063 = call ptr @__errno_location() #10
  store i32 %4062, ptr %4063, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef @.str.3)
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror_debug(i32 noundef %4070, ptr noundef @.str.3)
  %4072 = call ptr @__errno_location() #10
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #9
  %4075 = call ptr @__errno_location() #10
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef @.str.4, i32 noundef %4065, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 399, ptr noundef %4068, ptr noundef %4071, ptr noundef %4074, i32 noundef %4076) #9
  br label %4078

4078:                                             ; preds = %4061, %4044
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

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

4081:                                             ; No predecessors!
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

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

4084:                                             ; preds = %4083
  br label %4085

4085:                                             ; preds = %4084
  call void @llvm.lifetime.end.p0(i64 64, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #9
  br label %4086

4086:                                             ; preds = %4085, %3290
  %4087 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %4087, label %4088, label %4847

4088:                                             ; preds = %4086
  %4089 = call i32 (...) @s2n_enable_tls13_in_test()
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  store ptr null, ptr %85, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #9
  store ptr null, ptr %86, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  store ptr null, ptr %87, align 8, !tbaa !9
  br label %4090

4090:                                             ; preds = %4088
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = add nsw i32 %4091, 1
  store i32 %4092, ptr @test_count, align 4, !tbaa !5
  %4093 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %87, ptr noundef @.str.75, ptr noundef @.str.76)
  %4094 = icmp eq i32 %4093, -1
  br i1 %4094, label %4095, label %4148

4095:                                             ; preds = %4090
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %4098 = call ptr @__errno_location() #10
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  store i32 %4099, ptr %88, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @s2n_print_stacktrace(ptr noundef %4100)
  %4102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4103 = trunc i8 %4102 to i1
  br i1 %4103, label %4104, label %4126

4104:                                             ; preds = %4097
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = call i32 @fileno(ptr noundef %4105) #9
  %4107 = call i32 @isatty(i32 noundef %4106) #9
  %4108 = icmp ne i32 %4107, 0
  br i1 %4108, label %4109, label %4126

4109:                                             ; preds = %4104
  %4110 = load i32, ptr %88, align 4, !tbaa !5
  %4111 = call ptr @__errno_location() #10
  store i32 %4110, ptr %4111, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @s2n_strerror(i32 noundef %4115, ptr noundef @.str.3)
  %4117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef @.str.3)
  %4120 = call ptr @__errno_location() #10
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @strerror(i32 noundef %4121) #9
  %4123 = call ptr @__errno_location() #10
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4112, ptr noundef @.str, i32 noundef %4113, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 410, ptr noundef %4116, ptr noundef %4119, ptr noundef %4122, i32 noundef %4124) #9
  br label %4143

4126:                                             ; preds = %4104, %4097
  %4127 = load i32, ptr %88, align 4, !tbaa !5
  %4128 = call ptr @__errno_location() #10
  store i32 %4127, ptr %4128, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef @.str.3)
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef @.str.3)
  %4137 = call ptr @__errno_location() #10
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #9
  %4140 = call ptr @__errno_location() #10
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef @.str.4, i32 noundef %4130, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 410, ptr noundef %4133, ptr noundef %4136, ptr noundef %4139, i32 noundef %4141) #9
  br label %4143

4143:                                             ; preds = %4126, %4109
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  call void @exit(i32 noundef 1) #11
  unreachable

4146:                                             ; No predecessors!
  br label %4147

4147:                                             ; preds = %4146
  br label %4148

4148:                                             ; preds = %4147, %4090
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  br label %4151

4151:                                             ; preds = %4150
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = add nsw i32 %4152, 1
  store i32 %4153, ptr @test_count, align 4, !tbaa !5
  %4154 = call ptr @s2n_config_new()
  store ptr %4154, ptr %85, align 8, !tbaa !9
  %4155 = icmp eq ptr %4154, null
  br i1 %4155, label %4156, label %4209

4156:                                             ; preds = %4151
  br label %4157

4157:                                             ; preds = %4156
  br label %4158

4158:                                             ; preds = %4157
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %4159 = call ptr @__errno_location() #10
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  store i32 %4160, ptr %89, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @s2n_print_stacktrace(ptr noundef %4161)
  %4163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4164 = trunc i8 %4163 to i1
  br i1 %4164, label %4165, label %4187

4165:                                             ; preds = %4158
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = call i32 @fileno(ptr noundef %4166) #9
  %4168 = call i32 @isatty(i32 noundef %4167) #9
  %4169 = icmp ne i32 %4168, 0
  br i1 %4169, label %4170, label %4187

4170:                                             ; preds = %4165
  %4171 = load i32, ptr %89, align 4, !tbaa !5
  %4172 = call ptr @__errno_location() #10
  store i32 %4171, ptr %4172, align 4, !tbaa !5
  %4173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4174 = load i32, ptr @test_count, align 4, !tbaa !5
  %4175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call ptr @s2n_strerror(i32 noundef %4176, ptr noundef @.str.3)
  %4178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call ptr @s2n_strerror_debug(i32 noundef %4179, ptr noundef @.str.3)
  %4181 = call ptr @__errno_location() #10
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call ptr @strerror(i32 noundef %4182) #9
  %4184 = call ptr @__errno_location() #10
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4173, ptr noundef @.str, i32 noundef %4174, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 412, ptr noundef %4177, ptr noundef %4180, ptr noundef %4183, i32 noundef %4185) #9
  br label %4204

4187:                                             ; preds = %4165, %4158
  %4188 = load i32, ptr %89, align 4, !tbaa !5
  %4189 = call ptr @__errno_location() #10
  store i32 %4188, ptr %4189, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = load i32, ptr @test_count, align 4, !tbaa !5
  %4192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  %4194 = call ptr @s2n_strerror(i32 noundef %4193, ptr noundef @.str.3)
  %4195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4196 = load i32, ptr %4195, align 4, !tbaa !5
  %4197 = call ptr @s2n_strerror_debug(i32 noundef %4196, ptr noundef @.str.3)
  %4198 = call ptr @__errno_location() #10
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = call ptr @strerror(i32 noundef %4199) #9
  %4201 = call ptr @__errno_location() #10
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  %4203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4190, ptr noundef @.str.4, i32 noundef %4191, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 412, ptr noundef %4194, ptr noundef %4197, ptr noundef %4200, i32 noundef %4202) #9
  br label %4204

4204:                                             ; preds = %4187, %4170
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %4205

4205:                                             ; preds = %4204
  br label %4206

4206:                                             ; preds = %4205
  call void @exit(i32 noundef 1) #11
  unreachable

4207:                                             ; No predecessors!
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208, %4151
  br label %4210

4210:                                             ; preds = %4209
  br label %4211

4211:                                             ; preds = %4210
  br label %4212

4212:                                             ; preds = %4211
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = add nsw i32 %4213, 1
  store i32 %4214, ptr @test_count, align 4, !tbaa !5
  %4215 = load ptr, ptr %85, align 8, !tbaa !9
  %4216 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4215, ptr noundef @.str.78)
  %4217 = icmp eq i32 %4216, -1
  br i1 %4217, label %4218, label %4271

4218:                                             ; preds = %4212
  br label %4219

4219:                                             ; preds = %4218
  br label %4220

4220:                                             ; preds = %4219
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %4221 = call ptr @__errno_location() #10
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  store i32 %4222, ptr %90, align 4, !tbaa !5
  %4223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4224 = call i32 @s2n_print_stacktrace(ptr noundef %4223)
  %4225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4226 = trunc i8 %4225 to i1
  br i1 %4226, label %4227, label %4249

4227:                                             ; preds = %4220
  %4228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4229 = call i32 @fileno(ptr noundef %4228) #9
  %4230 = call i32 @isatty(i32 noundef %4229) #9
  %4231 = icmp ne i32 %4230, 0
  br i1 %4231, label %4232, label %4249

4232:                                             ; preds = %4227
  %4233 = load i32, ptr %90, align 4, !tbaa !5
  %4234 = call ptr @__errno_location() #10
  store i32 %4233, ptr %4234, align 4, !tbaa !5
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = load i32, ptr @test_count, align 4, !tbaa !5
  %4237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror(i32 noundef %4238, ptr noundef @.str.3)
  %4240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror_debug(i32 noundef %4241, ptr noundef @.str.3)
  %4243 = call ptr @__errno_location() #10
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @strerror(i32 noundef %4244) #9
  %4246 = call ptr @__errno_location() #10
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4235, ptr noundef @.str, i32 noundef %4236, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 413, ptr noundef %4239, ptr noundef %4242, ptr noundef %4245, i32 noundef %4247) #9
  br label %4266

4249:                                             ; preds = %4227, %4220
  %4250 = load i32, ptr %90, align 4, !tbaa !5
  %4251 = call ptr @__errno_location() #10
  store i32 %4250, ptr %4251, align 4, !tbaa !5
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = load i32, ptr @test_count, align 4, !tbaa !5
  %4254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call ptr @s2n_strerror(i32 noundef %4255, ptr noundef @.str.3)
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror_debug(i32 noundef %4258, ptr noundef @.str.3)
  %4260 = call ptr @__errno_location() #10
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @strerror(i32 noundef %4261) #9
  %4263 = call ptr @__errno_location() #10
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4252, ptr noundef @.str.4, i32 noundef %4253, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 413, ptr noundef %4256, ptr noundef %4259, ptr noundef %4262, i32 noundef %4264) #9
  br label %4266

4266:                                             ; preds = %4249, %4232
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4267

4267:                                             ; preds = %4266
  br label %4268

4268:                                             ; preds = %4267
  call void @exit(i32 noundef 1) #11
  unreachable

4269:                                             ; No predecessors!
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

4271:                                             ; preds = %4270, %4212
  br label %4272

4272:                                             ; preds = %4271
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273
  %4275 = load i32, ptr @test_count, align 4, !tbaa !5
  %4276 = add nsw i32 %4275, 1
  store i32 %4276, ptr @test_count, align 4, !tbaa !5
  %4277 = load ptr, ptr %85, align 8, !tbaa !9
  %4278 = load ptr, ptr %87, align 8, !tbaa !9
  %4279 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4277, ptr noundef %4278)
  %4280 = icmp eq i32 %4279, -1
  br i1 %4280, label %4281, label %4334

4281:                                             ; preds = %4274
  br label %4282

4282:                                             ; preds = %4281
  br label %4283

4283:                                             ; preds = %4282
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4284 = call ptr @__errno_location() #10
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  store i32 %4285, ptr %91, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = call i32 @s2n_print_stacktrace(ptr noundef %4286)
  %4288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4289 = trunc i8 %4288 to i1
  br i1 %4289, label %4290, label %4312

4290:                                             ; preds = %4283
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @fileno(ptr noundef %4291) #9
  %4293 = call i32 @isatty(i32 noundef %4292) #9
  %4294 = icmp ne i32 %4293, 0
  br i1 %4294, label %4295, label %4312

4295:                                             ; preds = %4290
  %4296 = load i32, ptr %91, align 4, !tbaa !5
  %4297 = call ptr @__errno_location() #10
  store i32 %4296, ptr %4297, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = load i32, ptr @test_count, align 4, !tbaa !5
  %4300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call ptr @s2n_strerror(i32 noundef %4301, ptr noundef @.str.3)
  %4303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call ptr @s2n_strerror_debug(i32 noundef %4304, ptr noundef @.str.3)
  %4306 = call ptr @__errno_location() #10
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call ptr @strerror(i32 noundef %4307) #9
  %4309 = call ptr @__errno_location() #10
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4298, ptr noundef @.str, i32 noundef %4299, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 414, ptr noundef %4302, ptr noundef %4305, ptr noundef %4308, i32 noundef %4310) #9
  br label %4329

4312:                                             ; preds = %4290, %4283
  %4313 = load i32, ptr %91, align 4, !tbaa !5
  %4314 = call ptr @__errno_location() #10
  store i32 %4313, ptr %4314, align 4, !tbaa !5
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4318, ptr noundef @.str.3)
  %4320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call ptr @s2n_strerror_debug(i32 noundef %4321, ptr noundef @.str.3)
  %4323 = call ptr @__errno_location() #10
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call ptr @strerror(i32 noundef %4324) #9
  %4326 = call ptr @__errno_location() #10
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4315, ptr noundef @.str.4, i32 noundef %4316, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 414, ptr noundef %4319, ptr noundef %4322, ptr noundef %4325, i32 noundef %4327) #9
  br label %4329

4329:                                             ; preds = %4312, %4295
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330
  call void @exit(i32 noundef 1) #11
  unreachable

4332:                                             ; No predecessors!
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

4334:                                             ; preds = %4333, %4274
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

4337:                                             ; preds = %4336
  %4338 = load i32, ptr @test_count, align 4, !tbaa !5
  %4339 = add nsw i32 %4338, 1
  store i32 %4339, ptr @test_count, align 4, !tbaa !5
  %4340 = load ptr, ptr %85, align 8, !tbaa !9
  %4341 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %4340, i32 noundef 1)
  %4342 = icmp eq i32 %4341, -1
  br i1 %4342, label %4343, label %4396

4343:                                             ; preds = %4337
  br label %4344

4344:                                             ; preds = %4343
  br label %4345

4345:                                             ; preds = %4344
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4346 = call ptr @__errno_location() #10
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  store i32 %4347, ptr %92, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = call i32 @s2n_print_stacktrace(ptr noundef %4348)
  %4350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4351 = trunc i8 %4350 to i1
  br i1 %4351, label %4352, label %4374

4352:                                             ; preds = %4345
  %4353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4354 = call i32 @fileno(ptr noundef %4353) #9
  %4355 = call i32 @isatty(i32 noundef %4354) #9
  %4356 = icmp ne i32 %4355, 0
  br i1 %4356, label %4357, label %4374

4357:                                             ; preds = %4352
  %4358 = load i32, ptr %92, align 4, !tbaa !5
  %4359 = call ptr @__errno_location() #10
  store i32 %4358, ptr %4359, align 4, !tbaa !5
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = load i32, ptr @test_count, align 4, !tbaa !5
  %4362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror(i32 noundef %4363, ptr noundef @.str.3)
  %4365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror_debug(i32 noundef %4366, ptr noundef @.str.3)
  %4368 = call ptr @__errno_location() #10
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @strerror(i32 noundef %4369) #9
  %4371 = call ptr @__errno_location() #10
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4360, ptr noundef @.str, i32 noundef %4361, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 416, ptr noundef %4364, ptr noundef %4367, ptr noundef %4370, i32 noundef %4372) #9
  br label %4391

4374:                                             ; preds = %4352, %4345
  %4375 = load i32, ptr %92, align 4, !tbaa !5
  %4376 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %4385 = call ptr @__errno_location() #10
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @strerror(i32 noundef %4386) #9
  %4388 = call ptr @__errno_location() #10
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4377, ptr noundef @.str.4, i32 noundef %4378, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 416, ptr noundef %4381, ptr noundef %4384, ptr noundef %4387, i32 noundef %4389) #9
  br label %4391

4391:                                             ; preds = %4374, %4357
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4392

4392:                                             ; preds = %4391
  br label %4393

4393:                                             ; preds = %4392
  call void @exit(i32 noundef 1) #11
  unreachable

4394:                                             ; No predecessors!
  br label %4395

4395:                                             ; preds = %4394
  br label %4396

4396:                                             ; preds = %4395, %4337
  br label %4397

4397:                                             ; preds = %4396
  br label %4398

4398:                                             ; preds = %4397
  %4399 = load i32, ptr @test_type, align 4, !tbaa !5
  %4400 = icmp eq i32 %4399, 1
  br i1 %4400, label %4401, label %4464

4401:                                             ; preds = %4398
  br label %4402

4402:                                             ; preds = %4401
  %4403 = load i32, ptr @test_count, align 4, !tbaa !5
  %4404 = add nsw i32 %4403, 1
  store i32 %4404, ptr @test_count, align 4, !tbaa !5
  %4405 = load ptr, ptr %85, align 8, !tbaa !9
  %4406 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %4405, ptr noundef @async_pkey_fn)
  %4407 = icmp eq i32 %4406, -1
  br i1 %4407, label %4408, label %4461

4408:                                             ; preds = %4402
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %4411 = call ptr @__errno_location() #10
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  store i32 %4412, ptr %93, align 4, !tbaa !5
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = call i32 @s2n_print_stacktrace(ptr noundef %4413)
  %4415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4416 = trunc i8 %4415 to i1
  br i1 %4416, label %4417, label %4439

4417:                                             ; preds = %4410
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = call i32 @fileno(ptr noundef %4418) #9
  %4420 = call i32 @isatty(i32 noundef %4419) #9
  %4421 = icmp ne i32 %4420, 0
  br i1 %4421, label %4422, label %4439

4422:                                             ; preds = %4417
  %4423 = load i32, ptr %93, align 4, !tbaa !5
  %4424 = call ptr @__errno_location() #10
  store i32 %4423, ptr %4424, align 4, !tbaa !5
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = load i32, ptr @test_count, align 4, !tbaa !5
  %4427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror(i32 noundef %4428, ptr noundef @.str.3)
  %4430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @s2n_strerror_debug(i32 noundef %4431, ptr noundef @.str.3)
  %4433 = call ptr @__errno_location() #10
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  %4435 = call ptr @strerror(i32 noundef %4434) #9
  %4436 = call ptr @__errno_location() #10
  %4437 = load i32, ptr %4436, align 4, !tbaa !5
  %4438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4425, ptr noundef @.str, i32 noundef %4426, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 418, ptr noundef %4429, ptr noundef %4432, ptr noundef %4435, i32 noundef %4437) #9
  br label %4456

4439:                                             ; preds = %4417, %4410
  %4440 = load i32, ptr %93, align 4, !tbaa !5
  %4441 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %4450 = call ptr @__errno_location() #10
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call ptr @strerror(i32 noundef %4451) #9
  %4453 = call ptr @__errno_location() #10
  %4454 = load i32, ptr %4453, align 4, !tbaa !5
  %4455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4442, ptr noundef @.str.4, i32 noundef %4443, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 418, ptr noundef %4446, ptr noundef %4449, ptr noundef %4452, i32 noundef %4454) #9
  br label %4456

4456:                                             ; preds = %4439, %4422
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457
  call void @exit(i32 noundef 1) #11
  unreachable

4459:                                             ; No predecessors!
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460, %4402
  br label %4462

4462:                                             ; preds = %4461
  br label %4463

4463:                                             ; preds = %4462
  br label %4464

4464:                                             ; preds = %4463, %4398
  br label %4465

4465:                                             ; preds = %4464
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = add nsw i32 %4466, 1
  store i32 %4467, ptr @test_count, align 4, !tbaa !5
  %4468 = call ptr @s2n_config_new()
  store ptr %4468, ptr %86, align 8, !tbaa !9
  %4469 = icmp eq ptr %4468, null
  br i1 %4469, label %4470, label %4523

4470:                                             ; preds = %4465
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %4473 = call ptr @__errno_location() #10
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  store i32 %4474, ptr %94, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = call i32 @s2n_print_stacktrace(ptr noundef %4475)
  %4477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4478 = trunc i8 %4477 to i1
  br i1 %4478, label %4479, label %4501

4479:                                             ; preds = %4472
  %4480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4481 = call i32 @fileno(ptr noundef %4480) #9
  %4482 = call i32 @isatty(i32 noundef %4481) #9
  %4483 = icmp ne i32 %4482, 0
  br i1 %4483, label %4484, label %4501

4484:                                             ; preds = %4479
  %4485 = load i32, ptr %94, align 4, !tbaa !5
  %4486 = call ptr @__errno_location() #10
  store i32 %4485, ptr %4486, align 4, !tbaa !5
  %4487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4488 = load i32, ptr @test_count, align 4, !tbaa !5
  %4489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror(i32 noundef %4490, ptr noundef @.str.3)
  %4492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call ptr @s2n_strerror_debug(i32 noundef %4493, ptr noundef @.str.3)
  %4495 = call ptr @__errno_location() #10
  %4496 = load i32, ptr %4495, align 4, !tbaa !5
  %4497 = call ptr @strerror(i32 noundef %4496) #9
  %4498 = call ptr @__errno_location() #10
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  %4500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4487, ptr noundef @.str, i32 noundef %4488, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 421, ptr noundef %4491, ptr noundef %4494, ptr noundef %4497, i32 noundef %4499) #9
  br label %4518

4501:                                             ; preds = %4479, %4472
  %4502 = load i32, ptr %94, align 4, !tbaa !5
  %4503 = call ptr @__errno_location() #10
  store i32 %4502, ptr %4503, align 4, !tbaa !5
  %4504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4505 = load i32, ptr @test_count, align 4, !tbaa !5
  %4506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @s2n_strerror(i32 noundef %4507, ptr noundef @.str.3)
  %4509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call ptr @s2n_strerror_debug(i32 noundef %4510, ptr noundef @.str.3)
  %4512 = call ptr @__errno_location() #10
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call ptr @strerror(i32 noundef %4513) #9
  %4515 = call ptr @__errno_location() #10
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  %4517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4504, ptr noundef @.str.4, i32 noundef %4505, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 421, ptr noundef %4508, ptr noundef %4511, ptr noundef %4514, i32 noundef %4516) #9
  br label %4518

4518:                                             ; preds = %4501, %4484
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  call void @exit(i32 noundef 1) #11
  unreachable

4521:                                             ; No predecessors!
  br label %4522

4522:                                             ; preds = %4521
  br label %4523

4523:                                             ; preds = %4522, %4465
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524
  br label %4526

4526:                                             ; preds = %4525
  %4527 = load i32, ptr @test_count, align 4, !tbaa !5
  %4528 = add nsw i32 %4527, 1
  store i32 %4528, ptr @test_count, align 4, !tbaa !5
  %4529 = load ptr, ptr %86, align 8, !tbaa !9
  %4530 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4529, ptr noundef @.str.78)
  %4531 = icmp eq i32 %4530, -1
  br i1 %4531, label %4532, label %4585

4532:                                             ; preds = %4526
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %4535 = call ptr @__errno_location() #10
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  store i32 %4536, ptr %95, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @s2n_print_stacktrace(ptr noundef %4537)
  %4539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4540 = trunc i8 %4539 to i1
  br i1 %4540, label %4541, label %4563

4541:                                             ; preds = %4534
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = call i32 @fileno(ptr noundef %4542) #9
  %4544 = call i32 @isatty(i32 noundef %4543) #9
  %4545 = icmp ne i32 %4544, 0
  br i1 %4545, label %4546, label %4563

4546:                                             ; preds = %4541
  %4547 = load i32, ptr %95, align 4, !tbaa !5
  %4548 = call ptr @__errno_location() #10
  store i32 %4547, ptr %4548, align 4, !tbaa !5
  %4549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4550 = load i32, ptr @test_count, align 4, !tbaa !5
  %4551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror(i32 noundef %4552, ptr noundef @.str.3)
  %4554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call ptr @s2n_strerror_debug(i32 noundef %4555, ptr noundef @.str.3)
  %4557 = call ptr @__errno_location() #10
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call ptr @strerror(i32 noundef %4558) #9
  %4560 = call ptr @__errno_location() #10
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4549, ptr noundef @.str, i32 noundef %4550, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 422, ptr noundef %4553, ptr noundef %4556, ptr noundef %4559, i32 noundef %4561) #9
  br label %4580

4563:                                             ; preds = %4541, %4534
  %4564 = load i32, ptr %95, align 4, !tbaa !5
  %4565 = call ptr @__errno_location() #10
  store i32 %4564, ptr %4565, align 4, !tbaa !5
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = load i32, ptr @test_count, align 4, !tbaa !5
  %4568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call ptr @s2n_strerror(i32 noundef %4569, ptr noundef @.str.3)
  %4571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror_debug(i32 noundef %4572, ptr noundef @.str.3)
  %4574 = call ptr @__errno_location() #10
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @strerror(i32 noundef %4575) #9
  %4577 = call ptr @__errno_location() #10
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4566, ptr noundef @.str.4, i32 noundef %4567, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 422, ptr noundef %4570, ptr noundef %4573, ptr noundef %4576, i32 noundef %4578) #9
  br label %4580

4580:                                             ; preds = %4563, %4546
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  call void @exit(i32 noundef 1) #11
  unreachable

4583:                                             ; No predecessors!
  br label %4584

4584:                                             ; preds = %4583
  br label %4585

4585:                                             ; preds = %4584, %4526
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  %4588 = load ptr, ptr %86, align 8, !tbaa !9
  %4589 = load i32, ptr %4588, align 8
  %4590 = and i32 %4589, -33
  %4591 = or i32 %4590, 0
  store i32 %4591, ptr %4588, align 8
  %4592 = load ptr, ptr %86, align 8, !tbaa !9
  %4593 = load i32, ptr %4592, align 8
  %4594 = and i32 %4593, -129
  %4595 = or i32 %4594, 128
  store i32 %4595, ptr %4592, align 8
  br label %4596

4596:                                             ; preds = %4587
  %4597 = load i32, ptr @test_count, align 4, !tbaa !5
  %4598 = add nsw i32 %4597, 1
  store i32 %4598, ptr @test_count, align 4, !tbaa !5
  %4599 = load ptr, ptr %85, align 8, !tbaa !9
  %4600 = load ptr, ptr %86, align 8, !tbaa !9
  %4601 = load ptr, ptr %87, align 8, !tbaa !9
  %4602 = call i32 @test_cipher_preferences(ptr noundef %4599, ptr noundef %4600, ptr noundef %4601, i32 noundef 225)
  %4603 = icmp eq i32 %4602, -1
  br i1 %4603, label %4604, label %4657

4604:                                             ; preds = %4596
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

4606:                                             ; preds = %4605
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4607 = call ptr @__errno_location() #10
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  store i32 %4608, ptr %96, align 4, !tbaa !5
  %4609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4610 = call i32 @s2n_print_stacktrace(ptr noundef %4609)
  %4611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4612 = trunc i8 %4611 to i1
  br i1 %4612, label %4613, label %4635

4613:                                             ; preds = %4606
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = call i32 @fileno(ptr noundef %4614) #9
  %4616 = call i32 @isatty(i32 noundef %4615) #9
  %4617 = icmp ne i32 %4616, 0
  br i1 %4617, label %4618, label %4635

4618:                                             ; preds = %4613
  %4619 = load i32, ptr %96, align 4, !tbaa !5
  %4620 = call ptr @__errno_location() #10
  store i32 %4619, ptr %4620, align 4, !tbaa !5
  %4621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4622 = load i32, ptr @test_count, align 4, !tbaa !5
  %4623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror(i32 noundef %4624, ptr noundef @.str.3)
  %4626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror_debug(i32 noundef %4627, ptr noundef @.str.3)
  %4629 = call ptr @__errno_location() #10
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call ptr @strerror(i32 noundef %4630) #9
  %4632 = call ptr @__errno_location() #10
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4621, ptr noundef @.str, i32 noundef %4622, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 427, ptr noundef %4625, ptr noundef %4628, ptr noundef %4631, i32 noundef %4633) #9
  br label %4652

4635:                                             ; preds = %4613, %4606
  %4636 = load i32, ptr %96, align 4, !tbaa !5
  %4637 = call ptr @__errno_location() #10
  store i32 %4636, ptr %4637, align 4, !tbaa !5
  %4638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4639 = load i32, ptr @test_count, align 4, !tbaa !5
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror(i32 noundef %4641, ptr noundef @.str.3)
  %4643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @s2n_strerror_debug(i32 noundef %4644, ptr noundef @.str.3)
  %4646 = call ptr @__errno_location() #10
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call ptr @strerror(i32 noundef %4647) #9
  %4649 = call ptr @__errno_location() #10
  %4650 = load i32, ptr %4649, align 4, !tbaa !5
  %4651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4638, ptr noundef @.str.4, i32 noundef %4639, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 427, ptr noundef %4642, ptr noundef %4645, ptr noundef %4648, i32 noundef %4650) #9
  br label %4652

4652:                                             ; preds = %4635, %4618
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4653

4653:                                             ; preds = %4652
  br label %4654

4654:                                             ; preds = %4653
  call void @exit(i32 noundef 1) #11
  unreachable

4655:                                             ; No predecessors!
  br label %4656

4656:                                             ; preds = %4655
  br label %4657

4657:                                             ; preds = %4656, %4596
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

4660:                                             ; preds = %4659
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = add nsw i32 %4661, 1
  store i32 %4662, ptr @test_count, align 4, !tbaa !5
  %4663 = load ptr, ptr %87, align 8, !tbaa !9
  %4664 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %4663)
  %4665 = icmp eq i32 %4664, -1
  br i1 %4665, label %4666, label %4719

4666:                                             ; preds = %4660
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %4669 = call ptr @__errno_location() #10
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  store i32 %4670, ptr %97, align 4, !tbaa !5
  %4671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4672 = call i32 @s2n_print_stacktrace(ptr noundef %4671)
  %4673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4674 = trunc i8 %4673 to i1
  br i1 %4674, label %4675, label %4697

4675:                                             ; preds = %4668
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = call i32 @fileno(ptr noundef %4676) #9
  %4678 = call i32 @isatty(i32 noundef %4677) #9
  %4679 = icmp ne i32 %4678, 0
  br i1 %4679, label %4680, label %4697

4680:                                             ; preds = %4675
  %4681 = load i32, ptr %97, align 4, !tbaa !5
  %4682 = call ptr @__errno_location() #10
  store i32 %4681, ptr %4682, align 4, !tbaa !5
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = load i32, ptr @test_count, align 4, !tbaa !5
  %4685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @s2n_strerror(i32 noundef %4686, ptr noundef @.str.3)
  %4688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror_debug(i32 noundef %4689, ptr noundef @.str.3)
  %4691 = call ptr @__errno_location() #10
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = call ptr @strerror(i32 noundef %4692) #9
  %4694 = call ptr @__errno_location() #10
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4683, ptr noundef @.str, i32 noundef %4684, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 429, ptr noundef %4687, ptr noundef %4690, ptr noundef %4693, i32 noundef %4695) #9
  br label %4714

4697:                                             ; preds = %4675, %4668
  %4698 = load i32, ptr %97, align 4, !tbaa !5
  %4699 = call ptr @__errno_location() #10
  store i32 %4698, ptr %4699, align 4, !tbaa !5
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = load i32, ptr @test_count, align 4, !tbaa !5
  %4702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror(i32 noundef %4703, ptr noundef @.str.3)
  %4705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror_debug(i32 noundef %4706, ptr noundef @.str.3)
  %4708 = call ptr @__errno_location() #10
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call ptr @strerror(i32 noundef %4709) #9
  %4711 = call ptr @__errno_location() #10
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4700, ptr noundef @.str.4, i32 noundef %4701, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 429, ptr noundef %4704, ptr noundef %4707, ptr noundef %4710, i32 noundef %4712) #9
  br label %4714

4714:                                             ; preds = %4697, %4680
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

4716:                                             ; preds = %4715
  call void @exit(i32 noundef 1) #11
  unreachable

4717:                                             ; No predecessors!
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718, %4660
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  br label %4722

4722:                                             ; preds = %4721
  %4723 = load i32, ptr @test_count, align 4, !tbaa !5
  %4724 = add nsw i32 %4723, 1
  store i32 %4724, ptr @test_count, align 4, !tbaa !5
  %4725 = load ptr, ptr %85, align 8, !tbaa !9
  %4726 = call i32 @s2n_config_free(ptr noundef %4725)
  %4727 = icmp eq i32 %4726, -1
  br i1 %4727, label %4728, label %4781

4728:                                             ; preds = %4722
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

4730:                                             ; preds = %4729
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4731 = call ptr @__errno_location() #10
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  store i32 %4732, ptr %98, align 4, !tbaa !5
  %4733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4734 = call i32 @s2n_print_stacktrace(ptr noundef %4733)
  %4735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4736 = trunc i8 %4735 to i1
  br i1 %4736, label %4737, label %4759

4737:                                             ; preds = %4730
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = call i32 @fileno(ptr noundef %4738) #9
  %4740 = call i32 @isatty(i32 noundef %4739) #9
  %4741 = icmp ne i32 %4740, 0
  br i1 %4741, label %4742, label %4759

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

4759:                                             ; preds = %4737, %4730
  %4760 = load i32, ptr %98, align 4, !tbaa !5
  %4761 = call ptr @__errno_location() #10
  store i32 %4760, ptr %4761, align 4, !tbaa !5
  %4762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4763 = load i32, ptr @test_count, align 4, !tbaa !5
  %4764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4765 = load i32, ptr %4764, align 4, !tbaa !5
  %4766 = call ptr @s2n_strerror(i32 noundef %4765, ptr noundef @.str.3)
  %4767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4768 = load i32, ptr %4767, align 4, !tbaa !5
  %4769 = call ptr @s2n_strerror_debug(i32 noundef %4768, ptr noundef @.str.3)
  %4770 = call ptr @__errno_location() #10
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  %4772 = call ptr @strerror(i32 noundef %4771) #9
  %4773 = call ptr @__errno_location() #10
  %4774 = load i32, ptr %4773, align 4, !tbaa !5
  %4775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4762, ptr noundef @.str.4, i32 noundef %4763, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 430, ptr noundef %4766, ptr noundef %4769, ptr noundef %4772, i32 noundef %4774) #9
  br label %4776

4776:                                             ; preds = %4759, %4742
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4777

4777:                                             ; preds = %4776
  br label %4778

4778:                                             ; preds = %4777
  call void @exit(i32 noundef 1) #11
  unreachable

4779:                                             ; No predecessors!
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

4781:                                             ; preds = %4780, %4722
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782
  br label %4784

4784:                                             ; preds = %4783
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = add nsw i32 %4785, 1
  store i32 %4786, ptr @test_count, align 4, !tbaa !5
  %4787 = load ptr, ptr %86, align 8, !tbaa !9
  %4788 = call i32 @s2n_config_free(ptr noundef %4787)
  %4789 = icmp eq i32 %4788, -1
  br i1 %4789, label %4790, label %4843

4790:                                             ; preds = %4784
  br label %4791

4791:                                             ; preds = %4790
  br label %4792

4792:                                             ; preds = %4791
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4793 = call ptr @__errno_location() #10
  %4794 = load i32, ptr %4793, align 4, !tbaa !5
  store i32 %4794, ptr %99, align 4, !tbaa !5
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = call i32 @s2n_print_stacktrace(ptr noundef %4795)
  %4797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4798 = trunc i8 %4797 to i1
  br i1 %4798, label %4799, label %4821

4799:                                             ; preds = %4792
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = call i32 @fileno(ptr noundef %4800) #9
  %4802 = call i32 @isatty(i32 noundef %4801) #9
  %4803 = icmp ne i32 %4802, 0
  br i1 %4803, label %4804, label %4821

4804:                                             ; preds = %4799
  %4805 = load i32, ptr %99, align 4, !tbaa !5
  %4806 = call ptr @__errno_location() #10
  store i32 %4805, ptr %4806, align 4, !tbaa !5
  %4807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4808 = load i32, ptr @test_count, align 4, !tbaa !5
  %4809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call ptr @s2n_strerror(i32 noundef %4810, ptr noundef @.str.3)
  %4812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror_debug(i32 noundef %4813, ptr noundef @.str.3)
  %4815 = call ptr @__errno_location() #10
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call ptr @strerror(i32 noundef %4816) #9
  %4818 = call ptr @__errno_location() #10
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4807, ptr noundef @.str, i32 noundef %4808, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 431, ptr noundef %4811, ptr noundef %4814, ptr noundef %4817, i32 noundef %4819) #9
  br label %4838

4821:                                             ; preds = %4799, %4792
  %4822 = load i32, ptr %99, align 4, !tbaa !5
  %4823 = call ptr @__errno_location() #10
  store i32 %4822, ptr %4823, align 4, !tbaa !5
  %4824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4825 = load i32, ptr @test_count, align 4, !tbaa !5
  %4826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4827 = load i32, ptr %4826, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror(i32 noundef %4827, ptr noundef @.str.3)
  %4829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror_debug(i32 noundef %4830, ptr noundef @.str.3)
  %4832 = call ptr @__errno_location() #10
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call ptr @strerror(i32 noundef %4833) #9
  %4835 = call ptr @__errno_location() #10
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4824, ptr noundef @.str.4, i32 noundef %4825, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 431, ptr noundef %4828, ptr noundef %4831, ptr noundef %4834, i32 noundef %4836) #9
  br label %4838

4838:                                             ; preds = %4821, %4804
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4839

4839:                                             ; preds = %4838
  br label %4840

4840:                                             ; preds = %4839
  call void @exit(i32 noundef 1) #11
  unreachable

4841:                                             ; No predecessors!
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

4843:                                             ; preds = %4842, %4784
  br label %4844

4844:                                             ; preds = %4843
  br label %4845

4845:                                             ; preds = %4844
  %4846 = call i32 (...) @s2n_disable_tls13_in_test()
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  br label %4847

4847:                                             ; preds = %4845, %4086
  br label %4848

4848:                                             ; preds = %4847
  %4849 = load i32, ptr @test_type, align 4, !tbaa !5
  %4850 = add i32 %4849, 1
  store i32 %4850, ptr @test_type, align 4, !tbaa !5
  br label %420, !llvm.loop !34

4851:                                             ; preds = %420
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4852 = call i32 @fork() #9
  store i32 %4852, ptr %100, align 4, !tbaa !5
  %4853 = load i32, ptr %100, align 4, !tbaa !5
  %4854 = icmp eq i32 %4853, 0
  br i1 %4854, label %4855, label %5432

4855:                                             ; preds = %4851
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %4856 = call i64 @sysconf(i32 noundef 4) #9
  store i64 %4856, ptr %101, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  store i64 0, ptr %102, align 8, !tbaa !36
  br label %4857

4857:                                             ; preds = %4927, %4855
  %4858 = load i64, ptr %102, align 8, !tbaa !36
  %4859 = load i64, ptr %101, align 8, !tbaa !36
  %4860 = icmp slt i64 %4858, %4859
  br i1 %4860, label %4862, label %4861

4861:                                             ; preds = %4857
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %4930

4862:                                             ; preds = %4857
  br label %4863

4863:                                             ; preds = %4862
  %4864 = load i32, ptr @test_count, align 4, !tbaa !5
  %4865 = add nsw i32 %4864, 1
  store i32 %4865, ptr @test_count, align 4, !tbaa !5
  %4866 = load i64, ptr %102, align 8, !tbaa !36
  %4867 = icmp sle i64 %4866, 2147483647
  br i1 %4867, label %4921, label %4868

4868:                                             ; preds = %4863
  br label %4869

4869:                                             ; preds = %4868
  br label %4870

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

4877:                                             ; preds = %4870
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = call i32 @fileno(ptr noundef %4878) #9
  %4880 = call i32 @isatty(i32 noundef %4879) #9
  %4881 = icmp ne i32 %4880, 0
  br i1 %4881, label %4882, label %4899

4882:                                             ; preds = %4877
  %4883 = load i32, ptr %103, align 4, !tbaa !5
  %4884 = call ptr @__errno_location() #10
  store i32 %4883, ptr %4884, align 4, !tbaa !5
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = load i32, ptr @test_count, align 4, !tbaa !5
  %4887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call ptr @s2n_strerror(i32 noundef %4888, ptr noundef @.str.3)
  %4890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call ptr @s2n_strerror_debug(i32 noundef %4891, ptr noundef @.str.3)
  %4893 = call ptr @__errno_location() #10
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @strerror(i32 noundef %4894) #9
  %4896 = call ptr @__errno_location() #10
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4885, ptr noundef @.str, i32 noundef %4886, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 446, ptr noundef %4889, ptr noundef %4892, ptr noundef %4895, i32 noundef %4897) #9
  br label %4916

4899:                                             ; preds = %4877, %4870
  %4900 = load i32, ptr %103, align 4, !tbaa !5
  %4901 = call ptr @__errno_location() #10
  store i32 %4900, ptr %4901, align 4, !tbaa !5
  %4902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4903 = load i32, ptr @test_count, align 4, !tbaa !5
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror(i32 noundef %4905, ptr noundef @.str.3)
  %4907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call ptr @s2n_strerror_debug(i32 noundef %4908, ptr noundef @.str.3)
  %4910 = call ptr @__errno_location() #10
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @strerror(i32 noundef %4911) #9
  %4913 = call ptr @__errno_location() #10
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4902, ptr noundef @.str.4, i32 noundef %4903, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 446, ptr noundef %4906, ptr noundef %4909, ptr noundef %4912, i32 noundef %4914) #9
  br label %4916

4916:                                             ; preds = %4899, %4882
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4917

4917:                                             ; preds = %4916
  br label %4918

4918:                                             ; preds = %4917
  call void @exit(i32 noundef 1) #11
  unreachable

4919:                                             ; No predecessors!
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

4921:                                             ; preds = %4920, %4863
  br label %4922

4922:                                             ; preds = %4921
  br label %4923

4923:                                             ; preds = %4922
  %4924 = load i64, ptr %102, align 8, !tbaa !36
  %4925 = trunc i64 %4924 to i32
  %4926 = call i32 @close(i32 noundef %4925)
  br label %4927

4927:                                             ; preds = %4923
  %4928 = load i64, ptr %102, align 8, !tbaa !36
  %4929 = add nsw i64 %4928, 1
  store i64 %4929, ptr %102, align 8, !tbaa !36
  br label %4857, !llvm.loop !37

4930:                                             ; preds = %4861
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  store ptr null, ptr %104, align 8, !tbaa !9
  br label %4931

4931:                                             ; preds = %4930
  %4932 = load i32, ptr @test_count, align 4, !tbaa !5
  %4933 = add nsw i32 %4932, 1
  store i32 %4933, ptr @test_count, align 4, !tbaa !5
  %4934 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %104, ptr noundef @.str.43, ptr noundef @.str.44)
  %4935 = icmp eq i32 %4934, -1
  br i1 %4935, label %4936, label %4989

4936:                                             ; preds = %4931
  br label %4937

4937:                                             ; preds = %4936
  br label %4938

4938:                                             ; preds = %4937
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %4939 = call ptr @__errno_location() #10
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  store i32 %4940, ptr %105, align 4, !tbaa !5
  %4941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4942 = call i32 @s2n_print_stacktrace(ptr noundef %4941)
  %4943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4944 = trunc i8 %4943 to i1
  br i1 %4944, label %4945, label %4967

4945:                                             ; preds = %4938
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = call i32 @fileno(ptr noundef %4946) #9
  %4948 = call i32 @isatty(i32 noundef %4947) #9
  %4949 = icmp ne i32 %4948, 0
  br i1 %4949, label %4950, label %4967

4950:                                             ; preds = %4945
  %4951 = load i32, ptr %105, align 4, !tbaa !5
  %4952 = call ptr @__errno_location() #10
  store i32 %4951, ptr %4952, align 4, !tbaa !5
  %4953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4954 = load i32, ptr @test_count, align 4, !tbaa !5
  %4955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  %4957 = call ptr @s2n_strerror(i32 noundef %4956, ptr noundef @.str.3)
  %4958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call ptr @s2n_strerror_debug(i32 noundef %4959, ptr noundef @.str.3)
  %4961 = call ptr @__errno_location() #10
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @strerror(i32 noundef %4962) #9
  %4964 = call ptr @__errno_location() #10
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4953, ptr noundef @.str, i32 noundef %4954, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 456, ptr noundef %4957, ptr noundef %4960, ptr noundef %4963, i32 noundef %4965) #9
  br label %4984

4967:                                             ; preds = %4945, %4938
  %4968 = load i32, ptr %105, align 4, !tbaa !5
  %4969 = call ptr @__errno_location() #10
  store i32 %4968, ptr %4969, align 4, !tbaa !5
  %4970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4971 = load i32, ptr @test_count, align 4, !tbaa !5
  %4972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4973 = load i32, ptr %4972, align 4, !tbaa !5
  %4974 = call ptr @s2n_strerror(i32 noundef %4973, ptr noundef @.str.3)
  %4975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4976 = load i32, ptr %4975, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror_debug(i32 noundef %4976, ptr noundef @.str.3)
  %4978 = call ptr @__errno_location() #10
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  %4980 = call ptr @strerror(i32 noundef %4979) #9
  %4981 = call ptr @__errno_location() #10
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  %4983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4970, ptr noundef @.str.4, i32 noundef %4971, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 456, ptr noundef %4974, ptr noundef %4977, ptr noundef %4980, i32 noundef %4982) #9
  br label %4984

4984:                                             ; preds = %4967, %4950
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %4985

4985:                                             ; preds = %4984
  br label %4986

4986:                                             ; preds = %4985
  call void @exit(i32 noundef 1) #11
  unreachable

4987:                                             ; No predecessors!
  br label %4988

4988:                                             ; preds = %4987
  br label %4989

4989:                                             ; preds = %4988, %4931
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

4991:                                             ; preds = %4990
  br label %4992

4992:                                             ; preds = %4991
  %4993 = load i32, ptr @test_count, align 4, !tbaa !5
  %4994 = add nsw i32 %4993, 1
  store i32 %4994, ptr @test_count, align 4, !tbaa !5
  %4995 = load ptr, ptr %104, align 8, !tbaa !9
  %4996 = icmp eq ptr %4995, null
  br i1 %4996, label %4997, label %5050

4997:                                             ; preds = %4992
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

4999:                                             ; preds = %4998
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %5000 = call ptr @__errno_location() #10
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  store i32 %5001, ptr %106, align 4, !tbaa !5
  %5002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5003 = call i32 @s2n_print_stacktrace(ptr noundef %5002)
  %5004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5005 = trunc i8 %5004 to i1
  br i1 %5005, label %5006, label %5028

5006:                                             ; preds = %4999
  %5007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5008 = call i32 @fileno(ptr noundef %5007) #9
  %5009 = call i32 @isatty(i32 noundef %5008) #9
  %5010 = icmp ne i32 %5009, 0
  br i1 %5010, label %5011, label %5028

5011:                                             ; preds = %5006
  %5012 = load i32, ptr %106, align 4, !tbaa !5
  %5013 = call ptr @__errno_location() #10
  store i32 %5012, ptr %5013, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = load i32, ptr @test_count, align 4, !tbaa !5
  %5016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror(i32 noundef %5017, ptr noundef @.str.3)
  %5019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @s2n_strerror_debug(i32 noundef %5020, ptr noundef @.str.3)
  %5022 = call ptr @__errno_location() #10
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #9
  %5025 = call ptr @__errno_location() #10
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5014, ptr noundef @.str, i32 noundef %5015, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 457, ptr noundef %5018, ptr noundef %5021, ptr noundef %5024, i32 noundef %5026) #9
  br label %5045

5028:                                             ; preds = %5006, %4999
  %5029 = load i32, ptr %106, align 4, !tbaa !5
  %5030 = call ptr @__errno_location() #10
  store i32 %5029, ptr %5030, align 4, !tbaa !5
  %5031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @s2n_strerror(i32 noundef %5034, ptr noundef @.str.3)
  %5036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call ptr @s2n_strerror_debug(i32 noundef %5037, ptr noundef @.str.3)
  %5039 = call ptr @__errno_location() #10
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call ptr @strerror(i32 noundef %5040) #9
  %5042 = call ptr @__errno_location() #10
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5031, ptr noundef @.str.4, i32 noundef %5032, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 457, ptr noundef %5035, ptr noundef %5038, ptr noundef %5041, i32 noundef %5043) #9
  br label %5045

5045:                                             ; preds = %5028, %5011
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %5046

5046:                                             ; preds = %5045
  br label %5047

5047:                                             ; preds = %5046
  call void @exit(i32 noundef 1) #11
  unreachable

5048:                                             ; No predecessors!
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

5050:                                             ; preds = %5049, %4992
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

5052:                                             ; preds = %5051
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %5053 = call ptr @s2n_config_new()
  store ptr %5053, ptr %107, align 8, !tbaa !9
  br label %5054

5054:                                             ; preds = %5052
  %5055 = load i32, ptr @test_count, align 4, !tbaa !5
  %5056 = add nsw i32 %5055, 1
  store i32 %5056, ptr @test_count, align 4, !tbaa !5
  %5057 = load ptr, ptr %107, align 8, !tbaa !9
  %5058 = icmp eq ptr %5057, null
  br i1 %5058, label %5059, label %5112

5059:                                             ; preds = %5054
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

5061:                                             ; preds = %5060
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #9
  %5062 = call ptr @__errno_location() #10
  %5063 = load i32, ptr %5062, align 4, !tbaa !5
  store i32 %5063, ptr %108, align 4, !tbaa !5
  %5064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5065 = call i32 @s2n_print_stacktrace(ptr noundef %5064)
  %5066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5067 = trunc i8 %5066 to i1
  br i1 %5067, label %5068, label %5090

5068:                                             ; preds = %5061
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = call i32 @fileno(ptr noundef %5069) #9
  %5071 = call i32 @isatty(i32 noundef %5070) #9
  %5072 = icmp ne i32 %5071, 0
  br i1 %5072, label %5073, label %5090

5073:                                             ; preds = %5068
  %5074 = load i32, ptr %108, align 4, !tbaa !5
  %5075 = call ptr @__errno_location() #10
  store i32 %5074, ptr %5075, align 4, !tbaa !5
  %5076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5077 = load i32, ptr @test_count, align 4, !tbaa !5
  %5078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @s2n_strerror(i32 noundef %5079, ptr noundef @.str.3)
  %5081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror_debug(i32 noundef %5082, ptr noundef @.str.3)
  %5084 = call ptr @__errno_location() #10
  %5085 = load i32, ptr %5084, align 4, !tbaa !5
  %5086 = call ptr @strerror(i32 noundef %5085) #9
  %5087 = call ptr @__errno_location() #10
  %5088 = load i32, ptr %5087, align 4, !tbaa !5
  %5089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5076, ptr noundef @.str, i32 noundef %5077, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 460, ptr noundef %5080, ptr noundef %5083, ptr noundef %5086, i32 noundef %5088) #9
  br label %5107

5090:                                             ; preds = %5068, %5061
  %5091 = load i32, ptr %108, align 4, !tbaa !5
  %5092 = call ptr @__errno_location() #10
  store i32 %5091, ptr %5092, align 4, !tbaa !5
  %5093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5094 = load i32, ptr @test_count, align 4, !tbaa !5
  %5095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @s2n_strerror(i32 noundef %5096, ptr noundef @.str.3)
  %5098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call ptr @s2n_strerror_debug(i32 noundef %5099, ptr noundef @.str.3)
  %5101 = call ptr @__errno_location() #10
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = call ptr @strerror(i32 noundef %5102) #9
  %5104 = call ptr @__errno_location() #10
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  %5106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5093, ptr noundef @.str.4, i32 noundef %5094, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 460, ptr noundef %5097, ptr noundef %5100, ptr noundef %5103, i32 noundef %5105) #9
  br label %5107

5107:                                             ; preds = %5090, %5073
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

5109:                                             ; preds = %5108
  call void @exit(i32 noundef 1) #11
  unreachable

5110:                                             ; No predecessors!
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111, %5054
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  %5116 = load i32, ptr @test_count, align 4, !tbaa !5
  %5117 = add nsw i32 %5116, 1
  store i32 %5117, ptr @test_count, align 4, !tbaa !5
  %5118 = load ptr, ptr %107, align 8, !tbaa !9
  %5119 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5118, ptr noundef @.str.47)
  %5120 = icmp eq i32 %5119, -1
  br i1 %5120, label %5121, label %5174

5121:                                             ; preds = %5115
  br label %5122

5122:                                             ; preds = %5121
  br label %5123

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

5130:                                             ; preds = %5123
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = call i32 @fileno(ptr noundef %5131) #9
  %5133 = call i32 @isatty(i32 noundef %5132) #9
  %5134 = icmp ne i32 %5133, 0
  br i1 %5134, label %5135, label %5152

5135:                                             ; preds = %5130
  %5136 = load i32, ptr %109, align 4, !tbaa !5
  %5137 = call ptr @__errno_location() #10
  store i32 %5136, ptr %5137, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = load i32, ptr @test_count, align 4, !tbaa !5
  %5140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef @.str.3)
  %5143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call ptr @s2n_strerror_debug(i32 noundef %5144, ptr noundef @.str.3)
  %5146 = call ptr @__errno_location() #10
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @strerror(i32 noundef %5147) #9
  %5149 = call ptr @__errno_location() #10
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5138, ptr noundef @.str, i32 noundef %5139, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 461, ptr noundef %5142, ptr noundef %5145, ptr noundef %5148, i32 noundef %5150) #9
  br label %5169

5152:                                             ; preds = %5130, %5123
  %5153 = load i32, ptr %109, align 4, !tbaa !5
  %5154 = call ptr @__errno_location() #10
  store i32 %5153, ptr %5154, align 4, !tbaa !5
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = load i32, ptr @test_count, align 4, !tbaa !5
  %5157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror(i32 noundef %5158, ptr noundef @.str.3)
  %5160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror_debug(i32 noundef %5161, ptr noundef @.str.3)
  %5163 = call ptr @__errno_location() #10
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @strerror(i32 noundef %5164) #9
  %5166 = call ptr @__errno_location() #10
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5155, ptr noundef @.str.4, i32 noundef %5156, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 461, ptr noundef %5159, ptr noundef %5162, ptr noundef %5165, i32 noundef %5167) #9
  br label %5169

5169:                                             ; preds = %5152, %5135
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %5170

5170:                                             ; preds = %5169
  br label %5171

5171:                                             ; preds = %5170
  call void @exit(i32 noundef 1) #11
  unreachable

5172:                                             ; No predecessors!
  br label %5173

5173:                                             ; preds = %5172
  br label %5174

5174:                                             ; preds = %5173, %5115
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175
  br label %5177

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

5184:                                             ; preds = %5177
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %5187 = call ptr @__errno_location() #10
  %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) #9
  %5196 = call i32 @isatty(i32 noundef %5195) #9
  %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() #10
  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.3)
  %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.3)
  %5209 = call ptr @__errno_location() #10
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @strerror(i32 noundef %5210) #9
  %5212 = call ptr @__errno_location() #10
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5201, ptr noundef @.str, i32 noundef %5202, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 462, ptr noundef %5205, ptr noundef %5208, ptr noundef %5211, i32 noundef %5213) #9
  br label %5232

5215:                                             ; preds = %5193, %5186
  %5216 = load i32, ptr %110, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %5226 = call ptr @__errno_location() #10
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #9
  %5229 = call ptr @__errno_location() #10
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.4, i32 noundef %5219, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 462, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #9
  br label %5232

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

5233:                                             ; preds = %5232
  br label %5234

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

5235:                                             ; No predecessors!
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

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

5238:                                             ; preds = %5237
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239
  %5241 = load i32, ptr @test_count, align 4, !tbaa !5
  %5242 = add nsw i32 %5241, 1
  store i32 %5242, ptr @test_count, align 4, !tbaa !5
  %5243 = load ptr, ptr %107, align 8, !tbaa !9
  %5244 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %5243, ptr noundef @.str.43, ptr noundef null)
  %5245 = icmp eq i32 %5244, -1
  br i1 %5245, label %5246, label %5299

5246:                                             ; preds = %5240
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

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

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

5260:                                             ; preds = %5255
  %5261 = load i32, ptr %111, align 4, !tbaa !5
  %5262 = call ptr @__errno_location() #10
  store i32 %5261, ptr %5262, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror(i32 noundef %5266, ptr noundef @.str.3)
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror_debug(i32 noundef %5269, ptr noundef @.str.3)
  %5271 = call ptr @__errno_location() #10
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #9
  %5274 = call ptr @__errno_location() #10
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5263, ptr noundef @.str, i32 noundef %5264, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 463, ptr noundef %5267, ptr noundef %5270, ptr noundef %5273, i32 noundef %5275) #9
  br label %5294

5277:                                             ; preds = %5255, %5248
  %5278 = load i32, ptr %111, align 4, !tbaa !5
  %5279 = call ptr @__errno_location() #10
  store i32 %5278, ptr %5279, align 4, !tbaa !5
  %5280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5281 = load i32, ptr @test_count, align 4, !tbaa !5
  %5282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @s2n_strerror(i32 noundef %5283, ptr noundef @.str.3)
  %5285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call ptr @s2n_strerror_debug(i32 noundef %5286, ptr noundef @.str.3)
  %5288 = call ptr @__errno_location() #10
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  %5290 = call ptr @strerror(i32 noundef %5289) #9
  %5291 = call ptr @__errno_location() #10
  %5292 = load i32, ptr %5291, align 4, !tbaa !5
  %5293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5280, ptr noundef @.str.4, i32 noundef %5281, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 463, ptr noundef %5284, ptr noundef %5287, ptr noundef %5290, i32 noundef %5292) #9
  br label %5294

5294:                                             ; preds = %5277, %5260
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

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

5297:                                             ; No predecessors!
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

5299:                                             ; preds = %5298, %5240
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300
  br label %5302

5302:                                             ; preds = %5301
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = add nsw i32 %5303, 1
  store i32 %5304, ptr @test_count, align 4, !tbaa !5
  %5305 = load ptr, ptr %107, align 8, !tbaa !9
  %5306 = call i32 @s2n_config_disable_x509_verification(ptr noundef %5305)
  %5307 = icmp eq i32 %5306, -1
  br i1 %5307, label %5308, label %5361

5308:                                             ; preds = %5302
  br label %5309

5309:                                             ; preds = %5308
  br label %5310

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

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

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

5339:                                             ; preds = %5317, %5310
  %5340 = load i32, ptr %112, align 4, !tbaa !5
  %5341 = call ptr @__errno_location() #10
  store i32 %5340, ptr %5341, align 4, !tbaa !5
  %5342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5343 = load i32, ptr @test_count, align 4, !tbaa !5
  %5344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror(i32 noundef %5345, ptr noundef @.str.3)
  %5347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call ptr @s2n_strerror_debug(i32 noundef %5348, ptr noundef @.str.3)
  %5350 = call ptr @__errno_location() #10
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  %5352 = call ptr @strerror(i32 noundef %5351) #9
  %5353 = call ptr @__errno_location() #10
  %5354 = load i32, ptr %5353, align 4, !tbaa !5
  %5355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5342, ptr noundef @.str.4, i32 noundef %5343, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 464, ptr noundef %5346, ptr noundef %5349, ptr noundef %5352, i32 noundef %5354) #9
  br label %5356

5356:                                             ; preds = %5339, %5322
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

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

5359:                                             ; No predecessors!
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360, %5302
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362
  br label %5364

5364:                                             ; preds = %5363
  %5365 = load i32, ptr @test_count, align 4, !tbaa !5
  %5366 = add nsw i32 %5365, 1
  store i32 %5366, ptr @test_count, align 4, !tbaa !5
  %5367 = load ptr, ptr %107, align 8, !tbaa !9
  %5368 = load ptr, ptr %107, align 8, !tbaa !9
  %5369 = load ptr, ptr %104, align 8, !tbaa !9
  %5370 = call i32 @test_cipher_preferences(ptr noundef %5367, ptr noundef %5368, ptr noundef %5369, i32 noundef 1)
  %5371 = icmp eq i32 %5370, -1
  br i1 %5371, label %5372, label %5425

5372:                                             ; preds = %5364
  br label %5373

5373:                                             ; preds = %5372
  br label %5374

5374:                                             ; preds = %5373
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  %5375 = call ptr @__errno_location() #10
  %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) #9
  %5384 = call i32 @isatty(i32 noundef %5383) #9
  %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() #10
  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.3)
  %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.3)
  %5397 = call ptr @__errno_location() #10
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @strerror(i32 noundef %5398) #9
  %5400 = call ptr @__errno_location() #10
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5389, ptr noundef @.str, i32 noundef %5390, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 466, ptr noundef %5393, ptr noundef %5396, ptr noundef %5399, i32 noundef %5401) #9
  br label %5420

5403:                                             ; preds = %5381, %5374
  %5404 = load i32, ptr %113, align 4, !tbaa !5
  %5405 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %5414 = call ptr @__errno_location() #10
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call ptr @strerror(i32 noundef %5415) #9
  %5417 = call ptr @__errno_location() #10
  %5418 = load i32, ptr %5417, align 4, !tbaa !5
  %5419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5406, ptr noundef @.str.4, i32 noundef %5407, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 466, ptr noundef %5410, ptr noundef %5413, ptr noundef %5416, i32 noundef %5418) #9
  br label %5420

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

5421:                                             ; preds = %5420
  br label %5422

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

5423:                                             ; No predecessors!
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

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

5426:                                             ; preds = %5425
  br label %5427

5427:                                             ; preds = %5426
  %5428 = call i32 @s2n_config_ptr_free(ptr noundef %107)
  %5429 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %5428, ptr %5429, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  %5430 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %104)
  %5431 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  store i32 %5430, ptr %5431, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  call void @exit(i32 noundef 0) #11
  unreachable

5432:                                             ; preds = %4851
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #9
  store i32 0, ptr %116, align 4, !tbaa !5
  br label %5433

5433:                                             ; preds = %5432
  %5434 = load i32, ptr @test_count, align 4, !tbaa !5
  %5435 = add nsw i32 %5434, 1
  store i32 %5435, ptr @test_count, align 4, !tbaa !5
  %5436 = load i32, ptr %100, align 4, !tbaa !5
  %5437 = call i32 @waitpid(i32 noundef %5436, ptr noundef %116, i32 noundef 0)
  %5438 = load i32, ptr %100, align 4, !tbaa !5
  %5439 = icmp eq i32 %5437, %5438
  br i1 %5439, label %5493, label %5440

5440:                                             ; preds = %5433
  br label %5441

5441:                                             ; preds = %5440
  br label %5442

5442:                                             ; preds = %5441
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %5443 = call ptr @__errno_location() #10
  %5444 = load i32, ptr %5443, align 4, !tbaa !5
  store i32 %5444, ptr %117, align 4, !tbaa !5
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = call i32 @s2n_print_stacktrace(ptr noundef %5445)
  %5447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5448 = trunc i8 %5447 to i1
  br i1 %5448, label %5449, label %5471

5449:                                             ; preds = %5442
  %5450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5451 = call i32 @fileno(ptr noundef %5450) #9
  %5452 = call i32 @isatty(i32 noundef %5451) #9
  %5453 = icmp ne i32 %5452, 0
  br i1 %5453, label %5454, label %5471

5454:                                             ; preds = %5449
  %5455 = load i32, ptr %117, align 4, !tbaa !5
  %5456 = call ptr @__errno_location() #10
  store i32 %5455, ptr %5456, align 4, !tbaa !5
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = load i32, ptr @test_count, align 4, !tbaa !5
  %5459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call ptr @s2n_strerror(i32 noundef %5460, ptr noundef @.str.3)
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror_debug(i32 noundef %5463, ptr noundef @.str.3)
  %5465 = call ptr @__errno_location() #10
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @strerror(i32 noundef %5466) #9
  %5468 = call ptr @__errno_location() #10
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5457, ptr noundef @.str, i32 noundef %5458, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 473, ptr noundef %5461, ptr noundef %5464, ptr noundef %5467, i32 noundef %5469) #9
  br label %5488

5471:                                             ; preds = %5449, %5442
  %5472 = load i32, ptr %117, align 4, !tbaa !5
  %5473 = call ptr @__errno_location() #10
  store i32 %5472, ptr %5473, align 4, !tbaa !5
  %5474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5475 = load i32, ptr @test_count, align 4, !tbaa !5
  %5476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call ptr @s2n_strerror(i32 noundef %5477, ptr noundef @.str.3)
  %5479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @s2n_strerror_debug(i32 noundef %5480, ptr noundef @.str.3)
  %5482 = call ptr @__errno_location() #10
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call ptr @strerror(i32 noundef %5483) #9
  %5485 = call ptr @__errno_location() #10
  %5486 = load i32, ptr %5485, align 4, !tbaa !5
  %5487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5474, ptr noundef @.str.4, i32 noundef %5475, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 473, ptr noundef %5478, ptr noundef %5481, ptr noundef %5484, i32 noundef %5486) #9
  br label %5488

5488:                                             ; preds = %5471, %5454
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5489

5489:                                             ; preds = %5488
  br label %5490

5490:                                             ; preds = %5489
  call void @exit(i32 noundef 1) #11
  unreachable

5491:                                             ; No predecessors!
  br label %5492

5492:                                             ; preds = %5491
  br label %5493

5493:                                             ; preds = %5492, %5433
  br label %5494

5494:                                             ; preds = %5493
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495
  %5497 = load i32, ptr @test_count, align 4, !tbaa !5
  %5498 = add nsw i32 %5497, 1
  store i32 %5498, ptr @test_count, align 4, !tbaa !5
  %5499 = load i32, ptr %116, align 4, !tbaa !5
  %5500 = icmp eq i32 %5499, 0
  br i1 %5500, label %5554, label %5501

5501:                                             ; preds = %5496
  br label %5502

5502:                                             ; preds = %5501
  br label %5503

5503:                                             ; preds = %5502
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #9
  %5504 = call ptr @__errno_location() #10
  %5505 = load i32, ptr %5504, align 4, !tbaa !5
  store i32 %5505, ptr %118, align 4, !tbaa !5
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = call i32 @s2n_print_stacktrace(ptr noundef %5506)
  %5508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5509 = trunc i8 %5508 to i1
  br i1 %5509, label %5510, label %5532

5510:                                             ; preds = %5503
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = call i32 @fileno(ptr noundef %5511) #9
  %5513 = call i32 @isatty(i32 noundef %5512) #9
  %5514 = icmp ne i32 %5513, 0
  br i1 %5514, label %5515, label %5532

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

5532:                                             ; preds = %5510, %5503
  %5533 = load i32, ptr %118, align 4, !tbaa !5
  %5534 = call ptr @__errno_location() #10
  store i32 %5533, ptr %5534, align 4, !tbaa !5
  %5535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5536 = load i32, ptr @test_count, align 4, !tbaa !5
  %5537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  %5539 = call ptr @s2n_strerror(i32 noundef %5538, ptr noundef @.str.3)
  %5540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5541 = load i32, ptr %5540, align 4, !tbaa !5
  %5542 = call ptr @s2n_strerror_debug(i32 noundef %5541, ptr noundef @.str.3)
  %5543 = call ptr @__errno_location() #10
  %5544 = load i32, ptr %5543, align 4, !tbaa !5
  %5545 = call ptr @strerror(i32 noundef %5544) #9
  %5546 = call ptr @__errno_location() #10
  %5547 = load i32, ptr %5546, align 4, !tbaa !5
  %5548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5535, ptr noundef @.str.4, i32 noundef %5536, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 474, ptr noundef %5539, ptr noundef %5542, ptr noundef %5545, i32 noundef %5547) #9
  br label %5549

5549:                                             ; preds = %5532, %5515
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5550

5550:                                             ; preds = %5549
  br label %5551

5551:                                             ; preds = %5550
  call void @exit(i32 noundef 1) #11
  unreachable

5552:                                             ; No predecessors!
  br label %5553

5553:                                             ; preds = %5552
  br label %5554

5554:                                             ; preds = %5553, %5496
  br label %5555

5555:                                             ; preds = %5554
  br label %5556

5556:                                             ; preds = %5555
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %5557

5557:                                             ; preds = %5556
  br label %5558

5558:                                             ; preds = %5557
  %5559 = call i32 @s2n_cleanup()
  %5560 = icmp eq i32 %5559, -1
  br i1 %5560, label %5561, label %5614

5561:                                             ; preds = %5558
  br label %5562

5562:                                             ; preds = %5561
  br label %5563

5563:                                             ; preds = %5562
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #9
  %5564 = call ptr @__errno_location() #10
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  store i32 %5565, ptr %119, align 4, !tbaa !5
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = call i32 @s2n_print_stacktrace(ptr noundef %5566)
  %5568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5569 = trunc i8 %5568 to i1
  br i1 %5569, label %5570, label %5592

5570:                                             ; preds = %5563
  %5571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5572 = call i32 @fileno(ptr noundef %5571) #9
  %5573 = call i32 @isatty(i32 noundef %5572) #9
  %5574 = icmp ne i32 %5573, 0
  br i1 %5574, label %5575, label %5592

5575:                                             ; preds = %5570
  %5576 = load i32, ptr %119, align 4, !tbaa !5
  %5577 = call ptr @__errno_location() #10
  store i32 %5576, ptr %5577, align 4, !tbaa !5
  %5578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5579 = load i32, ptr @test_count, align 4, !tbaa !5
  %5580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  %5582 = call ptr @s2n_strerror(i32 noundef %5581, ptr noundef @.str.3)
  %5583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @s2n_strerror_debug(i32 noundef %5584, ptr noundef @.str.3)
  %5586 = call ptr @__errno_location() #10
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @strerror(i32 noundef %5587) #9
  %5589 = call ptr @__errno_location() #10
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5578, ptr noundef @.str, i32 noundef %5579, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 477, ptr noundef %5582, ptr noundef %5585, ptr noundef %5588, i32 noundef %5590) #9
  br label %5609

5592:                                             ; preds = %5570, %5563
  %5593 = load i32, ptr %119, align 4, !tbaa !5
  %5594 = call ptr @__errno_location() #10
  store i32 %5593, ptr %5594, align 4, !tbaa !5
  %5595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5596 = load i32, ptr @test_count, align 4, !tbaa !5
  %5597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror(i32 noundef %5598, ptr noundef @.str.3)
  %5600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @s2n_strerror_debug(i32 noundef %5601, ptr noundef @.str.3)
  %5603 = call ptr @__errno_location() #10
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call ptr @strerror(i32 noundef %5604) #9
  %5606 = call ptr @__errno_location() #10
  %5607 = load i32, ptr %5606, align 4, !tbaa !5
  %5608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5595, ptr noundef @.str.4, i32 noundef %5596, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 477, ptr noundef %5599, ptr noundef %5602, ptr noundef %5605, i32 noundef %5607) #9
  br label %5609

5609:                                             ; preds = %5592, %5575
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #9
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

5611:                                             ; preds = %5610
  call void @exit(i32 noundef 1) #11
  unreachable

5612:                                             ; No predecessors!
  br label %5613

5613:                                             ; preds = %5612
  br label %5614

5614:                                             ; preds = %5613, %5558
  br label %5615

5615:                                             ; preds = %5614
  br label %5616

5616:                                             ; preds = %5615
  br label %5617

5617:                                             ; preds = %5616
  br label %5618

5618:                                             ; preds = %5617
  %5619 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5620 = icmp eq i32 %5619, -1
  br i1 %5620, label %5621, label %5674

5621:                                             ; preds = %5618
  br label %5622

5622:                                             ; preds = %5621
  br label %5623

5623:                                             ; preds = %5622
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %5624 = call ptr @__errno_location() #10
  %5625 = load i32, ptr %5624, align 4, !tbaa !5
  store i32 %5625, ptr %120, align 4, !tbaa !5
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = call i32 @s2n_print_stacktrace(ptr noundef %5626)
  %5628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5629 = trunc i8 %5628 to i1
  br i1 %5629, label %5630, label %5652

5630:                                             ; preds = %5623
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = call i32 @fileno(ptr noundef %5631) #9
  %5633 = call i32 @isatty(i32 noundef %5632) #9
  %5634 = icmp ne i32 %5633, 0
  br i1 %5634, label %5635, label %5652

5635:                                             ; preds = %5630
  %5636 = load i32, ptr %120, align 4, !tbaa !5
  %5637 = call ptr @__errno_location() #10
  store i32 %5636, ptr %5637, align 4, !tbaa !5
  %5638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5639 = load i32, ptr @test_count, align 4, !tbaa !5
  %5640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @s2n_strerror(i32 noundef %5641, ptr noundef @.str.3)
  %5643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror_debug(i32 noundef %5644, ptr noundef @.str.3)
  %5646 = call ptr @__errno_location() #10
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call ptr @strerror(i32 noundef %5647) #9
  %5649 = call ptr @__errno_location() #10
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5638, ptr noundef @.str, i32 noundef %5639, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 477, ptr noundef %5642, ptr noundef %5645, ptr noundef %5648, i32 noundef %5650) #9
  br label %5669

5652:                                             ; preds = %5630, %5623
  %5653 = load i32, ptr %120, align 4, !tbaa !5
  %5654 = call ptr @__errno_location() #10
  store i32 %5653, ptr %5654, align 4, !tbaa !5
  %5655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5656 = load i32, ptr @test_count, align 4, !tbaa !5
  %5657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5658 = load i32, ptr %5657, align 4, !tbaa !5
  %5659 = call ptr @s2n_strerror(i32 noundef %5658, ptr noundef @.str.3)
  %5660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror_debug(i32 noundef %5661, ptr noundef @.str.3)
  %5663 = call ptr @__errno_location() #10
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call ptr @strerror(i32 noundef %5664) #9
  %5666 = call ptr @__errno_location() #10
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5655, ptr noundef @.str.4, i32 noundef %5656, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 477, ptr noundef %5659, ptr noundef %5662, ptr noundef %5665, i32 noundef %5667) #9
  br label %5669

5669:                                             ; preds = %5652, %5635
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5670

5670:                                             ; preds = %5669
  br label %5671

5671:                                             ; preds = %5670
  call void @exit(i32 noundef 1) #11
  unreachable

5672:                                             ; No predecessors!
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673, %5618
  br label %5675

5675:                                             ; preds = %5674
  br label %5676

5676:                                             ; preds = %5675
  %5677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5678 = trunc i8 %5677 to i1
  br i1 %5678, label %5679, label %5695

5679:                                             ; preds = %5676
  %5680 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5681 = call i32 @fileno(ptr noundef %5680) #9
  %5682 = call i32 @isatty(i32 noundef %5681) #9
  %5683 = icmp ne i32 %5682, 0
  br i1 %5683, label %5684, label %5695

5684:                                             ; preds = %5679
  %5685 = load i32, ptr @test_count, align 4, !tbaa !5
  %5686 = icmp ne i32 %5685, 0
  br i1 %5686, label %5687, label %5691

5687:                                             ; preds = %5684
  %5688 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5689 = load i32, ptr @test_count, align 4, !tbaa !5
  %5690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5688, ptr noundef @.str.94, i32 noundef %5689) #9
  br label %5694

5691:                                             ; preds = %5684
  %5692 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5692, ptr noundef @.str.95) #9
  br label %5694

5694:                                             ; preds = %5691, %5687
  br label %5706

5695:                                             ; preds = %5679, %5676
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = icmp ne i32 %5696, 0
  br i1 %5697, label %5698, label %5702

5698:                                             ; preds = %5695
  %5699 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5700 = load i32, ptr @test_count, align 4, !tbaa !5
  %5701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5699, ptr noundef @.str.96, i32 noundef %5700) #9
  br label %5705

5702:                                             ; preds = %5695
  %5703 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5703, ptr noundef @.str.97) #9
  br label %5705

5705:                                             ; preds = %5702, %5698
  br label %5706

5706:                                             ; preds = %5705, %5694
  store i32 0, ptr %3, align 4
  store i32 1, ptr %121, align 4
  br label %5711

5707:                                             ; No predecessors!
  br label %5708

5708:                                             ; preds = %5707
  br label %5709

5709:                                             ; preds = %5708
  br label %5710

5710:                                             ; preds = %5709
  store i32 0, ptr %121, align 4
  br label %5711

5711:                                             ; preds = %5710, %5706
  call void @llvm.lifetime.end.p0(i64 12000, ptr %10) #9
  %5712 = load i32, ptr %121, align 4
  switch i32 %5712, label %5715 [
    i32 0, label %5713
    i32 1, label %5713
  ]

5713:                                             ; preds = %5711, %5711
  %5714 = load i32, ptr %3, align 4
  ret i32 %5714

5715:                                             ; preds = %5711
  unreachable
}

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #3

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

declare ptr @s2n_config_new() #3

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

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

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

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

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #3

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

declare i32 @s2n_enable_tls13_in_test(...) #3

declare zeroext i1 @s2n_is_rsa_pss_signing_supported(...) #3

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

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

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

; Function Attrs: nounwind
declare i32 @fork() #4

; Function Attrs: nounwind
declare i64 @sysconf(i32 noundef) #4

declare i32 @close(i32 noundef) #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #3

declare i32 @s2n_config_ptr_free(ptr noundef) #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #3

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

declare i32 @s2n_cleanup() #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 0}
!16 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!17 = !{!16, !10, i64 8}
!18 = !{!19, !10, i64 96}
!19 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !20, i64 24, !21, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !22, i64 144, !10, i64 152, !22, i64 160, !22, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !23, i64 304, !24, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !21, i64 448}
!20 = !{!"certs_by_type", !7, i64 0}
!21 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!22 = !{!"long", !7, i64 0}
!23 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!24 = !{!"short", !7, i64 0}
!25 = !{!26, !7, i64 0}
!26 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!27 = !{!26, !10, i64 8}
!28 = !{!26, !10, i64 16}
!29 = !{!26, !10, i64 24}
!30 = !{!26, !10, i64 32}
!31 = !{!26, !10, i64 40}
!32 = !{!26, !10, i64 48}
!33 = !{!26, !12, i64 56}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = !{!22, !22, i64 0}
!37 = distinct !{!37, !35}


; 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_signature_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [77 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@test_type = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [118 x i8], align 1
@__const.main.rsa_pss_rsae_sig_schemes = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.74 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

declare zeroext i1 @s2n_is_in_fips_mode() local_unnamed_addr #3

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

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

21:                                               ; preds = %2
  %22 = tail call ptr @__errno_location() #10
  %23 = load i32, ptr %22, align 4, !tbaa !5
  %24 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25 = tail call i32 @s2n_print_stacktrace(ptr noundef %24) #9
  %26 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27 = trunc nuw i8 %26 to i1
  br i1 %27, label %28, label %32

28:                                               ; preds = %21
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = tail call i32 @fileno(ptr noundef %29) #9
  %31 = tail call i32 @isatty(i32 noundef %30) #9
  %.not350 = icmp eq i32 %31, 0
  br i1 %.not350, label %32, label %33

32:                                               ; preds = %28, %21
  br label %33

33:                                               ; preds = %28, %32
  %.str.4.sink = phi ptr [ @.str.4, %32 ], [ @.str, %28 ]
  store i32 %23, ptr %22, align 4, !tbaa !5
  %34 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37 = load i32, ptr %36, align 4, !tbaa !5
  %38 = tail call ptr @s2n_strerror(i32 noundef %37, ptr noundef nonnull @.str.3) #9
  %39 = load i32, ptr %36, align 4, !tbaa !5
  %40 = tail call ptr @s2n_strerror_debug(i32 noundef %39, ptr noundef nonnull @.str.3) #9
  %41 = load i32, ptr %22, align 4, !tbaa !5
  %42 = tail call ptr @strerror(i32 noundef %41) #9
  %43 = load i32, ptr %22, align 4, !tbaa !5
  %44 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34, ptr noundef nonnull %.str.4.sink, i32 noundef %35, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 237, ptr noundef %38, ptr noundef %40, ptr noundef %42, i32 noundef %43) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

45:                                               ; preds = %2
  %46 = load i32, ptr @test_count, align 4, !tbaa !5
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr @test_count, align 4, !tbaa !5
  %48 = tail call i32 @s2n_enable_atexit() #9
  %49 = icmp eq i32 %48, -1
  br i1 %49, label %50, label %74

50:                                               ; preds = %45
  %51 = tail call ptr @__errno_location() #10
  %52 = load i32, ptr %51, align 4, !tbaa !5
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = tail call i32 @s2n_print_stacktrace(ptr noundef %53) #9
  %55 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %56 = trunc nuw i8 %55 to i1
  br i1 %56, label %57, label %61

57:                                               ; preds = %50
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @fileno(ptr noundef %58) #9
  %60 = tail call i32 @isatty(i32 noundef %59) #9
  %.not349 = icmp eq i32 %60, 0
  br i1 %.not349, label %61, label %62

61:                                               ; preds = %57, %50
  br label %62

62:                                               ; preds = %57, %61
  %.str.4.sink363 = phi ptr [ @.str.4, %61 ], [ @.str, %57 ]
  store i32 %52, ptr %51, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = tail call ptr @s2n_strerror(i32 noundef %66, ptr noundef nonnull @.str.3) #9
  %68 = load i32, ptr %65, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror_debug(i32 noundef %68, ptr noundef nonnull @.str.3) #9
  %70 = load i32, ptr %51, align 4, !tbaa !5
  %71 = tail call ptr @strerror(i32 noundef %70) #9
  %72 = load i32, ptr %51, align 4, !tbaa !5
  %73 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %63, ptr noundef nonnull %.str.4.sink363, i32 noundef %64, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 237, ptr noundef %67, ptr noundef %69, ptr noundef %71, i32 noundef %72) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

74:                                               ; preds = %45
  %75 = tail call i32 @s2n_init() #9
  %76 = icmp eq i32 %75, -1
  br i1 %76, label %77, label %101

77:                                               ; preds = %74
  %78 = tail call ptr @__errno_location() #10
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = load ptr, ptr @stderr, align 8, !tbaa !9
  %81 = tail call i32 @s2n_print_stacktrace(ptr noundef %80) #9
  %82 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %83 = trunc nuw i8 %82 to i1
  br i1 %83, label %84, label %88

84:                                               ; preds = %77
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @fileno(ptr noundef %85) #9
  %87 = tail call i32 @isatty(i32 noundef %86) #9
  %.not348 = icmp eq i32 %87, 0
  br i1 %.not348, label %88, label %89

88:                                               ; preds = %84, %77
  br label %89

89:                                               ; preds = %84, %88
  %.str.4.sink374 = phi ptr [ @.str.4, %88 ], [ @.str, %84 ]
  store i32 %79, ptr %78, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror(i32 noundef %93, ptr noundef nonnull @.str.3) #9
  %95 = load i32, ptr %92, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror_debug(i32 noundef %95, ptr noundef nonnull @.str.3) #9
  %97 = load i32, ptr %78, align 4, !tbaa !5
  %98 = tail call ptr @strerror(i32 noundef %97) #9
  %99 = load i32, ptr %78, align 4, !tbaa !5
  %100 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull %.str.4.sink374, i32 noundef %91, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 237, ptr noundef %94, ptr noundef %96, ptr noundef %98, i32 noundef %99) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

101:                                              ; preds = %74
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr @test_count, align 4, !tbaa !5
  %104 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %105 = icmp eq i32 %104, -1
  br i1 %105, label %106, label %130

106:                                              ; preds = %101
  %107 = tail call ptr @__errno_location() #10
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @s2n_print_stacktrace(ptr noundef %109) #9
  %111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %112 = trunc nuw i8 %111 to i1
  br i1 %112, label %113, label %117

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

117:                                              ; preds = %113, %106
  br label %118

118:                                              ; preds = %113, %117
  %.str.4.sink385 = phi ptr [ @.str.4, %117 ], [ @.str, %113 ]
  store i32 %108, ptr %107, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = tail call ptr @s2n_strerror(i32 noundef %122, ptr noundef nonnull @.str.3) #9
  %124 = load i32, ptr %121, align 4, !tbaa !5
  %125 = tail call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef nonnull @.str.3) #9
  %126 = load i32, ptr %107, align 4, !tbaa !5
  %127 = tail call ptr @strerror(i32 noundef %126) #9
  %128 = load i32, ptr %107, align 4, !tbaa !5
  %129 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull %.str.4.sink385, i32 noundef %120, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 238, ptr noundef %123, ptr noundef %125, ptr noundef %127, i32 noundef %128) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

130:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %3) #9
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.41, ptr noundef nonnull %3, i64 noundef 12000) #9
  %134 = icmp eq i32 %133, -1
  br i1 %134, label %143, label %.preheader

.preheader:                                       ; preds = %130
  store i32 0, ptr @test_type, align 4, !tbaa !5
  %135 = getelementptr inbounds i8, ptr %8, i64 8
  %136 = getelementptr inbounds i8, ptr %10, i64 8
  %137 = getelementptr inbounds i8, ptr %10, i64 24
  %138 = getelementptr inbounds i8, ptr %10, i64 32
  %139 = getelementptr inbounds i8, ptr %10, i64 40
  %140 = getelementptr inbounds i8, ptr %10, i64 48
  %141 = getelementptr inbounds i8, ptr %10, i64 56
  %142 = getelementptr inbounds i8, ptr %10, i64 57
  br label %167

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

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

154:                                              ; preds = %150, %143
  br label %155

155:                                              ; preds = %150, %154
  %.str.4.sink396 = phi ptr [ @.str.4, %154 ], [ @.str, %150 ]
  store i32 %145, ptr %144, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call ptr @s2n_strerror(i32 noundef %159, ptr noundef nonnull @.str.3) #9
  %161 = load i32, ptr %158, align 4, !tbaa !5
  %162 = call ptr @s2n_strerror_debug(i32 noundef %161, ptr noundef nonnull @.str.3) #9
  %163 = load i32, ptr %144, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #9
  %165 = load i32, ptr %144, align 4, !tbaa !5
  %166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef nonnull %.str.4.sink396, i32 noundef %157, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 241, ptr noundef %160, ptr noundef %162, ptr noundef %164, i32 noundef %165) #11
  call void @exit(i32 noundef 1) #12
  unreachable

167:                                              ; preds = %.preheader, %2252
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  store ptr null, ptr %4, align 8, !tbaa !9
  %168 = load i32, ptr @test_count, align 4, !tbaa !5
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr @test_count, align 4, !tbaa !5
  %170 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %4, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.44) #9
  %171 = icmp eq i32 %170, -1
  br i1 %171, label %172, label %196

172:                                              ; preds = %167
  %173 = tail call ptr @__errno_location() #10
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %176 = call i32 @s2n_print_stacktrace(ptr noundef %175) #9
  %177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %178 = trunc nuw i8 %177 to i1
  br i1 %178, label %179, label %183

179:                                              ; preds = %172
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = call i32 @fileno(ptr noundef %180) #9
  %182 = call i32 @isatty(i32 noundef %181) #9
  %.not345 = icmp eq i32 %182, 0
  br i1 %.not345, label %183, label %184

183:                                              ; preds = %179, %172
  br label %184

184:                                              ; preds = %179, %183
  %.str.4.sink407 = phi ptr [ @.str.4, %183 ], [ @.str, %179 ]
  store i32 %174, ptr %173, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = call ptr @s2n_strerror(i32 noundef %188, ptr noundef nonnull @.str.3) #9
  %190 = load i32, ptr %187, align 4, !tbaa !5
  %191 = call ptr @s2n_strerror_debug(i32 noundef %190, ptr noundef nonnull @.str.3) #9
  %192 = load i32, ptr %173, align 4, !tbaa !5
  %193 = call ptr @strerror(i32 noundef %192) #9
  %194 = load i32, ptr %173, align 4, !tbaa !5
  %195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %185, ptr noundef nonnull %.str.4.sink407, i32 noundef %186, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 250, ptr noundef %189, ptr noundef %191, ptr noundef %193, i32 noundef %194) #11
  call void @exit(i32 noundef 1) #12
  unreachable

196:                                              ; preds = %167
  %197 = load i32, ptr @test_count, align 4, !tbaa !5
  %198 = add nsw i32 %197, 1
  store i32 %198, ptr @test_count, align 4, !tbaa !5
  %199 = call ptr @s2n_config_new() #9
  %200 = icmp eq ptr %199, null
  br i1 %200, label %201, label %225

201:                                              ; preds = %196
  %202 = tail call ptr @__errno_location() #10
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @s2n_print_stacktrace(ptr noundef %204) #9
  %206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %207 = trunc nuw i8 %206 to i1
  br i1 %207, label %208, label %212

208:                                              ; preds = %201
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = call i32 @fileno(ptr noundef %209) #9
  %211 = call i32 @isatty(i32 noundef %210) #9
  %.not344 = icmp eq i32 %211, 0
  br i1 %.not344, label %212, label %213

212:                                              ; preds = %208, %201
  br label %213

213:                                              ; preds = %208, %212
  %.str.4.sink418 = phi ptr [ @.str.4, %212 ], [ @.str, %208 ]
  store i32 %203, ptr %202, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror(i32 noundef %217, ptr noundef nonnull @.str.3) #9
  %219 = load i32, ptr %216, align 4, !tbaa !5
  %220 = call ptr @s2n_strerror_debug(i32 noundef %219, ptr noundef nonnull @.str.3) #9
  %221 = load i32, ptr %202, align 4, !tbaa !5
  %222 = call ptr @strerror(i32 noundef %221) #9
  %223 = load i32, ptr %202, align 4, !tbaa !5
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef nonnull %.str.4.sink418, i32 noundef %215, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 252, ptr noundef %218, ptr noundef %220, ptr noundef %222, i32 noundef %223) #11
  call void @exit(i32 noundef 1) #12
  unreachable

225:                                              ; preds = %196
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr @test_count, align 4, !tbaa !5
  %228 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %199, ptr noundef nonnull @.str.47) #9
  %229 = icmp eq i32 %228, -1
  br i1 %229, label %230, label %254

230:                                              ; preds = %225
  %231 = tail call ptr @__errno_location() #10
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @s2n_print_stacktrace(ptr noundef %233) #9
  %235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %236 = trunc nuw i8 %235 to i1
  br i1 %236, label %237, label %241

237:                                              ; preds = %230
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @fileno(ptr noundef %238) #9
  %240 = call i32 @isatty(i32 noundef %239) #9
  %.not343 = icmp eq i32 %240, 0
  br i1 %.not343, label %241, label %242

241:                                              ; preds = %237, %230
  br label %242

242:                                              ; preds = %237, %241
  %.str.4.sink429 = phi ptr [ @.str.4, %241 ], [ @.str, %237 ]
  store i32 %232, ptr %231, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror(i32 noundef %246, ptr noundef nonnull @.str.3) #9
  %248 = load i32, ptr %245, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror_debug(i32 noundef %248, ptr noundef nonnull @.str.3) #9
  %250 = load i32, ptr %231, align 4, !tbaa !5
  %251 = call ptr @strerror(i32 noundef %250) #9
  %252 = load i32, ptr %231, align 4, !tbaa !5
  %253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef nonnull %.str.4.sink429, i32 noundef %244, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 254, ptr noundef %247, ptr noundef %249, ptr noundef %251, i32 noundef %252) #11
  call void @exit(i32 noundef 1) #12
  unreachable

254:                                              ; preds = %225
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr @test_count, align 4, !tbaa !5
  %257 = load ptr, ptr %4, align 8, !tbaa !9
  %258 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %199, ptr noundef %257) #9
  %259 = icmp eq i32 %258, -1
  br i1 %259, label %260, label %284

260:                                              ; preds = %254
  %261 = tail call ptr @__errno_location() #10
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 @s2n_print_stacktrace(ptr noundef %263) #9
  %265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %266 = trunc nuw i8 %265 to i1
  br i1 %266, label %267, label %271

267:                                              ; preds = %260
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = call i32 @fileno(ptr noundef %268) #9
  %270 = call i32 @isatty(i32 noundef %269) #9
  %.not342 = icmp eq i32 %270, 0
  br i1 %.not342, label %271, label %272

271:                                              ; preds = %267, %260
  br label %272

272:                                              ; preds = %267, %271
  %.str.4.sink440 = phi ptr [ @.str.4, %271 ], [ @.str, %267 ]
  store i32 %262, ptr %261, align 4, !tbaa !5
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call ptr @s2n_strerror(i32 noundef %276, ptr noundef nonnull @.str.3) #9
  %278 = load i32, ptr %275, align 4, !tbaa !5
  %279 = call ptr @s2n_strerror_debug(i32 noundef %278, ptr noundef nonnull @.str.3) #9
  %280 = load i32, ptr %261, align 4, !tbaa !5
  %281 = call ptr @strerror(i32 noundef %280) #9
  %282 = load i32, ptr %261, align 4, !tbaa !5
  %283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %273, ptr noundef nonnull %.str.4.sink440, i32 noundef %274, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 255, ptr noundef %277, ptr noundef %279, ptr noundef %281, i32 noundef %282) #11
  call void @exit(i32 noundef 1) #12
  unreachable

284:                                              ; preds = %254
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = add nsw i32 %285, 1
  store i32 %286, ptr @test_count, align 4, !tbaa !5
  %287 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %199, ptr noundef nonnull %3) #9
  %288 = icmp eq i32 %287, -1
  br i1 %288, label %289, label %313

289:                                              ; preds = %284
  %290 = tail call ptr @__errno_location() #10
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = call i32 @s2n_print_stacktrace(ptr noundef %292) #9
  %294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %295 = trunc nuw i8 %294 to i1
  br i1 %295, label %296, label %300

296:                                              ; preds = %289
  %297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %298 = call i32 @fileno(ptr noundef %297) #9
  %299 = call i32 @isatty(i32 noundef %298) #9
  %.not341 = icmp eq i32 %299, 0
  br i1 %.not341, label %300, label %301

300:                                              ; preds = %296, %289
  br label %301

301:                                              ; preds = %296, %300
  %.str.4.sink451 = phi ptr [ @.str.4, %300 ], [ @.str, %296 ]
  store i32 %291, ptr %290, align 4, !tbaa !5
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror(i32 noundef %305, ptr noundef nonnull @.str.3) #9
  %307 = load i32, ptr %304, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef nonnull @.str.3) #9
  %309 = load i32, ptr %290, align 4, !tbaa !5
  %310 = call ptr @strerror(i32 noundef %309) #9
  %311 = load i32, ptr %290, align 4, !tbaa !5
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %302, ptr noundef nonnull %.str.4.sink451, i32 noundef %303, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 256, ptr noundef %306, ptr noundef %308, ptr noundef %310, i32 noundef %311) #11
  call void @exit(i32 noundef 1) #12
  unreachable

313:                                              ; preds = %284
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @test_count, align 4, !tbaa !5
  %316 = call i32 @s2n_config_set_verify_after_sign(ptr noundef nonnull %199, i32 noundef 1) #9
  %317 = icmp eq i32 %316, -1
  br i1 %317, label %318, label %342

318:                                              ; preds = %313
  %319 = tail call ptr @__errno_location() #10
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @s2n_print_stacktrace(ptr noundef %321) #9
  %323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %329

325:                                              ; preds = %318
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @fileno(ptr noundef %326) #9
  %328 = call i32 @isatty(i32 noundef %327) #9
  %.not340 = icmp eq i32 %328, 0
  br i1 %.not340, label %329, label %330

329:                                              ; preds = %325, %318
  br label %330

330:                                              ; preds = %325, %329
  %.str.4.sink462 = phi ptr [ @.str.4, %329 ], [ @.str, %325 ]
  store i32 %320, ptr %319, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror(i32 noundef %334, ptr noundef nonnull @.str.3) #9
  %336 = load i32, ptr %333, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror_debug(i32 noundef %336, ptr noundef nonnull @.str.3) #9
  %338 = load i32, ptr %319, align 4, !tbaa !5
  %339 = call ptr @strerror(i32 noundef %338) #9
  %340 = load i32, ptr %319, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef nonnull %.str.4.sink462, i32 noundef %332, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 258, ptr noundef %335, ptr noundef %337, ptr noundef %339, i32 noundef %340) #11
  call void @exit(i32 noundef 1) #12
  unreachable

342:                                              ; preds = %313
  %343 = load i32, ptr @test_type, align 4, !tbaa !5
  %344 = icmp eq i32 %343, 1
  br i1 %344, label %345, label %374

345:                                              ; preds = %342
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr @test_count, align 4, !tbaa !5
  %348 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %199, ptr noundef nonnull @async_pkey_fn) #9
  %349 = icmp eq i32 %348, -1
  br i1 %349, label %350, label %374

350:                                              ; preds = %345
  %351 = tail call ptr @__errno_location() #10
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @s2n_print_stacktrace(ptr noundef %353) #9
  %355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %356 = trunc nuw i8 %355 to i1
  br i1 %356, label %357, label %361

357:                                              ; preds = %350
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = call i32 @fileno(ptr noundef %358) #9
  %360 = call i32 @isatty(i32 noundef %359) #9
  %.not339 = icmp eq i32 %360, 0
  br i1 %.not339, label %361, label %362

361:                                              ; preds = %357, %350
  br label %362

362:                                              ; preds = %357, %361
  %.str.4.sink473 = phi ptr [ @.str.4, %361 ], [ @.str, %357 ]
  store i32 %352, ptr %351, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror(i32 noundef %366, ptr noundef nonnull @.str.3) #9
  %368 = load i32, ptr %365, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef nonnull @.str.3) #9
  %370 = load i32, ptr %351, align 4, !tbaa !5
  %371 = call ptr @strerror(i32 noundef %370) #9
  %372 = load i32, ptr %351, align 4, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %363, ptr noundef nonnull %.str.4.sink473, i32 noundef %364, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 260, ptr noundef %367, ptr noundef %369, ptr noundef %371, i32 noundef %372) #11
  call void @exit(i32 noundef 1) #12
  unreachable

374:                                              ; preds = %342, %345
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr @test_count, align 4, !tbaa !5
  %377 = call ptr @s2n_config_new() #9
  %378 = icmp eq ptr %377, null
  br i1 %378, label %379, label %403

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

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

390:                                              ; preds = %386, %379
  br label %391

391:                                              ; preds = %386, %390
  %.str.4.sink484 = phi ptr [ @.str.4, %390 ], [ @.str, %386 ]
  store i32 %381, ptr %380, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror(i32 noundef %395, ptr noundef nonnull @.str.3) #9
  %397 = load i32, ptr %394, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef nonnull @.str.3) #9
  %399 = load i32, ptr %380, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #9
  %401 = load i32, ptr %380, align 4, !tbaa !5
  %402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %392, ptr noundef nonnull %.str.4.sink484, i32 noundef %393, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 263, ptr noundef %396, ptr noundef %398, ptr noundef %400, i32 noundef %401) #11
  call void @exit(i32 noundef 1) #12
  unreachable

403:                                              ; preds = %374
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %406 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %377, ptr noundef nonnull @.str.47) #9
  %407 = icmp eq i32 %406, -1
  br i1 %407, label %408, label %432

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

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

419:                                              ; preds = %415, %408
  br label %420

420:                                              ; preds = %415, %419
  %.str.4.sink495 = phi ptr [ @.str.4, %419 ], [ @.str, %415 ]
  store i32 %410, ptr %409, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %424, ptr noundef nonnull @.str.3) #9
  %426 = load i32, ptr %423, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef nonnull @.str.3) #9
  %428 = load i32, ptr %409, align 4, !tbaa !5
  %429 = call ptr @strerror(i32 noundef %428) #9
  %430 = load i32, ptr %409, align 4, !tbaa !5
  %431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %421, ptr noundef nonnull %.str.4.sink495, i32 noundef %422, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 264, ptr noundef %425, ptr noundef %427, ptr noundef %429, i32 noundef %430) #11
  call void @exit(i32 noundef 1) #12
  unreachable

432:                                              ; preds = %403
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %377) #9
  %436 = icmp eq i32 %435, -1
  br i1 %436, label %437, label %461

437:                                              ; preds = %432
  %438 = tail call ptr @__errno_location() #10
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = call i32 @s2n_print_stacktrace(ptr noundef %440) #9
  %442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %443 = trunc nuw i8 %442 to i1
  br i1 %443, label %444, label %448

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

448:                                              ; preds = %444, %437
  br label %449

449:                                              ; preds = %444, %448
  %.str.4.sink506 = phi ptr [ @.str.4, %448 ], [ @.str, %444 ]
  store i32 %439, ptr %438, align 4, !tbaa !5
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror(i32 noundef %453, ptr noundef nonnull @.str.3) #9
  %455 = load i32, ptr %452, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror_debug(i32 noundef %455, ptr noundef nonnull @.str.3) #9
  %457 = load i32, ptr %438, align 4, !tbaa !5
  %458 = call ptr @strerror(i32 noundef %457) #9
  %459 = load i32, ptr %438, align 4, !tbaa !5
  %460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %450, ptr noundef nonnull %.str.4.sink506, i32 noundef %451, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 265, ptr noundef %454, ptr noundef %456, ptr noundef %458, i32 noundef %459) #11
  call void @exit(i32 noundef 1) #12
  unreachable

461:                                              ; preds = %432
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = add nsw i32 %462, 1
  store i32 %463, ptr @test_count, align 4, !tbaa !5
  %464 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %377, ptr noundef nonnull @.str.43, ptr noundef null) #9
  %465 = icmp eq i32 %464, -1
  br i1 %465, label %466, label %490

466:                                              ; preds = %461
  %467 = tail call ptr @__errno_location() #10
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @s2n_print_stacktrace(ptr noundef %469) #9
  %471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc nuw i8 %471 to i1
  br i1 %472, label %473, label %477

473:                                              ; preds = %466
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @fileno(ptr noundef %474) #9
  %476 = call i32 @isatty(i32 noundef %475) #9
  %.not335 = icmp eq i32 %476, 0
  br i1 %.not335, label %477, label %478

477:                                              ; preds = %473, %466
  br label %478

478:                                              ; preds = %473, %477
  %.str.4.sink517 = phi ptr [ @.str.4, %477 ], [ @.str, %473 ]
  store i32 %468, ptr %467, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror(i32 noundef %482, ptr noundef nonnull @.str.3) #9
  %484 = load i32, ptr %481, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror_debug(i32 noundef %484, ptr noundef nonnull @.str.3) #9
  %486 = load i32, ptr %467, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #9
  %488 = load i32, ptr %467, align 4, !tbaa !5
  %489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef nonnull %.str.4.sink517, i32 noundef %480, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 267, ptr noundef %483, ptr noundef %485, ptr noundef %487, i32 noundef %488) #11
  call void @exit(i32 noundef 1) #12
  unreachable

490:                                              ; preds = %461
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr @test_count, align 4, !tbaa !5
  %493 = load ptr, ptr %4, align 8, !tbaa !9
  %494 = call i32 @test_cipher_preferences(ptr noundef nonnull %199, ptr noundef nonnull %377, ptr noundef %493, i32 noundef 1)
  %495 = icmp eq i32 %494, -1
  br i1 %495, label %496, label %520

496:                                              ; preds = %490
  %497 = tail call ptr @__errno_location() #10
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @s2n_print_stacktrace(ptr noundef %499) #9
  %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 = %496
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = call i32 @fileno(ptr noundef %504) #9
  %506 = call i32 @isatty(i32 noundef %505) #9
  %.not334 = icmp eq i32 %506, 0
  br i1 %.not334, label %507, label %508

507:                                              ; preds = %503, %496
  br label %508

508:                                              ; preds = %503, %507
  %.str.4.sink528 = phi ptr [ @.str.4, %507 ], [ @.str, %503 ]
  store i32 %498, ptr %497, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef nonnull @.str.3) #9
  %514 = load i32, ptr %511, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef nonnull @.str.3) #9
  %516 = load i32, ptr %497, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #9
  %518 = load i32, ptr %497, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef nonnull %.str.4.sink528, i32 noundef %510, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 270, ptr noundef %513, ptr noundef %515, ptr noundef %517, i32 noundef %518) #11
  call void @exit(i32 noundef 1) #12
  unreachable

520:                                              ; preds = %490
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = load ptr, ptr %4, align 8, !tbaa !9
  %524 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %523) #9
  %525 = icmp eq i32 %524, -1
  br i1 %525, label %526, label %550

526:                                              ; preds = %520
  %527 = tail call ptr @__errno_location() #10
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = call i32 @s2n_print_stacktrace(ptr noundef %529) #9
  %531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %532 = trunc nuw i8 %531 to i1
  br i1 %532, label %533, label %537

533:                                              ; preds = %526
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = call i32 @fileno(ptr noundef %534) #9
  %536 = call i32 @isatty(i32 noundef %535) #9
  %.not333 = icmp eq i32 %536, 0
  br i1 %.not333, label %537, label %538

537:                                              ; preds = %533, %526
  br label %538

538:                                              ; preds = %533, %537
  %.str.4.sink539 = phi ptr [ @.str.4, %537 ], [ @.str, %533 ]
  store i32 %528, ptr %527, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror(i32 noundef %542, ptr noundef nonnull @.str.3) #9
  %544 = load i32, ptr %541, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror_debug(i32 noundef %544, ptr noundef nonnull @.str.3) #9
  %546 = load i32, ptr %527, align 4, !tbaa !5
  %547 = call ptr @strerror(i32 noundef %546) #9
  %548 = load i32, ptr %527, align 4, !tbaa !5
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull %.str.4.sink539, i32 noundef %540, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 272, ptr noundef %543, ptr noundef %545, ptr noundef %547, i32 noundef %548) #11
  call void @exit(i32 noundef 1) #12
  unreachable

550:                                              ; preds = %520
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr @test_count, align 4, !tbaa !5
  %553 = call i32 @s2n_config_free(ptr noundef nonnull %199) #9
  %554 = icmp eq i32 %553, -1
  br i1 %554, label %555, label %579

555:                                              ; preds = %550
  %556 = tail call ptr @__errno_location() #10
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = call i32 @s2n_print_stacktrace(ptr noundef %558) #9
  %560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %561 = trunc nuw i8 %560 to i1
  br i1 %561, label %562, label %566

562:                                              ; preds = %555
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = call i32 @fileno(ptr noundef %563) #9
  %565 = call i32 @isatty(i32 noundef %564) #9
  %.not332 = icmp eq i32 %565, 0
  br i1 %.not332, label %566, label %567

566:                                              ; preds = %562, %555
  br label %567

567:                                              ; preds = %562, %566
  %.str.4.sink550 = phi ptr [ @.str.4, %566 ], [ @.str, %562 ]
  store i32 %557, ptr %556, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror(i32 noundef %571, ptr noundef nonnull @.str.3) #9
  %573 = load i32, ptr %570, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror_debug(i32 noundef %573, ptr noundef nonnull @.str.3) #9
  %575 = load i32, ptr %556, align 4, !tbaa !5
  %576 = call ptr @strerror(i32 noundef %575) #9
  %577 = load i32, ptr %556, align 4, !tbaa !5
  %578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %568, ptr noundef nonnull %.str.4.sink550, i32 noundef %569, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 273, ptr noundef %572, ptr noundef %574, ptr noundef %576, i32 noundef %577) #11
  call void @exit(i32 noundef 1) #12
  unreachable

579:                                              ; preds = %550
  %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 i32 @s2n_config_free(ptr noundef nonnull %377) #9
  %583 = icmp eq i32 %582, -1
  br i1 %583, label %584, label %608

584:                                              ; preds = %579
  %585 = tail call ptr @__errno_location() #10
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = call i32 @s2n_print_stacktrace(ptr noundef %587) #9
  %589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %590 = trunc nuw i8 %589 to i1
  br i1 %590, label %591, label %595

591:                                              ; preds = %584
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = call i32 @fileno(ptr noundef %592) #9
  %594 = call i32 @isatty(i32 noundef %593) #9
  %.not331 = icmp eq i32 %594, 0
  br i1 %.not331, label %595, label %596

595:                                              ; preds = %591, %584
  br label %596

596:                                              ; preds = %591, %595
  %.str.4.sink561 = phi ptr [ @.str.4, %595 ], [ @.str, %591 ]
  store i32 %586, ptr %585, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call ptr @s2n_strerror(i32 noundef %600, ptr noundef nonnull @.str.3) #9
  %602 = load i32, ptr %599, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef nonnull @.str.3) #9
  %604 = load i32, ptr %585, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #9
  %606 = load i32, ptr %585, align 4, !tbaa !5
  %607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %597, ptr noundef nonnull %.str.4.sink561, i32 noundef %598, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 274, ptr noundef %601, ptr noundef %603, ptr noundef %605, i32 noundef %606) #11
  call void @exit(i32 noundef 1) #12
  unreachable

608:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  %609 = call zeroext i1 @s2n_is_in_fips_mode() #9
  br i1 %609, label %1081, label %610

610:                                              ; preds = %608
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call i32 (...) @s2n_enable_tls13_in_test() #9
  %614 = icmp eq i32 %613, -1
  br i1 %614, label %615, label %639

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

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

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

627:                                              ; preds = %622, %626
  %.str.4.sink572 = phi ptr [ @.str.4, %626 ], [ @.str, %622 ]
  store i32 %617, ptr %616, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.3) #9
  %633 = load i32, ptr %630, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.3) #9
  %635 = load i32, ptr %616, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #9
  %637 = load i32, ptr %616, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.4.sink572, i32 noundef %629, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.2, i32 noundef 281, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #11
  call void @exit(i32 noundef 1) #12
  unreachable

639:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  store ptr null, ptr %5, align 8, !tbaa !9
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %5, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.44) #9
  %643 = icmp eq i32 %642, -1
  br i1 %643, label %644, label %668

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

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

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

656:                                              ; preds = %651, %655
  %.str.4.sink583 = phi ptr [ @.str.4, %655 ], [ @.str, %651 ]
  store i32 %646, ptr %645, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef nonnull @.str.3) #9
  %662 = load i32, ptr %659, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef nonnull @.str.3) #9
  %664 = load i32, ptr %645, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #9
  %666 = load i32, ptr %645, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.4.sink583, i32 noundef %658, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 286, ptr noundef %661, ptr noundef %663, ptr noundef %665, i32 noundef %666) #11
  call void @exit(i32 noundef 1) #12
  unreachable

668:                                              ; preds = %639
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = add nsw i32 %669, 1
  store i32 %670, ptr @test_count, align 4, !tbaa !5
  %671 = call ptr @s2n_config_new() #9
  %672 = icmp eq ptr %671, null
  br i1 %672, label %673, label %697

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

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

684:                                              ; preds = %680, %673
  br label %685

685:                                              ; preds = %680, %684
  %.str.4.sink594 = phi ptr [ @.str.4, %684 ], [ @.str, %680 ]
  store i32 %675, ptr %674, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror(i32 noundef %689, ptr noundef nonnull @.str.3) #9
  %691 = load i32, ptr %688, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef nonnull @.str.3) #9
  %693 = load i32, ptr %674, align 4, !tbaa !5
  %694 = call ptr @strerror(i32 noundef %693) #9
  %695 = load i32, ptr %674, align 4, !tbaa !5
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %686, ptr noundef nonnull %.str.4.sink594, i32 noundef %687, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 288, ptr noundef %690, ptr noundef %692, ptr noundef %694, i32 noundef %695) #11
  call void @exit(i32 noundef 1) #12
  unreachable

697:                                              ; preds = %668
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr @test_count, align 4, !tbaa !5
  %700 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %671, ptr noundef nonnull @.str.62) #9
  %701 = icmp eq i32 %700, -1
  br i1 %701, label %702, label %726

702:                                              ; preds = %697
  %703 = tail call ptr @__errno_location() #10
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 @s2n_print_stacktrace(ptr noundef %705) #9
  %707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %709, label %713

709:                                              ; preds = %702
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = call i32 @fileno(ptr noundef %710) #9
  %712 = call i32 @isatty(i32 noundef %711) #9
  %.not288 = icmp eq i32 %712, 0
  br i1 %.not288, label %713, label %714

713:                                              ; preds = %709, %702
  br label %714

714:                                              ; preds = %709, %713
  %.str.4.sink605 = phi ptr [ @.str.4, %713 ], [ @.str, %709 ]
  store i32 %704, ptr %703, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror(i32 noundef %718, ptr noundef nonnull @.str.3) #9
  %720 = load i32, ptr %717, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef nonnull @.str.3) #9
  %722 = load i32, ptr %703, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #9
  %724 = load i32, ptr %703, align 4, !tbaa !5
  %725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %715, ptr noundef nonnull %.str.4.sink605, i32 noundef %716, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 290, ptr noundef %719, ptr noundef %721, ptr noundef %723, i32 noundef %724) #11
  call void @exit(i32 noundef 1) #12
  unreachable

726:                                              ; preds = %697
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr @test_count, align 4, !tbaa !5
  %729 = load ptr, ptr %5, align 8, !tbaa !9
  %730 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %671, ptr noundef %729) #9
  %731 = icmp eq i32 %730, -1
  br i1 %731, label %732, label %756

732:                                              ; preds = %726
  %733 = tail call ptr @__errno_location() #10
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @s2n_print_stacktrace(ptr noundef %735) #9
  %737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %738 = trunc nuw i8 %737 to i1
  br i1 %738, label %739, label %743

739:                                              ; preds = %732
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @fileno(ptr noundef %740) #9
  %742 = call i32 @isatty(i32 noundef %741) #9
  %.not287 = icmp eq i32 %742, 0
  br i1 %.not287, label %743, label %744

743:                                              ; preds = %739, %732
  br label %744

744:                                              ; preds = %739, %743
  %.str.4.sink616 = phi ptr [ @.str.4, %743 ], [ @.str, %739 ]
  store i32 %734, ptr %733, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef nonnull @.str.3) #9
  %750 = load i32, ptr %747, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef nonnull @.str.3) #9
  %752 = load i32, ptr %733, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #9
  %754 = load i32, ptr %733, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %745, ptr noundef nonnull %.str.4.sink616, i32 noundef %746, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 291, ptr noundef %749, ptr noundef %751, ptr noundef %753, i32 noundef %754) #11
  call void @exit(i32 noundef 1) #12
  unreachable

756:                                              ; preds = %726
  %757 = load i32, ptr @test_count, align 4, !tbaa !5
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr @test_count, align 4, !tbaa !5
  %759 = call i32 @s2n_config_set_verify_after_sign(ptr noundef nonnull %671, i32 noundef 1) #9
  %760 = icmp eq i32 %759, -1
  br i1 %760, label %761, label %785

761:                                              ; preds = %756
  %762 = tail call ptr @__errno_location() #10
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @s2n_print_stacktrace(ptr noundef %764) #9
  %766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc nuw i8 %766 to i1
  br i1 %767, label %768, label %772

768:                                              ; preds = %761
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @fileno(ptr noundef %769) #9
  %771 = call i32 @isatty(i32 noundef %770) #9
  %.not286 = icmp eq i32 %771, 0
  br i1 %.not286, label %772, label %773

772:                                              ; preds = %768, %761
  br label %773

773:                                              ; preds = %768, %772
  %.str.4.sink627 = phi ptr [ @.str.4, %772 ], [ @.str, %768 ]
  store i32 %763, ptr %762, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror(i32 noundef %777, ptr noundef nonnull @.str.3) #9
  %779 = load i32, ptr %776, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror_debug(i32 noundef %779, ptr noundef nonnull @.str.3) #9
  %781 = load i32, ptr %762, align 4, !tbaa !5
  %782 = call ptr @strerror(i32 noundef %781) #9
  %783 = load i32, ptr %762, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef nonnull %.str.4.sink627, i32 noundef %775, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 293, ptr noundef %778, ptr noundef %780, ptr noundef %782, i32 noundef %783) #11
  call void @exit(i32 noundef 1) #12
  unreachable

785:                                              ; preds = %756
  %786 = load i32, ptr @test_type, align 4, !tbaa !5
  %787 = icmp eq i32 %786, 1
  br i1 %787, label %788, label %817

788:                                              ; preds = %785
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr @test_count, align 4, !tbaa !5
  %791 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %671, ptr noundef nonnull @async_pkey_fn) #9
  %792 = icmp eq i32 %791, -1
  br i1 %792, label %793, label %817

793:                                              ; preds = %788
  %794 = tail call ptr @__errno_location() #10
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @s2n_print_stacktrace(ptr noundef %796) #9
  %798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %799 = trunc nuw i8 %798 to i1
  br i1 %799, label %800, label %804

800:                                              ; preds = %793
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = call i32 @fileno(ptr noundef %801) #9
  %803 = call i32 @isatty(i32 noundef %802) #9
  %.not285 = icmp eq i32 %803, 0
  br i1 %.not285, label %804, label %805

804:                                              ; preds = %800, %793
  br label %805

805:                                              ; preds = %800, %804
  %.str.4.sink638 = phi ptr [ @.str.4, %804 ], [ @.str, %800 ]
  store i32 %795, ptr %794, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror(i32 noundef %809, ptr noundef nonnull @.str.3) #9
  %811 = load i32, ptr %808, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror_debug(i32 noundef %811, ptr noundef nonnull @.str.3) #9
  %813 = load i32, ptr %794, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #9
  %815 = load i32, ptr %794, align 4, !tbaa !5
  %816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %806, ptr noundef nonnull %.str.4.sink638, i32 noundef %807, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 295, ptr noundef %810, ptr noundef %812, ptr noundef %814, i32 noundef %815) #11
  call void @exit(i32 noundef 1) #12
  unreachable

817:                                              ; preds = %785, %788
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = add nsw i32 %818, 1
  store i32 %819, ptr @test_count, align 4, !tbaa !5
  %820 = call ptr @s2n_config_new() #9
  %821 = icmp eq ptr %820, null
  br i1 %821, label %822, label %846

822:                                              ; preds = %817
  %823 = tail call ptr @__errno_location() #10
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @s2n_print_stacktrace(ptr noundef %825) #9
  %827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %828 = trunc nuw i8 %827 to i1
  br i1 %828, label %829, label %833

829:                                              ; preds = %822
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @fileno(ptr noundef %830) #9
  %832 = call i32 @isatty(i32 noundef %831) #9
  %.not284 = icmp eq i32 %832, 0
  br i1 %.not284, label %833, label %834

833:                                              ; preds = %829, %822
  br label %834

834:                                              ; preds = %829, %833
  %.str.4.sink649 = phi ptr [ @.str.4, %833 ], [ @.str, %829 ]
  store i32 %824, ptr %823, align 4, !tbaa !5
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @s2n_strerror(i32 noundef %838, ptr noundef nonnull @.str.3) #9
  %840 = load i32, ptr %837, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror_debug(i32 noundef %840, ptr noundef nonnull @.str.3) #9
  %842 = load i32, ptr %823, align 4, !tbaa !5
  %843 = call ptr @strerror(i32 noundef %842) #9
  %844 = load i32, ptr %823, align 4, !tbaa !5
  %845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %835, ptr noundef nonnull %.str.4.sink649, i32 noundef %836, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 298, ptr noundef %839, ptr noundef %841, ptr noundef %843, i32 noundef %844) #11
  call void @exit(i32 noundef 1) #12
  unreachable

846:                                              ; preds = %817
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = add nsw i32 %847, 1
  store i32 %848, ptr @test_count, align 4, !tbaa !5
  %849 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %820, ptr noundef nonnull @.str.64) #9
  %850 = icmp eq i32 %849, -1
  br i1 %850, label %851, label %875

851:                                              ; preds = %846
  %852 = tail call ptr @__errno_location() #10
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @s2n_print_stacktrace(ptr noundef %854) #9
  %856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %857 = trunc nuw i8 %856 to i1
  br i1 %857, label %858, label %862

858:                                              ; preds = %851
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @fileno(ptr noundef %859) #9
  %861 = call i32 @isatty(i32 noundef %860) #9
  %.not283 = icmp eq i32 %861, 0
  br i1 %.not283, label %862, label %863

862:                                              ; preds = %858, %851
  br label %863

863:                                              ; preds = %858, %862
  %.str.4.sink660 = phi ptr [ @.str.4, %862 ], [ @.str, %858 ]
  store i32 %853, ptr %852, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror(i32 noundef %867, ptr noundef nonnull @.str.3) #9
  %869 = load i32, ptr %866, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef nonnull @.str.3) #9
  %871 = load i32, ptr %852, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #9
  %873 = load i32, ptr %852, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %864, ptr noundef nonnull %.str.4.sink660, i32 noundef %865, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 299, ptr noundef %868, ptr noundef %870, ptr noundef %872, i32 noundef %873) #11
  call void @exit(i32 noundef 1) #12
  unreachable

875:                                              ; preds = %846
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %820) #9
  %879 = icmp eq i32 %878, -1
  br i1 %879, label %880, label %904

880:                                              ; preds = %875
  %881 = tail call ptr @__errno_location() #10
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = call i32 @s2n_print_stacktrace(ptr noundef %883) #9
  %885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %886 = trunc nuw i8 %885 to i1
  br i1 %886, label %887, label %891

887:                                              ; preds = %880
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @fileno(ptr noundef %888) #9
  %890 = call i32 @isatty(i32 noundef %889) #9
  %.not282 = icmp eq i32 %890, 0
  br i1 %.not282, label %891, label %892

891:                                              ; preds = %887, %880
  br label %892

892:                                              ; preds = %887, %891
  %.str.4.sink671 = phi ptr [ @.str.4, %891 ], [ @.str, %887 ]
  store i32 %882, ptr %881, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.3) #9
  %898 = load i32, ptr %895, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.3) #9
  %900 = load i32, ptr %881, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #9
  %902 = load i32, ptr %881, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef nonnull %.str.4.sink671, i32 noundef %894, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 300, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #11
  call void @exit(i32 noundef 1) #12
  unreachable

904:                                              ; preds = %875
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @test_count, align 4, !tbaa !5
  %907 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %820, ptr noundef nonnull @.str.43, ptr noundef null) #9
  %908 = icmp eq i32 %907, -1
  br i1 %908, label %909, label %933

909:                                              ; preds = %904
  %910 = tail call ptr @__errno_location() #10
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = call i32 @s2n_print_stacktrace(ptr noundef %912) #9
  %914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %915 = trunc nuw i8 %914 to i1
  br i1 %915, label %916, label %920

916:                                              ; preds = %909
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = call i32 @fileno(ptr noundef %917) #9
  %919 = call i32 @isatty(i32 noundef %918) #9
  %.not281 = icmp eq i32 %919, 0
  br i1 %.not281, label %920, label %921

920:                                              ; preds = %916, %909
  br label %921

921:                                              ; preds = %916, %920
  %.str.4.sink682 = phi ptr [ @.str.4, %920 ], [ @.str, %916 ]
  store i32 %911, ptr %910, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef nonnull @.str.3) #9
  %927 = load i32, ptr %924, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.3) #9
  %929 = load i32, ptr %910, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #9
  %931 = load i32, ptr %910, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef nonnull %.str.4.sink682, i32 noundef %923, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 302, ptr noundef %926, ptr noundef %928, ptr noundef %930, i32 noundef %931) #11
  call void @exit(i32 noundef 1) #12
  unreachable

933:                                              ; preds = %904
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @test_count, align 4, !tbaa !5
  %936 = load ptr, ptr %5, align 8, !tbaa !9
  %937 = call i32 @test_cipher_preferences(ptr noundef nonnull %671, ptr noundef nonnull %820, ptr noundef %936, i32 noundef 1)
  %938 = icmp eq i32 %937, -1
  br i1 %938, label %939, label %963

939:                                              ; preds = %933
  %940 = tail call ptr @__errno_location() #10
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @s2n_print_stacktrace(ptr noundef %942) #9
  %944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %945 = trunc nuw i8 %944 to i1
  br i1 %945, label %946, label %950

946:                                              ; preds = %939
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @fileno(ptr noundef %947) #9
  %949 = call i32 @isatty(i32 noundef %948) #9
  %.not280 = icmp eq i32 %949, 0
  br i1 %.not280, label %950, label %951

950:                                              ; preds = %946, %939
  br label %951

951:                                              ; preds = %946, %950
  %.str.4.sink693 = phi ptr [ @.str.4, %950 ], [ @.str, %946 ]
  store i32 %941, ptr %940, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef nonnull @.str.3) #9
  %957 = load i32, ptr %954, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef nonnull @.str.3) #9
  %959 = load i32, ptr %940, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #9
  %961 = load i32, ptr %940, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %952, ptr noundef nonnull %.str.4.sink693, i32 noundef %953, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 307, ptr noundef %956, ptr noundef %958, ptr noundef %960, i32 noundef %961) #11
  call void @exit(i32 noundef 1) #12
  unreachable

963:                                              ; preds = %933
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = load ptr, ptr %5, align 8, !tbaa !9
  %967 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %966) #9
  %968 = icmp eq i32 %967, -1
  br i1 %968, label %969, label %993

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

976:                                              ; preds = %969
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @fileno(ptr noundef %977) #9
  %979 = call i32 @isatty(i32 noundef %978) #9
  %.not279 = icmp eq i32 %979, 0
  br i1 %.not279, label %980, label %981

980:                                              ; preds = %976, %969
  br label %981

981:                                              ; preds = %976, %980
  %.str.4.sink704 = phi ptr [ @.str.4, %980 ], [ @.str, %976 ]
  store i32 %971, ptr %970, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror(i32 noundef %985, ptr noundef nonnull @.str.3) #9
  %987 = load i32, ptr %984, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror_debug(i32 noundef %987, ptr noundef nonnull @.str.3) #9
  %989 = load i32, ptr %970, align 4, !tbaa !5
  %990 = call ptr @strerror(i32 noundef %989) #9
  %991 = load i32, ptr %970, align 4, !tbaa !5
  %992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef nonnull %.str.4.sink704, i32 noundef %983, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 309, ptr noundef %986, ptr noundef %988, ptr noundef %990, i32 noundef %991) #11
  call void @exit(i32 noundef 1) #12
  unreachable

993:                                              ; preds = %963
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = call i32 @s2n_config_free(ptr noundef nonnull %671) #9
  %997 = icmp eq i32 %996, -1
  br i1 %997, label %998, label %1022

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

1005:                                             ; preds = %998
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @fileno(ptr noundef %1006) #9
  %1008 = call i32 @isatty(i32 noundef %1007) #9
  %.not278 = icmp eq i32 %1008, 0
  br i1 %.not278, label %1009, label %1010

1009:                                             ; preds = %1005, %998
  br label %1010

1010:                                             ; preds = %1005, %1009
  %.str.4.sink715 = phi ptr [ @.str.4, %1009 ], [ @.str, %1005 ]
  store i32 %1000, ptr %999, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror(i32 noundef %1014, ptr noundef nonnull @.str.3) #9
  %1016 = load i32, ptr %1013, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef %1016, ptr noundef nonnull @.str.3) #9
  %1018 = load i32, ptr %999, align 4, !tbaa !5
  %1019 = call ptr @strerror(i32 noundef %1018) #9
  %1020 = load i32, ptr %999, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef nonnull %.str.4.sink715, i32 noundef %1012, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 310, ptr noundef %1015, ptr noundef %1017, ptr noundef %1019, i32 noundef %1020) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1022:                                             ; preds = %993
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, 1
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = call i32 @s2n_config_free(ptr noundef nonnull %820) #9
  %1026 = icmp eq i32 %1025, -1
  br i1 %1026, label %1027, label %1051

1027:                                             ; preds = %1022
  %1028 = tail call ptr @__errno_location() #10
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @s2n_print_stacktrace(ptr noundef %1030) #9
  %1032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1033 = trunc nuw i8 %1032 to i1
  br i1 %1033, label %1034, label %1038

1034:                                             ; preds = %1027
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = call i32 @fileno(ptr noundef %1035) #9
  %1037 = call i32 @isatty(i32 noundef %1036) #9
  %.not277 = icmp eq i32 %1037, 0
  br i1 %.not277, label %1038, label %1039

1038:                                             ; preds = %1034, %1027
  br label %1039

1039:                                             ; preds = %1034, %1038
  %.str.4.sink726 = phi ptr [ @.str.4, %1038 ], [ @.str, %1034 ]
  store i32 %1029, ptr %1028, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef nonnull @.str.3) #9
  %1045 = load i32, ptr %1042, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef nonnull @.str.3) #9
  %1047 = load i32, ptr %1028, align 4, !tbaa !5
  %1048 = call ptr @strerror(i32 noundef %1047) #9
  %1049 = load i32, ptr %1028, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef nonnull %.str.4.sink726, i32 noundef %1041, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 311, ptr noundef %1044, ptr noundef %1046, ptr noundef %1048, i32 noundef %1049) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1051:                                             ; preds = %1022
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr @test_count, align 4, !tbaa !5
  %1054 = call i32 (...) @s2n_disable_tls13_in_test() #9
  %1055 = icmp eq i32 %1054, -1
  br i1 %1055, label %1056, label %1080

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

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @fileno(ptr noundef %1064) #9
  %1066 = call i32 @isatty(i32 noundef %1065) #9
  %.not276 = icmp eq i32 %1066, 0
  br i1 %.not276, label %1067, label %1068

1067:                                             ; preds = %1063, %1056
  br label %1068

1068:                                             ; preds = %1063, %1067
  %.str.4.sink737 = phi ptr [ @.str.4, %1067 ], [ @.str, %1063 ]
  store i32 %1058, ptr %1057, 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 nonnull @.str.3) #9
  %1074 = load i32, ptr %1071, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror_debug(i32 noundef %1074, ptr noundef nonnull @.str.3) #9
  %1076 = load i32, ptr %1057, align 4, !tbaa !5
  %1077 = call ptr @strerror(i32 noundef %1076) #9
  %1078 = load i32, ptr %1057, align 4, !tbaa !5
  %1079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef nonnull %.str.4.sink737, i32 noundef %1070, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 312, ptr noundef %1073, ptr noundef %1075, ptr noundef %1077, i32 noundef %1078) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1080:                                             ; preds = %1051
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %1081

1081:                                             ; preds = %1080, %608
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = add nsw i32 %1082, 1
  store i32 %1083, ptr @test_count, align 4, !tbaa !5
  %1084 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %6, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.67) #9
  %1085 = icmp eq i32 %1084, -1
  br i1 %1085, label %1086, label %1110

1086:                                             ; preds = %1081
  %1087 = tail call ptr @__errno_location() #10
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @s2n_print_stacktrace(ptr noundef %1089) #9
  %1091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1092 = trunc nuw i8 %1091 to i1
  br i1 %1092, label %1093, label %1097

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

1097:                                             ; preds = %1093, %1086
  br label %1098

1098:                                             ; preds = %1093, %1097
  %.str.4.sink748 = phi ptr [ @.str.4, %1097 ], [ @.str, %1093 ]
  store i32 %1088, ptr %1087, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef nonnull @.str.3) #9
  %1104 = load i32, ptr %1101, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror_debug(i32 noundef %1104, ptr noundef nonnull @.str.3) #9
  %1106 = load i32, ptr %1087, align 4, !tbaa !5
  %1107 = call ptr @strerror(i32 noundef %1106) #9
  %1108 = load i32, ptr %1087, align 4, !tbaa !5
  %1109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef nonnull %.str.4.sink748, i32 noundef %1100, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 322, ptr noundef %1103, ptr noundef %1105, ptr noundef %1107, i32 noundef %1108) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1110:                                             ; preds = %1081
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr @test_count, align 4, !tbaa !5
  %1113 = call ptr @s2n_config_new() #9
  %1114 = icmp eq ptr %1113, null
  br i1 %1114, label %1115, label %1139

1115:                                             ; preds = %1110
  %1116 = tail call ptr @__errno_location() #10
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1119 = call i32 @s2n_print_stacktrace(ptr noundef %1118) #9
  %1120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1121 = trunc nuw i8 %1120 to i1
  br i1 %1121, label %1122, label %1126

1122:                                             ; preds = %1115
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = call i32 @fileno(ptr noundef %1123) #9
  %1125 = call i32 @isatty(i32 noundef %1124) #9
  %.not329 = icmp eq i32 %1125, 0
  br i1 %.not329, label %1126, label %1127

1126:                                             ; preds = %1122, %1115
  br label %1127

1127:                                             ; preds = %1122, %1126
  %.str.4.sink759 = phi ptr [ @.str.4, %1126 ], [ @.str, %1122 ]
  store i32 %1117, ptr %1116, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef nonnull @.str.3) #9
  %1133 = load i32, ptr %1130, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef nonnull @.str.3) #9
  %1135 = load i32, ptr %1116, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #9
  %1137 = load i32, ptr %1116, align 4, !tbaa !5
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1128, ptr noundef nonnull %.str.4.sink759, i32 noundef %1129, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 324, ptr noundef %1132, ptr noundef %1134, ptr noundef %1136, i32 noundef %1137) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1139:                                             ; preds = %1110
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = add nsw i32 %1140, 1
  store i32 %1141, ptr @test_count, align 4, !tbaa !5
  %1142 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1113, ptr noundef nonnull @.str.69) #9
  %1143 = icmp eq i32 %1142, -1
  br i1 %1143, label %1144, label %1168

1144:                                             ; preds = %1139
  %1145 = tail call ptr @__errno_location() #10
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @s2n_print_stacktrace(ptr noundef %1147) #9
  %1149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1150 = trunc nuw i8 %1149 to i1
  br i1 %1150, label %1151, label %1155

1151:                                             ; preds = %1144
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @fileno(ptr noundef %1152) #9
  %1154 = call i32 @isatty(i32 noundef %1153) #9
  %.not328 = icmp eq i32 %1154, 0
  br i1 %.not328, label %1155, label %1156

1155:                                             ; preds = %1151, %1144
  br label %1156

1156:                                             ; preds = %1151, %1155
  %.str.4.sink770 = phi ptr [ @.str.4, %1155 ], [ @.str, %1151 ]
  store i32 %1146, ptr %1145, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef nonnull @.str.3) #9
  %1162 = load i32, ptr %1159, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror_debug(i32 noundef %1162, ptr noundef nonnull @.str.3) #9
  %1164 = load i32, ptr %1145, align 4, !tbaa !5
  %1165 = call ptr @strerror(i32 noundef %1164) #9
  %1166 = load i32, ptr %1145, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1157, ptr noundef nonnull %.str.4.sink770, i32 noundef %1158, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 325, ptr noundef %1161, ptr noundef %1163, ptr noundef %1165, i32 noundef %1166) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1168:                                             ; preds = %1139
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr @test_count, align 4, !tbaa !5
  %1171 = load ptr, ptr %6, align 8, !tbaa !9
  %1172 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1113, ptr noundef %1171) #9
  %1173 = icmp eq i32 %1172, -1
  br i1 %1173, label %1174, label %1198

1174:                                             ; preds = %1168
  %1175 = tail call ptr @__errno_location() #10
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = call i32 @s2n_print_stacktrace(ptr noundef %1177) #9
  %1179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1180 = trunc nuw i8 %1179 to i1
  br i1 %1180, label %1181, label %1185

1181:                                             ; preds = %1174
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = call i32 @fileno(ptr noundef %1182) #9
  %1184 = call i32 @isatty(i32 noundef %1183) #9
  %.not327 = icmp eq i32 %1184, 0
  br i1 %.not327, label %1185, label %1186

1185:                                             ; preds = %1181, %1174
  br label %1186

1186:                                             ; preds = %1181, %1185
  %.str.4.sink781 = phi ptr [ @.str.4, %1185 ], [ @.str, %1181 ]
  store i32 %1176, ptr %1175, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror(i32 noundef %1190, ptr noundef nonnull @.str.3) #9
  %1192 = load i32, ptr %1189, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror_debug(i32 noundef %1192, ptr noundef nonnull @.str.3) #9
  %1194 = load i32, ptr %1175, align 4, !tbaa !5
  %1195 = call ptr @strerror(i32 noundef %1194) #9
  %1196 = load i32, ptr %1175, align 4, !tbaa !5
  %1197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1187, ptr noundef nonnull %.str.4.sink781, i32 noundef %1188, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 326, ptr noundef %1191, ptr noundef %1193, ptr noundef %1195, i32 noundef %1196) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1198:                                             ; preds = %1168
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = add nsw i32 %1199, 1
  store i32 %1200, ptr @test_count, align 4, !tbaa !5
  %1201 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %1113, ptr noundef nonnull %3) #9
  %1202 = icmp eq i32 %1201, -1
  br i1 %1202, label %1203, label %1227

1203:                                             ; preds = %1198
  %1204 = tail call ptr @__errno_location() #10
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @s2n_print_stacktrace(ptr noundef %1206) #9
  %1208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1209 = trunc nuw i8 %1208 to i1
  br i1 %1209, label %1210, label %1214

1210:                                             ; preds = %1203
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = call i32 @fileno(ptr noundef %1211) #9
  %1213 = call i32 @isatty(i32 noundef %1212) #9
  %.not326 = icmp eq i32 %1213, 0
  br i1 %.not326, label %1214, label %1215

1214:                                             ; preds = %1210, %1203
  br label %1215

1215:                                             ; preds = %1210, %1214
  %.str.4.sink792 = phi ptr [ @.str.4, %1214 ], [ @.str, %1210 ]
  store i32 %1205, ptr %1204, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror(i32 noundef %1219, ptr noundef nonnull @.str.3) #9
  %1221 = load i32, ptr %1218, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror_debug(i32 noundef %1221, ptr noundef nonnull @.str.3) #9
  %1223 = load i32, ptr %1204, align 4, !tbaa !5
  %1224 = call ptr @strerror(i32 noundef %1223) #9
  %1225 = load i32, ptr %1204, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1216, ptr noundef nonnull %.str.4.sink792, i32 noundef %1217, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 327, ptr noundef %1220, ptr noundef %1222, ptr noundef %1224, i32 noundef %1225) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1227:                                             ; preds = %1198
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr @test_count, align 4, !tbaa !5
  %1230 = call i32 @s2n_config_set_verify_after_sign(ptr noundef nonnull %1113, i32 noundef 1) #9
  %1231 = icmp eq i32 %1230, -1
  br i1 %1231, label %1232, label %1256

1232:                                             ; preds = %1227
  %1233 = tail call ptr @__errno_location() #10
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #9
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1232
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #9
  %1242 = call i32 @isatty(i32 noundef %1241) #9
  %.not325 = icmp eq i32 %1242, 0
  br i1 %.not325, label %1243, label %1244

1243:                                             ; preds = %1239, %1232
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.4.sink803 = phi ptr [ @.str.4, %1243 ], [ @.str, %1239 ]
  store i32 %1234, ptr %1233, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef nonnull @.str.3) #9
  %1250 = load i32, ptr %1247, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1250, ptr noundef nonnull @.str.3) #9
  %1252 = load i32, ptr %1233, align 4, !tbaa !5
  %1253 = call ptr @strerror(i32 noundef %1252) #9
  %1254 = load i32, ptr %1233, align 4, !tbaa !5
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.4.sink803, i32 noundef %1246, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 329, ptr noundef %1249, ptr noundef %1251, ptr noundef %1253, i32 noundef %1254) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1256:                                             ; preds = %1227
  %1257 = load i32, ptr @test_type, align 4, !tbaa !5
  %1258 = icmp eq i32 %1257, 1
  br i1 %1258, label %1259, label %1288

1259:                                             ; preds = %1256
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr @test_count, align 4, !tbaa !5
  %1262 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %1113, ptr noundef nonnull @async_pkey_fn) #9
  %1263 = icmp eq i32 %1262, -1
  br i1 %1263, label %1264, label %1288

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

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

1275:                                             ; preds = %1271, %1264
  br label %1276

1276:                                             ; preds = %1271, %1275
  %.str.4.sink814 = phi ptr [ @.str.4, %1275 ], [ @.str, %1271 ]
  store i32 %1266, ptr %1265, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef nonnull @.str.3) #9
  %1282 = load i32, ptr %1279, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef nonnull @.str.3) #9
  %1284 = load i32, ptr %1265, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #9
  %1286 = load i32, ptr %1265, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1277, ptr noundef nonnull %.str.4.sink814, i32 noundef %1278, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 331, ptr noundef %1281, ptr noundef %1283, ptr noundef %1285, i32 noundef %1286) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1288:                                             ; preds = %1256, %1259
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = call ptr @s2n_config_new() #9
  %1292 = icmp eq ptr %1291, null
  br i1 %1292, label %1293, label %1317

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

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

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

1305:                                             ; preds = %1300, %1304
  %.str.4.sink825 = phi ptr [ @.str.4, %1304 ], [ @.str, %1300 ]
  store i32 %1295, ptr %1294, align 4, !tbaa !5
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror(i32 noundef %1309, ptr noundef nonnull @.str.3) #9
  %1311 = load i32, ptr %1308, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror_debug(i32 noundef %1311, ptr noundef nonnull @.str.3) #9
  %1313 = load i32, ptr %1294, align 4, !tbaa !5
  %1314 = call ptr @strerror(i32 noundef %1313) #9
  %1315 = load i32, ptr %1294, align 4, !tbaa !5
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef nonnull %.str.4.sink825, i32 noundef %1307, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 334, ptr noundef %1310, ptr noundef %1312, ptr noundef %1314, i32 noundef %1315) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1317:                                             ; preds = %1288
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr @test_count, align 4, !tbaa !5
  %1320 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1291, ptr noundef nonnull @.str.69) #9
  %1321 = icmp eq i32 %1320, -1
  br i1 %1321, label %1322, label %1346

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

1329:                                             ; preds = %1322
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @fileno(ptr noundef %1330) #9
  %1332 = call i32 @isatty(i32 noundef %1331) #9
  %.not322 = icmp eq i32 %1332, 0
  br i1 %.not322, label %1333, label %1334

1333:                                             ; preds = %1329, %1322
  br label %1334

1334:                                             ; preds = %1329, %1333
  %.str.4.sink836 = phi ptr [ @.str.4, %1333 ], [ @.str, %1329 ]
  store i32 %1324, ptr %1323, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef nonnull @.str.3) #9
  %1340 = load i32, ptr %1337, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef nonnull @.str.3) #9
  %1342 = load i32, ptr %1323, align 4, !tbaa !5
  %1343 = call ptr @strerror(i32 noundef %1342) #9
  %1344 = load i32, ptr %1323, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef nonnull %.str.4.sink836, i32 noundef %1336, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 335, ptr noundef %1339, ptr noundef %1341, ptr noundef %1343, i32 noundef %1344) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1346:                                             ; preds = %1317
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = add nsw i32 %1347, 1
  store i32 %1348, ptr @test_count, align 4, !tbaa !5
  %1349 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %1291) #9
  %1350 = icmp eq i32 %1349, -1
  br i1 %1350, label %1351, label %1375

1351:                                             ; preds = %1346
  %1352 = tail call ptr @__errno_location() #10
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = call i32 @s2n_print_stacktrace(ptr noundef %1354) #9
  %1356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1357 = trunc nuw i8 %1356 to i1
  br i1 %1357, label %1358, label %1362

1358:                                             ; preds = %1351
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @fileno(ptr noundef %1359) #9
  %1361 = call i32 @isatty(i32 noundef %1360) #9
  %.not321 = icmp eq i32 %1361, 0
  br i1 %.not321, label %1362, label %1363

1362:                                             ; preds = %1358, %1351
  br label %1363

1363:                                             ; preds = %1358, %1362
  %.str.4.sink847 = phi ptr [ @.str.4, %1362 ], [ @.str, %1358 ]
  store i32 %1353, ptr %1352, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = load i32, ptr @test_count, align 4, !tbaa !5
  %1366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror(i32 noundef %1367, ptr noundef nonnull @.str.3) #9
  %1369 = load i32, ptr %1366, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef nonnull @.str.3) #9
  %1371 = load i32, ptr %1352, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #9
  %1373 = load i32, ptr %1352, align 4, !tbaa !5
  %1374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1364, ptr noundef nonnull %.str.4.sink847, i32 noundef %1365, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 336, ptr noundef %1368, ptr noundef %1370, ptr noundef %1372, i32 noundef %1373) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1375:                                             ; preds = %1346
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %1291, ptr noundef nonnull @.str.66, ptr noundef null) #9
  %1379 = icmp eq i32 %1378, -1
  br i1 %1379, label %1380, label %1404

1380:                                             ; preds = %1375
  %1381 = tail call ptr @__errno_location() #10
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = call i32 @s2n_print_stacktrace(ptr noundef %1383) #9
  %1385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1386 = trunc nuw i8 %1385 to i1
  br i1 %1386, label %1387, label %1391

1387:                                             ; preds = %1380
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @fileno(ptr noundef %1388) #9
  %1390 = call i32 @isatty(i32 noundef %1389) #9
  %.not320 = icmp eq i32 %1390, 0
  br i1 %.not320, label %1391, label %1392

1391:                                             ; preds = %1387, %1380
  br label %1392

1392:                                             ; preds = %1387, %1391
  %.str.4.sink858 = phi ptr [ @.str.4, %1391 ], [ @.str, %1387 ]
  store i32 %1382, ptr %1381, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = load i32, ptr @test_count, align 4, !tbaa !5
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef nonnull @.str.3) #9
  %1398 = load i32, ptr %1395, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.3) #9
  %1400 = load i32, ptr %1381, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #9
  %1402 = load i32, ptr %1381, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef nonnull %.str.4.sink858, i32 noundef %1394, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 338, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1404:                                             ; preds = %1375
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = add nsw i32 %1405, 1
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = load ptr, ptr %6, align 8, !tbaa !9
  %1408 = call i32 @test_cipher_preferences(ptr noundef nonnull %1113, ptr noundef nonnull %1291, ptr noundef %1407, i32 noundef 3)
  %1409 = icmp eq i32 %1408, -1
  br i1 %1409, label %1410, label %1434

1410:                                             ; preds = %1404
  %1411 = tail call ptr @__errno_location() #10
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @s2n_print_stacktrace(ptr noundef %1413) #9
  %1415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1416 = trunc nuw i8 %1415 to i1
  br i1 %1416, label %1417, label %1421

1417:                                             ; preds = %1410
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @fileno(ptr noundef %1418) #9
  %1420 = call i32 @isatty(i32 noundef %1419) #9
  %.not319 = icmp eq i32 %1420, 0
  br i1 %.not319, label %1421, label %1422

1421:                                             ; preds = %1417, %1410
  br label %1422

1422:                                             ; preds = %1417, %1421
  %.str.4.sink869 = phi ptr [ @.str.4, %1421 ], [ @.str, %1417 ]
  store i32 %1412, ptr %1411, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror(i32 noundef %1426, ptr noundef nonnull @.str.3) #9
  %1428 = load i32, ptr %1425, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror_debug(i32 noundef %1428, ptr noundef nonnull @.str.3) #9
  %1430 = load i32, ptr %1411, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #9
  %1432 = load i32, ptr %1411, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1423, ptr noundef nonnull %.str.4.sink869, i32 noundef %1424, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 341, ptr noundef %1427, ptr noundef %1429, ptr noundef %1431, i32 noundef %1432) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1434:                                             ; preds = %1404
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = add nsw i32 %1435, 1
  store i32 %1436, ptr @test_count, align 4, !tbaa !5
  %1437 = load ptr, ptr %6, align 8, !tbaa !9
  %1438 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1437) #9
  %1439 = icmp eq i32 %1438, -1
  br i1 %1439, label %1440, label %1464

1440:                                             ; preds = %1434
  %1441 = tail call ptr @__errno_location() #10
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @s2n_print_stacktrace(ptr noundef %1443) #9
  %1445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1446 = trunc nuw i8 %1445 to i1
  br i1 %1446, label %1447, label %1451

1447:                                             ; preds = %1440
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = call i32 @fileno(ptr noundef %1448) #9
  %1450 = call i32 @isatty(i32 noundef %1449) #9
  %.not318 = icmp eq i32 %1450, 0
  br i1 %.not318, label %1451, label %1452

1451:                                             ; preds = %1447, %1440
  br label %1452

1452:                                             ; preds = %1447, %1451
  %.str.4.sink880 = phi ptr [ @.str.4, %1451 ], [ @.str, %1447 ]
  store i32 %1442, ptr %1441, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = load i32, ptr @test_count, align 4, !tbaa !5
  %1455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef nonnull @.str.3) #9
  %1458 = load i32, ptr %1455, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef %1458, ptr noundef nonnull @.str.3) #9
  %1460 = load i32, ptr %1441, align 4, !tbaa !5
  %1461 = call ptr @strerror(i32 noundef %1460) #9
  %1462 = load i32, ptr %1441, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1453, ptr noundef nonnull %.str.4.sink880, i32 noundef %1454, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 343, ptr noundef %1457, ptr noundef %1459, ptr noundef %1461, i32 noundef %1462) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1464:                                             ; preds = %1434
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = add nsw i32 %1465, 1
  store i32 %1466, ptr @test_count, align 4, !tbaa !5
  %1467 = call i32 @s2n_config_free(ptr noundef nonnull %1113) #9
  %1468 = icmp eq i32 %1467, -1
  br i1 %1468, label %1469, label %1493

1469:                                             ; preds = %1464
  %1470 = tail call ptr @__errno_location() #10
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = call i32 @s2n_print_stacktrace(ptr noundef %1472) #9
  %1474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1475 = trunc nuw i8 %1474 to i1
  br i1 %1475, label %1476, label %1480

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

1480:                                             ; preds = %1476, %1469
  br label %1481

1481:                                             ; preds = %1476, %1480
  %.str.4.sink891 = phi ptr [ @.str.4, %1480 ], [ @.str, %1476 ]
  store i32 %1471, ptr %1470, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef nonnull @.str.3) #9
  %1487 = load i32, ptr %1484, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef nonnull @.str.3) #9
  %1489 = load i32, ptr %1470, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #9
  %1491 = load i32, ptr %1470, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef nonnull %.str.4.sink891, i32 noundef %1483, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 344, ptr noundef %1486, ptr noundef %1488, ptr noundef %1490, i32 noundef %1491) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1493:                                             ; preds = %1464
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = add nsw i32 %1494, 1
  store i32 %1495, ptr @test_count, align 4, !tbaa !5
  %1496 = call i32 @s2n_config_free(ptr noundef nonnull %1291) #9
  %1497 = icmp eq i32 %1496, -1
  br i1 %1497, label %1498, label %1522

1498:                                             ; preds = %1493
  %1499 = tail call ptr @__errno_location() #10
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @s2n_print_stacktrace(ptr noundef %1501) #9
  %1503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1504 = trunc nuw i8 %1503 to i1
  br i1 %1504, label %1505, label %1509

1505:                                             ; preds = %1498
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #9
  %1508 = call i32 @isatty(i32 noundef %1507) #9
  %.not316 = icmp eq i32 %1508, 0
  br i1 %.not316, label %1509, label %1510

1509:                                             ; preds = %1505, %1498
  br label %1510

1510:                                             ; preds = %1505, %1509
  %.str.4.sink902 = phi ptr [ @.str.4, %1509 ], [ @.str, %1505 ]
  store i32 %1500, ptr %1499, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror(i32 noundef %1514, ptr noundef nonnull @.str.3) #9
  %1516 = load i32, ptr %1513, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror_debug(i32 noundef %1516, ptr noundef nonnull @.str.3) #9
  %1518 = load i32, ptr %1499, align 4, !tbaa !5
  %1519 = call ptr @strerror(i32 noundef %1518) #9
  %1520 = load i32, ptr %1499, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull %.str.4.sink902, i32 noundef %1512, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 345, ptr noundef %1515, ptr noundef %1517, ptr noundef %1519, i32 noundef %1520) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1522:                                             ; preds = %1493
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  %1523 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported() #9
  br i1 %1523, label %1524, label %1890

1524:                                             ; preds = %1522
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %7, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.rsa_pss_rsae_sig_schemes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #9
  store i8 3, ptr %8, align 8, !tbaa !15
  store ptr %7, ptr %135, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  store ptr null, ptr %9, align 8, !tbaa !9
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = add nsw i32 %1525, 1
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %9, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.44) #9
  %1528 = icmp eq i32 %1527, -1
  br i1 %1528, label %1529, label %1553

1529:                                             ; preds = %1524
  %1530 = tail call ptr @__errno_location() #10
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @s2n_print_stacktrace(ptr noundef %1532) #9
  %1534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1535 = trunc nuw i8 %1534 to i1
  br i1 %1535, label %1536, label %1540

1536:                                             ; preds = %1529
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @fileno(ptr noundef %1537) #9
  %1539 = call i32 @isatty(i32 noundef %1538) #9
  %.not315 = icmp eq i32 %1539, 0
  br i1 %.not315, label %1540, label %1541

1540:                                             ; preds = %1536, %1529
  br label %1541

1541:                                             ; preds = %1536, %1540
  %.str.4.sink913 = phi ptr [ @.str.4, %1540 ], [ @.str, %1536 ]
  store i32 %1531, ptr %1530, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef nonnull @.str.3) #9
  %1547 = load i32, ptr %1544, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef nonnull @.str.3) #9
  %1549 = load i32, ptr %1530, align 4, !tbaa !5
  %1550 = call ptr @strerror(i32 noundef %1549) #9
  %1551 = load i32, ptr %1530, align 4, !tbaa !5
  %1552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1542, ptr noundef nonnull %.str.4.sink913, i32 noundef %1543, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 366, ptr noundef %1546, ptr noundef %1548, ptr noundef %1550, i32 noundef %1551) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1553:                                             ; preds = %1524
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = add nsw i32 %1554, 1
  store i32 %1555, ptr @test_count, align 4, !tbaa !5
  %1556 = call ptr @s2n_config_new() #9
  %1557 = icmp eq ptr %1556, null
  br i1 %1557, label %1558, label %1582

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

1565:                                             ; preds = %1558
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @fileno(ptr noundef %1566) #9
  %1568 = call i32 @isatty(i32 noundef %1567) #9
  %.not314 = icmp eq i32 %1568, 0
  br i1 %.not314, label %1569, label %1570

1569:                                             ; preds = %1565, %1558
  br label %1570

1570:                                             ; preds = %1565, %1569
  %.str.4.sink924 = phi ptr [ @.str.4, %1569 ], [ @.str, %1565 ]
  store i32 %1560, ptr %1559, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror(i32 noundef %1574, ptr noundef nonnull @.str.3) #9
  %1576 = load i32, ptr %1573, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef nonnull @.str.3) #9
  %1578 = load i32, ptr %1559, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #9
  %1580 = load i32, ptr %1559, align 4, !tbaa !5
  %1581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1571, ptr noundef nonnull %.str.4.sink924, i32 noundef %1572, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 368, ptr noundef %1575, ptr noundef %1577, ptr noundef %1579, i32 noundef %1580) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1582:                                             ; preds = %1553
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr @test_count, align 4, !tbaa !5
  %1585 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1556, ptr noundef nonnull @.str.47) #9
  %1586 = icmp eq i32 %1585, -1
  br i1 %1586, label %1587, label %1611

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

1594:                                             ; preds = %1587
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = call i32 @fileno(ptr noundef %1595) #9
  %1597 = call i32 @isatty(i32 noundef %1596) #9
  %.not313 = icmp eq i32 %1597, 0
  br i1 %.not313, label %1598, label %1599

1598:                                             ; preds = %1594, %1587
  br label %1599

1599:                                             ; preds = %1594, %1598
  %.str.4.sink935 = phi ptr [ @.str.4, %1598 ], [ @.str, %1594 ]
  store i32 %1589, ptr %1588, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror(i32 noundef %1603, ptr noundef nonnull @.str.3) #9
  %1605 = load i32, ptr %1602, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror_debug(i32 noundef %1605, ptr noundef nonnull @.str.3) #9
  %1607 = load i32, ptr %1588, align 4, !tbaa !5
  %1608 = call ptr @strerror(i32 noundef %1607) #9
  %1609 = load i32, ptr %1588, align 4, !tbaa !5
  %1610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef nonnull %.str.4.sink935, i32 noundef %1601, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 370, ptr noundef %1604, ptr noundef %1606, ptr noundef %1608, i32 noundef %1609) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1611:                                             ; preds = %1582
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #9
  %1612 = getelementptr inbounds i8, ptr %1556, i64 96
  %1613 = load ptr, ptr %1612, align 8, !tbaa !18
  %1614 = load i8, ptr %1613, align 8, !tbaa !25
  store i8 %1614, ptr %10, align 8, !tbaa !25
  %1615 = getelementptr inbounds i8, ptr %1613, i64 8
  %1616 = load <2 x ptr>, ptr %1615, align 8, !tbaa !9
  store <2 x ptr> %1616, ptr %136, align 8, !tbaa !9
  store ptr %8, ptr %137, align 8, !tbaa !27
  store ptr null, ptr %138, align 8, !tbaa !28
  %1617 = getelementptr inbounds i8, ptr %1613, i64 40
  %1618 = load ptr, ptr %1617, align 8, !tbaa !29
  store ptr %1618, ptr %139, align 8, !tbaa !29
  store ptr null, ptr %140, align 8, !tbaa !30
  store i8 0, ptr %141, align 8, !tbaa !31
  store i16 0, ptr %142, align 1
  %1619 = load i32, ptr @test_count, align 4, !tbaa !5
  %1620 = add nsw i32 %1619, 1
  store i32 %1620, ptr @test_count, align 4, !tbaa !5
  %1621 = load ptr, ptr %9, align 8, !tbaa !9
  %1622 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1556, ptr noundef %1621) #9
  %1623 = icmp eq i32 %1622, -1
  br i1 %1623, label %1624, label %1648

1624:                                             ; preds = %1611
  %1625 = tail call ptr @__errno_location() #10
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @s2n_print_stacktrace(ptr noundef %1627) #9
  %1629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1630 = trunc nuw i8 %1629 to i1
  br i1 %1630, label %1631, label %1635

1631:                                             ; preds = %1624
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @fileno(ptr noundef %1632) #9
  %1634 = call i32 @isatty(i32 noundef %1633) #9
  %.not312 = icmp eq i32 %1634, 0
  br i1 %.not312, label %1635, label %1636

1635:                                             ; preds = %1631, %1624
  br label %1636

1636:                                             ; preds = %1631, %1635
  %.str.4.sink946 = phi ptr [ @.str.4, %1635 ], [ @.str, %1631 ]
  store i32 %1626, ptr %1625, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror(i32 noundef %1640, ptr noundef nonnull @.str.3) #9
  %1642 = load i32, ptr %1639, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef nonnull @.str.3) #9
  %1644 = load i32, ptr %1625, align 4, !tbaa !5
  %1645 = call ptr @strerror(i32 noundef %1644) #9
  %1646 = load i32, ptr %1625, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1637, ptr noundef nonnull %.str.4.sink946, i32 noundef %1638, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 380, ptr noundef %1641, ptr noundef %1643, ptr noundef %1645, i32 noundef %1646) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1648:                                             ; preds = %1611
  %1649 = load i32, ptr @test_count, align 4, !tbaa !5
  %1650 = add nsw i32 %1649, 1
  store i32 %1650, ptr @test_count, align 4, !tbaa !5
  %1651 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %1556, ptr noundef nonnull %3) #9
  %1652 = icmp eq i32 %1651, -1
  br i1 %1652, label %1653, label %1677

1653:                                             ; preds = %1648
  %1654 = tail call ptr @__errno_location() #10
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @s2n_print_stacktrace(ptr noundef %1656) #9
  %1658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1659 = trunc nuw i8 %1658 to i1
  br i1 %1659, label %1660, label %1664

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

1664:                                             ; preds = %1660, %1653
  br label %1665

1665:                                             ; preds = %1660, %1664
  %.str.4.sink957 = phi ptr [ @.str.4, %1664 ], [ @.str, %1660 ]
  store i32 %1655, ptr %1654, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef nonnull @.str.3) #9
  %1671 = load i32, ptr %1668, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror_debug(i32 noundef %1671, ptr noundef nonnull @.str.3) #9
  %1673 = load i32, ptr %1654, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #9
  %1675 = load i32, ptr %1654, align 4, !tbaa !5
  %1676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1666, ptr noundef nonnull %.str.4.sink957, i32 noundef %1667, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 381, ptr noundef %1670, ptr noundef %1672, ptr noundef %1674, i32 noundef %1675) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1677:                                             ; preds = %1648
  %1678 = load i32, ptr @test_type, align 4, !tbaa !5
  %1679 = icmp eq i32 %1678, 1
  br i1 %1679, label %1680, label %1709

1680:                                             ; preds = %1677
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = add nsw i32 %1681, 1
  store i32 %1682, ptr @test_count, align 4, !tbaa !5
  %1683 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %1556, ptr noundef nonnull @async_pkey_fn) #9
  %1684 = icmp eq i32 %1683, -1
  br i1 %1684, label %1685, label %1709

1685:                                             ; preds = %1680
  %1686 = tail call ptr @__errno_location() #10
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = call i32 @s2n_print_stacktrace(ptr noundef %1688) #9
  %1690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1691 = trunc nuw i8 %1690 to i1
  br i1 %1691, label %1692, label %1696

1692:                                             ; preds = %1685
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = call i32 @fileno(ptr noundef %1693) #9
  %1695 = call i32 @isatty(i32 noundef %1694) #9
  %.not310 = icmp eq i32 %1695, 0
  br i1 %.not310, label %1696, label %1697

1696:                                             ; preds = %1692, %1685
  br label %1697

1697:                                             ; preds = %1692, %1696
  %.str.4.sink968 = phi ptr [ @.str.4, %1696 ], [ @.str, %1692 ]
  store i32 %1687, ptr %1686, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror(i32 noundef %1701, ptr noundef nonnull @.str.3) #9
  %1703 = load i32, ptr %1700, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror_debug(i32 noundef %1703, ptr noundef nonnull @.str.3) #9
  %1705 = load i32, ptr %1686, align 4, !tbaa !5
  %1706 = call ptr @strerror(i32 noundef %1705) #9
  %1707 = load i32, ptr %1686, align 4, !tbaa !5
  %1708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef nonnull %.str.4.sink968, i32 noundef %1699, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 383, ptr noundef %1702, ptr noundef %1704, ptr noundef %1706, i32 noundef %1707) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1709:                                             ; preds = %1680, %1677
  store ptr %10, ptr %1612, align 8, !tbaa !18
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = add nsw i32 %1710, 1
  store i32 %1711, ptr @test_count, align 4, !tbaa !5
  %1712 = call ptr @s2n_config_new() #9
  %1713 = icmp eq ptr %1712, null
  br i1 %1713, label %1714, label %1738

1714:                                             ; preds = %1709
  %1715 = tail call ptr @__errno_location() #10
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @s2n_print_stacktrace(ptr noundef %1717) #9
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc nuw i8 %1719 to i1
  br i1 %1720, label %1721, label %1725

1721:                                             ; preds = %1714
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @fileno(ptr noundef %1722) #9
  %1724 = call i32 @isatty(i32 noundef %1723) #9
  %.not309 = icmp eq i32 %1724, 0
  br i1 %.not309, label %1725, label %1726

1725:                                             ; preds = %1721, %1714
  br label %1726

1726:                                             ; preds = %1721, %1725
  %.str.4.sink979 = phi ptr [ @.str.4, %1725 ], [ @.str, %1721 ]
  store i32 %1716, ptr %1715, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = load i32, ptr @test_count, align 4, !tbaa !5
  %1729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror(i32 noundef %1730, ptr noundef nonnull @.str.3) #9
  %1732 = load i32, ptr %1729, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef nonnull @.str.3) #9
  %1734 = load i32, ptr %1715, align 4, !tbaa !5
  %1735 = call ptr @strerror(i32 noundef %1734) #9
  %1736 = load i32, ptr %1715, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1727, ptr noundef nonnull %.str.4.sink979, i32 noundef %1728, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 387, ptr noundef %1731, ptr noundef %1733, ptr noundef %1735, i32 noundef %1736) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1738:                                             ; preds = %1709
  %1739 = load i32, ptr %1712, align 8
  %1740 = and i32 %1739, -161
  %1741 = or disjoint i32 %1740, 128
  store i32 %1741, ptr %1712, align 8
  %1742 = getelementptr inbounds i8, ptr %1712, i64 96
  store ptr %10, ptr %1742, align 8, !tbaa !18
  %1743 = load i32, ptr @test_count, align 4, !tbaa !5
  %1744 = add nsw i32 %1743, 1
  store i32 %1744, ptr @test_count, align 4, !tbaa !5
  %1745 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %1712, ptr noundef nonnull @.str.43, ptr noundef null) #9
  %1746 = icmp eq i32 %1745, -1
  br i1 %1746, label %1747, label %1771

1747:                                             ; preds = %1738
  %1748 = tail call ptr @__errno_location() #10
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @s2n_print_stacktrace(ptr noundef %1750) #9
  %1752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1753 = trunc nuw i8 %1752 to i1
  br i1 %1753, label %1754, label %1758

1754:                                             ; preds = %1747
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @fileno(ptr noundef %1755) #9
  %1757 = call i32 @isatty(i32 noundef %1756) #9
  %.not308 = icmp eq i32 %1757, 0
  br i1 %.not308, label %1758, label %1759

1758:                                             ; preds = %1754, %1747
  br label %1759

1759:                                             ; preds = %1754, %1758
  %.str.4.sink990 = phi ptr [ @.str.4, %1758 ], [ @.str, %1754 ]
  store i32 %1749, ptr %1748, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef nonnull @.str.3) #9
  %1765 = load i32, ptr %1762, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror_debug(i32 noundef %1765, ptr noundef nonnull @.str.3) #9
  %1767 = load i32, ptr %1748, align 4, !tbaa !5
  %1768 = call ptr @strerror(i32 noundef %1767) #9
  %1769 = load i32, ptr %1748, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef nonnull %.str.4.sink990, i32 noundef %1761, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 392, ptr noundef %1764, ptr noundef %1766, ptr noundef %1768, i32 noundef %1769) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1771:                                             ; preds = %1738
  %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 %9, align 8, !tbaa !9
  %1775 = call i32 @test_cipher_preferences(ptr noundef nonnull %1556, ptr noundef nonnull %1712, ptr noundef %1774, i32 noundef 224)
  %1776 = icmp eq i32 %1775, -1
  br i1 %1776, label %1777, label %1801

1777:                                             ; preds = %1771
  %1778 = tail call ptr @__errno_location() #10
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #9
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1777
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #9
  %1787 = call i32 @isatty(i32 noundef %1786) #9
  %.not307 = icmp eq i32 %1787, 0
  br i1 %.not307, label %1788, label %1789

1788:                                             ; preds = %1784, %1777
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.4.sink1001 = phi ptr [ @.str.4, %1788 ], [ @.str, %1784 ]
  store i32 %1779, ptr %1778, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror(i32 noundef %1793, ptr noundef nonnull @.str.3) #9
  %1795 = load i32, ptr %1792, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef nonnull @.str.3) #9
  %1797 = load i32, ptr %1778, align 4, !tbaa !5
  %1798 = call ptr @strerror(i32 noundef %1797) #9
  %1799 = load i32, ptr %1778, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.4.sink1001, i32 noundef %1791, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 395, ptr noundef %1794, ptr noundef %1796, ptr noundef %1798, i32 noundef %1799) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1801:                                             ; preds = %1771
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = add nsw i32 %1802, 1
  store i32 %1803, ptr @test_count, align 4, !tbaa !5
  %1804 = load ptr, ptr %9, align 8, !tbaa !9
  %1805 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1804) #9
  %1806 = icmp eq i32 %1805, -1
  br i1 %1806, label %1807, label %1831

1807:                                             ; preds = %1801
  %1808 = tail call ptr @__errno_location() #10
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @s2n_print_stacktrace(ptr noundef %1810) #9
  %1812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1813 = trunc nuw i8 %1812 to i1
  br i1 %1813, label %1814, label %1818

1814:                                             ; preds = %1807
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = call i32 @fileno(ptr noundef %1815) #9
  %1817 = call i32 @isatty(i32 noundef %1816) #9
  %.not306 = icmp eq i32 %1817, 0
  br i1 %.not306, label %1818, label %1819

1818:                                             ; preds = %1814, %1807
  br label %1819

1819:                                             ; preds = %1814, %1818
  %.str.4.sink1012 = phi ptr [ @.str.4, %1818 ], [ @.str, %1814 ]
  store i32 %1809, ptr %1808, 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 nonnull @.str.3) #9
  %1825 = load i32, ptr %1822, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef nonnull @.str.3) #9
  %1827 = load i32, ptr %1808, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #9
  %1829 = load i32, ptr %1808, align 4, !tbaa !5
  %1830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1820, ptr noundef nonnull %.str.4.sink1012, i32 noundef %1821, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 397, ptr noundef %1824, ptr noundef %1826, ptr noundef %1828, i32 noundef %1829) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1831:                                             ; preds = %1801
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = add nsw i32 %1832, 1
  store i32 %1833, ptr @test_count, align 4, !tbaa !5
  %1834 = call i32 @s2n_config_free(ptr noundef nonnull %1556) #9
  %1835 = icmp eq i32 %1834, -1
  br i1 %1835, label %1836, label %1860

1836:                                             ; preds = %1831
  %1837 = tail call ptr @__errno_location() #10
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = call i32 @s2n_print_stacktrace(ptr noundef %1839) #9
  %1841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1842 = trunc nuw i8 %1841 to i1
  br i1 %1842, label %1843, label %1847

1843:                                             ; preds = %1836
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = call i32 @fileno(ptr noundef %1844) #9
  %1846 = call i32 @isatty(i32 noundef %1845) #9
  %.not305 = icmp eq i32 %1846, 0
  br i1 %.not305, label %1847, label %1848

1847:                                             ; preds = %1843, %1836
  br label %1848

1848:                                             ; preds = %1843, %1847
  %.str.4.sink1023 = phi ptr [ @.str.4, %1847 ], [ @.str, %1843 ]
  store i32 %1838, ptr %1837, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror(i32 noundef %1852, ptr noundef nonnull @.str.3) #9
  %1854 = load i32, ptr %1851, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror_debug(i32 noundef %1854, ptr noundef nonnull @.str.3) #9
  %1856 = load i32, ptr %1837, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #9
  %1858 = load i32, ptr %1837, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1849, ptr noundef nonnull %.str.4.sink1023, i32 noundef %1850, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 398, ptr noundef %1853, ptr noundef %1855, ptr noundef %1857, i32 noundef %1858) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1860:                                             ; preds = %1831
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = add nsw i32 %1861, 1
  store i32 %1862, ptr @test_count, align 4, !tbaa !5
  %1863 = call i32 @s2n_config_free(ptr noundef nonnull %1712) #9
  %1864 = icmp eq i32 %1863, -1
  br i1 %1864, label %1865, label %1889

1865:                                             ; preds = %1860
  %1866 = tail call ptr @__errno_location() #10
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @s2n_print_stacktrace(ptr noundef %1868) #9
  %1870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1871 = trunc nuw i8 %1870 to i1
  br i1 %1871, label %1872, label %1876

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #9
  %1875 = call i32 @isatty(i32 noundef %1874) #9
  %.not304 = icmp eq i32 %1875, 0
  br i1 %.not304, label %1876, label %1877

1876:                                             ; preds = %1872, %1865
  br label %1877

1877:                                             ; preds = %1872, %1876
  %.str.4.sink1034 = phi ptr [ @.str.4, %1876 ], [ @.str, %1872 ]
  store i32 %1867, ptr %1866, align 4, !tbaa !5
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = load i32, ptr @test_count, align 4, !tbaa !5
  %1880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror(i32 noundef %1881, ptr noundef nonnull @.str.3) #9
  %1883 = load i32, ptr %1880, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef nonnull @.str.3) #9
  %1885 = load i32, ptr %1866, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #9
  %1887 = load i32, ptr %1866, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1878, ptr noundef nonnull %.str.4.sink1034, i32 noundef %1879, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 399, ptr noundef %1882, ptr noundef %1884, ptr noundef %1886, i32 noundef %1887) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1889:                                             ; preds = %1860
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #9
  br label %1890

1890:                                             ; preds = %1889, %1522
  %1891 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #9
  br i1 %1891, label %1892, label %2252

1892:                                             ; preds = %1890
  %1893 = call i32 (...) @s2n_enable_tls13_in_test() #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr @test_count, align 4, !tbaa !5
  %1896 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %11, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.76) #9
  %1897 = icmp eq i32 %1896, -1
  br i1 %1897, label %1898, label %1922

1898:                                             ; preds = %1892
  %1899 = tail call ptr @__errno_location() #10
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1902 = call i32 @s2n_print_stacktrace(ptr noundef %1901) #9
  %1903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1904 = trunc nuw i8 %1903 to i1
  br i1 %1904, label %1905, label %1909

1905:                                             ; preds = %1898
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @fileno(ptr noundef %1906) #9
  %1908 = call i32 @isatty(i32 noundef %1907) #9
  %.not303 = icmp eq i32 %1908, 0
  br i1 %.not303, label %1909, label %1910

1909:                                             ; preds = %1905, %1898
  br label %1910

1910:                                             ; preds = %1905, %1909
  %.str.4.sink1045 = phi ptr [ @.str.4, %1909 ], [ @.str, %1905 ]
  store i32 %1900, ptr %1899, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = load i32, ptr @test_count, align 4, !tbaa !5
  %1913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @s2n_strerror(i32 noundef %1914, ptr noundef nonnull @.str.3) #9
  %1916 = load i32, ptr %1913, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror_debug(i32 noundef %1916, ptr noundef nonnull @.str.3) #9
  %1918 = load i32, ptr %1899, align 4, !tbaa !5
  %1919 = call ptr @strerror(i32 noundef %1918) #9
  %1920 = load i32, ptr %1899, align 4, !tbaa !5
  %1921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1911, ptr noundef nonnull %.str.4.sink1045, i32 noundef %1912, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 410, ptr noundef %1915, ptr noundef %1917, ptr noundef %1919, i32 noundef %1920) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1922:                                             ; preds = %1892
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr @test_count, align 4, !tbaa !5
  %1925 = call ptr @s2n_config_new() #9
  %1926 = icmp eq ptr %1925, null
  br i1 %1926, label %1927, label %1951

1927:                                             ; preds = %1922
  %1928 = tail call ptr @__errno_location() #10
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @s2n_print_stacktrace(ptr noundef %1930) #9
  %1932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1933 = trunc nuw i8 %1932 to i1
  br i1 %1933, label %1934, label %1938

1934:                                             ; preds = %1927
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @fileno(ptr noundef %1935) #9
  %1937 = call i32 @isatty(i32 noundef %1936) #9
  %.not302 = icmp eq i32 %1937, 0
  br i1 %.not302, label %1938, label %1939

1938:                                             ; preds = %1934, %1927
  br label %1939

1939:                                             ; preds = %1934, %1938
  %.str.4.sink1056 = phi ptr [ @.str.4, %1938 ], [ @.str, %1934 ]
  store i32 %1929, ptr %1928, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %1942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror(i32 noundef %1943, ptr noundef nonnull @.str.3) #9
  %1945 = load i32, ptr %1942, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef nonnull @.str.3) #9
  %1947 = load i32, ptr %1928, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #9
  %1949 = load i32, ptr %1928, align 4, !tbaa !5
  %1950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1940, ptr noundef nonnull %.str.4.sink1056, i32 noundef %1941, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 412, ptr noundef %1944, ptr noundef %1946, ptr noundef %1948, i32 noundef %1949) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1951:                                             ; preds = %1922
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = add nsw i32 %1952, 1
  store i32 %1953, ptr @test_count, align 4, !tbaa !5
  %1954 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1925, ptr noundef nonnull @.str.78) #9
  %1955 = icmp eq i32 %1954, -1
  br i1 %1955, label %1956, label %1980

1956:                                             ; preds = %1951
  %1957 = tail call ptr @__errno_location() #10
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = call i32 @s2n_print_stacktrace(ptr noundef %1959) #9
  %1961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1962 = trunc nuw i8 %1961 to i1
  br i1 %1962, label %1963, label %1967

1963:                                             ; preds = %1956
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = call i32 @fileno(ptr noundef %1964) #9
  %1966 = call i32 @isatty(i32 noundef %1965) #9
  %.not301 = icmp eq i32 %1966, 0
  br i1 %.not301, label %1967, label %1968

1967:                                             ; preds = %1963, %1956
  br label %1968

1968:                                             ; preds = %1963, %1967
  %.str.4.sink1067 = phi ptr [ @.str.4, %1967 ], [ @.str, %1963 ]
  store i32 %1958, ptr %1957, align 4, !tbaa !5
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror(i32 noundef %1972, ptr noundef nonnull @.str.3) #9
  %1974 = load i32, ptr %1971, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef nonnull @.str.3) #9
  %1976 = load i32, ptr %1957, align 4, !tbaa !5
  %1977 = call ptr @strerror(i32 noundef %1976) #9
  %1978 = load i32, ptr %1957, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1969, ptr noundef nonnull %.str.4.sink1067, i32 noundef %1970, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.2, i32 noundef 413, ptr noundef %1973, ptr noundef %1975, ptr noundef %1977, i32 noundef %1978) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1980:                                             ; preds = %1951
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = add nsw i32 %1981, 1
  store i32 %1982, ptr @test_count, align 4, !tbaa !5
  %1983 = load ptr, ptr %11, align 8, !tbaa !9
  %1984 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1925, ptr noundef %1983) #9
  %1985 = icmp eq i32 %1984, -1
  br i1 %1985, label %1986, label %2010

1986:                                             ; preds = %1980
  %1987 = tail call ptr @__errno_location() #10
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989) #9
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc nuw i8 %1991 to i1
  br i1 %1992, label %1993, label %1997

1993:                                             ; preds = %1986
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #9
  %1996 = call i32 @isatty(i32 noundef %1995) #9
  %.not300 = icmp eq i32 %1996, 0
  br i1 %.not300, label %1997, label %1998

1997:                                             ; preds = %1993, %1986
  br label %1998

1998:                                             ; preds = %1993, %1997
  %.str.4.sink1078 = phi ptr [ @.str.4, %1997 ], [ @.str, %1993 ]
  store i32 %1988, ptr %1987, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror(i32 noundef %2002, ptr noundef nonnull @.str.3) #9
  %2004 = load i32, ptr %2001, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror_debug(i32 noundef %2004, ptr noundef nonnull @.str.3) #9
  %2006 = load i32, ptr %1987, align 4, !tbaa !5
  %2007 = call ptr @strerror(i32 noundef %2006) #9
  %2008 = load i32, ptr %1987, align 4, !tbaa !5
  %2009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef nonnull %.str.4.sink1078, i32 noundef %2000, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 414, ptr noundef %2003, ptr noundef %2005, ptr noundef %2007, i32 noundef %2008) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2010:                                             ; preds = %1980
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = add nsw i32 %2011, 1
  store i32 %2012, ptr @test_count, align 4, !tbaa !5
  %2013 = call i32 @s2n_config_set_verify_after_sign(ptr noundef nonnull %1925, i32 noundef 1) #9
  %2014 = icmp eq i32 %2013, -1
  br i1 %2014, label %2015, label %2039

2015:                                             ; preds = %2010
  %2016 = tail call ptr @__errno_location() #10
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = call i32 @s2n_print_stacktrace(ptr noundef %2018) #9
  %2020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2021 = trunc nuw i8 %2020 to i1
  br i1 %2021, label %2022, label %2026

2022:                                             ; preds = %2015
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @fileno(ptr noundef %2023) #9
  %2025 = call i32 @isatty(i32 noundef %2024) #9
  %.not299 = icmp eq i32 %2025, 0
  br i1 %.not299, label %2026, label %2027

2026:                                             ; preds = %2022, %2015
  br label %2027

2027:                                             ; preds = %2022, %2026
  %.str.4.sink1089 = phi ptr [ @.str.4, %2026 ], [ @.str, %2022 ]
  store i32 %2017, ptr %2016, align 4, !tbaa !5
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = load i32, ptr @test_count, align 4, !tbaa !5
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror(i32 noundef %2031, ptr noundef nonnull @.str.3) #9
  %2033 = load i32, ptr %2030, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror_debug(i32 noundef %2033, ptr noundef nonnull @.str.3) #9
  %2035 = load i32, ptr %2016, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #9
  %2037 = load i32, ptr %2016, align 4, !tbaa !5
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2028, ptr noundef nonnull %.str.4.sink1089, i32 noundef %2029, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 416, ptr noundef %2032, ptr noundef %2034, ptr noundef %2036, i32 noundef %2037) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2039:                                             ; preds = %2010
  %2040 = load i32, ptr @test_type, align 4, !tbaa !5
  %2041 = icmp eq i32 %2040, 1
  br i1 %2041, label %2042, label %2071

2042:                                             ; preds = %2039
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %1925, ptr noundef nonnull @async_pkey_fn) #9
  %2046 = icmp eq i32 %2045, -1
  br i1 %2046, label %2047, label %2071

2047:                                             ; preds = %2042
  %2048 = tail call ptr @__errno_location() #10
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050) #9
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc nuw i8 %2052 to i1
  br i1 %2053, label %2054, label %2058

2054:                                             ; preds = %2047
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #9
  %2057 = call i32 @isatty(i32 noundef %2056) #9
  %.not298 = icmp eq i32 %2057, 0
  br i1 %.not298, label %2058, label %2059

2058:                                             ; preds = %2054, %2047
  br label %2059

2059:                                             ; preds = %2054, %2058
  %.str.4.sink1100 = phi ptr [ @.str.4, %2058 ], [ @.str, %2054 ]
  store i32 %2049, ptr %2048, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror(i32 noundef %2063, ptr noundef nonnull @.str.3) #9
  %2065 = load i32, ptr %2062, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror_debug(i32 noundef %2065, ptr noundef nonnull @.str.3) #9
  %2067 = load i32, ptr %2048, align 4, !tbaa !5
  %2068 = call ptr @strerror(i32 noundef %2067) #9
  %2069 = load i32, ptr %2048, align 4, !tbaa !5
  %2070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef nonnull %.str.4.sink1100, i32 noundef %2061, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 418, ptr noundef %2064, ptr noundef %2066, ptr noundef %2068, i32 noundef %2069) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2071:                                             ; preds = %2039, %2042
  %2072 = load i32, ptr @test_count, align 4, !tbaa !5
  %2073 = add nsw i32 %2072, 1
  store i32 %2073, ptr @test_count, align 4, !tbaa !5
  %2074 = call ptr @s2n_config_new() #9
  %2075 = icmp eq ptr %2074, null
  br i1 %2075, label %2076, label %2100

2076:                                             ; preds = %2071
  %2077 = tail call ptr @__errno_location() #10
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @s2n_print_stacktrace(ptr noundef %2079) #9
  %2081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2082 = trunc nuw i8 %2081 to i1
  br i1 %2082, label %2083, label %2087

2083:                                             ; preds = %2076
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @fileno(ptr noundef %2084) #9
  %2086 = call i32 @isatty(i32 noundef %2085) #9
  %.not297 = icmp eq i32 %2086, 0
  br i1 %.not297, label %2087, label %2088

2087:                                             ; preds = %2083, %2076
  br label %2088

2088:                                             ; preds = %2083, %2087
  %.str.4.sink1111 = phi ptr [ @.str.4, %2087 ], [ @.str, %2083 ]
  store i32 %2078, ptr %2077, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef nonnull @.str.3) #9
  %2094 = load i32, ptr %2091, align 4, !tbaa !5
  %2095 = call ptr @s2n_strerror_debug(i32 noundef %2094, ptr noundef nonnull @.str.3) #9
  %2096 = load i32, ptr %2077, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #9
  %2098 = load i32, ptr %2077, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef nonnull %.str.4.sink1111, i32 noundef %2090, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 421, ptr noundef %2093, ptr noundef %2095, ptr noundef %2097, i32 noundef %2098) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2100:                                             ; preds = %2071
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = add nsw i32 %2101, 1
  store i32 %2102, ptr @test_count, align 4, !tbaa !5
  %2103 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2074, ptr noundef nonnull @.str.78) #9
  %2104 = icmp eq i32 %2103, -1
  br i1 %2104, label %2105, label %2129

2105:                                             ; preds = %2100
  %2106 = tail call ptr @__errno_location() #10
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = call i32 @s2n_print_stacktrace(ptr noundef %2108) #9
  %2110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2111 = trunc nuw i8 %2110 to i1
  br i1 %2111, label %2112, label %2116

2112:                                             ; preds = %2105
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = call i32 @fileno(ptr noundef %2113) #9
  %2115 = call i32 @isatty(i32 noundef %2114) #9
  %.not296 = icmp eq i32 %2115, 0
  br i1 %.not296, label %2116, label %2117

2116:                                             ; preds = %2112, %2105
  br label %2117

2117:                                             ; preds = %2112, %2116
  %.str.4.sink1122 = phi ptr [ @.str.4, %2116 ], [ @.str, %2112 ]
  store i32 %2107, ptr %2106, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror(i32 noundef %2121, ptr noundef nonnull @.str.3) #9
  %2123 = load i32, ptr %2120, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror_debug(i32 noundef %2123, ptr noundef nonnull @.str.3) #9
  %2125 = load i32, ptr %2106, align 4, !tbaa !5
  %2126 = call ptr @strerror(i32 noundef %2125) #9
  %2127 = load i32, ptr %2106, align 4, !tbaa !5
  %2128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2118, ptr noundef nonnull %.str.4.sink1122, i32 noundef %2119, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 422, ptr noundef %2122, ptr noundef %2124, ptr noundef %2126, i32 noundef %2127) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2129:                                             ; preds = %2100
  %2130 = load i32, ptr %2074, align 8
  %2131 = and i32 %2130, -161
  %2132 = or disjoint i32 %2131, 128
  store i32 %2132, ptr %2074, align 8
  %2133 = load i32, ptr @test_count, align 4, !tbaa !5
  %2134 = add nsw i32 %2133, 1
  store i32 %2134, ptr @test_count, align 4, !tbaa !5
  %2135 = load ptr, ptr %11, align 8, !tbaa !9
  %2136 = call i32 @test_cipher_preferences(ptr noundef nonnull %1925, ptr noundef nonnull %2074, ptr noundef %2135, i32 noundef 225)
  %2137 = icmp eq i32 %2136, -1
  br i1 %2137, label %2138, label %2162

2138:                                             ; preds = %2129
  %2139 = tail call ptr @__errno_location() #10
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = call i32 @s2n_print_stacktrace(ptr noundef %2141) #9
  %2143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2144 = trunc nuw i8 %2143 to i1
  br i1 %2144, label %2145, label %2149

2145:                                             ; preds = %2138
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @fileno(ptr noundef %2146) #9
  %2148 = call i32 @isatty(i32 noundef %2147) #9
  %.not295 = icmp eq i32 %2148, 0
  br i1 %.not295, label %2149, label %2150

2149:                                             ; preds = %2145, %2138
  br label %2150

2150:                                             ; preds = %2145, %2149
  %.str.4.sink1133 = phi ptr [ @.str.4, %2149 ], [ @.str, %2145 ]
  store i32 %2140, ptr %2139, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef nonnull @.str.3) #9
  %2156 = load i32, ptr %2153, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror_debug(i32 noundef %2156, ptr noundef nonnull @.str.3) #9
  %2158 = load i32, ptr %2139, align 4, !tbaa !5
  %2159 = call ptr @strerror(i32 noundef %2158) #9
  %2160 = load i32, ptr %2139, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef nonnull %.str.4.sink1133, i32 noundef %2152, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 427, ptr noundef %2155, ptr noundef %2157, ptr noundef %2159, i32 noundef %2160) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2162:                                             ; preds = %2129
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = add nsw i32 %2163, 1
  store i32 %2164, ptr @test_count, align 4, !tbaa !5
  %2165 = load ptr, ptr %11, align 8, !tbaa !9
  %2166 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2165) #9
  %2167 = icmp eq i32 %2166, -1
  br i1 %2167, label %2168, label %2192

2168:                                             ; preds = %2162
  %2169 = tail call ptr @__errno_location() #10
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = call i32 @s2n_print_stacktrace(ptr noundef %2171) #9
  %2173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2174 = trunc nuw i8 %2173 to i1
  br i1 %2174, label %2175, label %2179

2175:                                             ; preds = %2168
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = call i32 @fileno(ptr noundef %2176) #9
  %2178 = call i32 @isatty(i32 noundef %2177) #9
  %.not294 = icmp eq i32 %2178, 0
  br i1 %.not294, label %2179, label %2180

2179:                                             ; preds = %2175, %2168
  br label %2180

2180:                                             ; preds = %2175, %2179
  %.str.4.sink1144 = phi ptr [ @.str.4, %2179 ], [ @.str, %2175 ]
  store i32 %2170, ptr %2169, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = load i32, ptr @test_count, align 4, !tbaa !5
  %2183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror(i32 noundef %2184, ptr noundef nonnull @.str.3) #9
  %2186 = load i32, ptr %2183, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2186, ptr noundef nonnull @.str.3) #9
  %2188 = load i32, ptr %2169, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #9
  %2190 = load i32, ptr %2169, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2181, ptr noundef nonnull %.str.4.sink1144, i32 noundef %2182, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 429, ptr noundef %2185, ptr noundef %2187, ptr noundef %2189, i32 noundef %2190) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2192:                                             ; preds = %2162
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = add nsw i32 %2193, 1
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = call i32 @s2n_config_free(ptr noundef nonnull %1925) #9
  %2196 = icmp eq i32 %2195, -1
  br i1 %2196, label %2197, label %2221

2197:                                             ; preds = %2192
  %2198 = tail call ptr @__errno_location() #10
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @s2n_print_stacktrace(ptr noundef %2200) #9
  %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 = %2197
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @fileno(ptr noundef %2205) #9
  %2207 = call i32 @isatty(i32 noundef %2206) #9
  %.not293 = icmp eq i32 %2207, 0
  br i1 %.not293, label %2208, label %2209

2208:                                             ; preds = %2204, %2197
  br label %2209

2209:                                             ; preds = %2204, %2208
  %.str.4.sink1155 = phi ptr [ @.str.4, %2208 ], [ @.str, %2204 ]
  store i32 %2199, ptr %2198, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef nonnull @.str.3) #9
  %2215 = load i32, ptr %2212, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror_debug(i32 noundef %2215, ptr noundef nonnull @.str.3) #9
  %2217 = load i32, ptr %2198, align 4, !tbaa !5
  %2218 = call ptr @strerror(i32 noundef %2217) #9
  %2219 = load i32, ptr %2198, align 4, !tbaa !5
  %2220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef nonnull %.str.4.sink1155, i32 noundef %2211, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 430, ptr noundef %2214, ptr noundef %2216, ptr noundef %2218, i32 noundef %2219) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2221:                                             ; preds = %2192
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr @test_count, align 4, !tbaa !5
  %2224 = call i32 @s2n_config_free(ptr noundef nonnull %2074) #9
  %2225 = icmp eq i32 %2224, -1
  br i1 %2225, label %2226, label %2250

2226:                                             ; preds = %2221
  %2227 = tail call ptr @__errno_location() #10
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @s2n_print_stacktrace(ptr noundef %2229) #9
  %2231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2232 = trunc nuw i8 %2231 to i1
  br i1 %2232, label %2233, label %2237

2233:                                             ; preds = %2226
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @fileno(ptr noundef %2234) #9
  %2236 = call i32 @isatty(i32 noundef %2235) #9
  %.not292 = icmp eq i32 %2236, 0
  br i1 %.not292, label %2237, label %2238

2237:                                             ; preds = %2233, %2226
  br label %2238

2238:                                             ; preds = %2233, %2237
  %.str.4.sink1166 = phi ptr [ @.str.4, %2237 ], [ @.str, %2233 ]
  store i32 %2228, ptr %2227, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2242, ptr noundef nonnull @.str.3) #9
  %2244 = load i32, ptr %2241, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror_debug(i32 noundef %2244, ptr noundef nonnull @.str.3) #9
  %2246 = load i32, ptr %2227, align 4, !tbaa !5
  %2247 = call ptr @strerror(i32 noundef %2246) #9
  %2248 = load i32, ptr %2227, align 4, !tbaa !5
  %2249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef nonnull %.str.4.sink1166, i32 noundef %2240, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 431, ptr noundef %2243, ptr noundef %2245, ptr noundef %2247, i32 noundef %2248) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2250:                                             ; preds = %2221
  %2251 = call i32 (...) @s2n_disable_tls13_in_test() #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  br label %2252

2252:                                             ; preds = %1890, %2250
  %2253 = load i32, ptr @test_type, align 4, !tbaa !5
  %2254 = add i32 %2253, 1
  store i32 %2254, ptr @test_type, align 4, !tbaa !5
  %2255 = icmp ult i32 %2254, 2
  br i1 %2255, label %167, label %2256, !llvm.loop !32

2256:                                             ; preds = %2252
  %2257 = call i32 @fork() #9
  %2258 = icmp eq i32 %2257, 0
  br i1 %2258, label %2259, label %2527

2259:                                             ; preds = %2256
  %2260 = call i64 @sysconf(i32 noundef 4) #9
  %2261 = icmp sgt i64 %2260, 0
  br i1 %2261, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %2292, %2259
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  store ptr null, ptr %12, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = add nsw i32 %2262, 1
  store i32 %2263, ptr @test_count, align 4, !tbaa !5
  %2264 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %12, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.44) #9
  %2265 = icmp eq i32 %2264, -1
  br i1 %2265, label %2296, label %2320

.lr.ph:                                           ; preds = %2259, %2292
  %.0351 = phi i64 [ %2295, %2292 ], [ 0, %2259 ]
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = add nsw i32 %2266, 1
  store i32 %2267, ptr @test_count, align 4, !tbaa !5
  %exitcond.not = icmp eq i64 %.0351, 2147483648
  br i1 %exitcond.not, label %2268, label %2292

2268:                                             ; preds = %.lr.ph
  %2269 = tail call ptr @__errno_location() #10
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @s2n_print_stacktrace(ptr noundef %2271) #9
  %2273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2274 = trunc nuw i8 %2273 to i1
  br i1 %2274, label %2275, label %2279

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

2279:                                             ; preds = %2275, %2268
  br label %2280

2280:                                             ; preds = %2275, %2279
  %.str.4.sink1177 = phi ptr [ @.str.4, %2279 ], [ @.str, %2275 ]
  store i32 %2270, ptr %2269, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror(i32 noundef %2284, ptr noundef nonnull @.str.3) #9
  %2286 = load i32, ptr %2283, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror_debug(i32 noundef %2286, ptr noundef nonnull @.str.3) #9
  %2288 = load i32, ptr %2269, align 4, !tbaa !5
  %2289 = call ptr @strerror(i32 noundef %2288) #9
  %2290 = load i32, ptr %2269, align 4, !tbaa !5
  %2291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2281, ptr noundef nonnull %.str.4.sink1177, i32 noundef %2282, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.2, i32 noundef 446, ptr noundef %2285, ptr noundef %2287, ptr noundef %2289, i32 noundef %2290) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2292:                                             ; preds = %.lr.ph
  %2293 = trunc nuw i64 %.0351 to i32
  %2294 = call i32 @close(i32 noundef %2293) #9
  %2295 = add nuw nsw i64 %.0351, 1
  %exitcond352.not = icmp eq i64 %2295, %2260
  br i1 %exitcond352.not, label %._crit_edge, label %.lr.ph, !llvm.loop !34

2296:                                             ; preds = %._crit_edge
  %2297 = tail call ptr @__errno_location() #10
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = call i32 @s2n_print_stacktrace(ptr noundef %2299) #9
  %2301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2302 = trunc nuw i8 %2301 to i1
  br i1 %2302, label %2303, label %2307

2303:                                             ; preds = %2296
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = call i32 @fileno(ptr noundef %2304) #9
  %2306 = call i32 @isatty(i32 noundef %2305) #9
  %.not274 = icmp eq i32 %2306, 0
  br i1 %.not274, label %2307, label %2308

2307:                                             ; preds = %2303, %2296
  br label %2308

2308:                                             ; preds = %2303, %2307
  %.str.4.sink1188 = phi ptr [ @.str.4, %2307 ], [ @.str, %2303 ]
  store i32 %2298, ptr %2297, align 4, !tbaa !5
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = load i32, ptr @test_count, align 4, !tbaa !5
  %2311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror(i32 noundef %2312, ptr noundef nonnull @.str.3) #9
  %2314 = load i32, ptr %2311, align 4, !tbaa !5
  %2315 = call ptr @s2n_strerror_debug(i32 noundef %2314, ptr noundef nonnull @.str.3) #9
  %2316 = load i32, ptr %2297, align 4, !tbaa !5
  %2317 = call ptr @strerror(i32 noundef %2316) #9
  %2318 = load i32, ptr %2297, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2309, ptr noundef nonnull %.str.4.sink1188, i32 noundef %2310, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 456, ptr noundef %2313, ptr noundef %2315, ptr noundef %2317, i32 noundef %2318) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2320:                                             ; preds = %._crit_edge
  %2321 = load i32, ptr @test_count, align 4, !tbaa !5
  %2322 = add nsw i32 %2321, 1
  store i32 %2322, ptr @test_count, align 4, !tbaa !5
  %2323 = load ptr, ptr %12, align 8, !tbaa !9
  %2324 = icmp eq ptr %2323, null
  br i1 %2324, label %2325, label %2349

2325:                                             ; preds = %2320
  %2326 = tail call ptr @__errno_location() #10
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2329 = call i32 @s2n_print_stacktrace(ptr noundef %2328) #9
  %2330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2331 = trunc nuw i8 %2330 to i1
  br i1 %2331, label %2332, label %2336

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

2336:                                             ; preds = %2332, %2325
  br label %2337

2337:                                             ; preds = %2332, %2336
  %.str.4.sink1199 = phi ptr [ @.str.4, %2336 ], [ @.str, %2332 ]
  store i32 %2327, ptr %2326, align 4, !tbaa !5
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = load i32, ptr @test_count, align 4, !tbaa !5
  %2340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @s2n_strerror(i32 noundef %2341, ptr noundef nonnull @.str.3) #9
  %2343 = load i32, ptr %2340, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror_debug(i32 noundef %2343, ptr noundef nonnull @.str.3) #9
  %2345 = load i32, ptr %2326, align 4, !tbaa !5
  %2346 = call ptr @strerror(i32 noundef %2345) #9
  %2347 = load i32, ptr %2326, align 4, !tbaa !5
  %2348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2338, ptr noundef nonnull %.str.4.sink1199, i32 noundef %2339, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 457, ptr noundef %2342, ptr noundef %2344, ptr noundef %2346, i32 noundef %2347) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2349:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %2350 = call ptr @s2n_config_new() #9
  store ptr %2350, ptr %13, align 8, !tbaa !9
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = add nsw i32 %2351, 1
  store i32 %2352, ptr @test_count, align 4, !tbaa !5
  %2353 = icmp eq ptr %2350, null
  br i1 %2353, label %2354, label %2378

2354:                                             ; preds = %2349
  %2355 = tail call ptr @__errno_location() #10
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = call i32 @s2n_print_stacktrace(ptr noundef %2357) #9
  %2359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2360 = trunc nuw i8 %2359 to i1
  br i1 %2360, label %2361, label %2365

2361:                                             ; preds = %2354
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = call i32 @fileno(ptr noundef %2362) #9
  %2364 = call i32 @isatty(i32 noundef %2363) #9
  %.not272 = icmp eq i32 %2364, 0
  br i1 %.not272, label %2365, label %2366

2365:                                             ; preds = %2361, %2354
  br label %2366

2366:                                             ; preds = %2361, %2365
  %.str.4.sink1210 = phi ptr [ @.str.4, %2365 ], [ @.str, %2361 ]
  store i32 %2356, ptr %2355, align 4, !tbaa !5
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = load i32, ptr @test_count, align 4, !tbaa !5
  %2369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror(i32 noundef %2370, ptr noundef nonnull @.str.3) #9
  %2372 = load i32, ptr %2369, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror_debug(i32 noundef %2372, ptr noundef nonnull @.str.3) #9
  %2374 = load i32, ptr %2355, align 4, !tbaa !5
  %2375 = call ptr @strerror(i32 noundef %2374) #9
  %2376 = load i32, ptr %2355, align 4, !tbaa !5
  %2377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2367, ptr noundef nonnull %.str.4.sink1210, i32 noundef %2368, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 460, ptr noundef %2371, ptr noundef %2373, ptr noundef %2375, i32 noundef %2376) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2378:                                             ; preds = %2349
  %2379 = add nsw i32 %2351, 2
  store i32 %2379, ptr @test_count, align 4, !tbaa !5
  %2380 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2350, ptr noundef nonnull @.str.47) #9
  %2381 = icmp eq i32 %2380, -1
  br i1 %2381, label %2382, label %2406

2382:                                             ; preds = %2378
  %2383 = tail call ptr @__errno_location() #10
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = call i32 @s2n_print_stacktrace(ptr noundef %2385) #9
  %2387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2388 = trunc nuw i8 %2387 to i1
  br i1 %2388, label %2389, label %2393

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

2393:                                             ; preds = %2389, %2382
  br label %2394

2394:                                             ; preds = %2389, %2393
  %.str.4.sink1221 = phi ptr [ @.str.4, %2393 ], [ @.str, %2389 ]
  store i32 %2384, ptr %2383, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef nonnull @.str.3) #9
  %2400 = load i32, ptr %2397, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror_debug(i32 noundef %2400, ptr noundef nonnull @.str.3) #9
  %2402 = load i32, ptr %2383, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #9
  %2404 = load i32, ptr %2383, align 4, !tbaa !5
  %2405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2395, ptr noundef nonnull %.str.4.sink1221, i32 noundef %2396, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 461, ptr noundef %2399, ptr noundef %2401, ptr noundef %2403, i32 noundef %2404) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2406:                                             ; preds = %2378
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr @test_count, align 4, !tbaa !5
  %2409 = load ptr, ptr %12, align 8, !tbaa !9
  %2410 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2350, ptr noundef %2409) #9
  %2411 = icmp eq i32 %2410, -1
  br i1 %2411, label %2412, label %2436

2412:                                             ; preds = %2406
  %2413 = tail call ptr @__errno_location() #10
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @s2n_print_stacktrace(ptr noundef %2415) #9
  %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 = %2412
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = call i32 @fileno(ptr noundef %2420) #9
  %2422 = call i32 @isatty(i32 noundef %2421) #9
  %.not270 = icmp eq i32 %2422, 0
  br i1 %.not270, label %2423, label %2424

2423:                                             ; preds = %2419, %2412
  br label %2424

2424:                                             ; preds = %2419, %2423
  %.str.4.sink1232 = phi ptr [ @.str.4, %2423 ], [ @.str, %2419 ]
  store i32 %2414, ptr %2413, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = load i32, ptr @test_count, align 4, !tbaa !5
  %2427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror(i32 noundef %2428, ptr noundef nonnull @.str.3) #9
  %2430 = load i32, ptr %2427, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef nonnull @.str.3) #9
  %2432 = load i32, ptr %2413, align 4, !tbaa !5
  %2433 = call ptr @strerror(i32 noundef %2432) #9
  %2434 = load i32, ptr %2413, align 4, !tbaa !5
  %2435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2425, ptr noundef nonnull %.str.4.sink1232, i32 noundef %2426, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 462, ptr noundef %2429, ptr noundef %2431, ptr noundef %2433, i32 noundef %2434) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2436:                                             ; preds = %2406
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = add nsw i32 %2437, 1
  store i32 %2438, ptr @test_count, align 4, !tbaa !5
  %2439 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %2350, ptr noundef nonnull @.str.43, ptr noundef null) #9
  %2440 = icmp eq i32 %2439, -1
  br i1 %2440, label %2441, label %2465

2441:                                             ; preds = %2436
  %2442 = tail call ptr @__errno_location() #10
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = call i32 @s2n_print_stacktrace(ptr noundef %2444) #9
  %2446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2447 = trunc nuw i8 %2446 to i1
  br i1 %2447, label %2448, label %2452

2448:                                             ; preds = %2441
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @fileno(ptr noundef %2449) #9
  %2451 = call i32 @isatty(i32 noundef %2450) #9
  %.not269 = icmp eq i32 %2451, 0
  br i1 %.not269, label %2452, label %2453

2452:                                             ; preds = %2448, %2441
  br label %2453

2453:                                             ; preds = %2448, %2452
  %.str.4.sink1243 = phi ptr [ @.str.4, %2452 ], [ @.str, %2448 ]
  store i32 %2443, ptr %2442, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef nonnull @.str.3) #9
  %2459 = load i32, ptr %2456, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef nonnull @.str.3) #9
  %2461 = load i32, ptr %2442, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #9
  %2463 = load i32, ptr %2442, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef nonnull %.str.4.sink1243, i32 noundef %2455, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 463, ptr noundef %2458, ptr noundef %2460, ptr noundef %2462, i32 noundef %2463) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2465:                                             ; preds = %2436
  %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 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %2350) #9
  %2469 = icmp eq i32 %2468, -1
  br i1 %2469, label %2470, label %2494

2470:                                             ; preds = %2465
  %2471 = tail call ptr @__errno_location() #10
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = call i32 @s2n_print_stacktrace(ptr noundef %2473) #9
  %2475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2476 = trunc nuw i8 %2475 to i1
  br i1 %2476, label %2477, label %2481

2477:                                             ; preds = %2470
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = call i32 @fileno(ptr noundef %2478) #9
  %2480 = call i32 @isatty(i32 noundef %2479) #9
  %.not268 = icmp eq i32 %2480, 0
  br i1 %.not268, label %2481, label %2482

2481:                                             ; preds = %2477, %2470
  br label %2482

2482:                                             ; preds = %2477, %2481
  %.str.4.sink1254 = phi ptr [ @.str.4, %2481 ], [ @.str, %2477 ]
  store i32 %2472, ptr %2471, align 4, !tbaa !5
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = load i32, ptr @test_count, align 4, !tbaa !5
  %2485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror(i32 noundef %2486, ptr noundef nonnull @.str.3) #9
  %2488 = load i32, ptr %2485, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror_debug(i32 noundef %2488, ptr noundef nonnull @.str.3) #9
  %2490 = load i32, ptr %2471, align 4, !tbaa !5
  %2491 = call ptr @strerror(i32 noundef %2490) #9
  %2492 = load i32, ptr %2471, align 4, !tbaa !5
  %2493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2483, ptr noundef nonnull %.str.4.sink1254, i32 noundef %2484, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 464, ptr noundef %2487, ptr noundef %2489, ptr noundef %2491, i32 noundef %2492) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2494:                                             ; preds = %2465
  %2495 = load i32, ptr @test_count, align 4, !tbaa !5
  %2496 = add nsw i32 %2495, 1
  store i32 %2496, ptr @test_count, align 4, !tbaa !5
  %2497 = load ptr, ptr %12, align 8, !tbaa !9
  %2498 = call i32 @test_cipher_preferences(ptr noundef nonnull %2350, ptr noundef nonnull %2350, ptr noundef %2497, i32 noundef 1)
  %2499 = icmp eq i32 %2498, -1
  br i1 %2499, label %2500, label %2524

2500:                                             ; preds = %2494
  %2501 = tail call ptr @__errno_location() #10
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @s2n_print_stacktrace(ptr noundef %2503) #9
  %2505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2506 = trunc nuw i8 %2505 to i1
  br i1 %2506, label %2507, label %2511

2507:                                             ; preds = %2500
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = call i32 @fileno(ptr noundef %2508) #9
  %2510 = call i32 @isatty(i32 noundef %2509) #9
  %.not267 = icmp eq i32 %2510, 0
  br i1 %.not267, label %2511, label %2512

2511:                                             ; preds = %2507, %2500
  br label %2512

2512:                                             ; preds = %2507, %2511
  %.str.4.sink1265 = phi ptr [ @.str.4, %2511 ], [ @.str, %2507 ]
  store i32 %2502, ptr %2501, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror(i32 noundef %2516, ptr noundef nonnull @.str.3) #9
  %2518 = load i32, ptr %2515, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror_debug(i32 noundef %2518, ptr noundef nonnull @.str.3) #9
  %2520 = load i32, ptr %2501, align 4, !tbaa !5
  %2521 = call ptr @strerror(i32 noundef %2520) #9
  %2522 = load i32, ptr %2501, align 4, !tbaa !5
  %2523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef nonnull %.str.4.sink1265, i32 noundef %2514, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 466, ptr noundef %2517, ptr noundef %2519, ptr noundef %2521, i32 noundef %2522) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2524:                                             ; preds = %2494
  %2525 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %2526 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @exit(i32 noundef 0) #12
  unreachable

2527:                                             ; preds = %2256
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #9
  store i32 0, ptr %14, align 4, !tbaa !5
  %2528 = load i32, ptr @test_count, align 4, !tbaa !5
  %2529 = add nsw i32 %2528, 1
  store i32 %2529, ptr @test_count, align 4, !tbaa !5
  %2530 = call i32 @waitpid(i32 noundef %2257, ptr noundef nonnull %14, i32 noundef 0) #9
  %2531 = icmp eq i32 %2530, %2257
  br i1 %2531, label %2556, label %2532

2532:                                             ; preds = %2527
  %2533 = tail call ptr @__errno_location() #10
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @s2n_print_stacktrace(ptr noundef %2535) #9
  %2537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2538 = trunc nuw i8 %2537 to i1
  br i1 %2538, label %2539, label %2543

2539:                                             ; preds = %2532
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = call i32 @fileno(ptr noundef %2540) #9
  %2542 = call i32 @isatty(i32 noundef %2541) #9
  %.not = icmp eq i32 %2542, 0
  br i1 %.not, label %2543, label %2544

2543:                                             ; preds = %2539, %2532
  br label %2544

2544:                                             ; preds = %2539, %2543
  %.str.4.sink1276 = phi ptr [ @.str.4, %2543 ], [ @.str, %2539 ]
  store i32 %2534, ptr %2533, align 4, !tbaa !5
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror(i32 noundef %2548, ptr noundef nonnull @.str.3) #9
  %2550 = load i32, ptr %2547, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror_debug(i32 noundef %2550, ptr noundef nonnull @.str.3) #9
  %2552 = load i32, ptr %2533, align 4, !tbaa !5
  %2553 = call ptr @strerror(i32 noundef %2552) #9
  %2554 = load i32, ptr %2533, align 4, !tbaa !5
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2545, ptr noundef nonnull %.str.4.sink1276, i32 noundef %2546, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 473, ptr noundef %2549, ptr noundef %2551, ptr noundef %2553, i32 noundef %2554) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2556:                                             ; preds = %2527
  %2557 = load i32, ptr @test_count, align 4, !tbaa !5
  %2558 = add nsw i32 %2557, 1
  store i32 %2558, ptr @test_count, align 4, !tbaa !5
  %2559 = load i32, ptr %14, align 4, !tbaa !5
  %2560 = icmp eq i32 %2559, 0
  br i1 %2560, label %2585, label %2561

2561:                                             ; preds = %2556
  %2562 = tail call ptr @__errno_location() #10
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @s2n_print_stacktrace(ptr noundef %2564) #9
  %2566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2567 = trunc nuw i8 %2566 to i1
  br i1 %2567, label %2568, label %2572

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @fileno(ptr noundef %2569) #9
  %2571 = call i32 @isatty(i32 noundef %2570) #9
  %.not261 = icmp eq i32 %2571, 0
  br i1 %.not261, label %2572, label %2573

2572:                                             ; preds = %2568, %2561
  br label %2573

2573:                                             ; preds = %2568, %2572
  %.str.4.sink1287 = phi ptr [ @.str.4, %2572 ], [ @.str, %2568 ]
  store i32 %2563, ptr %2562, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = load i32, ptr @test_count, align 4, !tbaa !5
  %2576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2577 = load i32, ptr %2576, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror(i32 noundef %2577, ptr noundef nonnull @.str.3) #9
  %2579 = load i32, ptr %2576, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror_debug(i32 noundef %2579, ptr noundef nonnull @.str.3) #9
  %2581 = load i32, ptr %2562, align 4, !tbaa !5
  %2582 = call ptr @strerror(i32 noundef %2581) #9
  %2583 = load i32, ptr %2562, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2574, ptr noundef nonnull %.str.4.sink1287, i32 noundef %2575, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 474, ptr noundef %2578, ptr noundef %2580, ptr noundef %2582, i32 noundef %2583) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2585:                                             ; preds = %2556
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #9
  %2586 = call i32 @s2n_cleanup() #9
  %2587 = icmp eq i32 %2586, -1
  br i1 %2587, label %2588, label %2612

2588:                                             ; preds = %2585
  %2589 = tail call ptr @__errno_location() #10
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2592 = call i32 @s2n_print_stacktrace(ptr noundef %2591) #9
  %2593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2594 = trunc nuw i8 %2593 to i1
  br i1 %2594, label %2595, label %2599

2595:                                             ; preds = %2588
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = call i32 @fileno(ptr noundef %2596) #9
  %2598 = call i32 @isatty(i32 noundef %2597) #9
  %.not266 = icmp eq i32 %2598, 0
  br i1 %.not266, label %2599, label %2600

2599:                                             ; preds = %2595, %2588
  br label %2600

2600:                                             ; preds = %2595, %2599
  %.str.4.sink1298 = phi ptr [ @.str.4, %2599 ], [ @.str, %2595 ]
  store i32 %2590, ptr %2589, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef nonnull @.str.3) #9
  %2606 = load i32, ptr %2603, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror_debug(i32 noundef %2606, ptr noundef nonnull @.str.3) #9
  %2608 = load i32, ptr %2589, align 4, !tbaa !5
  %2609 = call ptr @strerror(i32 noundef %2608) #9
  %2610 = load i32, ptr %2589, align 4, !tbaa !5
  %2611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef nonnull %.str.4.sink1298, i32 noundef %2602, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.2, i32 noundef 477, ptr noundef %2605, ptr noundef %2607, ptr noundef %2609, i32 noundef %2610) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2612:                                             ; preds = %2585
  %2613 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %2614 = icmp eq i32 %2613, -1
  br i1 %2614, label %2615, label %2639

2615:                                             ; preds = %2612
  %2616 = tail call ptr @__errno_location() #10
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = call i32 @s2n_print_stacktrace(ptr noundef %2618) #9
  %2620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2621 = trunc nuw i8 %2620 to i1
  br i1 %2621, label %2622, label %2626

2622:                                             ; preds = %2615
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = call i32 @fileno(ptr noundef %2623) #9
  %2625 = call i32 @isatty(i32 noundef %2624) #9
  %.not265 = icmp eq i32 %2625, 0
  br i1 %.not265, label %2626, label %2627

2626:                                             ; preds = %2622, %2615
  br label %2627

2627:                                             ; preds = %2622, %2626
  %.str.4.sink1309 = phi ptr [ @.str.4, %2626 ], [ @.str, %2622 ]
  store i32 %2617, ptr %2616, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = load i32, ptr @test_count, align 4, !tbaa !5
  %2630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = call ptr @s2n_strerror(i32 noundef %2631, ptr noundef nonnull @.str.3) #9
  %2633 = load i32, ptr %2630, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror_debug(i32 noundef %2633, ptr noundef nonnull @.str.3) #9
  %2635 = load i32, ptr %2616, align 4, !tbaa !5
  %2636 = call ptr @strerror(i32 noundef %2635) #9
  %2637 = load i32, ptr %2616, align 4, !tbaa !5
  %2638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2628, ptr noundef nonnull %.str.4.sink1309, i32 noundef %2629, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.2, i32 noundef 477, ptr noundef %2632, ptr noundef %2634, ptr noundef %2636, i32 noundef %2637) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2639:                                             ; preds = %2612
  %2640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2641 = trunc nuw i8 %2640 to i1
  br i1 %2641, label %2642, label %2653

2642:                                             ; preds = %2639
  %2643 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2644 = call i32 @fileno(ptr noundef %2643) #9
  %2645 = call i32 @isatty(i32 noundef %2644) #9
  %.not262 = icmp eq i32 %2645, 0
  br i1 %.not262, label %2653, label %2646

2646:                                             ; preds = %2642
  %2647 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not264 = icmp eq i32 %2647, 0
  %2648 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not264, label %2651, label %2649

2649:                                             ; preds = %2646
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef nonnull @.str.94, i32 noundef %2647) #9
  br label %2660

2651:                                             ; preds = %2646
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef nonnull @.str.95) #9
  br label %2660

2653:                                             ; preds = %2642, %2639
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not263 = icmp eq i32 %2654, 0
  %2655 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not263, label %2658, label %2656

2656:                                             ; preds = %2653
  %2657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2655, ptr noundef nonnull @.str.96, i32 noundef %2654) #9
  br label %2660

2658:                                             ; preds = %2653
  %2659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2655, ptr noundef nonnull @.str.97) #9
  br label %2660

2660:                                             ; preds = %2656, %2658, %2649, %2651
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %3) #9
  ret i32 0
}

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

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

declare ptr @s2n_config_new() local_unnamed_addr #3

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

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

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

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

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #3

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

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

declare zeroext i1 @s2n_is_rsa_pss_signing_supported(...) local_unnamed_addr #3

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

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

; Function Attrs: nofree nounwind
declare i32 @fork() local_unnamed_addr #5

; Function Attrs: nounwind
declare i64 @sysconf(i32 noundef) local_unnamed_addr #4

declare i32 @close(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #3

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

declare i32 @s2n_cleanup() local_unnamed_addr #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 0}
!16 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!17 = !{!16, !10, i64 8}
!18 = !{!19, !10, i64 96}
!19 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !20, i64 24, !21, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !22, i64 144, !10, i64 152, !22, i64 160, !22, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !23, i64 304, !24, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !21, i64 448}
!20 = !{!"certs_by_type", !7, i64 0}
!21 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!22 = !{!"long", !7, i64 0}
!23 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!24 = !{!"short", !7, i64 0}
!25 = !{!26, !7, i64 0}
!26 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!27 = !{!26, !10, i64 24}
!28 = !{!26, !10, i64 32}
!29 = !{!26, !10, i64 40}
!30 = !{!26, !10, i64 48}
!31 = !{!26, !12, i64 56}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !33}


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