; LLVM IR from aws/s2n-tls :: tests/unit (s2n_cert_chain_and_key_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_test_io_pair = type { i32, i32 }
%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 }
%struct.s2n_cert_chain_and_key = type { ptr, ptr, %struct.s2n_blob, %struct.s2n_blob, ptr, ptr, ptr }
%struct.s2n_cert_chain = type { i32, ptr }
%struct.s2n_cert = type { i32, %struct.s2n_pkey, %struct.s2n_cert_info, %struct.s2n_blob, ptr }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_cert_info = type { i32, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [44 x i8], align 1
@num_times_cb_executed = external hidden global i32, align 4
@.str.43 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [192 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_test_io_pair, 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 [100 x i32], align 16
  %33 = alloca [100 x ptr], align 16
  %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 i32, align 4
  %50 = alloca i32, align 4
  %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 i64, align 8
  %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 i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca ptr, 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 i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca ptr, align 8
  %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 %struct.s2n_result, align 4
  %101 = alloca %struct.s2n_result, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca ptr, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca ptr, align 8
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  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
  br label %125

125:                                              ; preds = %2
  br label %126

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

131:                                              ; preds = %126
  %132 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %133 = icmp eq i32 %132, -1
  br i1 %133, label %134, label %187

134:                                              ; preds = %131
  br label %135

135:                                              ; preds = %134
  br label %136

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

143:                                              ; preds = %136
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = call i32 @fileno(ptr noundef %144) #9
  %146 = call i32 @isatty(i32 noundef %145) #9
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %148, label %165

148:                                              ; preds = %143
  %149 = load i32, ptr %14, align 4, !tbaa !5
  %150 = call ptr @__errno_location() #10
  store i32 %149, ptr %150, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %154, ptr noundef @.str.4)
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @s2n_strerror_debug(i32 noundef %157, ptr noundef @.str.4)
  %159 = call ptr @__errno_location() #10
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @strerror(i32 noundef %160) #9
  %162 = call ptr @__errno_location() #10
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef @.str.2, i32 noundef %152, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 57, ptr noundef %155, ptr noundef %158, ptr noundef %161, i32 noundef %163) #9
  br label %182

165:                                              ; preds = %143, %136
  %166 = load i32, ptr %14, align 4, !tbaa !5
  %167 = call ptr @__errno_location() #10
  store i32 %166, ptr %167, align 4, !tbaa !5
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %171, ptr noundef @.str.4)
  %173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef @.str.4)
  %176 = call ptr @__errno_location() #10
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @strerror(i32 noundef %177) #9
  %179 = call ptr @__errno_location() #10
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef @.str.5, i32 noundef %169, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 57, ptr noundef %172, ptr noundef %175, ptr noundef %178, i32 noundef %180) #9
  br label %182

182:                                              ; preds = %165, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %183

183:                                              ; preds = %182
  br label %184

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

185:                                              ; No predecessors!
  br label %186

186:                                              ; preds = %185
  br label %187

187:                                              ; preds = %186, %131
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = call i32 @s2n_enable_atexit()
  %194 = icmp eq i32 %193, -1
  br i1 %194, label %195, label %248

195:                                              ; preds = %190
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %198 = call ptr @__errno_location() #10
  %199 = load i32, ptr %198, align 4, !tbaa !5
  store i32 %199, ptr %15, align 4, !tbaa !5
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = call i32 @s2n_print_stacktrace(ptr noundef %200)
  %202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %203 = trunc i8 %202 to i1
  br i1 %203, label %204, label %226

204:                                              ; preds = %197
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = call i32 @fileno(ptr noundef %205) #9
  %207 = call i32 @isatty(i32 noundef %206) #9
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %226

209:                                              ; preds = %204
  %210 = load i32, ptr %15, align 4, !tbaa !5
  %211 = call ptr @__errno_location() #10
  store i32 %210, ptr %211, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror(i32 noundef %215, ptr noundef @.str.4)
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef @.str.4)
  %220 = call ptr @__errno_location() #10
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @strerror(i32 noundef %221) #9
  %223 = call ptr @__errno_location() #10
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %212, ptr noundef @.str.2, i32 noundef %213, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 57, ptr noundef %216, ptr noundef %219, ptr noundef %222, i32 noundef %224) #9
  br label %243

226:                                              ; preds = %204, %197
  %227 = load i32, ptr %15, align 4, !tbaa !5
  %228 = call ptr @__errno_location() #10
  store i32 %227, ptr %228, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef @.str.4)
  %234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror_debug(i32 noundef %235, ptr noundef @.str.4)
  %237 = call ptr @__errno_location() #10
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @strerror(i32 noundef %238) #9
  %240 = call ptr @__errno_location() #10
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef @.str.5, i32 noundef %230, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 57, ptr noundef %233, ptr noundef %236, ptr noundef %239, i32 noundef %241) #9
  br label %243

243:                                              ; preds = %226, %209
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %244

244:                                              ; preds = %243
  br label %245

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

246:                                              ; No predecessors!
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247, %190
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  %254 = call i32 @s2n_init()
  %255 = icmp eq i32 %254, -1
  br i1 %255, label %256, label %309

256:                                              ; preds = %253
  br label %257

257:                                              ; preds = %256
  br label %258

258:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %259 = call ptr @__errno_location() #10
  %260 = load i32, ptr %259, align 4, !tbaa !5
  store i32 %260, ptr %16, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @s2n_print_stacktrace(ptr noundef %261)
  %263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %264 = trunc i8 %263 to i1
  br i1 %264, label %265, label %287

265:                                              ; preds = %258
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @fileno(ptr noundef %266) #9
  %268 = call i32 @isatty(i32 noundef %267) #9
  %269 = icmp ne i32 %268, 0
  br i1 %269, label %270, label %287

270:                                              ; preds = %265
  %271 = load i32, ptr %16, align 4, !tbaa !5
  %272 = call ptr @__errno_location() #10
  store i32 %271, ptr %272, 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 @.str.4)
  %278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef @.str.4)
  %281 = call ptr @__errno_location() #10
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @strerror(i32 noundef %282) #9
  %284 = call ptr @__errno_location() #10
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %273, ptr noundef @.str.2, i32 noundef %274, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 57, ptr noundef %277, ptr noundef %280, ptr noundef %283, i32 noundef %285) #9
  br label %304

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

304:                                              ; preds = %287, %270
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %305

305:                                              ; preds = %304
  br label %306

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

307:                                              ; No predecessors!
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308, %253
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = call i32 (...) @s2n_disable_tls13_in_test()
  %318 = icmp eq i32 %317, -1
  br i1 %318, label %319, label %372

319:                                              ; preds = %314
  br label %320

320:                                              ; preds = %319
  br label %321

321:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %322 = call ptr @__errno_location() #10
  %323 = load i32, ptr %322, align 4, !tbaa !5
  store i32 %323, ptr %17, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @s2n_print_stacktrace(ptr noundef %324)
  %326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %327 = trunc i8 %326 to i1
  br i1 %327, label %328, label %350

328:                                              ; preds = %321
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = call i32 @fileno(ptr noundef %329) #9
  %331 = call i32 @isatty(i32 noundef %330) #9
  %332 = icmp ne i32 %331, 0
  br i1 %332, label %333, label %350

333:                                              ; preds = %328
  %334 = load i32, ptr %17, align 4, !tbaa !5
  %335 = call ptr @__errno_location() #10
  store i32 %334, ptr %335, align 4, !tbaa !5
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror(i32 noundef %339, ptr noundef @.str.4)
  %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_debug(i32 noundef %342, ptr noundef @.str.4)
  %344 = call ptr @__errno_location() #10
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @strerror(i32 noundef %345) #9
  %347 = call ptr @__errno_location() #10
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %336, ptr noundef @.str.2, i32 noundef %337, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 58, ptr noundef %340, ptr noundef %343, ptr noundef %346, i32 noundef %348) #9
  br label %367

350:                                              ; preds = %328, %321
  %351 = load i32, ptr %17, align 4, !tbaa !5
  %352 = call ptr @__errno_location() #10
  store i32 %351, ptr %352, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror(i32 noundef %356, ptr noundef @.str.4)
  %358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror_debug(i32 noundef %359, ptr noundef @.str.4)
  %361 = call ptr @__errno_location() #10
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @strerror(i32 noundef %362) #9
  %364 = call ptr @__errno_location() #10
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %353, ptr noundef @.str.5, i32 noundef %354, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 58, ptr noundef %357, ptr noundef %360, ptr noundef %363, i32 noundef %365) #9
  br label %367

367:                                              ; preds = %350, %333
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %368

368:                                              ; preds = %367
  br label %369

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

370:                                              ; No predecessors!
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371, %314
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  br label %375

375:                                              ; preds = %374
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr @test_count, align 4, !tbaa !5
  %378 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %18)
  %379 = icmp eq i32 %378, -1
  br i1 %379, label %380, label %433

380:                                              ; preds = %375
  br label %381

381:                                              ; preds = %380
  br label %382

382:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %383 = call ptr @__errno_location() #10
  %384 = load i32, ptr %383, align 4, !tbaa !5
  store i32 %384, ptr %19, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = call i32 @s2n_print_stacktrace(ptr noundef %385)
  %387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %388 = trunc i8 %387 to i1
  br i1 %388, label %389, label %411

389:                                              ; preds = %382
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @fileno(ptr noundef %390) #9
  %392 = call i32 @isatty(i32 noundef %391) #9
  %393 = icmp ne i32 %392, 0
  br i1 %393, label %394, label %411

394:                                              ; preds = %389
  %395 = load i32, ptr %19, align 4, !tbaa !5
  %396 = call ptr @__errno_location() #10
  store i32 %395, ptr %396, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror(i32 noundef %400, ptr noundef @.str.4)
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror_debug(i32 noundef %403, ptr noundef @.str.4)
  %405 = call ptr @__errno_location() #10
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call ptr @strerror(i32 noundef %406) #9
  %408 = call ptr @__errno_location() #10
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef @.str.2, i32 noundef %398, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 61, ptr noundef %401, ptr noundef %404, ptr noundef %407, i32 noundef %409) #9
  br label %428

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

428:                                              ; preds = %411, %394
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %429

429:                                              ; preds = %428
  br label %430

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

431:                                              ; No predecessors!
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432, %375
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr @test_count, align 4, !tbaa !5
  %439 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %439, ptr %10, align 8, !tbaa !9
  %440 = icmp eq ptr %439, null
  br i1 %440, label %441, label %494

441:                                              ; preds = %436
  br label %442

442:                                              ; preds = %441
  br label %443

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

450:                                              ; preds = %443
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @fileno(ptr noundef %451) #9
  %453 = call i32 @isatty(i32 noundef %452) #9
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %455, label %472

455:                                              ; preds = %450
  %456 = load i32, ptr %20, align 4, !tbaa !5
  %457 = call ptr @__errno_location() #10
  store i32 %456, ptr %457, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef @.str.4)
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef @.str.4)
  %466 = call ptr @__errno_location() #10
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #9
  %469 = call ptr @__errno_location() #10
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef @.str.2, i32 noundef %459, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 63, ptr noundef %462, ptr noundef %465, ptr noundef %468, i32 noundef %470) #9
  br label %489

472:                                              ; preds = %450, %443
  %473 = load i32, ptr %20, align 4, !tbaa !5
  %474 = call ptr @__errno_location() #10
  store i32 %473, ptr %474, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef @.str.4)
  %480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef @.str.4)
  %483 = call ptr @__errno_location() #10
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #9
  %486 = call ptr @__errno_location() #10
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %475, ptr noundef @.str.5, i32 noundef %476, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 63, ptr noundef %479, ptr noundef %482, ptr noundef %485, i32 noundef %487) #9
  br label %489

489:                                              ; preds = %472, %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %490

490:                                              ; preds = %489
  br label %491

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

492:                                              ; No predecessors!
  br label %493

493:                                              ; preds = %492
  br label %494

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

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr @test_count, align 4, !tbaa !5
  %500 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %500, ptr %11, align 8, !tbaa !9
  %501 = icmp eq ptr %500, null
  br i1 %501, label %502, label %555

502:                                              ; preds = %497
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %505 = call ptr @__errno_location() #10
  %506 = load i32, ptr %505, align 4, !tbaa !5
  store i32 %506, ptr %21, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = call i32 @s2n_print_stacktrace(ptr noundef %507)
  %509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %510 = trunc i8 %509 to i1
  br i1 %510, label %511, label %533

511:                                              ; preds = %504
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = call i32 @fileno(ptr noundef %512) #9
  %514 = call i32 @isatty(i32 noundef %513) #9
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %516, label %533

516:                                              ; preds = %511
  %517 = load i32, ptr %21, align 4, !tbaa !5
  %518 = call ptr @__errno_location() #10
  store i32 %517, ptr %518, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef @.str.4)
  %524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef @.str.4)
  %527 = call ptr @__errno_location() #10
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #9
  %530 = call ptr @__errno_location() #10
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef @.str.2, i32 noundef %520, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 64, ptr noundef %523, ptr noundef %526, ptr noundef %529, i32 noundef %531) #9
  br label %550

533:                                              ; preds = %511, %504
  %534 = load i32, ptr %21, align 4, !tbaa !5
  %535 = call ptr @__errno_location() #10
  store i32 %534, ptr %535, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror(i32 noundef %539, ptr noundef @.str.4)
  %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_debug(i32 noundef %542, ptr noundef @.str.4)
  %544 = call ptr @__errno_location() #10
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #9
  %547 = call ptr @__errno_location() #10
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %536, ptr noundef @.str.5, i32 noundef %537, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 64, ptr noundef %540, ptr noundef %543, ptr noundef %546, i32 noundef %548) #9
  br label %550

550:                                              ; preds = %533, %516
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %551

551:                                              ; preds = %550
  br label %552

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

553:                                              ; No predecessors!
  br label %554

554:                                              ; preds = %553
  br label %555

555:                                              ; preds = %554, %497
  br label %556

556:                                              ; preds = %555
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = add nsw i32 %559, 1
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = load ptr, ptr %10, align 8, !tbaa !9
  %562 = call i32 @s2n_read_test_pem(ptr noundef @.str.12, ptr noundef %561, i64 noundef 12000)
  %563 = icmp eq i32 %562, -1
  br i1 %563, label %564, label %617

564:                                              ; preds = %558
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %567 = call ptr @__errno_location() #10
  %568 = load i32, ptr %567, align 4, !tbaa !5
  store i32 %568, ptr %22, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = call i32 @s2n_print_stacktrace(ptr noundef %569)
  %571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %572 = trunc i8 %571 to i1
  br i1 %572, label %573, label %595

573:                                              ; preds = %566
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = call i32 @fileno(ptr noundef %574) #9
  %576 = call i32 @isatty(i32 noundef %575) #9
  %577 = icmp ne i32 %576, 0
  br i1 %577, label %578, label %595

578:                                              ; preds = %573
  %579 = load i32, ptr %22, align 4, !tbaa !5
  %580 = call ptr @__errno_location() #10
  store i32 %579, ptr %580, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef @.str.4)
  %586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef @.str.4)
  %589 = call ptr @__errno_location() #10
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = call ptr @strerror(i32 noundef %590) #9
  %592 = call ptr @__errno_location() #10
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %581, ptr noundef @.str.2, i32 noundef %582, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 65, ptr noundef %585, ptr noundef %588, ptr noundef %591, i32 noundef %593) #9
  br label %612

595:                                              ; preds = %573, %566
  %596 = load i32, ptr %22, align 4, !tbaa !5
  %597 = call ptr @__errno_location() #10
  store i32 %596, ptr %597, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef @.str.4)
  %603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef @.str.4)
  %606 = call ptr @__errno_location() #10
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @strerror(i32 noundef %607) #9
  %609 = call ptr @__errno_location() #10
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %598, ptr noundef @.str.5, i32 noundef %599, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 65, ptr noundef %602, ptr noundef %605, ptr noundef %608, i32 noundef %610) #9
  br label %612

612:                                              ; preds = %595, %578
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %613

613:                                              ; preds = %612
  br label %614

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

615:                                              ; No predecessors!
  br label %616

616:                                              ; preds = %615
  br label %617

617:                                              ; preds = %616, %558
  br label %618

618:                                              ; preds = %617
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = load ptr, ptr %11, align 8, !tbaa !9
  %624 = call i32 @s2n_read_test_pem(ptr noundef @.str.14, ptr noundef %623, i64 noundef 12000)
  %625 = icmp eq i32 %624, -1
  br i1 %625, label %626, label %679

626:                                              ; preds = %620
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %629 = call ptr @__errno_location() #10
  %630 = load i32, ptr %629, align 4, !tbaa !5
  store i32 %630, ptr %23, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = call i32 @s2n_print_stacktrace(ptr noundef %631)
  %633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %634 = trunc i8 %633 to i1
  br i1 %634, label %635, label %657

635:                                              ; preds = %628
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @fileno(ptr noundef %636) #9
  %638 = call i32 @isatty(i32 noundef %637) #9
  %639 = icmp ne i32 %638, 0
  br i1 %639, label %640, label %657

640:                                              ; preds = %635
  %641 = load i32, ptr %23, align 4, !tbaa !5
  %642 = call ptr @__errno_location() #10
  store i32 %641, ptr %642, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror(i32 noundef %646, ptr noundef @.str.4)
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef @.str.4)
  %651 = call ptr @__errno_location() #10
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #9
  %654 = call ptr @__errno_location() #10
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef @.str.2, i32 noundef %644, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 66, ptr noundef %647, ptr noundef %650, ptr noundef %653, i32 noundef %655) #9
  br label %674

657:                                              ; preds = %635, %628
  %658 = load i32, ptr %23, align 4, !tbaa !5
  %659 = call ptr @__errno_location() #10
  store i32 %658, ptr %659, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef @.str.4)
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror_debug(i32 noundef %666, ptr noundef @.str.4)
  %668 = call ptr @__errno_location() #10
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #9
  %671 = call ptr @__errno_location() #10
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef @.str.5, i32 noundef %661, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 66, ptr noundef %664, ptr noundef %667, ptr noundef %670, i32 noundef %672) #9
  br label %674

674:                                              ; preds = %657, %640
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %675

675:                                              ; preds = %674
  br label %676

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

677:                                              ; No predecessors!
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678, %620
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr @test_count, align 4, !tbaa !5
  %685 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %685, ptr %12, align 8, !tbaa !9
  %686 = icmp eq ptr %685, null
  br i1 %686, label %687, label %740

687:                                              ; preds = %682
  br label %688

688:                                              ; preds = %687
  br label %689

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

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

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

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

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

736:                                              ; preds = %735
  br label %737

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

738:                                              ; No predecessors!
  br label %739

739:                                              ; preds = %738
  br label %740

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

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = add nsw i32 %744, 1
  store i32 %745, ptr @test_count, align 4, !tbaa !5
  %746 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %746, ptr %13, align 8, !tbaa !9
  %747 = icmp eq ptr %746, null
  br i1 %747, label %748, label %801

748:                                              ; preds = %743
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %751 = call ptr @__errno_location() #10
  %752 = load i32, ptr %751, align 4, !tbaa !5
  store i32 %752, ptr %25, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @s2n_print_stacktrace(ptr noundef %753)
  %755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %756 = trunc i8 %755 to i1
  br i1 %756, label %757, label %779

757:                                              ; preds = %750
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @fileno(ptr noundef %758) #9
  %760 = call i32 @isatty(i32 noundef %759) #9
  %761 = icmp ne i32 %760, 0
  br i1 %761, label %762, label %779

762:                                              ; preds = %757
  %763 = load i32, ptr %25, align 4, !tbaa !5
  %764 = call ptr @__errno_location() #10
  store i32 %763, ptr %764, align 4, !tbaa !5
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = load i32, ptr @test_count, align 4, !tbaa !5
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror(i32 noundef %768, ptr noundef @.str.4)
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror_debug(i32 noundef %771, ptr noundef @.str.4)
  %773 = call ptr @__errno_location() #10
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @strerror(i32 noundef %774) #9
  %776 = call ptr @__errno_location() #10
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %765, ptr noundef @.str.2, i32 noundef %766, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 68, ptr noundef %769, ptr noundef %772, ptr noundef %775, i32 noundef %777) #9
  br label %796

779:                                              ; preds = %757, %750
  %780 = load i32, ptr %25, align 4, !tbaa !5
  %781 = call ptr @__errno_location() #10
  store i32 %780, ptr %781, align 4, !tbaa !5
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror(i32 noundef %785, ptr noundef @.str.4)
  %787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror_debug(i32 noundef %788, ptr noundef @.str.4)
  %790 = call ptr @__errno_location() #10
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @strerror(i32 noundef %791) #9
  %793 = call ptr @__errno_location() #10
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %782, ptr noundef @.str.5, i32 noundef %783, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 68, ptr noundef %786, ptr noundef %789, ptr noundef %792, i32 noundef %794) #9
  br label %796

796:                                              ; preds = %779, %762
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %797

797:                                              ; preds = %796
  br label %798

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

799:                                              ; No predecessors!
  br label %800

800:                                              ; preds = %799
  br label %801

801:                                              ; preds = %800, %743
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802
  br label %804

804:                                              ; preds = %803
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr @test_count, align 4, !tbaa !5
  %807 = load ptr, ptr %12, align 8, !tbaa !9
  %808 = call i32 @s2n_read_test_pem(ptr noundef @.str.18, ptr noundef %807, i64 noundef 12000)
  %809 = icmp eq i32 %808, -1
  br i1 %809, label %810, label %863

810:                                              ; preds = %804
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %813 = call ptr @__errno_location() #10
  %814 = load i32, ptr %813, align 4, !tbaa !5
  store i32 %814, ptr %26, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @s2n_print_stacktrace(ptr noundef %815)
  %817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %818 = trunc i8 %817 to i1
  br i1 %818, label %819, label %841

819:                                              ; preds = %812
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @fileno(ptr noundef %820) #9
  %822 = call i32 @isatty(i32 noundef %821) #9
  %823 = icmp ne i32 %822, 0
  br i1 %823, label %824, label %841

824:                                              ; preds = %819
  %825 = load i32, ptr %26, align 4, !tbaa !5
  %826 = call ptr @__errno_location() #10
  store i32 %825, ptr %826, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror(i32 noundef %830, ptr noundef @.str.4)
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror_debug(i32 noundef %833, ptr noundef @.str.4)
  %835 = call ptr @__errno_location() #10
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #9
  %838 = call ptr @__errno_location() #10
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %827, ptr noundef @.str.2, i32 noundef %828, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 69, ptr noundef %831, ptr noundef %834, ptr noundef %837, i32 noundef %839) #9
  br label %858

841:                                              ; preds = %819, %812
  %842 = load i32, ptr %26, align 4, !tbaa !5
  %843 = call ptr @__errno_location() #10
  store i32 %842, ptr %843, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef @.str.4)
  %849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef @.str.4)
  %852 = call ptr @__errno_location() #10
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @strerror(i32 noundef %853) #9
  %855 = call ptr @__errno_location() #10
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef @.str.5, i32 noundef %845, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 69, ptr noundef %848, ptr noundef %851, ptr noundef %854, i32 noundef %856) #9
  br label %858

858:                                              ; preds = %841, %824
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %859

859:                                              ; preds = %858
  br label %860

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

861:                                              ; No predecessors!
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862, %804
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = load ptr, ptr %13, align 8, !tbaa !9
  %870 = call i32 @s2n_read_test_pem(ptr noundef @.str.20, ptr noundef %869, i64 noundef 12000)
  %871 = icmp eq i32 %870, -1
  br i1 %871, label %872, label %925

872:                                              ; preds = %866
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %875 = call ptr @__errno_location() #10
  %876 = load i32, ptr %875, align 4, !tbaa !5
  store i32 %876, ptr %27, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877)
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc i8 %879 to i1
  br i1 %880, label %881, label %903

881:                                              ; preds = %874
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #9
  %884 = call i32 @isatty(i32 noundef %883) #9
  %885 = icmp ne i32 %884, 0
  br i1 %885, label %886, label %903

886:                                              ; preds = %881
  %887 = load i32, ptr %27, align 4, !tbaa !5
  %888 = call ptr @__errno_location() #10
  store i32 %887, ptr %888, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror(i32 noundef %892, ptr noundef @.str.4)
  %894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror_debug(i32 noundef %895, ptr noundef @.str.4)
  %897 = call ptr @__errno_location() #10
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @strerror(i32 noundef %898) #9
  %900 = call ptr @__errno_location() #10
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %889, ptr noundef @.str.2, i32 noundef %890, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %893, ptr noundef %896, ptr noundef %899, i32 noundef %901) #9
  br label %920

903:                                              ; preds = %881, %874
  %904 = load i32, ptr %27, align 4, !tbaa !5
  %905 = call ptr @__errno_location() #10
  store i32 %904, ptr %905, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror(i32 noundef %909, ptr noundef @.str.4)
  %911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror_debug(i32 noundef %912, ptr noundef @.str.4)
  %914 = call ptr @__errno_location() #10
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #9
  %917 = call ptr @__errno_location() #10
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef @.str.5, i32 noundef %907, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %910, ptr noundef %913, ptr noundef %916, i32 noundef %918) #9
  br label %920

920:                                              ; preds = %903, %886
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %921

921:                                              ; preds = %920
  br label %922

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

923:                                              ; No predecessors!
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924, %866
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926
  br label %928

928:                                              ; preds = %927
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = add nsw i32 %929, 1
  store i32 %930, ptr @test_count, align 4, !tbaa !5
  %931 = call i32 @setenv(ptr noundef @.str.22, ptr noundef @.str.23, i32 noundef 0) #9
  %932 = icmp eq i32 %931, -1
  br i1 %932, label %933, label %986

933:                                              ; preds = %928
  br label %934

934:                                              ; preds = %933
  br label %935

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

942:                                              ; preds = %935
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @fileno(ptr noundef %943) #9
  %945 = call i32 @isatty(i32 noundef %944) #9
  %946 = icmp ne i32 %945, 0
  br i1 %946, label %947, label %964

947:                                              ; preds = %942
  %948 = load i32, ptr %28, align 4, !tbaa !5
  %949 = call ptr @__errno_location() #10
  store i32 %948, ptr %949, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @s2n_strerror(i32 noundef %953, ptr noundef @.str.4)
  %955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror_debug(i32 noundef %956, ptr noundef @.str.4)
  %958 = call ptr @__errno_location() #10
  %959 = load i32, ptr %958, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #9
  %961 = call ptr @__errno_location() #10
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef @.str.2, i32 noundef %951, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 72, ptr noundef %954, ptr noundef %957, ptr noundef %960, i32 noundef %962) #9
  br label %981

964:                                              ; preds = %942, %935
  %965 = load i32, ptr %28, align 4, !tbaa !5
  %966 = call ptr @__errno_location() #10
  store i32 %965, ptr %966, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef @.str.4)
  %972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef @.str.4)
  %975 = call ptr @__errno_location() #10
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #9
  %978 = call ptr @__errno_location() #10
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef @.str.5, i32 noundef %968, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 72, ptr noundef %971, ptr noundef %974, ptr noundef %977, i32 noundef %979) #9
  br label %981

981:                                              ; preds = %964, %947
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %982

982:                                              ; preds = %981
  br label %983

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

984:                                              ; No predecessors!
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985, %928
  br label %987

987:                                              ; preds = %986
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr @test_count, align 4, !tbaa !5
  %992 = call ptr @s2n_config_new()
  store ptr %992, ptr %7, align 8, !tbaa !9
  %993 = icmp eq ptr %992, null
  br i1 %993, label %994, label %1047

994:                                              ; preds = %989
  br label %995

995:                                              ; preds = %994
  br label %996

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

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

1008:                                             ; preds = %1003
  %1009 = load i32, ptr %29, align 4, !tbaa !5
  %1010 = call ptr @__errno_location() #10
  store i32 %1009, ptr %1010, 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 @.str.4)
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef @.str.4)
  %1019 = call ptr @__errno_location() #10
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @strerror(i32 noundef %1020) #9
  %1022 = call ptr @__errno_location() #10
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef @.str.2, i32 noundef %1012, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1015, ptr noundef %1018, ptr noundef %1021, i32 noundef %1023) #9
  br label %1042

1025:                                             ; preds = %1003, %996
  %1026 = load i32, ptr %29, align 4, !tbaa !5
  %1027 = call ptr @__errno_location() #10
  store i32 %1026, ptr %1027, align 4, !tbaa !5
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1031, ptr noundef @.str.4)
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror_debug(i32 noundef %1034, ptr noundef @.str.4)
  %1036 = call ptr @__errno_location() #10
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call ptr @strerror(i32 noundef %1037) #9
  %1039 = call ptr @__errno_location() #10
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1028, ptr noundef @.str.5, i32 noundef %1029, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1032, ptr noundef %1035, ptr noundef %1038, i32 noundef %1040) #9
  br label %1042

1042:                                             ; preds = %1025, %1008
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

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

1045:                                             ; No predecessors!
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

1047:                                             ; preds = %1046, %989
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = add nsw i32 %1051, 1
  store i32 %1052, ptr @test_count, align 4, !tbaa !5
  %1053 = load ptr, ptr %7, align 8, !tbaa !9
  %1054 = call i32 @s2n_config_disable_x509_verification(ptr noundef %1053)
  %1055 = icmp eq i32 %1054, -1
  br i1 %1055, label %1056, label %1109

1056:                                             ; preds = %1050
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

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

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

1070:                                             ; preds = %1065
  %1071 = load i32, ptr %30, align 4, !tbaa !5
  %1072 = call ptr @__errno_location() #10
  store i32 %1071, ptr %1072, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1076, ptr noundef @.str.4)
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef @.str.4)
  %1081 = call ptr @__errno_location() #10
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #9
  %1084 = call ptr @__errno_location() #10
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1073, ptr noundef @.str.2, i32 noundef %1074, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1077, ptr noundef %1080, ptr noundef %1083, i32 noundef %1085) #9
  br label %1104

1087:                                             ; preds = %1065, %1058
  %1088 = load i32, ptr %30, align 4, !tbaa !5
  %1089 = call ptr @__errno_location() #10
  store i32 %1088, ptr %1089, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef @.str.4)
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call ptr @__errno_location() #10
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @strerror(i32 noundef %1099) #9
  %1101 = call ptr @__errno_location() #10
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef @.str.5, i32 noundef %1091, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1094, ptr noundef %1097, ptr noundef %1100, i32 noundef %1102) #9
  br label %1104

1104:                                             ; preds = %1087, %1070
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

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

1107:                                             ; No predecessors!
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108, %1050
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

1111:                                             ; preds = %1110
  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 400, ptr %32) #9
  call void @llvm.memset.p0.i64(ptr align 16 %32, i8 0, i64 400, i1 false)
  call void @llvm.lifetime.start.p0(i64 800, ptr %33) #9
  call void @llvm.memset.p0.i64(ptr align 16 %33, i8 0, i64 800, i1 false)
  br label %1112

1112:                                             ; preds = %1111
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call ptr @s2n_config_new()
  store ptr %1115, ptr %6, align 8, !tbaa !9
  %1116 = icmp eq ptr %1115, null
  br i1 %1116, label %1117, label %1170

1117:                                             ; preds = %1112
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

1119:                                             ; preds = %1118
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1120 = call ptr @__errno_location() #10
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  store i32 %1121, ptr %34, 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 %34, 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.4)
  %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.4)
  %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.2, i32 noundef %1135, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1138, ptr noundef %1141, ptr noundef %1144, i32 noundef %1146) #9
  br label %1165

1148:                                             ; preds = %1126, %1119
  %1149 = load i32, ptr %34, 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.4)
  %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.4)
  %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.5, i32 noundef %1152, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 83, 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 %34) #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, %1112
  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 %6, align 8, !tbaa !9
  %1177 = call i32 @s2n_config_set_cert_tiebreak_callback(ptr noundef %1176, ptr noundef @test_cert_tiebreak_cb)
  %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 %35) #9
  %1182 = call ptr @__errno_location() #10
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  store i32 %1183, ptr %35, 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 %35, 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.4)
  %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.4)
  %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.2, i32 noundef %1197, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1200, ptr noundef %1203, ptr noundef %1206, i32 noundef %1208) #9
  br label %1227

1210:                                             ; preds = %1188, %1181
  %1211 = load i32, ptr %35, 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.4)
  %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.4)
  %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.5, i32 noundef %1214, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 84, 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 %35) #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 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %1238, ptr %31, align 8, !tbaa !9
  %1239 = icmp eq ptr %1238, null
  br i1 %1239, label %1240, label %1293

1240:                                             ; preds = %1235
  br label %1241

1241:                                             ; preds = %1240
  br label %1242

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

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

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

1271:                                             ; preds = %1249, %1242
  %1272 = load i32, ptr %36, align 4, !tbaa !5
  %1273 = call ptr @__errno_location() #10
  store i32 %1272, ptr %1273, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror(i32 noundef %1277, ptr noundef @.str.4)
  %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_debug(i32 noundef %1280, ptr noundef @.str.4)
  %1282 = call ptr @__errno_location() #10
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @strerror(i32 noundef %1283) #9
  %1285 = call ptr @__errno_location() #10
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef @.str.5, i32 noundef %1275, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1278, ptr noundef %1281, ptr noundef %1284, i32 noundef %1286) #9
  br label %1288

1288:                                             ; preds = %1271, %1254
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1289

1289:                                             ; preds = %1288
  br label %1290

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

1291:                                             ; No predecessors!
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

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

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

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

1304:                                             ; preds = %1296
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

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

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

1335:                                             ; preds = %1313, %1306
  %1336 = load i32, ptr %37, align 4, !tbaa !5
  %1337 = call ptr @__errno_location() #10
  store i32 %1336, ptr %1337, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror(i32 noundef %1341, ptr noundef @.str.4)
  %1343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef @.str.4)
  %1346 = call ptr @__errno_location() #10
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @strerror(i32 noundef %1347) #9
  %1349 = call ptr @__errno_location() #10
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef @.str.5, i32 noundef %1339, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1342, ptr noundef %1345, ptr noundef %1348, i32 noundef %1350) #9
  br label %1352

1352:                                             ; preds = %1335, %1318
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1353

1353:                                             ; preds = %1352
  br label %1354

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

1355:                                             ; No predecessors!
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356, %1296
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr @test_count, align 4, !tbaa !5
  %1363 = load ptr, ptr %6, align 8, !tbaa !9
  %1364 = load ptr, ptr %31, align 8, !tbaa !9
  %1365 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1363, ptr noundef %1364)
  %1366 = icmp eq i32 %1365, -1
  br i1 %1366, label %1367, label %1420

1367:                                             ; preds = %1360
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

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

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

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

1398:                                             ; preds = %1376, %1369
  %1399 = load i32, ptr %38, align 4, !tbaa !5
  %1400 = call ptr @__errno_location() #10
  store i32 %1399, ptr %1400, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef @.str.4)
  %1409 = call ptr @__errno_location() #10
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #9
  %1412 = call ptr @__errno_location() #10
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef @.str.5, i32 noundef %1402, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1405, ptr noundef %1408, ptr noundef %1411, i32 noundef %1413) #9
  br label %1415

1415:                                             ; preds = %1398, %1381
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

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

1418:                                             ; No predecessors!
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419, %1360
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1423

1423:                                             ; preds = %1697, %1422
  %1424 = load i32, ptr %39, align 4, !tbaa !5
  %1425 = icmp ult i32 %1424, 100
  br i1 %1425, label %1427, label %1426

1426:                                             ; preds = %1423
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1700

1427:                                             ; preds = %1423
  br label %1428

1428:                                             ; preds = %1427
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = add nsw i32 %1429, 1
  store i32 %1430, ptr @test_count, align 4, !tbaa !5
  %1431 = call ptr @s2n_cert_chain_and_key_new()
  %1432 = load i32, ptr %39, align 4, !tbaa !5
  %1433 = zext i32 %1432 to i64
  %1434 = getelementptr inbounds [100 x ptr], ptr %33, i64 0, i64 %1433
  store ptr %1431, ptr %1434, align 8, !tbaa !9
  %1435 = icmp eq ptr %1431, null
  br i1 %1435, label %1436, label %1489

1436:                                             ; preds = %1428
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1439 = call ptr @__errno_location() #10
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  store i32 %1440, ptr %40, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @s2n_print_stacktrace(ptr noundef %1441)
  %1443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1444 = trunc i8 %1443 to i1
  br i1 %1444, label %1445, label %1467

1445:                                             ; preds = %1438
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @fileno(ptr noundef %1446) #9
  %1448 = call i32 @isatty(i32 noundef %1447) #9
  %1449 = icmp ne i32 %1448, 0
  br i1 %1449, label %1450, label %1467

1450:                                             ; preds = %1445
  %1451 = load i32, ptr %40, align 4, !tbaa !5
  %1452 = call ptr @__errno_location() #10
  store i32 %1451, ptr %1452, 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 @.str.4)
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef @.str.4)
  %1461 = call ptr @__errno_location() #10
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #9
  %1464 = call ptr @__errno_location() #10
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1453, ptr noundef @.str.2, i32 noundef %1454, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1457, ptr noundef %1460, ptr noundef %1463, i32 noundef %1465) #9
  br label %1484

1467:                                             ; preds = %1445, %1438
  %1468 = load i32, ptr %40, align 4, !tbaa !5
  %1469 = call ptr @__errno_location() #10
  store i32 %1468, ptr %1469, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror(i32 noundef %1473, ptr noundef @.str.4)
  %1475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror_debug(i32 noundef %1476, ptr noundef @.str.4)
  %1478 = call ptr @__errno_location() #10
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @strerror(i32 noundef %1479) #9
  %1481 = call ptr @__errno_location() #10
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1470, ptr noundef @.str.5, i32 noundef %1471, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1474, ptr noundef %1477, ptr noundef %1480, i32 noundef %1482) #9
  br label %1484

1484:                                             ; preds = %1467, %1450
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

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

1487:                                             ; No predecessors!
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488, %1428
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  %1493 = load i32, ptr @test_count, align 4, !tbaa !5
  %1494 = add nsw i32 %1493, 1
  store i32 %1494, ptr @test_count, align 4, !tbaa !5
  %1495 = load i32, ptr %39, align 4, !tbaa !5
  %1496 = zext i32 %1495 to i64
  %1497 = getelementptr inbounds [100 x ptr], ptr %33, i64 0, i64 %1496
  %1498 = load ptr, ptr %1497, align 8, !tbaa !9
  %1499 = load ptr, ptr %10, align 8, !tbaa !9
  %1500 = load ptr, ptr %11, align 8, !tbaa !9
  %1501 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1498, ptr noundef %1499, ptr noundef %1500)
  %1502 = icmp eq i32 %1501, -1
  br i1 %1502, label %1503, label %1556

1503:                                             ; preds = %1492
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1506 = call ptr @__errno_location() #10
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  store i32 %1507, ptr %41, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = call i32 @s2n_print_stacktrace(ptr noundef %1508)
  %1510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1511 = trunc i8 %1510 to i1
  br i1 %1511, label %1512, label %1534

1512:                                             ; preds = %1505
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = call i32 @fileno(ptr noundef %1513) #9
  %1515 = call i32 @isatty(i32 noundef %1514) #9
  %1516 = icmp ne i32 %1515, 0
  br i1 %1516, label %1517, label %1534

1517:                                             ; preds = %1512
  %1518 = load i32, ptr %41, align 4, !tbaa !5
  %1519 = call ptr @__errno_location() #10
  store i32 %1518, ptr %1519, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror(i32 noundef %1523, ptr noundef @.str.4)
  %1525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror_debug(i32 noundef %1526, ptr noundef @.str.4)
  %1528 = call ptr @__errno_location() #10
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @strerror(i32 noundef %1529) #9
  %1531 = call ptr @__errno_location() #10
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef @.str.2, i32 noundef %1521, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1524, ptr noundef %1527, ptr noundef %1530, i32 noundef %1532) #9
  br label %1551

1534:                                             ; preds = %1512, %1505
  %1535 = load i32, ptr %41, align 4, !tbaa !5
  %1536 = call ptr @__errno_location() #10
  store i32 %1535, ptr %1536, align 4, !tbaa !5
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = load i32, ptr @test_count, align 4, !tbaa !5
  %1539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror(i32 noundef %1540, ptr noundef @.str.4)
  %1542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror_debug(i32 noundef %1543, ptr noundef @.str.4)
  %1545 = call ptr @__errno_location() #10
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call ptr @strerror(i32 noundef %1546) #9
  %1548 = call ptr @__errno_location() #10
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1537, ptr noundef @.str.5, i32 noundef %1538, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1541, ptr noundef %1544, ptr noundef %1547, i32 noundef %1549) #9
  br label %1551

1551:                                             ; preds = %1534, %1517
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1552

1552:                                             ; preds = %1551
  br label %1553

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

1554:                                             ; No predecessors!
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555, %1492
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  %1559 = load i32, ptr %39, align 4, !tbaa !5
  %1560 = load i32, ptr %39, align 4, !tbaa !5
  %1561 = zext i32 %1560 to i64
  %1562 = getelementptr inbounds [100 x i32], ptr %32, i64 0, i64 %1561
  store i32 %1559, ptr %1562, align 4, !tbaa !5
  br label %1563

1563:                                             ; preds = %1558
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = add nsw i32 %1564, 1
  store i32 %1565, ptr @test_count, align 4, !tbaa !5
  %1566 = load i32, ptr %39, align 4, !tbaa !5
  %1567 = zext i32 %1566 to i64
  %1568 = getelementptr inbounds [100 x ptr], ptr %33, i64 0, i64 %1567
  %1569 = load ptr, ptr %1568, align 8, !tbaa !9
  %1570 = load i32, ptr %39, align 4, !tbaa !5
  %1571 = zext i32 %1570 to i64
  %1572 = getelementptr inbounds [100 x i32], ptr %32, i64 0, i64 %1571
  %1573 = call i32 @s2n_cert_chain_and_key_set_ctx(ptr noundef %1569, ptr noundef %1572)
  %1574 = icmp eq i32 %1573, -1
  br i1 %1574, label %1575, label %1628

1575:                                             ; preds = %1563
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1578 = call ptr @__errno_location() #10
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  store i32 %1579, ptr %42, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @s2n_print_stacktrace(ptr noundef %1580)
  %1582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1583 = trunc i8 %1582 to i1
  br i1 %1583, label %1584, label %1606

1584:                                             ; preds = %1577
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @fileno(ptr noundef %1585) #9
  %1587 = call i32 @isatty(i32 noundef %1586) #9
  %1588 = icmp ne i32 %1587, 0
  br i1 %1588, label %1589, label %1606

1589:                                             ; preds = %1584
  %1590 = load i32, ptr %42, align 4, !tbaa !5
  %1591 = call ptr @__errno_location() #10
  store i32 %1590, ptr %1591, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef @.str.4)
  %1597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef @.str.4)
  %1600 = call ptr @__errno_location() #10
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @strerror(i32 noundef %1601) #9
  %1603 = call ptr @__errno_location() #10
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1592, ptr noundef @.str.2, i32 noundef %1593, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1596, ptr noundef %1599, ptr noundef %1602, i32 noundef %1604) #9
  br label %1623

1606:                                             ; preds = %1584, %1577
  %1607 = load i32, ptr %42, align 4, !tbaa !5
  %1608 = call ptr @__errno_location() #10
  store i32 %1607, ptr %1608, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef @.str.4)
  %1614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call ptr @s2n_strerror_debug(i32 noundef %1615, ptr noundef @.str.4)
  %1617 = call ptr @__errno_location() #10
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call ptr @strerror(i32 noundef %1618) #9
  %1620 = call ptr @__errno_location() #10
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1609, ptr noundef @.str.5, i32 noundef %1610, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1613, ptr noundef %1616, ptr noundef %1619, i32 noundef %1621) #9
  br label %1623

1623:                                             ; preds = %1606, %1589
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

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

1626:                                             ; No predecessors!
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627, %1563
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = add nsw i32 %1632, 1
  store i32 %1633, ptr @test_count, align 4, !tbaa !5
  %1634 = load ptr, ptr %6, align 8, !tbaa !9
  %1635 = load i32, ptr %39, align 4, !tbaa !5
  %1636 = zext i32 %1635 to i64
  %1637 = getelementptr inbounds [100 x ptr], ptr %33, i64 0, i64 %1636
  %1638 = load ptr, ptr %1637, align 8, !tbaa !9
  %1639 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1634, ptr noundef %1638)
  %1640 = icmp eq i32 %1639, -1
  br i1 %1640, label %1641, label %1694

1641:                                             ; preds = %1631
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

1643:                                             ; preds = %1642
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1644 = call ptr @__errno_location() #10
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  store i32 %1645, ptr %43, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = call i32 @s2n_print_stacktrace(ptr noundef %1646)
  %1648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1650, label %1672

1650:                                             ; preds = %1643
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @fileno(ptr noundef %1651) #9
  %1653 = call i32 @isatty(i32 noundef %1652) #9
  %1654 = icmp ne i32 %1653, 0
  br i1 %1654, label %1655, label %1672

1655:                                             ; preds = %1650
  %1656 = load i32, ptr %43, align 4, !tbaa !5
  %1657 = call ptr @__errno_location() #10
  store i32 %1656, ptr %1657, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror(i32 noundef %1661, ptr noundef @.str.4)
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call ptr @__errno_location() #10
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #9
  %1669 = call ptr @__errno_location() #10
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef @.str.2, i32 noundef %1659, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1662, ptr noundef %1665, ptr noundef %1668, i32 noundef %1670) #9
  br label %1689

1672:                                             ; preds = %1650, %1643
  %1673 = load i32, ptr %43, align 4, !tbaa !5
  %1674 = call ptr @__errno_location() #10
  store i32 %1673, ptr %1674, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror(i32 noundef %1678, ptr noundef @.str.4)
  %1680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror_debug(i32 noundef %1681, ptr noundef @.str.4)
  %1683 = call ptr @__errno_location() #10
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @strerror(i32 noundef %1684) #9
  %1686 = call ptr @__errno_location() #10
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1675, ptr noundef @.str.5, i32 noundef %1676, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1679, ptr noundef %1682, ptr noundef %1685, i32 noundef %1687) #9
  br label %1689

1689:                                             ; preds = %1672, %1655
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

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

1692:                                             ; No predecessors!
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

1694:                                             ; preds = %1693, %1631
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696
  %1698 = load i32, ptr %39, align 4, !tbaa !5
  %1699 = add i32 %1698, 1
  store i32 %1699, ptr %39, align 4, !tbaa !5
  br label %1423, !llvm.loop !15

1700:                                             ; preds = %1426
  br label %1701

1701:                                             ; preds = %1700
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = load ptr, ptr %6, align 8, !tbaa !9
  %1705 = call ptr @create_conn(i32 noundef 0, ptr noundef %1704)
  store ptr %1705, ptr %8, align 8, !tbaa !9
  %1706 = icmp eq ptr %1705, null
  br i1 %1706, label %1707, label %1760

1707:                                             ; preds = %1701
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

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

1716:                                             ; preds = %1709
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @fileno(ptr noundef %1717) #9
  %1719 = call i32 @isatty(i32 noundef %1718) #9
  %1720 = icmp ne i32 %1719, 0
  br i1 %1720, label %1721, label %1738

1721:                                             ; preds = %1716
  %1722 = load i32, ptr %44, align 4, !tbaa !5
  %1723 = call ptr @__errno_location() #10
  store i32 %1722, ptr %1723, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef @.str.4)
  %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_debug(i32 noundef %1730, ptr noundef @.str.4)
  %1732 = call ptr @__errno_location() #10
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #9
  %1735 = call ptr @__errno_location() #10
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef @.str.2, i32 noundef %1725, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1728, ptr noundef %1731, ptr noundef %1734, i32 noundef %1736) #9
  br label %1755

1738:                                             ; preds = %1716, %1709
  %1739 = load i32, ptr %44, align 4, !tbaa !5
  %1740 = call ptr @__errno_location() #10
  store i32 %1739, ptr %1740, align 4, !tbaa !5
  %1741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror(i32 noundef %1744, ptr noundef @.str.4)
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror_debug(i32 noundef %1747, ptr noundef @.str.4)
  %1749 = call ptr @__errno_location() #10
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #9
  %1752 = call ptr @__errno_location() #10
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1741, ptr noundef @.str.5, i32 noundef %1742, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1745, ptr noundef %1748, ptr noundef %1751, i32 noundef %1753) #9
  br label %1755

1755:                                             ; preds = %1738, %1721
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

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

1758:                                             ; No predecessors!
  br label %1759

1759:                                             ; preds = %1758
  br label %1760

1760:                                             ; preds = %1759, %1701
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  br label %1763

1763:                                             ; preds = %1762
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load ptr, ptr %7, align 8, !tbaa !9
  %1767 = call ptr @create_conn(i32 noundef 1, ptr noundef %1766)
  store ptr %1767, ptr %9, align 8, !tbaa !9
  %1768 = icmp eq ptr %1767, null
  br i1 %1768, label %1769, label %1822

1769:                                             ; preds = %1763
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

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

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

1783:                                             ; preds = %1778
  %1784 = load i32, ptr %45, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #10
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #10
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #9
  %1797 = call ptr @__errno_location() #10
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.2, i32 noundef %1787, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #9
  br label %1817

1800:                                             ; preds = %1778, %1771
  %1801 = load i32, ptr %45, align 4, !tbaa !5
  %1802 = call ptr @__errno_location() #10
  store i32 %1801, ptr %1802, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror_debug(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call ptr @__errno_location() #10
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #9
  %1814 = call ptr @__errno_location() #10
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1803, ptr noundef @.str.5, i32 noundef %1804, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1807, ptr noundef %1810, ptr noundef %1813, i32 noundef %1815) #9
  br label %1817

1817:                                             ; preds = %1800, %1783
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

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

1820:                                             ; No predecessors!
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821, %1763
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

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

1832:                                             ; preds = %1825
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

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

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

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

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

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

1881:                                             ; preds = %1880
  br label %1882

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

1883:                                             ; No predecessors!
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

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

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

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

1894:                                             ; preds = %1888
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

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

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

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

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

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

1943:                                             ; preds = %1942
  br label %1944

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

1945:                                             ; No predecessors!
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

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

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = add nsw i32 %1951, 1
  store i32 %1952, ptr @test_count, align 4, !tbaa !5
  %1953 = load ptr, ptr %8, align 8, !tbaa !9
  %1954 = load ptr, ptr %9, align 8, !tbaa !9
  %1955 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1953, ptr noundef %1954)
  %1956 = icmp eq i32 %1955, -1
  br i1 %1956, label %1957, label %2010

1957:                                             ; preds = %1950
  br label %1958

1958:                                             ; preds = %1957
  br label %1959

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

1966:                                             ; preds = %1959
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @fileno(ptr noundef %1967) #9
  %1969 = call i32 @isatty(i32 noundef %1968) #9
  %1970 = icmp ne i32 %1969, 0
  br i1 %1970, label %1971, label %1988

1971:                                             ; preds = %1966
  %1972 = load i32, ptr %48, align 4, !tbaa !5
  %1973 = call ptr @__errno_location() #10
  store i32 %1972, ptr %1973, align 4, !tbaa !5
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror(i32 noundef %1977, ptr noundef @.str.4)
  %1979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror_debug(i32 noundef %1980, ptr noundef @.str.4)
  %1982 = call ptr @__errno_location() #10
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @strerror(i32 noundef %1983) #9
  %1985 = call ptr @__errno_location() #10
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1974, ptr noundef @.str.2, i32 noundef %1975, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1978, ptr noundef %1981, ptr noundef %1984, i32 noundef %1986) #9
  br label %2005

1988:                                             ; preds = %1966, %1959
  %1989 = load i32, ptr %48, align 4, !tbaa !5
  %1990 = call ptr @__errno_location() #10
  store i32 %1989, ptr %1990, align 4, !tbaa !5
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror(i32 noundef %1994, ptr noundef @.str.4)
  %1996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call ptr @s2n_strerror_debug(i32 noundef %1997, ptr noundef @.str.4)
  %1999 = call ptr @__errno_location() #10
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @strerror(i32 noundef %2000) #9
  %2002 = call ptr @__errno_location() #10
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1991, ptr noundef @.str.5, i32 noundef %1992, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1995, ptr noundef %1998, ptr noundef %2001, i32 noundef %2003) #9
  br label %2005

2005:                                             ; preds = %1988, %1971
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

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

2008:                                             ; No predecessors!
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

2010:                                             ; preds = %2009, %1950
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

2013:                                             ; preds = %2012
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = add nsw i32 %2014, 1
  store i32 %2015, ptr @test_count, align 4, !tbaa !5
  %2016 = load ptr, ptr %8, align 8, !tbaa !9
  %2017 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2016, i32 noundef 2)
  br i1 %2017, label %2071, label %2018

2018:                                             ; preds = %2013
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

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

2027:                                             ; preds = %2020
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @fileno(ptr noundef %2028) #9
  %2030 = call i32 @isatty(i32 noundef %2029) #9
  %2031 = icmp ne i32 %2030, 0
  br i1 %2031, label %2032, label %2049

2032:                                             ; preds = %2027
  %2033 = load i32, ptr %49, align 4, !tbaa !5
  %2034 = call ptr @__errno_location() #10
  store i32 %2033, ptr %2034, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @s2n_strerror_debug(i32 noundef %2041, ptr noundef @.str.4)
  %2043 = call ptr @__errno_location() #10
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @strerror(i32 noundef %2044) #9
  %2046 = call ptr @__errno_location() #10
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef @.str.2, i32 noundef %2036, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2039, ptr noundef %2042, ptr noundef %2045, i32 noundef %2047) #9
  br label %2066

2049:                                             ; preds = %2027, %2020
  %2050 = load i32, ptr %49, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #10
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = call ptr @__errno_location() #10
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #9
  %2063 = call ptr @__errno_location() #10
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.5, i32 noundef %2053, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #9
  br label %2066

2066:                                             ; preds = %2049, %2032
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

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

2069:                                             ; No predecessors!
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070, %2013
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = add nsw i32 %2075, 1
  store i32 %2076, ptr @test_count, align 4, !tbaa !5
  %2077 = load i32, ptr @num_times_cb_executed, align 4, !tbaa !5
  %2078 = icmp eq i32 %2077, 99
  br i1 %2078, label %2132, label %2079

2079:                                             ; preds = %2074
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

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

2088:                                             ; preds = %2081
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @fileno(ptr noundef %2089) #9
  %2091 = call i32 @isatty(i32 noundef %2090) #9
  %2092 = icmp ne i32 %2091, 0
  br i1 %2092, label %2093, label %2110

2093:                                             ; preds = %2088
  %2094 = load i32, ptr %50, align 4, !tbaa !5
  %2095 = call ptr @__errno_location() #10
  store i32 %2094, ptr %2095, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef @.str.4)
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror_debug(i32 noundef %2102, ptr noundef @.str.4)
  %2104 = call ptr @__errno_location() #10
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #9
  %2107 = call ptr @__errno_location() #10
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef @.str.2, i32 noundef %2097, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2100, ptr noundef %2103, ptr noundef %2106, i32 noundef %2108) #9
  br label %2127

2110:                                             ; preds = %2088, %2081
  %2111 = load i32, ptr %50, align 4, !tbaa !5
  %2112 = call ptr @__errno_location() #10
  store i32 %2111, ptr %2112, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef @.str.4)
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call ptr @__errno_location() #10
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @strerror(i32 noundef %2122) #9
  %2124 = call ptr @__errno_location() #10
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef @.str.5, i32 noundef %2114, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2117, ptr noundef %2120, ptr noundef %2123, i32 noundef %2125) #9
  br label %2127

2127:                                             ; preds = %2110, %2093
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

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

2130:                                             ; No predecessors!
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131, %2074
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %2135 = load ptr, ptr %8, align 8, !tbaa !9
  %2136 = call ptr @s2n_connection_get_selected_cert(ptr noundef %2135)
  store ptr %2136, ptr %51, align 8, !tbaa !9
  br label %2137

2137:                                             ; preds = %2134
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = add nsw i32 %2138, 1
  store i32 %2139, ptr @test_count, align 4, !tbaa !5
  %2140 = load ptr, ptr %51, align 8, !tbaa !9
  %2141 = getelementptr inbounds [100 x ptr], ptr %33, i64 0, i64 99
  %2142 = load ptr, ptr %2141, align 8, !tbaa !9
  %2143 = icmp eq ptr %2140, %2142
  br i1 %2143, label %2197, label %2144

2144:                                             ; preds = %2137
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

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

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

2158:                                             ; preds = %2153
  %2159 = load i32, ptr %52, align 4, !tbaa !5
  %2160 = call ptr @__errno_location() #10
  store i32 %2159, ptr %2160, align 4, !tbaa !5
  %2161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2162 = load i32, ptr @test_count, align 4, !tbaa !5
  %2163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror(i32 noundef %2164, ptr noundef @.str.4)
  %2166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror_debug(i32 noundef %2167, ptr noundef @.str.4)
  %2169 = call ptr @__errno_location() #10
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call ptr @strerror(i32 noundef %2170) #9
  %2172 = call ptr @__errno_location() #10
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2161, ptr noundef @.str.2, i32 noundef %2162, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2165, ptr noundef %2168, ptr noundef %2171, i32 noundef %2173) #9
  br label %2192

2175:                                             ; preds = %2153, %2146
  %2176 = load i32, ptr %52, align 4, !tbaa !5
  %2177 = call ptr @__errno_location() #10
  store i32 %2176, ptr %2177, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef @.str.4)
  %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_debug(i32 noundef %2184, ptr noundef @.str.4)
  %2186 = call ptr @__errno_location() #10
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = call ptr @strerror(i32 noundef %2187) #9
  %2189 = call ptr @__errno_location() #10
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef @.str.5, i32 noundef %2179, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2182, ptr noundef %2185, ptr noundef %2188, i32 noundef %2190) #9
  br label %2192

2192:                                             ; preds = %2175, %2158
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

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

2195:                                             ; No predecessors!
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196, %2137
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

2200:                                             ; preds = %2199
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = add nsw i32 %2201, 1
  store i32 %2202, ptr @test_count, align 4, !tbaa !5
  %2203 = load ptr, ptr %51, align 8, !tbaa !9
  %2204 = call ptr @s2n_cert_chain_and_key_get_ctx(ptr noundef %2203)
  %2205 = getelementptr inbounds [100 x i32], ptr %32, i64 0, i64 99
  %2206 = icmp eq ptr %2204, %2205
  br i1 %2206, label %2260, label %2207

2207:                                             ; preds = %2200
  br label %2208

2208:                                             ; preds = %2207
  br label %2209

2209:                                             ; preds = %2208
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2210 = call ptr @__errno_location() #10
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  store i32 %2211, ptr %53, align 4, !tbaa !5
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = call i32 @s2n_print_stacktrace(ptr noundef %2212)
  %2214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2215 = trunc i8 %2214 to i1
  br i1 %2215, label %2216, label %2238

2216:                                             ; preds = %2209
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = call i32 @fileno(ptr noundef %2217) #9
  %2219 = call i32 @isatty(i32 noundef %2218) #9
  %2220 = icmp ne i32 %2219, 0
  br i1 %2220, label %2221, label %2238

2221:                                             ; preds = %2216
  %2222 = load i32, ptr %53, align 4, !tbaa !5
  %2223 = call ptr @__errno_location() #10
  store i32 %2222, ptr %2223, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = load i32, ptr @test_count, align 4, !tbaa !5
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror(i32 noundef %2227, ptr noundef @.str.4)
  %2229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror_debug(i32 noundef %2230, ptr noundef @.str.4)
  %2232 = call ptr @__errno_location() #10
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @strerror(i32 noundef %2233) #9
  %2235 = call ptr @__errno_location() #10
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2224, ptr noundef @.str.2, i32 noundef %2225, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2228, ptr noundef %2231, ptr noundef %2234, i32 noundef %2236) #9
  br label %2255

2238:                                             ; preds = %2216, %2209
  %2239 = load i32, ptr %53, align 4, !tbaa !5
  %2240 = call ptr @__errno_location() #10
  store i32 %2239, ptr %2240, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror(i32 noundef %2244, ptr noundef @.str.4)
  %2246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror_debug(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call ptr @__errno_location() #10
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @strerror(i32 noundef %2250) #9
  %2252 = call ptr @__errno_location() #10
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2241, ptr noundef @.str.5, i32 noundef %2242, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2245, ptr noundef %2248, ptr noundef %2251, i32 noundef %2253) #9
  br label %2255

2255:                                             ; preds = %2238, %2221
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

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

2258:                                             ; No predecessors!
  br label %2259

2259:                                             ; preds = %2258
  br label %2260

2260:                                             ; preds = %2259, %2200
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = add nsw i32 %2264, 1
  store i32 %2265, ptr @test_count, align 4, !tbaa !5
  %2266 = load ptr, ptr %51, align 8, !tbaa !9
  %2267 = call ptr @s2n_cert_chain_and_key_get_ctx(ptr noundef %2266)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = icmp eq i32 %2268, 99
  br i1 %2269, label %2323, label %2270

2270:                                             ; preds = %2263
  br label %2271

2271:                                             ; preds = %2270
  br label %2272

2272:                                             ; preds = %2271
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2273 = call ptr @__errno_location() #10
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  store i32 %2274, ptr %54, align 4, !tbaa !5
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = call i32 @s2n_print_stacktrace(ptr noundef %2275)
  %2277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2278 = trunc i8 %2277 to i1
  br i1 %2278, label %2279, label %2301

2279:                                             ; preds = %2272
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @fileno(ptr noundef %2280) #9
  %2282 = call i32 @isatty(i32 noundef %2281) #9
  %2283 = icmp ne i32 %2282, 0
  br i1 %2283, label %2284, label %2301

2284:                                             ; preds = %2279
  %2285 = load i32, ptr %54, align 4, !tbaa !5
  %2286 = call ptr @__errno_location() #10
  store i32 %2285, ptr %2286, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = load i32, ptr @test_count, align 4, !tbaa !5
  %2289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror(i32 noundef %2290, ptr noundef @.str.4)
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef @.str.4)
  %2295 = call ptr @__errno_location() #10
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #9
  %2298 = call ptr @__errno_location() #10
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2287, ptr noundef @.str.2, i32 noundef %2288, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2291, ptr noundef %2294, ptr noundef %2297, i32 noundef %2299) #9
  br label %2318

2301:                                             ; preds = %2279, %2272
  %2302 = load i32, ptr %54, align 4, !tbaa !5
  %2303 = call ptr @__errno_location() #10
  store i32 %2302, ptr %2303, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror(i32 noundef %2307, ptr noundef @.str.4)
  %2309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = call ptr @s2n_strerror_debug(i32 noundef %2310, ptr noundef @.str.4)
  %2312 = call ptr @__errno_location() #10
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call ptr @strerror(i32 noundef %2313) #9
  %2315 = call ptr @__errno_location() #10
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2304, ptr noundef @.str.5, i32 noundef %2305, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2308, ptr noundef %2311, ptr noundef %2314, i32 noundef %2316) #9
  br label %2318

2318:                                             ; preds = %2301, %2284
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2319

2319:                                             ; preds = %2318
  br label %2320

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

2321:                                             ; No predecessors!
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

2323:                                             ; preds = %2322, %2263
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

2326:                                             ; preds = %2325
  %2327 = load i32, ptr @test_count, align 4, !tbaa !5
  %2328 = add nsw i32 %2327, 1
  store i32 %2328, ptr @test_count, align 4, !tbaa !5
  %2329 = load ptr, ptr %8, align 8, !tbaa !9
  %2330 = load ptr, ptr %9, align 8, !tbaa !9
  %2331 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %2329, ptr noundef %2330)
  %2332 = icmp eq i32 %2331, -1
  br i1 %2332, label %2333, label %2386

2333:                                             ; preds = %2326
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2336 = call ptr @__errno_location() #10
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  store i32 %2337, ptr %55, align 4, !tbaa !5
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @s2n_print_stacktrace(ptr noundef %2338)
  %2340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2341 = trunc i8 %2340 to i1
  br i1 %2341, label %2342, label %2364

2342:                                             ; preds = %2335
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @fileno(ptr noundef %2343) #9
  %2345 = call i32 @isatty(i32 noundef %2344) #9
  %2346 = icmp ne i32 %2345, 0
  br i1 %2346, label %2347, label %2364

2347:                                             ; preds = %2342
  %2348 = load i32, ptr %55, align 4, !tbaa !5
  %2349 = call ptr @__errno_location() #10
  store i32 %2348, ptr %2349, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @s2n_strerror(i32 noundef %2353, ptr noundef @.str.4)
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror_debug(i32 noundef %2356, ptr noundef @.str.4)
  %2358 = call ptr @__errno_location() #10
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @strerror(i32 noundef %2359) #9
  %2361 = call ptr @__errno_location() #10
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2350, ptr noundef @.str.2, i32 noundef %2351, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2354, ptr noundef %2357, ptr noundef %2360, i32 noundef %2362) #9
  br label %2381

2364:                                             ; preds = %2342, %2335
  %2365 = load i32, ptr %55, align 4, !tbaa !5
  %2366 = call ptr @__errno_location() #10
  store i32 %2365, ptr %2366, 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 @.str.4)
  %2372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror_debug(i32 noundef %2373, ptr noundef @.str.4)
  %2375 = call ptr @__errno_location() #10
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #9
  %2378 = call ptr @__errno_location() #10
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2367, ptr noundef @.str.5, i32 noundef %2368, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2371, ptr noundef %2374, ptr noundef %2377, i32 noundef %2379) #9
  br label %2381

2381:                                             ; preds = %2364, %2347
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

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

2384:                                             ; No predecessors!
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385, %2326
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

2389:                                             ; preds = %2388
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = add nsw i32 %2390, 1
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = load ptr, ptr %8, align 8, !tbaa !9
  %2393 = call i32 @s2n_connection_free(ptr noundef %2392)
  %2394 = icmp eq i32 %2393, -1
  br i1 %2394, label %2395, label %2448

2395:                                             ; preds = %2389
  br label %2396

2396:                                             ; preds = %2395
  br label %2397

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

2404:                                             ; preds = %2397
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = call i32 @fileno(ptr noundef %2405) #9
  %2407 = call i32 @isatty(i32 noundef %2406) #9
  %2408 = icmp ne i32 %2407, 0
  br i1 %2408, label %2409, label %2426

2409:                                             ; preds = %2404
  %2410 = load i32, ptr %56, align 4, !tbaa !5
  %2411 = call ptr @__errno_location() #10
  store i32 %2410, ptr %2411, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = load i32, ptr @test_count, align 4, !tbaa !5
  %2414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @s2n_strerror(i32 noundef %2415, ptr noundef @.str.4)
  %2417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror_debug(i32 noundef %2418, ptr noundef @.str.4)
  %2420 = call ptr @__errno_location() #10
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @strerror(i32 noundef %2421) #9
  %2423 = call ptr @__errno_location() #10
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2412, ptr noundef @.str.2, i32 noundef %2413, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2416, ptr noundef %2419, ptr noundef %2422, i32 noundef %2424) #9
  br label %2443

2426:                                             ; preds = %2404, %2397
  %2427 = load i32, ptr %56, align 4, !tbaa !5
  %2428 = call ptr @__errno_location() #10
  store i32 %2427, ptr %2428, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror(i32 noundef %2432, ptr noundef @.str.4)
  %2434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror_debug(i32 noundef %2435, ptr noundef @.str.4)
  %2437 = call ptr @__errno_location() #10
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call ptr @strerror(i32 noundef %2438) #9
  %2440 = call ptr @__errno_location() #10
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2429, ptr noundef @.str.5, i32 noundef %2430, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2433, ptr noundef %2436, ptr noundef %2439, i32 noundef %2441) #9
  br label %2443

2443:                                             ; preds = %2426, %2409
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

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

2446:                                             ; No predecessors!
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447, %2389
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = add nsw i32 %2452, 1
  store i32 %2453, ptr @test_count, align 4, !tbaa !5
  %2454 = load ptr, ptr %9, align 8, !tbaa !9
  %2455 = call i32 @s2n_connection_free(ptr noundef %2454)
  %2456 = icmp eq i32 %2455, -1
  br i1 %2456, label %2457, label %2510

2457:                                             ; preds = %2451
  br label %2458

2458:                                             ; preds = %2457
  br label %2459

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

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

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

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

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

2506:                                             ; preds = %2505
  br label %2507

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

2508:                                             ; No predecessors!
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

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

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  store i64 0, ptr %58, align 8, !tbaa !17
  br label %2513

2513:                                             ; preds = %2582, %2512
  %2514 = load i64, ptr %58, align 8, !tbaa !17
  %2515 = icmp ult i64 %2514, 100
  br i1 %2515, label %2517, label %2516

2516:                                             ; preds = %2513
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %2585

2517:                                             ; preds = %2513
  br label %2518

2518:                                             ; preds = %2517
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = add nsw i32 %2519, 1
  store i32 %2520, ptr @test_count, align 4, !tbaa !5
  %2521 = load i64, ptr %58, align 8, !tbaa !17
  %2522 = getelementptr inbounds [100 x ptr], ptr %33, i64 0, i64 %2521
  %2523 = load ptr, ptr %2522, align 8, !tbaa !9
  %2524 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2523)
  %2525 = icmp eq i32 %2524, -1
  br i1 %2525, label %2526, label %2579

2526:                                             ; preds = %2518
  br label %2527

2527:                                             ; preds = %2526
  br label %2528

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

2535:                                             ; preds = %2528
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = call i32 @fileno(ptr noundef %2536) #9
  %2538 = call i32 @isatty(i32 noundef %2537) #9
  %2539 = icmp ne i32 %2538, 0
  br i1 %2539, label %2540, label %2557

2540:                                             ; preds = %2535
  %2541 = load i32, ptr %59, align 4, !tbaa !5
  %2542 = call ptr @__errno_location() #10
  store i32 %2541, ptr %2542, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror(i32 noundef %2546, ptr noundef @.str.4)
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror_debug(i32 noundef %2549, ptr noundef @.str.4)
  %2551 = call ptr @__errno_location() #10
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @strerror(i32 noundef %2552) #9
  %2554 = call ptr @__errno_location() #10
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2543, ptr noundef @.str.2, i32 noundef %2544, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2547, ptr noundef %2550, ptr noundef %2553, i32 noundef %2555) #9
  br label %2574

2557:                                             ; preds = %2535, %2528
  %2558 = load i32, ptr %59, align 4, !tbaa !5
  %2559 = call ptr @__errno_location() #10
  store i32 %2558, ptr %2559, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = call ptr @s2n_strerror(i32 noundef %2563, ptr noundef @.str.4)
  %2565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call ptr @s2n_strerror_debug(i32 noundef %2566, ptr noundef @.str.4)
  %2568 = call ptr @__errno_location() #10
  %2569 = load i32, ptr %2568, align 4, !tbaa !5
  %2570 = call ptr @strerror(i32 noundef %2569) #9
  %2571 = call ptr @__errno_location() #10
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef @.str.5, i32 noundef %2561, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2564, ptr noundef %2567, ptr noundef %2570, i32 noundef %2572) #9
  br label %2574

2574:                                             ; preds = %2557, %2540
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

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

2577:                                             ; No predecessors!
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578, %2518
  br label %2580

2580:                                             ; preds = %2579
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

2582:                                             ; preds = %2581
  %2583 = load i64, ptr %58, align 8, !tbaa !17
  %2584 = add i64 %2583, 1
  store i64 %2584, ptr %58, align 8, !tbaa !17
  br label %2513, !llvm.loop !19

2585:                                             ; preds = %2516
  br label %2586

2586:                                             ; preds = %2585
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = add nsw i32 %2587, 1
  store i32 %2588, ptr @test_count, align 4, !tbaa !5
  %2589 = load ptr, ptr %31, align 8, !tbaa !9
  %2590 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2589)
  %2591 = icmp eq i32 %2590, -1
  br i1 %2591, label %2592, label %2645

2592:                                             ; preds = %2586
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

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

2601:                                             ; preds = %2594
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = call i32 @fileno(ptr noundef %2602) #9
  %2604 = call i32 @isatty(i32 noundef %2603) #9
  %2605 = icmp ne i32 %2604, 0
  br i1 %2605, label %2606, label %2623

2606:                                             ; preds = %2601
  %2607 = load i32, ptr %60, align 4, !tbaa !5
  %2608 = call ptr @__errno_location() #10
  store i32 %2607, ptr %2608, align 4, !tbaa !5
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = load i32, ptr @test_count, align 4, !tbaa !5
  %2611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @s2n_strerror(i32 noundef %2612, ptr noundef @.str.4)
  %2614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror_debug(i32 noundef %2615, ptr noundef @.str.4)
  %2617 = call ptr @__errno_location() #10
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @strerror(i32 noundef %2618) #9
  %2620 = call ptr @__errno_location() #10
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2609, ptr noundef @.str.2, i32 noundef %2610, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2613, ptr noundef %2616, ptr noundef %2619, i32 noundef %2621) #9
  br label %2640

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

2640:                                             ; preds = %2623, %2606
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

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

2643:                                             ; No predecessors!
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

2645:                                             ; preds = %2644, %2586
  br label %2646

2646:                                             ; preds = %2645
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = add nsw i32 %2649, 1
  store i32 %2650, ptr @test_count, align 4, !tbaa !5
  %2651 = load ptr, ptr %6, align 8, !tbaa !9
  %2652 = call i32 @s2n_config_free(ptr noundef %2651)
  %2653 = icmp eq i32 %2652, -1
  br i1 %2653, label %2654, label %2707

2654:                                             ; preds = %2648
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

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

2663:                                             ; preds = %2656
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @fileno(ptr noundef %2664) #9
  %2666 = call i32 @isatty(i32 noundef %2665) #9
  %2667 = icmp ne i32 %2666, 0
  br i1 %2667, label %2668, label %2685

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %61, align 4, !tbaa !5
  %2670 = call ptr @__errno_location() #10
  store i32 %2669, ptr %2670, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef @.str.4)
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef @.str.4)
  %2679 = call ptr @__errno_location() #10
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #9
  %2682 = call ptr @__errno_location() #10
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef @.str.2, i32 noundef %2672, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2675, ptr noundef %2678, ptr noundef %2681, i32 noundef %2683) #9
  br label %2702

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

2702:                                             ; preds = %2685, %2668
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

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

2705:                                             ; No predecessors!
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

2707:                                             ; preds = %2706, %2648
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 800, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 400, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %2710

2710:                                             ; preds = %2709
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = call ptr @s2n_config_new()
  store ptr %2713, ptr %6, align 8, !tbaa !9
  %2714 = icmp eq ptr %2713, null
  br i1 %2714, label %2715, label %2768

2715:                                             ; preds = %2710
  br label %2716

2716:                                             ; preds = %2715
  br label %2717

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

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

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

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

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

2764:                                             ; preds = %2763
  br label %2765

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

2766:                                             ; No predecessors!
  br label %2767

2767:                                             ; preds = %2766
  br label %2768

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

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769
  br label %2771

2771:                                             ; preds = %2770
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = add nsw i32 %2772, 1
  store i32 %2773, ptr @test_count, align 4, !tbaa !5
  %2774 = load ptr, ptr %6, align 8, !tbaa !9
  %2775 = load ptr, ptr %12, align 8, !tbaa !9
  %2776 = load ptr, ptr %13, align 8, !tbaa !9
  %2777 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef %2774, ptr noundef %2775, ptr noundef %2776)
  %2778 = icmp eq i32 %2777, -1
  br i1 %2778, label %2779, label %2832

2779:                                             ; preds = %2771
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

2781:                                             ; preds = %2780
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2782 = call ptr @__errno_location() #10
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  store i32 %2783, ptr %63, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @s2n_print_stacktrace(ptr noundef %2784)
  %2786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2787 = trunc i8 %2786 to i1
  br i1 %2787, label %2788, label %2810

2788:                                             ; preds = %2781
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @fileno(ptr noundef %2789) #9
  %2791 = call i32 @isatty(i32 noundef %2790) #9
  %2792 = icmp ne i32 %2791, 0
  br i1 %2792, label %2793, label %2810

2793:                                             ; preds = %2788
  %2794 = load i32, ptr %63, align 4, !tbaa !5
  %2795 = call ptr @__errno_location() #10
  store i32 %2794, ptr %2795, align 4, !tbaa !5
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror(i32 noundef %2799, ptr noundef @.str.4)
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror_debug(i32 noundef %2802, ptr noundef @.str.4)
  %2804 = call ptr @__errno_location() #10
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @strerror(i32 noundef %2805) #9
  %2807 = call ptr @__errno_location() #10
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2796, ptr noundef @.str.2, i32 noundef %2797, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2800, ptr noundef %2803, ptr noundef %2806, i32 noundef %2808) #9
  br label %2827

2810:                                             ; preds = %2788, %2781
  %2811 = load i32, ptr %63, align 4, !tbaa !5
  %2812 = call ptr @__errno_location() #10
  store i32 %2811, ptr %2812, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call ptr @s2n_strerror(i32 noundef %2816, ptr noundef @.str.4)
  %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_debug(i32 noundef %2819, ptr noundef @.str.4)
  %2821 = call ptr @__errno_location() #10
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @strerror(i32 noundef %2822) #9
  %2824 = call ptr @__errno_location() #10
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2813, ptr noundef @.str.5, i32 noundef %2814, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2817, ptr noundef %2820, ptr noundef %2823, i32 noundef %2825) #9
  br label %2827

2827:                                             ; preds = %2810, %2793
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2828

2828:                                             ; preds = %2827
  br label %2829

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

2830:                                             ; No predecessors!
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

2832:                                             ; preds = %2831, %2771
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

2835:                                             ; preds = %2834
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = add nsw i32 %2836, 1
  store i32 %2837, ptr @test_count, align 4, !tbaa !5
  %2838 = load ptr, ptr %6, align 8, !tbaa !9
  %2839 = call ptr @create_conn(i32 noundef 0, ptr noundef %2838)
  store ptr %2839, ptr %8, align 8, !tbaa !9
  %2840 = icmp eq ptr %2839, null
  br i1 %2840, label %2841, label %2894

2841:                                             ; preds = %2835
  br label %2842

2842:                                             ; preds = %2841
  br label %2843

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

2850:                                             ; preds = %2843
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @fileno(ptr noundef %2851) #9
  %2853 = call i32 @isatty(i32 noundef %2852) #9
  %2854 = icmp ne i32 %2853, 0
  br i1 %2854, label %2855, label %2872

2855:                                             ; preds = %2850
  %2856 = load i32, ptr %64, align 4, !tbaa !5
  %2857 = call ptr @__errno_location() #10
  store i32 %2856, ptr %2857, align 4, !tbaa !5
  %2858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2859 = load i32, ptr @test_count, align 4, !tbaa !5
  %2860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror(i32 noundef %2861, ptr noundef @.str.4)
  %2863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror_debug(i32 noundef %2864, ptr noundef @.str.4)
  %2866 = call ptr @__errno_location() #10
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @strerror(i32 noundef %2867) #9
  %2869 = call ptr @__errno_location() #10
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2858, ptr noundef @.str.2, i32 noundef %2859, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2862, ptr noundef %2865, ptr noundef %2868, i32 noundef %2870) #9
  br label %2889

2872:                                             ; preds = %2850, %2843
  %2873 = load i32, ptr %64, align 4, !tbaa !5
  %2874 = call ptr @__errno_location() #10
  store i32 %2873, ptr %2874, align 4, !tbaa !5
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = load i32, ptr @test_count, align 4, !tbaa !5
  %2877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror(i32 noundef %2878, ptr noundef @.str.4)
  %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_debug(i32 noundef %2881, ptr noundef @.str.4)
  %2883 = call ptr @__errno_location() #10
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @strerror(i32 noundef %2884) #9
  %2886 = call ptr @__errno_location() #10
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2875, ptr noundef @.str.5, i32 noundef %2876, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2879, ptr noundef %2882, ptr noundef %2885, i32 noundef %2887) #9
  br label %2889

2889:                                             ; preds = %2872, %2855
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

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

2892:                                             ; No predecessors!
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893, %2835
  br label %2895

2895:                                             ; preds = %2894
  br label %2896

2896:                                             ; preds = %2895
  br label %2897

2897:                                             ; preds = %2896
  %2898 = load i32, ptr @test_count, align 4, !tbaa !5
  %2899 = add nsw i32 %2898, 1
  store i32 %2899, ptr @test_count, align 4, !tbaa !5
  %2900 = load ptr, ptr %7, align 8, !tbaa !9
  %2901 = call ptr @create_conn(i32 noundef 1, ptr noundef %2900)
  store ptr %2901, ptr %9, align 8, !tbaa !9
  %2902 = icmp eq ptr %2901, null
  br i1 %2902, label %2903, label %2956

2903:                                             ; preds = %2897
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

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

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

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

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

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

2952:                                             ; preds = %2951
  br label %2953

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

2954:                                             ; No predecessors!
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

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

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

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

2966:                                             ; preds = %2959
  br label %2967

2967:                                             ; preds = %2966
  br label %2968

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

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

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

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

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

3015:                                             ; preds = %3014
  br label %3016

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

3017:                                             ; No predecessors!
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

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

3020:                                             ; preds = %3019
  br label %3021

3021:                                             ; preds = %3020
  br label %3022

3022:                                             ; preds = %3021
  %3023 = load i32, ptr @test_count, align 4, !tbaa !5
  %3024 = add nsw i32 %3023, 1
  store i32 %3024, ptr @test_count, align 4, !tbaa !5
  %3025 = load ptr, ptr %8, align 8, !tbaa !9
  %3026 = load ptr, ptr %9, align 8, !tbaa !9
  %3027 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3025, ptr noundef %3026)
  %3028 = icmp eq i32 %3027, -1
  br i1 %3028, label %3029, label %3082

3029:                                             ; preds = %3022
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

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

3038:                                             ; preds = %3031
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = call i32 @fileno(ptr noundef %3039) #9
  %3041 = call i32 @isatty(i32 noundef %3040) #9
  %3042 = icmp ne i32 %3041, 0
  br i1 %3042, label %3043, label %3060

3043:                                             ; preds = %3038
  %3044 = load i32, ptr %67, align 4, !tbaa !5
  %3045 = call ptr @__errno_location() #10
  store i32 %3044, ptr %3045, align 4, !tbaa !5
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = load i32, ptr @test_count, align 4, !tbaa !5
  %3048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror(i32 noundef %3049, ptr noundef @.str.4)
  %3051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @s2n_strerror_debug(i32 noundef %3052, ptr noundef @.str.4)
  %3054 = call ptr @__errno_location() #10
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @strerror(i32 noundef %3055) #9
  %3057 = call ptr @__errno_location() #10
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3046, ptr noundef @.str.2, i32 noundef %3047, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3050, ptr noundef %3053, ptr noundef %3056, i32 noundef %3058) #9
  br label %3077

3060:                                             ; preds = %3038, %3031
  %3061 = load i32, ptr %67, align 4, !tbaa !5
  %3062 = call ptr @__errno_location() #10
  store i32 %3061, ptr %3062, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror(i32 noundef %3066, ptr noundef @.str.4)
  %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_debug(i32 noundef %3069, ptr noundef @.str.4)
  %3071 = call ptr @__errno_location() #10
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  %3073 = call ptr @strerror(i32 noundef %3072) #9
  %3074 = call ptr @__errno_location() #10
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3063, ptr noundef @.str.5, i32 noundef %3064, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3067, ptr noundef %3070, ptr noundef %3073, i32 noundef %3075) #9
  br label %3077

3077:                                             ; preds = %3060, %3043
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

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

3080:                                             ; No predecessors!
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081, %3022
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083
  br label %3085

3085:                                             ; preds = %3084
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = add nsw i32 %3086, 1
  store i32 %3087, ptr @test_count, align 4, !tbaa !5
  %3088 = load ptr, ptr %8, align 8, !tbaa !9
  %3089 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %3088, i32 noundef 2)
  br i1 %3089, label %3143, label %3090

3090:                                             ; preds = %3085
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %3093 = call ptr @__errno_location() #10
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  store i32 %3094, ptr %68, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @s2n_print_stacktrace(ptr noundef %3095)
  %3097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3098 = trunc i8 %3097 to i1
  br i1 %3098, label %3099, label %3121

3099:                                             ; preds = %3092
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @fileno(ptr noundef %3100) #9
  %3102 = call i32 @isatty(i32 noundef %3101) #9
  %3103 = icmp ne i32 %3102, 0
  br i1 %3103, label %3104, label %3121

3104:                                             ; preds = %3099
  %3105 = load i32, ptr %68, align 4, !tbaa !5
  %3106 = call ptr @__errno_location() #10
  store i32 %3105, ptr %3106, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = load i32, ptr @test_count, align 4, !tbaa !5
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror(i32 noundef %3110, ptr noundef @.str.4)
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror_debug(i32 noundef %3113, ptr noundef @.str.4)
  %3115 = call ptr @__errno_location() #10
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @strerror(i32 noundef %3116) #9
  %3118 = call ptr @__errno_location() #10
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3107, ptr noundef @.str.2, i32 noundef %3108, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3111, ptr noundef %3114, ptr noundef %3117, i32 noundef %3119) #9
  br label %3138

3121:                                             ; preds = %3099, %3092
  %3122 = load i32, ptr %68, align 4, !tbaa !5
  %3123 = call ptr @__errno_location() #10
  store i32 %3122, ptr %3123, align 4, !tbaa !5
  %3124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef @.str.4)
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror_debug(i32 noundef %3130, ptr noundef @.str.4)
  %3132 = call ptr @__errno_location() #10
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #9
  %3135 = call ptr @__errno_location() #10
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3124, ptr noundef @.str.5, i32 noundef %3125, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3128, ptr noundef %3131, ptr noundef %3134, i32 noundef %3136) #9
  br label %3138

3138:                                             ; preds = %3121, %3104
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3139

3139:                                             ; preds = %3138
  br label %3140

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

3141:                                             ; No predecessors!
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142, %3085
  br label %3144

3144:                                             ; preds = %3143
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

3146:                                             ; preds = %3145
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = add nsw i32 %3147, 1
  store i32 %3148, ptr @test_count, align 4, !tbaa !5
  %3149 = load ptr, ptr %8, align 8, !tbaa !9
  %3150 = load ptr, ptr %9, align 8, !tbaa !9
  %3151 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %3149, ptr noundef %3150)
  %3152 = icmp eq i32 %3151, -1
  br i1 %3152, label %3153, label %3206

3153:                                             ; preds = %3146
  br label %3154

3154:                                             ; preds = %3153
  br label %3155

3155:                                             ; preds = %3154
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3156 = call ptr @__errno_location() #10
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  store i32 %3157, ptr %69, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @s2n_print_stacktrace(ptr noundef %3158)
  %3160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3161 = trunc i8 %3160 to i1
  br i1 %3161, label %3162, label %3184

3162:                                             ; preds = %3155
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @fileno(ptr noundef %3163) #9
  %3165 = call i32 @isatty(i32 noundef %3164) #9
  %3166 = icmp ne i32 %3165, 0
  br i1 %3166, label %3167, label %3184

3167:                                             ; preds = %3162
  %3168 = load i32, ptr %69, align 4, !tbaa !5
  %3169 = call ptr @__errno_location() #10
  store i32 %3168, ptr %3169, align 4, !tbaa !5
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = load i32, ptr @test_count, align 4, !tbaa !5
  %3172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror(i32 noundef %3173, ptr noundef @.str.4)
  %3175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call ptr @s2n_strerror_debug(i32 noundef %3176, ptr noundef @.str.4)
  %3178 = call ptr @__errno_location() #10
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @strerror(i32 noundef %3179) #9
  %3181 = call ptr @__errno_location() #10
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3170, ptr noundef @.str.2, i32 noundef %3171, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3174, ptr noundef %3177, ptr noundef %3180, i32 noundef %3182) #9
  br label %3201

3184:                                             ; preds = %3162, %3155
  %3185 = load i32, ptr %69, align 4, !tbaa !5
  %3186 = call ptr @__errno_location() #10
  store i32 %3185, ptr %3186, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror(i32 noundef %3190, ptr noundef @.str.4)
  %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_debug(i32 noundef %3193, ptr noundef @.str.4)
  %3195 = call ptr @__errno_location() #10
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @strerror(i32 noundef %3196) #9
  %3198 = call ptr @__errno_location() #10
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef @.str.5, i32 noundef %3188, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3191, ptr noundef %3194, ptr noundef %3197, i32 noundef %3199) #9
  br label %3201

3201:                                             ; preds = %3184, %3167
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

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

3204:                                             ; No predecessors!
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205, %3146
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208
  %3210 = load i32, ptr @test_count, align 4, !tbaa !5
  %3211 = add nsw i32 %3210, 1
  store i32 %3211, ptr @test_count, align 4, !tbaa !5
  %3212 = load ptr, ptr %8, align 8, !tbaa !9
  %3213 = call i32 @s2n_connection_free(ptr noundef %3212)
  %3214 = icmp eq i32 %3213, -1
  br i1 %3214, label %3215, label %3268

3215:                                             ; preds = %3209
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %3218 = call ptr @__errno_location() #10
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  store i32 %3219, ptr %70, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = call i32 @s2n_print_stacktrace(ptr noundef %3220)
  %3222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3223 = trunc i8 %3222 to i1
  br i1 %3223, label %3224, label %3246

3224:                                             ; preds = %3217
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @fileno(ptr noundef %3225) #9
  %3227 = call i32 @isatty(i32 noundef %3226) #9
  %3228 = icmp ne i32 %3227, 0
  br i1 %3228, label %3229, label %3246

3229:                                             ; preds = %3224
  %3230 = load i32, ptr %70, align 4, !tbaa !5
  %3231 = call ptr @__errno_location() #10
  store i32 %3230, ptr %3231, align 4, !tbaa !5
  %3232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3233 = load i32, ptr @test_count, align 4, !tbaa !5
  %3234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror(i32 noundef %3235, ptr noundef @.str.4)
  %3237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror_debug(i32 noundef %3238, ptr noundef @.str.4)
  %3240 = call ptr @__errno_location() #10
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call ptr @strerror(i32 noundef %3241) #9
  %3243 = call ptr @__errno_location() #10
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3232, ptr noundef @.str.2, i32 noundef %3233, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3236, ptr noundef %3239, ptr noundef %3242, i32 noundef %3244) #9
  br label %3263

3246:                                             ; preds = %3224, %3217
  %3247 = load i32, ptr %70, align 4, !tbaa !5
  %3248 = call ptr @__errno_location() #10
  store i32 %3247, ptr %3248, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror(i32 noundef %3252, ptr noundef @.str.4)
  %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_debug(i32 noundef %3255, ptr noundef @.str.4)
  %3257 = call ptr @__errno_location() #10
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #9
  %3260 = call ptr @__errno_location() #10
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3249, ptr noundef @.str.5, i32 noundef %3250, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3253, ptr noundef %3256, ptr noundef %3259, i32 noundef %3261) #9
  br label %3263

3263:                                             ; preds = %3246, %3229
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

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

3266:                                             ; No predecessors!
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267, %3209
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

3270:                                             ; preds = %3269
  br label %3271

3271:                                             ; preds = %3270
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = add nsw i32 %3272, 1
  store i32 %3273, ptr @test_count, align 4, !tbaa !5
  %3274 = load ptr, ptr %9, align 8, !tbaa !9
  %3275 = call i32 @s2n_connection_free(ptr noundef %3274)
  %3276 = icmp eq i32 %3275, -1
  br i1 %3276, label %3277, label %3330

3277:                                             ; preds = %3271
  br label %3278

3278:                                             ; preds = %3277
  br label %3279

3279:                                             ; preds = %3278
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %3280 = call ptr @__errno_location() #10
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  store i32 %3281, ptr %71, align 4, !tbaa !5
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = call i32 @s2n_print_stacktrace(ptr noundef %3282)
  %3284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3285 = trunc i8 %3284 to i1
  br i1 %3285, label %3286, label %3308

3286:                                             ; preds = %3279
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = call i32 @fileno(ptr noundef %3287) #9
  %3289 = call i32 @isatty(i32 noundef %3288) #9
  %3290 = icmp ne i32 %3289, 0
  br i1 %3290, label %3291, label %3308

3291:                                             ; preds = %3286
  %3292 = load i32, ptr %71, align 4, !tbaa !5
  %3293 = call ptr @__errno_location() #10
  store i32 %3292, ptr %3293, align 4, !tbaa !5
  %3294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3295 = load i32, ptr @test_count, align 4, !tbaa !5
  %3296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror(i32 noundef %3297, ptr noundef @.str.4)
  %3299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror_debug(i32 noundef %3300, ptr noundef @.str.4)
  %3302 = call ptr @__errno_location() #10
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call ptr @strerror(i32 noundef %3303) #9
  %3305 = call ptr @__errno_location() #10
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3294, ptr noundef @.str.2, i32 noundef %3295, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3298, ptr noundef %3301, ptr noundef %3304, i32 noundef %3306) #9
  br label %3325

3308:                                             ; preds = %3286, %3279
  %3309 = load i32, ptr %71, align 4, !tbaa !5
  %3310 = call ptr @__errno_location() #10
  store i32 %3309, ptr %3310, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror(i32 noundef %3314, ptr noundef @.str.4)
  %3316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @s2n_strerror_debug(i32 noundef %3317, ptr noundef @.str.4)
  %3319 = call ptr @__errno_location() #10
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call ptr @strerror(i32 noundef %3320) #9
  %3322 = call ptr @__errno_location() #10
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3311, ptr noundef @.str.5, i32 noundef %3312, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3315, ptr noundef %3318, ptr noundef %3321, i32 noundef %3323) #9
  br label %3325

3325:                                             ; preds = %3308, %3291
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

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

3328:                                             ; No predecessors!
  br label %3329

3329:                                             ; preds = %3328
  br label %3330

3330:                                             ; preds = %3329, %3271
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331
  br label %3333

3333:                                             ; preds = %3332
  %3334 = load i32, ptr @test_count, align 4, !tbaa !5
  %3335 = add nsw i32 %3334, 1
  store i32 %3335, ptr @test_count, align 4, !tbaa !5
  %3336 = load ptr, ptr %6, align 8, !tbaa !9
  %3337 = call i32 @s2n_config_free(ptr noundef %3336)
  %3338 = icmp eq i32 %3337, -1
  br i1 %3338, label %3339, label %3392

3339:                                             ; preds = %3333
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

3341:                                             ; preds = %3340
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3342 = call ptr @__errno_location() #10
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  store i32 %3343, ptr %72, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = call i32 @s2n_print_stacktrace(ptr noundef %3344)
  %3346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3347 = trunc i8 %3346 to i1
  br i1 %3347, label %3348, label %3370

3348:                                             ; preds = %3341
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = call i32 @fileno(ptr noundef %3349) #9
  %3351 = call i32 @isatty(i32 noundef %3350) #9
  %3352 = icmp ne i32 %3351, 0
  br i1 %3352, label %3353, label %3370

3353:                                             ; preds = %3348
  %3354 = load i32, ptr %72, align 4, !tbaa !5
  %3355 = call ptr @__errno_location() #10
  store i32 %3354, ptr %3355, align 4, !tbaa !5
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = load i32, ptr @test_count, align 4, !tbaa !5
  %3358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @s2n_strerror(i32 noundef %3359, ptr noundef @.str.4)
  %3361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call ptr @s2n_strerror_debug(i32 noundef %3362, ptr noundef @.str.4)
  %3364 = call ptr @__errno_location() #10
  %3365 = load i32, ptr %3364, align 4, !tbaa !5
  %3366 = call ptr @strerror(i32 noundef %3365) #9
  %3367 = call ptr @__errno_location() #10
  %3368 = load i32, ptr %3367, align 4, !tbaa !5
  %3369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3356, ptr noundef @.str.2, i32 noundef %3357, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3360, ptr noundef %3363, ptr noundef %3366, i32 noundef %3368) #9
  br label %3387

3370:                                             ; preds = %3348, %3341
  %3371 = load i32, ptr %72, align 4, !tbaa !5
  %3372 = call ptr @__errno_location() #10
  store i32 %3371, ptr %3372, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = load i32, ptr @test_count, align 4, !tbaa !5
  %3375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror(i32 noundef %3376, ptr noundef @.str.4)
  %3378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror_debug(i32 noundef %3379, ptr noundef @.str.4)
  %3381 = call ptr @__errno_location() #10
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #9
  %3384 = call ptr @__errno_location() #10
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3373, ptr noundef @.str.5, i32 noundef %3374, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3377, ptr noundef %3380, ptr noundef %3383, i32 noundef %3385) #9
  br label %3387

3387:                                             ; preds = %3370, %3353
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

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

3390:                                             ; No predecessors!
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391, %3333
  br label %3393

3393:                                             ; preds = %3392
  br label %3394

3394:                                             ; preds = %3393
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  store ptr null, ptr %73, align 8, !tbaa !9
  br label %3395

3395:                                             ; preds = %3394
  %3396 = load i32, ptr @test_count, align 4, !tbaa !5
  %3397 = add nsw i32 %3396, 1
  store i32 %3397, ptr @test_count, align 4, !tbaa !5
  %3398 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %73, ptr noundef @.str.18, ptr noundef @.str.20)
  %3399 = icmp eq i32 %3398, -1
  br i1 %3399, label %3400, label %3453

3400:                                             ; preds = %3395
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

3402:                                             ; preds = %3401
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %3403 = call ptr @__errno_location() #10
  %3404 = load i32, ptr %3403, align 4, !tbaa !5
  store i32 %3404, ptr %74, align 4, !tbaa !5
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @s2n_print_stacktrace(ptr noundef %3405)
  %3407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3408 = trunc i8 %3407 to i1
  br i1 %3408, label %3409, label %3431

3409:                                             ; preds = %3402
  %3410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3411 = call i32 @fileno(ptr noundef %3410) #9
  %3412 = call i32 @isatty(i32 noundef %3411) #9
  %3413 = icmp ne i32 %3412, 0
  br i1 %3413, label %3414, label %3431

3414:                                             ; preds = %3409
  %3415 = load i32, ptr %74, align 4, !tbaa !5
  %3416 = call ptr @__errno_location() #10
  store i32 %3415, ptr %3416, align 4, !tbaa !5
  %3417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3418 = load i32, ptr @test_count, align 4, !tbaa !5
  %3419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror(i32 noundef %3420, ptr noundef @.str.4)
  %3422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call ptr @s2n_strerror_debug(i32 noundef %3423, ptr noundef @.str.4)
  %3425 = call ptr @__errno_location() #10
  %3426 = load i32, ptr %3425, align 4, !tbaa !5
  %3427 = call ptr @strerror(i32 noundef %3426) #9
  %3428 = call ptr @__errno_location() #10
  %3429 = load i32, ptr %3428, align 4, !tbaa !5
  %3430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3417, ptr noundef @.str.2, i32 noundef %3418, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3421, ptr noundef %3424, ptr noundef %3427, i32 noundef %3429) #9
  br label %3448

3431:                                             ; preds = %3409, %3402
  %3432 = load i32, ptr %74, align 4, !tbaa !5
  %3433 = call ptr @__errno_location() #10
  store i32 %3432, ptr %3433, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror(i32 noundef %3437, ptr noundef @.str.4)
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror_debug(i32 noundef %3440, ptr noundef @.str.4)
  %3442 = call ptr @__errno_location() #10
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #9
  %3445 = call ptr @__errno_location() #10
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef @.str.5, i32 noundef %3435, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3438, ptr noundef %3441, ptr noundef %3444, i32 noundef %3446) #9
  br label %3448

3448:                                             ; preds = %3431, %3414
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

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

3451:                                             ; No predecessors!
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452, %3395
  br label %3454

3454:                                             ; preds = %3453
  br label %3455

3455:                                             ; preds = %3454
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %3456 = call ptr @s2n_config_new()
  store ptr %3456, ptr %75, align 8, !tbaa !9
  br label %3457

3457:                                             ; preds = %3455
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = add nsw i32 %3458, 1
  store i32 %3459, ptr @test_count, align 4, !tbaa !5
  %3460 = load ptr, ptr %75, align 8, !tbaa !9
  %3461 = icmp eq ptr %3460, null
  br i1 %3461, label %3462, label %3515

3462:                                             ; preds = %3457
  br label %3463

3463:                                             ; preds = %3462
  br label %3464

3464:                                             ; preds = %3463
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3465 = call ptr @__errno_location() #10
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  store i32 %3466, ptr %76, align 4, !tbaa !5
  %3467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3468 = call i32 @s2n_print_stacktrace(ptr noundef %3467)
  %3469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3470 = trunc i8 %3469 to i1
  br i1 %3470, label %3471, label %3493

3471:                                             ; preds = %3464
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = call i32 @fileno(ptr noundef %3472) #9
  %3474 = call i32 @isatty(i32 noundef %3473) #9
  %3475 = icmp ne i32 %3474, 0
  br i1 %3475, label %3476, label %3493

3476:                                             ; preds = %3471
  %3477 = load i32, ptr %76, align 4, !tbaa !5
  %3478 = call ptr @__errno_location() #10
  store i32 %3477, ptr %3478, align 4, !tbaa !5
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call ptr @s2n_strerror(i32 noundef %3482, ptr noundef @.str.4)
  %3484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call ptr @s2n_strerror_debug(i32 noundef %3485, ptr noundef @.str.4)
  %3487 = call ptr @__errno_location() #10
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call ptr @strerror(i32 noundef %3488) #9
  %3490 = call ptr @__errno_location() #10
  %3491 = load i32, ptr %3490, align 4, !tbaa !5
  %3492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3479, ptr noundef @.str.2, i32 noundef %3480, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3483, ptr noundef %3486, ptr noundef %3489, i32 noundef %3491) #9
  br label %3510

3493:                                             ; preds = %3471, %3464
  %3494 = load i32, ptr %76, align 4, !tbaa !5
  %3495 = call ptr @__errno_location() #10
  store i32 %3494, ptr %3495, align 4, !tbaa !5
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = load i32, ptr @test_count, align 4, !tbaa !5
  %3498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror(i32 noundef %3499, ptr noundef @.str.4)
  %3501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef @.str.4)
  %3504 = call ptr @__errno_location() #10
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call ptr @strerror(i32 noundef %3505) #9
  %3507 = call ptr @__errno_location() #10
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3496, ptr noundef @.str.5, i32 noundef %3497, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3500, ptr noundef %3503, ptr noundef %3506, i32 noundef %3508) #9
  br label %3510

3510:                                             ; preds = %3493, %3476
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3511

3511:                                             ; preds = %3510
  br label %3512

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

3513:                                             ; No predecessors!
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514, %3457
  br label %3516

3516:                                             ; preds = %3515
  br label %3517

3517:                                             ; preds = %3516
  br label %3518

3518:                                             ; preds = %3517
  %3519 = load i32, ptr @test_count, align 4, !tbaa !5
  %3520 = add nsw i32 %3519, 1
  store i32 %3520, ptr @test_count, align 4, !tbaa !5
  %3521 = load ptr, ptr %75, align 8, !tbaa !9
  %3522 = getelementptr inbounds %struct.s2n_config, ptr %3521, i32 0, i32 51
  %3523 = load i32, ptr %3522, align 8, !tbaa !20
  %3524 = icmp eq i32 %3523, 0
  br i1 %3524, label %3578, label %3525

3525:                                             ; preds = %3518
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %3528 = call ptr @__errno_location() #10
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  store i32 %3529, ptr %77, align 4, !tbaa !5
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = call i32 @s2n_print_stacktrace(ptr noundef %3530)
  %3532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3533 = trunc i8 %3532 to i1
  br i1 %3533, label %3534, label %3556

3534:                                             ; preds = %3527
  %3535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3536 = call i32 @fileno(ptr noundef %3535) #9
  %3537 = call i32 @isatty(i32 noundef %3536) #9
  %3538 = icmp ne i32 %3537, 0
  br i1 %3538, label %3539, label %3556

3539:                                             ; preds = %3534
  %3540 = load i32, ptr %77, align 4, !tbaa !5
  %3541 = call ptr @__errno_location() #10
  store i32 %3540, ptr %3541, align 4, !tbaa !5
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = load i32, ptr @test_count, align 4, !tbaa !5
  %3544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @s2n_strerror(i32 noundef %3545, ptr noundef @.str.4)
  %3547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call ptr @s2n_strerror_debug(i32 noundef %3548, ptr noundef @.str.4)
  %3550 = call ptr @__errno_location() #10
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @strerror(i32 noundef %3551) #9
  %3553 = call ptr @__errno_location() #10
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3542, ptr noundef @.str.2, i32 noundef %3543, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3546, ptr noundef %3549, ptr noundef %3552, i32 noundef %3554) #9
  br label %3573

3556:                                             ; preds = %3534, %3527
  %3557 = load i32, ptr %77, align 4, !tbaa !5
  %3558 = call ptr @__errno_location() #10
  store i32 %3557, ptr %3558, align 4, !tbaa !5
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = load i32, ptr @test_count, align 4, !tbaa !5
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror(i32 noundef %3562, ptr noundef @.str.4)
  %3564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @s2n_strerror_debug(i32 noundef %3565, ptr noundef @.str.4)
  %3567 = call ptr @__errno_location() #10
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @strerror(i32 noundef %3568) #9
  %3570 = call ptr @__errno_location() #10
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3559, ptr noundef @.str.5, i32 noundef %3560, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3563, ptr noundef %3566, ptr noundef %3569, i32 noundef %3571) #9
  br label %3573

3573:                                             ; preds = %3556, %3539
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3574

3574:                                             ; preds = %3573
  br label %3575

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

3576:                                             ; No predecessors!
  br label %3577

3577:                                             ; preds = %3576
  br label %3578

3578:                                             ; preds = %3577, %3518
  br label %3579

3579:                                             ; preds = %3578
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580
  %3582 = load i32, ptr @test_count, align 4, !tbaa !5
  %3583 = add nsw i32 %3582, 1
  store i32 %3583, ptr @test_count, align 4, !tbaa !5
  %3584 = load ptr, ptr %75, align 8, !tbaa !9
  %3585 = load ptr, ptr %12, align 8, !tbaa !9
  %3586 = load ptr, ptr %13, align 8, !tbaa !9
  %3587 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef %3584, ptr noundef %3585, ptr noundef %3586)
  %3588 = icmp eq i32 %3587, -1
  br i1 %3588, label %3589, label %3642

3589:                                             ; preds = %3581
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

3591:                                             ; preds = %3590
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %3592 = call ptr @__errno_location() #10
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  store i32 %3593, ptr %78, align 4, !tbaa !5
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = call i32 @s2n_print_stacktrace(ptr noundef %3594)
  %3596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3597 = trunc i8 %3596 to i1
  br i1 %3597, label %3598, label %3620

3598:                                             ; preds = %3591
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @fileno(ptr noundef %3599) #9
  %3601 = call i32 @isatty(i32 noundef %3600) #9
  %3602 = icmp ne i32 %3601, 0
  br i1 %3602, label %3603, label %3620

3603:                                             ; preds = %3598
  %3604 = load i32, ptr %78, align 4, !tbaa !5
  %3605 = call ptr @__errno_location() #10
  store i32 %3604, ptr %3605, align 4, !tbaa !5
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = load i32, ptr @test_count, align 4, !tbaa !5
  %3608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror(i32 noundef %3609, ptr noundef @.str.4)
  %3611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror_debug(i32 noundef %3612, ptr noundef @.str.4)
  %3614 = call ptr @__errno_location() #10
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @strerror(i32 noundef %3615) #9
  %3617 = call ptr @__errno_location() #10
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3606, ptr noundef @.str.2, i32 noundef %3607, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3610, ptr noundef %3613, ptr noundef %3616, i32 noundef %3618) #9
  br label %3637

3620:                                             ; preds = %3598, %3591
  %3621 = load i32, ptr %78, align 4, !tbaa !5
  %3622 = call ptr @__errno_location() #10
  store i32 %3621, ptr %3622, align 4, !tbaa !5
  %3623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3624 = load i32, ptr @test_count, align 4, !tbaa !5
  %3625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3626 = load i32, ptr %3625, align 4, !tbaa !5
  %3627 = call ptr @s2n_strerror(i32 noundef %3626, ptr noundef @.str.4)
  %3628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3629 = load i32, ptr %3628, align 4, !tbaa !5
  %3630 = call ptr @s2n_strerror_debug(i32 noundef %3629, ptr noundef @.str.4)
  %3631 = call ptr @__errno_location() #10
  %3632 = load i32, ptr %3631, align 4, !tbaa !5
  %3633 = call ptr @strerror(i32 noundef %3632) #9
  %3634 = call ptr @__errno_location() #10
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  %3636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3623, ptr noundef @.str.5, i32 noundef %3624, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3627, ptr noundef %3630, ptr noundef %3633, i32 noundef %3635) #9
  br label %3637

3637:                                             ; preds = %3620, %3603
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

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

3640:                                             ; No predecessors!
  br label %3641

3641:                                             ; preds = %3640
  br label %3642

3642:                                             ; preds = %3641, %3581
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

3644:                                             ; preds = %3643
  br label %3645

3645:                                             ; preds = %3644
  %3646 = load i32, ptr @test_count, align 4, !tbaa !5
  %3647 = add nsw i32 %3646, 1
  store i32 %3647, ptr @test_count, align 4, !tbaa !5
  %3648 = load ptr, ptr %75, align 8, !tbaa !9
  %3649 = getelementptr inbounds %struct.s2n_config, ptr %3648, i32 0, i32 51
  %3650 = load i32, ptr %3649, align 8, !tbaa !20
  %3651 = icmp eq i32 %3650, 2
  br i1 %3651, label %3705, label %3652

3652:                                             ; preds = %3645
  br label %3653

3653:                                             ; preds = %3652
  br label %3654

3654:                                             ; preds = %3653
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3655 = call ptr @__errno_location() #10
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  store i32 %3656, ptr %79, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @s2n_print_stacktrace(ptr noundef %3657)
  %3659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3660 = trunc i8 %3659 to i1
  br i1 %3660, label %3661, label %3683

3661:                                             ; preds = %3654
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = call i32 @fileno(ptr noundef %3662) #9
  %3664 = call i32 @isatty(i32 noundef %3663) #9
  %3665 = icmp ne i32 %3664, 0
  br i1 %3665, label %3666, label %3683

3666:                                             ; preds = %3661
  %3667 = load i32, ptr %79, align 4, !tbaa !5
  %3668 = call ptr @__errno_location() #10
  store i32 %3667, ptr %3668, align 4, !tbaa !5
  %3669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3670 = load i32, ptr @test_count, align 4, !tbaa !5
  %3671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror(i32 noundef %3672, ptr noundef @.str.4)
  %3674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call ptr @s2n_strerror_debug(i32 noundef %3675, ptr noundef @.str.4)
  %3677 = call ptr @__errno_location() #10
  %3678 = load i32, ptr %3677, align 4, !tbaa !5
  %3679 = call ptr @strerror(i32 noundef %3678) #9
  %3680 = call ptr @__errno_location() #10
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  %3682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3669, ptr noundef @.str.2, i32 noundef %3670, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3673, ptr noundef %3676, ptr noundef %3679, i32 noundef %3681) #9
  br label %3700

3683:                                             ; preds = %3661, %3654
  %3684 = load i32, ptr %79, align 4, !tbaa !5
  %3685 = call ptr @__errno_location() #10
  store i32 %3684, ptr %3685, align 4, !tbaa !5
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = load i32, ptr @test_count, align 4, !tbaa !5
  %3688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call ptr @s2n_strerror(i32 noundef %3689, ptr noundef @.str.4)
  %3691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  %3693 = call ptr @s2n_strerror_debug(i32 noundef %3692, ptr noundef @.str.4)
  %3694 = call ptr @__errno_location() #10
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = call ptr @strerror(i32 noundef %3695) #9
  %3697 = call ptr @__errno_location() #10
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  %3699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3686, ptr noundef @.str.5, i32 noundef %3687, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3690, ptr noundef %3693, ptr noundef %3696, i32 noundef %3698) #9
  br label %3700

3700:                                             ; preds = %3683, %3666
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

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

3703:                                             ; No predecessors!
  br label %3704

3704:                                             ; preds = %3703
  br label %3705

3705:                                             ; preds = %3704, %3645
  br label %3706

3706:                                             ; preds = %3705
  br label %3707

3707:                                             ; preds = %3706
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  br label %3710

3710:                                             ; preds = %3709
  %3711 = load i32, ptr @test_count, align 4, !tbaa !5
  %3712 = add nsw i32 %3711, 1
  store i32 %3712, ptr @test_count, align 4, !tbaa !5
  %3713 = load ptr, ptr %75, align 8, !tbaa !9
  %3714 = load ptr, ptr %12, align 8, !tbaa !9
  %3715 = load ptr, ptr %13, align 8, !tbaa !9
  %3716 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef %3713, ptr noundef %3714, ptr noundef %3715)
  %3717 = icmp eq i32 %3716, -1
  br i1 %3717, label %3771, label %3718

3718:                                             ; preds = %3710
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

3720:                                             ; preds = %3719
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3721 = call ptr @__errno_location() #10
  %3722 = load i32, ptr %3721, align 4, !tbaa !5
  store i32 %3722, ptr %80, align 4, !tbaa !5
  %3723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3724 = call i32 @s2n_print_stacktrace(ptr noundef %3723)
  %3725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3726 = trunc i8 %3725 to i1
  br i1 %3726, label %3727, label %3749

3727:                                             ; preds = %3720
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = call i32 @fileno(ptr noundef %3728) #9
  %3730 = call i32 @isatty(i32 noundef %3729) #9
  %3731 = icmp ne i32 %3730, 0
  br i1 %3731, label %3732, label %3749

3732:                                             ; preds = %3727
  %3733 = load i32, ptr %80, align 4, !tbaa !5
  %3734 = call ptr @__errno_location() #10
  store i32 %3733, ptr %3734, align 4, !tbaa !5
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = load i32, ptr @test_count, align 4, !tbaa !5
  %3737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror(i32 noundef %3738, ptr noundef @.str.4)
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror_debug(i32 noundef %3741, ptr noundef @.str.4)
  %3743 = call ptr @__errno_location() #10
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @strerror(i32 noundef %3744) #9
  %3746 = call ptr @__errno_location() #10
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3735, ptr noundef @.str.2, i32 noundef %3736, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3739, ptr noundef %3742, ptr noundef %3745, i32 noundef %3747) #9
  br label %3766

3749:                                             ; preds = %3727, %3720
  %3750 = load i32, ptr %80, align 4, !tbaa !5
  %3751 = call ptr @__errno_location() #10
  store i32 %3750, ptr %3751, align 4, !tbaa !5
  %3752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3753 = load i32, ptr @test_count, align 4, !tbaa !5
  %3754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror(i32 noundef %3755, ptr noundef @.str.4)
  %3757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror_debug(i32 noundef %3758, ptr noundef @.str.4)
  %3760 = call ptr @__errno_location() #10
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @strerror(i32 noundef %3761) #9
  %3763 = call ptr @__errno_location() #10
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3752, ptr noundef @.str.5, i32 noundef %3753, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3756, ptr noundef %3759, ptr noundef %3762, i32 noundef %3764) #9
  br label %3766

3766:                                             ; preds = %3749, %3732
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

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

3769:                                             ; No predecessors!
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

3771:                                             ; preds = %3770, %3710
  br label %3772

3772:                                             ; preds = %3771
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = icmp eq i32 %3778, 469762065
  br i1 %3779, label %3833, label %3780

3780:                                             ; preds = %3774
  br label %3781

3781:                                             ; preds = %3780
  br label %3782

3782:                                             ; preds = %3781
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3783 = call ptr @__errno_location() #10
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  store i32 %3784, ptr %81, 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 %81, 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.4)
  %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.4)
  %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.2, i32 noundef %3798, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3801, ptr noundef %3804, ptr noundef %3807, i32 noundef %3809) #9
  br label %3828

3811:                                             ; preds = %3789, %3782
  %3812 = load i32, ptr %81, 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.4)
  %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.4)
  %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.5, i32 noundef %3815, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 161, 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 %81) #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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror_debug(i32 noundef %3840, ptr noundef @.str.4)
  %3842 = icmp eq ptr %3841, null
  br i1 %3842, label %3843, label %3896

3843:                                             ; preds = %3836
  br label %3844

3844:                                             ; preds = %3843
  br label %3845

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

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

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

3874:                                             ; preds = %3852, %3845
  %3875 = load i32, ptr %82, align 4, !tbaa !5
  %3876 = call ptr @__errno_location() #10
  store i32 %3875, ptr %3876, align 4, !tbaa !5
  %3877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3878 = load i32, ptr @test_count, align 4, !tbaa !5
  %3879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror(i32 noundef %3880, ptr noundef @.str.4)
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror_debug(i32 noundef %3883, ptr noundef @.str.4)
  %3885 = call ptr @__errno_location() #10
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call ptr @strerror(i32 noundef %3886) #9
  %3888 = call ptr @__errno_location() #10
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3877, ptr noundef @.str.5, i32 noundef %3878, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3881, ptr noundef %3884, ptr noundef %3887, i32 noundef %3889) #9
  br label %3891

3891:                                             ; preds = %3874, %3857
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3892

3892:                                             ; preds = %3891
  br label %3893

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

3894:                                             ; No predecessors!
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

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

3897:                                             ; preds = %3896
  br label %3898

3898:                                             ; preds = %3897
  br label %3899

3899:                                             ; preds = %3898
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900
  %3902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3902, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3903 = call ptr @__errno_location() #10
  store i32 0, ptr %3903, align 4, !tbaa !5
  br label %3904

3904:                                             ; preds = %3901
  br label %3905

3905:                                             ; preds = %3904
  br label %3906

3906:                                             ; preds = %3905
  br label %3907

3907:                                             ; preds = %3906
  br label %3908

3908:                                             ; preds = %3907
  %3909 = load i32, ptr @test_count, align 4, !tbaa !5
  %3910 = add nsw i32 %3909, 1
  store i32 %3910, ptr @test_count, align 4, !tbaa !5
  %3911 = load ptr, ptr %75, align 8, !tbaa !9
  %3912 = getelementptr inbounds %struct.s2n_config, ptr %3911, i32 0, i32 51
  %3913 = load i32, ptr %3912, align 8, !tbaa !20
  %3914 = icmp eq i32 %3913, 2
  br i1 %3914, label %3968, label %3915

3915:                                             ; preds = %3908
  br label %3916

3916:                                             ; preds = %3915
  br label %3917

3917:                                             ; preds = %3916
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3918 = call ptr @__errno_location() #10
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  store i32 %3919, ptr %83, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = call i32 @s2n_print_stacktrace(ptr noundef %3920)
  %3922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3923 = trunc i8 %3922 to i1
  br i1 %3923, label %3924, label %3946

3924:                                             ; preds = %3917
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @fileno(ptr noundef %3925) #9
  %3927 = call i32 @isatty(i32 noundef %3926) #9
  %3928 = icmp ne i32 %3927, 0
  br i1 %3928, label %3929, label %3946

3929:                                             ; preds = %3924
  %3930 = load i32, ptr %83, align 4, !tbaa !5
  %3931 = call ptr @__errno_location() #10
  store i32 %3930, ptr %3931, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror(i32 noundef %3935, ptr noundef @.str.4)
  %3937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @s2n_strerror_debug(i32 noundef %3938, ptr noundef @.str.4)
  %3940 = call ptr @__errno_location() #10
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call ptr @strerror(i32 noundef %3941) #9
  %3943 = call ptr @__errno_location() #10
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  %3945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3932, ptr noundef @.str.2, i32 noundef %3933, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3936, ptr noundef %3939, ptr noundef %3942, i32 noundef %3944) #9
  br label %3963

3946:                                             ; preds = %3924, %3917
  %3947 = load i32, ptr %83, align 4, !tbaa !5
  %3948 = call ptr @__errno_location() #10
  store i32 %3947, ptr %3948, align 4, !tbaa !5
  %3949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3950 = load i32, ptr @test_count, align 4, !tbaa !5
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror(i32 noundef %3952, ptr noundef @.str.4)
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror_debug(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call ptr @__errno_location() #10
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @strerror(i32 noundef %3958) #9
  %3960 = call ptr @__errno_location() #10
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3949, ptr noundef @.str.5, i32 noundef %3950, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3953, ptr noundef %3956, ptr noundef %3959, i32 noundef %3961) #9
  br label %3963

3963:                                             ; preds = %3946, %3929
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3964

3964:                                             ; preds = %3963
  br label %3965

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

3966:                                             ; No predecessors!
  br label %3967

3967:                                             ; preds = %3966
  br label %3968

3968:                                             ; preds = %3967, %3908
  br label %3969

3969:                                             ; preds = %3968
  br label %3970

3970:                                             ; preds = %3969
  br label %3971

3971:                                             ; preds = %3970
  br label %3972

3972:                                             ; preds = %3971
  br label %3973

3973:                                             ; preds = %3972
  %3974 = load i32, ptr @test_count, align 4, !tbaa !5
  %3975 = add nsw i32 %3974, 1
  store i32 %3975, ptr @test_count, align 4, !tbaa !5
  %3976 = load ptr, ptr %75, align 8, !tbaa !9
  %3977 = load ptr, ptr %73, align 8, !tbaa !9
  %3978 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3976, ptr noundef %3977)
  %3979 = icmp eq i32 %3978, -1
  br i1 %3979, label %4033, label %3980

3980:                                             ; preds = %3973
  br label %3981

3981:                                             ; preds = %3980
  br label %3982

3982:                                             ; preds = %3981
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %3983 = call ptr @__errno_location() #10
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  store i32 %3984, ptr %84, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @s2n_print_stacktrace(ptr noundef %3985)
  %3987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3988 = trunc i8 %3987 to i1
  br i1 %3988, label %3989, label %4011

3989:                                             ; preds = %3982
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @fileno(ptr noundef %3990) #9
  %3992 = call i32 @isatty(i32 noundef %3991) #9
  %3993 = icmp ne i32 %3992, 0
  br i1 %3993, label %3994, label %4011

3994:                                             ; preds = %3989
  %3995 = load i32, ptr %84, align 4, !tbaa !5
  %3996 = call ptr @__errno_location() #10
  store i32 %3995, ptr %3996, align 4, !tbaa !5
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3998 = load i32, ptr @test_count, align 4, !tbaa !5
  %3999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror(i32 noundef %4000, ptr noundef @.str.4)
  %4002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @s2n_strerror_debug(i32 noundef %4003, ptr noundef @.str.4)
  %4005 = call ptr @__errno_location() #10
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call ptr @strerror(i32 noundef %4006) #9
  %4008 = call ptr @__errno_location() #10
  %4009 = load i32, ptr %4008, align 4, !tbaa !5
  %4010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3997, ptr noundef @.str.2, i32 noundef %3998, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4001, ptr noundef %4004, ptr noundef %4007, i32 noundef %4009) #9
  br label %4028

4011:                                             ; preds = %3989, %3982
  %4012 = load i32, ptr %84, align 4, !tbaa !5
  %4013 = call ptr @__errno_location() #10
  store i32 %4012, ptr %4013, align 4, !tbaa !5
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = load i32, ptr @test_count, align 4, !tbaa !5
  %4016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror(i32 noundef %4017, ptr noundef @.str.4)
  %4019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror_debug(i32 noundef %4020, ptr noundef @.str.4)
  %4022 = call ptr @__errno_location() #10
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @strerror(i32 noundef %4023) #9
  %4025 = call ptr @__errno_location() #10
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4014, ptr noundef @.str.5, i32 noundef %4015, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4018, ptr noundef %4021, ptr noundef %4024, i32 noundef %4026) #9
  br label %4028

4028:                                             ; preds = %4011, %3994
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %4029

4029:                                             ; preds = %4028
  br label %4030

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

4031:                                             ; No predecessors!
  br label %4032

4032:                                             ; preds = %4031
  br label %4033

4033:                                             ; preds = %4032, %3973
  br label %4034

4034:                                             ; preds = %4033
  br label %4035

4035:                                             ; preds = %4034
  br label %4036

4036:                                             ; preds = %4035
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = add nsw i32 %4037, 1
  store i32 %4038, ptr @test_count, align 4, !tbaa !5
  %4039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = icmp eq i32 %4040, 469762123
  br i1 %4041, label %4095, label %4042

4042:                                             ; preds = %4036
  br label %4043

4043:                                             ; preds = %4042
  br label %4044

4044:                                             ; preds = %4043
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %4045 = call ptr @__errno_location() #10
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  store i32 %4046, ptr %85, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = call i32 @s2n_print_stacktrace(ptr noundef %4047)
  %4049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4050 = trunc i8 %4049 to i1
  br i1 %4050, label %4051, label %4073

4051:                                             ; preds = %4044
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = call i32 @fileno(ptr noundef %4052) #9
  %4054 = call i32 @isatty(i32 noundef %4053) #9
  %4055 = icmp ne i32 %4054, 0
  br i1 %4055, label %4056, label %4073

4056:                                             ; preds = %4051
  %4057 = load i32, ptr %85, align 4, !tbaa !5
  %4058 = call ptr @__errno_location() #10
  store i32 %4057, ptr %4058, align 4, !tbaa !5
  %4059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4060 = load i32, ptr @test_count, align 4, !tbaa !5
  %4061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror(i32 noundef %4062, ptr noundef @.str.4)
  %4064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror_debug(i32 noundef %4065, ptr noundef @.str.4)
  %4067 = call ptr @__errno_location() #10
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call ptr @strerror(i32 noundef %4068) #9
  %4070 = call ptr @__errno_location() #10
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4059, ptr noundef @.str.2, i32 noundef %4060, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4063, ptr noundef %4066, ptr noundef %4069, i32 noundef %4071) #9
  br label %4090

4073:                                             ; preds = %4051, %4044
  %4074 = load i32, ptr %85, align 4, !tbaa !5
  %4075 = call ptr @__errno_location() #10
  store i32 %4074, ptr %4075, align 4, !tbaa !5
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = load i32, ptr @test_count, align 4, !tbaa !5
  %4078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4079 = load i32, ptr %4078, align 4, !tbaa !5
  %4080 = call ptr @s2n_strerror(i32 noundef %4079, ptr noundef @.str.4)
  %4081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = call ptr @s2n_strerror_debug(i32 noundef %4082, ptr noundef @.str.4)
  %4084 = call ptr @__errno_location() #10
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  %4086 = call ptr @strerror(i32 noundef %4085) #9
  %4087 = call ptr @__errno_location() #10
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  %4089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4076, ptr noundef @.str.5, i32 noundef %4077, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4080, ptr noundef %4083, ptr noundef %4086, i32 noundef %4088) #9
  br label %4090

4090:                                             ; preds = %4073, %4056
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %4091

4091:                                             ; preds = %4090
  br label %4092

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

4093:                                             ; No predecessors!
  br label %4094

4094:                                             ; preds = %4093
  br label %4095

4095:                                             ; preds = %4094, %4036
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096
  br label %4098

4098:                                             ; preds = %4097
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = add nsw i32 %4099, 1
  store i32 %4100, ptr @test_count, align 4, !tbaa !5
  %4101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror_debug(i32 noundef %4102, ptr noundef @.str.4)
  %4104 = icmp eq ptr %4103, null
  br i1 %4104, label %4105, label %4158

4105:                                             ; preds = %4098
  br label %4106

4106:                                             ; preds = %4105
  br label %4107

4107:                                             ; preds = %4106
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %4108 = call ptr @__errno_location() #10
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  store i32 %4109, ptr %86, align 4, !tbaa !5
  %4110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4111 = call i32 @s2n_print_stacktrace(ptr noundef %4110)
  %4112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4113 = trunc i8 %4112 to i1
  br i1 %4113, label %4114, label %4136

4114:                                             ; preds = %4107
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = call i32 @fileno(ptr noundef %4115) #9
  %4117 = call i32 @isatty(i32 noundef %4116) #9
  %4118 = icmp ne i32 %4117, 0
  br i1 %4118, label %4119, label %4136

4119:                                             ; preds = %4114
  %4120 = load i32, ptr %86, align 4, !tbaa !5
  %4121 = call ptr @__errno_location() #10
  store i32 %4120, ptr %4121, align 4, !tbaa !5
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = load i32, ptr @test_count, align 4, !tbaa !5
  %4124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @s2n_strerror(i32 noundef %4125, ptr noundef @.str.4)
  %4127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call ptr @s2n_strerror_debug(i32 noundef %4128, ptr noundef @.str.4)
  %4130 = call ptr @__errno_location() #10
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = call ptr @strerror(i32 noundef %4131) #9
  %4133 = call ptr @__errno_location() #10
  %4134 = load i32, ptr %4133, align 4, !tbaa !5
  %4135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4122, ptr noundef @.str.2, i32 noundef %4123, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4126, ptr noundef %4129, ptr noundef %4132, i32 noundef %4134) #9
  br label %4153

4136:                                             ; preds = %4114, %4107
  %4137 = load i32, ptr %86, align 4, !tbaa !5
  %4138 = call ptr @__errno_location() #10
  store i32 %4137, ptr %4138, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror(i32 noundef %4142, ptr noundef @.str.4)
  %4144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror_debug(i32 noundef %4145, ptr noundef @.str.4)
  %4147 = call ptr @__errno_location() #10
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @strerror(i32 noundef %4148) #9
  %4150 = call ptr @__errno_location() #10
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4139, ptr noundef @.str.5, i32 noundef %4140, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4143, ptr noundef %4146, ptr noundef %4149, i32 noundef %4151) #9
  br label %4153

4153:                                             ; preds = %4136, %4119
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %4154

4154:                                             ; preds = %4153
  br label %4155

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

4156:                                             ; No predecessors!
  br label %4157

4157:                                             ; preds = %4156
  br label %4158

4158:                                             ; preds = %4157, %4098
  br label %4159

4159:                                             ; preds = %4158
  br label %4160

4160:                                             ; preds = %4159
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

4162:                                             ; preds = %4161
  br label %4163

4163:                                             ; preds = %4162
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4164, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4165 = call ptr @__errno_location() #10
  store i32 0, ptr %4165, align 4, !tbaa !5
  br label %4166

4166:                                             ; preds = %4163
  br label %4167

4167:                                             ; preds = %4166
  br label %4168

4168:                                             ; preds = %4167
  br label %4169

4169:                                             ; preds = %4168
  br label %4170

4170:                                             ; preds = %4169
  %4171 = load i32, ptr @test_count, align 4, !tbaa !5
  %4172 = add nsw i32 %4171, 1
  store i32 %4172, ptr @test_count, align 4, !tbaa !5
  %4173 = load ptr, ptr %75, align 8, !tbaa !9
  %4174 = getelementptr inbounds %struct.s2n_config, ptr %4173, i32 0, i32 51
  %4175 = load i32, ptr %4174, align 8, !tbaa !20
  %4176 = icmp eq i32 %4175, 2
  br i1 %4176, label %4230, label %4177

4177:                                             ; preds = %4170
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

4179:                                             ; preds = %4178
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %4180 = call ptr @__errno_location() #10
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  store i32 %4181, ptr %87, align 4, !tbaa !5
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = call i32 @s2n_print_stacktrace(ptr noundef %4182)
  %4184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4185 = trunc i8 %4184 to i1
  br i1 %4185, label %4186, label %4208

4186:                                             ; preds = %4179
  %4187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4188 = call i32 @fileno(ptr noundef %4187) #9
  %4189 = call i32 @isatty(i32 noundef %4188) #9
  %4190 = icmp ne i32 %4189, 0
  br i1 %4190, label %4191, label %4208

4191:                                             ; preds = %4186
  %4192 = load i32, ptr %87, align 4, !tbaa !5
  %4193 = call ptr @__errno_location() #10
  store i32 %4192, ptr %4193, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = load i32, ptr @test_count, align 4, !tbaa !5
  %4196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = call ptr @s2n_strerror(i32 noundef %4197, ptr noundef @.str.4)
  %4199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror_debug(i32 noundef %4200, ptr noundef @.str.4)
  %4202 = call ptr @__errno_location() #10
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call ptr @strerror(i32 noundef %4203) #9
  %4205 = call ptr @__errno_location() #10
  %4206 = load i32, ptr %4205, align 4, !tbaa !5
  %4207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4194, ptr noundef @.str.2, i32 noundef %4195, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 167, ptr noundef %4198, ptr noundef %4201, ptr noundef %4204, i32 noundef %4206) #9
  br label %4225

4208:                                             ; preds = %4186, %4179
  %4209 = load i32, ptr %87, align 4, !tbaa !5
  %4210 = call ptr @__errno_location() #10
  store i32 %4209, ptr %4210, align 4, !tbaa !5
  %4211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4212 = load i32, ptr @test_count, align 4, !tbaa !5
  %4213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  %4215 = call ptr @s2n_strerror(i32 noundef %4214, ptr noundef @.str.4)
  %4216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4217 = load i32, ptr %4216, align 4, !tbaa !5
  %4218 = call ptr @s2n_strerror_debug(i32 noundef %4217, ptr noundef @.str.4)
  %4219 = call ptr @__errno_location() #10
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call ptr @strerror(i32 noundef %4220) #9
  %4222 = call ptr @__errno_location() #10
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4211, ptr noundef @.str.5, i32 noundef %4212, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 167, ptr noundef %4215, ptr noundef %4218, ptr noundef %4221, i32 noundef %4223) #9
  br label %4225

4225:                                             ; preds = %4208, %4191
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %4226

4226:                                             ; preds = %4225
  br label %4227

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

4228:                                             ; No predecessors!
  br label %4229

4229:                                             ; preds = %4228
  br label %4230

4230:                                             ; preds = %4229, %4170
  br label %4231

4231:                                             ; preds = %4230
  br label %4232

4232:                                             ; preds = %4231
  %4233 = call i32 @s2n_config_ptr_free(ptr noundef %75)
  %4234 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %4233, ptr %4234, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %4235 = call ptr @s2n_config_new()
  store ptr %4235, ptr %89, align 8, !tbaa !9
  br label %4236

4236:                                             ; preds = %4232
  %4237 = load i32, ptr @test_count, align 4, !tbaa !5
  %4238 = add nsw i32 %4237, 1
  store i32 %4238, ptr @test_count, align 4, !tbaa !5
  %4239 = load ptr, ptr %89, align 8, !tbaa !9
  %4240 = icmp eq ptr %4239, null
  br i1 %4240, label %4241, label %4294

4241:                                             ; preds = %4236
  br label %4242

4242:                                             ; preds = %4241
  br label %4243

4243:                                             ; preds = %4242
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %4244 = call ptr @__errno_location() #10
  %4245 = load i32, ptr %4244, align 4, !tbaa !5
  store i32 %4245, ptr %90, align 4, !tbaa !5
  %4246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4247 = call i32 @s2n_print_stacktrace(ptr noundef %4246)
  %4248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4249 = trunc i8 %4248 to i1
  br i1 %4249, label %4250, label %4272

4250:                                             ; preds = %4243
  %4251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4252 = call i32 @fileno(ptr noundef %4251) #9
  %4253 = call i32 @isatty(i32 noundef %4252) #9
  %4254 = icmp ne i32 %4253, 0
  br i1 %4254, label %4255, label %4272

4255:                                             ; preds = %4250
  %4256 = load i32, ptr %90, align 4, !tbaa !5
  %4257 = call ptr @__errno_location() #10
  store i32 %4256, ptr %4257, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = load i32, ptr @test_count, align 4, !tbaa !5
  %4260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror(i32 noundef %4261, ptr noundef @.str.4)
  %4263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror_debug(i32 noundef %4264, ptr noundef @.str.4)
  %4266 = call ptr @__errno_location() #10
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @strerror(i32 noundef %4267) #9
  %4269 = call ptr @__errno_location() #10
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4258, ptr noundef @.str.2, i32 noundef %4259, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 173, ptr noundef %4262, ptr noundef %4265, ptr noundef %4268, i32 noundef %4270) #9
  br label %4289

4272:                                             ; preds = %4250, %4243
  %4273 = load i32, ptr %90, align 4, !tbaa !5
  %4274 = call ptr @__errno_location() #10
  store i32 %4273, ptr %4274, align 4, !tbaa !5
  %4275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4276 = load i32, ptr @test_count, align 4, !tbaa !5
  %4277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4278 = load i32, ptr %4277, align 4, !tbaa !5
  %4279 = call ptr @s2n_strerror(i32 noundef %4278, ptr noundef @.str.4)
  %4280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror_debug(i32 noundef %4281, ptr noundef @.str.4)
  %4283 = call ptr @__errno_location() #10
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call ptr @strerror(i32 noundef %4284) #9
  %4286 = call ptr @__errno_location() #10
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4275, ptr noundef @.str.5, i32 noundef %4276, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 173, ptr noundef %4279, ptr noundef %4282, ptr noundef %4285, i32 noundef %4287) #9
  br label %4289

4289:                                             ; preds = %4272, %4255
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

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

4292:                                             ; No predecessors!
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

4294:                                             ; preds = %4293, %4236
  br label %4295

4295:                                             ; preds = %4294
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  %4298 = load i32, ptr @test_count, align 4, !tbaa !5
  %4299 = add nsw i32 %4298, 1
  store i32 %4299, ptr @test_count, align 4, !tbaa !5
  %4300 = load ptr, ptr %89, align 8, !tbaa !9
  %4301 = getelementptr inbounds %struct.s2n_config, ptr %4300, i32 0, i32 51
  %4302 = load i32, ptr %4301, align 8, !tbaa !20
  %4303 = icmp eq i32 %4302, 0
  br i1 %4303, label %4357, label %4304

4304:                                             ; preds = %4297
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4307 = call ptr @__errno_location() #10
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  store i32 %4308, ptr %91, align 4, !tbaa !5
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = call i32 @s2n_print_stacktrace(ptr noundef %4309)
  %4311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4312 = trunc i8 %4311 to i1
  br i1 %4312, label %4313, label %4335

4313:                                             ; preds = %4306
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = call i32 @fileno(ptr noundef %4314) #9
  %4316 = call i32 @isatty(i32 noundef %4315) #9
  %4317 = icmp ne i32 %4316, 0
  br i1 %4317, label %4318, label %4335

4318:                                             ; preds = %4313
  %4319 = load i32, ptr %91, align 4, !tbaa !5
  %4320 = call ptr @__errno_location() #10
  store i32 %4319, ptr %4320, align 4, !tbaa !5
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = load i32, ptr @test_count, align 4, !tbaa !5
  %4323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call ptr @s2n_strerror(i32 noundef %4324, ptr noundef @.str.4)
  %4326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call ptr @s2n_strerror_debug(i32 noundef %4327, ptr noundef @.str.4)
  %4329 = call ptr @__errno_location() #10
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @strerror(i32 noundef %4330) #9
  %4332 = call ptr @__errno_location() #10
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4321, ptr noundef @.str.2, i32 noundef %4322, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 174, ptr noundef %4325, ptr noundef %4328, ptr noundef %4331, i32 noundef %4333) #9
  br label %4352

4335:                                             ; preds = %4313, %4306
  %4336 = load i32, ptr %91, align 4, !tbaa !5
  %4337 = call ptr @__errno_location() #10
  store i32 %4336, ptr %4337, align 4, !tbaa !5
  %4338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4339 = load i32, ptr @test_count, align 4, !tbaa !5
  %4340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = call ptr @s2n_strerror(i32 noundef %4341, ptr noundef @.str.4)
  %4343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror_debug(i32 noundef %4344, ptr noundef @.str.4)
  %4346 = call ptr @__errno_location() #10
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  %4348 = call ptr @strerror(i32 noundef %4347) #9
  %4349 = call ptr @__errno_location() #10
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4338, ptr noundef @.str.5, i32 noundef %4339, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 174, ptr noundef %4342, ptr noundef %4345, ptr noundef %4348, i32 noundef %4350) #9
  br label %4352

4352:                                             ; preds = %4335, %4318
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4353

4353:                                             ; preds = %4352
  br label %4354

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

4355:                                             ; No predecessors!
  br label %4356

4356:                                             ; preds = %4355
  br label %4357

4357:                                             ; preds = %4356, %4297
  br label %4358

4358:                                             ; preds = %4357
  br label %4359

4359:                                             ; preds = %4358
  br label %4360

4360:                                             ; preds = %4359
  %4361 = load i32, ptr @test_count, align 4, !tbaa !5
  %4362 = add nsw i32 %4361, 1
  store i32 %4362, ptr @test_count, align 4, !tbaa !5
  %4363 = load ptr, ptr %89, align 8, !tbaa !9
  %4364 = load ptr, ptr %73, align 8, !tbaa !9
  %4365 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4363, ptr noundef %4364)
  %4366 = icmp eq i32 %4365, -1
  br i1 %4366, label %4367, label %4420

4367:                                             ; preds = %4360
  br label %4368

4368:                                             ; preds = %4367
  br label %4369

4369:                                             ; preds = %4368
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4370 = call ptr @__errno_location() #10
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  store i32 %4371, ptr %92, align 4, !tbaa !5
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = call i32 @s2n_print_stacktrace(ptr noundef %4372)
  %4374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4375 = trunc i8 %4374 to i1
  br i1 %4375, label %4376, label %4398

4376:                                             ; preds = %4369
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = call i32 @fileno(ptr noundef %4377) #9
  %4379 = call i32 @isatty(i32 noundef %4378) #9
  %4380 = icmp ne i32 %4379, 0
  br i1 %4380, label %4381, label %4398

4381:                                             ; preds = %4376
  %4382 = load i32, ptr %92, align 4, !tbaa !5
  %4383 = call ptr @__errno_location() #10
  store i32 %4382, ptr %4383, align 4, !tbaa !5
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = load i32, ptr @test_count, align 4, !tbaa !5
  %4386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror(i32 noundef %4387, ptr noundef @.str.4)
  %4389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call ptr @s2n_strerror_debug(i32 noundef %4390, ptr noundef @.str.4)
  %4392 = call ptr @__errno_location() #10
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @strerror(i32 noundef %4393) #9
  %4395 = call ptr @__errno_location() #10
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4384, ptr noundef @.str.2, i32 noundef %4385, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4388, ptr noundef %4391, ptr noundef %4394, i32 noundef %4396) #9
  br label %4415

4398:                                             ; preds = %4376, %4369
  %4399 = load i32, ptr %92, align 4, !tbaa !5
  %4400 = call ptr @__errno_location() #10
  store i32 %4399, ptr %4400, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = load i32, ptr @test_count, align 4, !tbaa !5
  %4403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4404 = load i32, ptr %4403, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror(i32 noundef %4404, ptr noundef @.str.4)
  %4406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror_debug(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call ptr @__errno_location() #10
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @strerror(i32 noundef %4410) #9
  %4412 = call ptr @__errno_location() #10
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4401, ptr noundef @.str.5, i32 noundef %4402, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4405, ptr noundef %4408, ptr noundef %4411, i32 noundef %4413) #9
  br label %4415

4415:                                             ; preds = %4398, %4381
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

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

4418:                                             ; No predecessors!
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

4420:                                             ; preds = %4419, %4360
  br label %4421

4421:                                             ; preds = %4420
  br label %4422

4422:                                             ; preds = %4421
  br label %4423

4423:                                             ; preds = %4422
  %4424 = load i32, ptr @test_count, align 4, !tbaa !5
  %4425 = add nsw i32 %4424, 1
  store i32 %4425, ptr @test_count, align 4, !tbaa !5
  %4426 = load ptr, ptr %89, align 8, !tbaa !9
  %4427 = getelementptr inbounds %struct.s2n_config, ptr %4426, i32 0, i32 51
  %4428 = load i32, ptr %4427, align 8, !tbaa !20
  %4429 = icmp eq i32 %4428, 1
  br i1 %4429, label %4483, label %4430

4430:                                             ; preds = %4423
  br label %4431

4431:                                             ; preds = %4430
  br label %4432

4432:                                             ; preds = %4431
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %4433 = call ptr @__errno_location() #10
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  store i32 %4434, ptr %93, align 4, !tbaa !5
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = call i32 @s2n_print_stacktrace(ptr noundef %4435)
  %4437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4438 = trunc i8 %4437 to i1
  br i1 %4438, label %4439, label %4461

4439:                                             ; preds = %4432
  %4440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4441 = call i32 @fileno(ptr noundef %4440) #9
  %4442 = call i32 @isatty(i32 noundef %4441) #9
  %4443 = icmp ne i32 %4442, 0
  br i1 %4443, label %4444, label %4461

4444:                                             ; preds = %4439
  %4445 = load i32, ptr %93, align 4, !tbaa !5
  %4446 = call ptr @__errno_location() #10
  store i32 %4445, ptr %4446, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4450 = load i32, ptr %4449, align 4, !tbaa !5
  %4451 = call ptr @s2n_strerror(i32 noundef %4450, ptr noundef @.str.4)
  %4452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror_debug(i32 noundef %4453, ptr noundef @.str.4)
  %4455 = call ptr @__errno_location() #10
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call ptr @strerror(i32 noundef %4456) #9
  %4458 = call ptr @__errno_location() #10
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4447, ptr noundef @.str.2, i32 noundef %4448, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 178, ptr noundef %4451, ptr noundef %4454, ptr noundef %4457, i32 noundef %4459) #9
  br label %4478

4461:                                             ; preds = %4439, %4432
  %4462 = load i32, ptr %93, align 4, !tbaa !5
  %4463 = call ptr @__errno_location() #10
  store i32 %4462, ptr %4463, align 4, !tbaa !5
  %4464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4465 = load i32, ptr @test_count, align 4, !tbaa !5
  %4466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  %4468 = call ptr @s2n_strerror(i32 noundef %4467, ptr noundef @.str.4)
  %4469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4470 = load i32, ptr %4469, align 4, !tbaa !5
  %4471 = call ptr @s2n_strerror_debug(i32 noundef %4470, ptr noundef @.str.4)
  %4472 = call ptr @__errno_location() #10
  %4473 = load i32, ptr %4472, align 4, !tbaa !5
  %4474 = call ptr @strerror(i32 noundef %4473) #9
  %4475 = call ptr @__errno_location() #10
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  %4477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4464, ptr noundef @.str.5, i32 noundef %4465, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 178, ptr noundef %4468, ptr noundef %4471, ptr noundef %4474, i32 noundef %4476) #9
  br label %4478

4478:                                             ; preds = %4461, %4444
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

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

4481:                                             ; No predecessors!
  br label %4482

4482:                                             ; preds = %4481
  br label %4483

4483:                                             ; preds = %4482, %4423
  br label %4484

4484:                                             ; preds = %4483
  br label %4485

4485:                                             ; preds = %4484
  br label %4486

4486:                                             ; preds = %4485
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = add nsw i32 %4487, 1
  store i32 %4488, ptr @test_count, align 4, !tbaa !5
  %4489 = load ptr, ptr %89, align 8, !tbaa !9
  %4490 = load ptr, ptr %73, align 8, !tbaa !9
  %4491 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4489, ptr noundef %4490)
  %4492 = icmp eq i32 %4491, -1
  br i1 %4492, label %4493, label %4546

4493:                                             ; preds = %4486
  br label %4494

4494:                                             ; preds = %4493
  br label %4495

4495:                                             ; preds = %4494
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %4496 = call ptr @__errno_location() #10
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  store i32 %4497, ptr %94, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = call i32 @s2n_print_stacktrace(ptr noundef %4498)
  %4500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4501 = trunc i8 %4500 to i1
  br i1 %4501, label %4502, label %4524

4502:                                             ; preds = %4495
  %4503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4504 = call i32 @fileno(ptr noundef %4503) #9
  %4505 = call i32 @isatty(i32 noundef %4504) #9
  %4506 = icmp ne i32 %4505, 0
  br i1 %4506, label %4507, label %4524

4507:                                             ; preds = %4502
  %4508 = load i32, ptr %94, align 4, !tbaa !5
  %4509 = call ptr @__errno_location() #10
  store i32 %4508, ptr %4509, align 4, !tbaa !5
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = load i32, ptr @test_count, align 4, !tbaa !5
  %4512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror(i32 noundef %4513, ptr noundef @.str.4)
  %4515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  %4517 = call ptr @s2n_strerror_debug(i32 noundef %4516, ptr noundef @.str.4)
  %4518 = call ptr @__errno_location() #10
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call ptr @strerror(i32 noundef %4519) #9
  %4521 = call ptr @__errno_location() #10
  %4522 = load i32, ptr %4521, align 4, !tbaa !5
  %4523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4510, ptr noundef @.str.2, i32 noundef %4511, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 181, ptr noundef %4514, ptr noundef %4517, ptr noundef %4520, i32 noundef %4522) #9
  br label %4541

4524:                                             ; preds = %4502, %4495
  %4525 = load i32, ptr %94, align 4, !tbaa !5
  %4526 = call ptr @__errno_location() #10
  store i32 %4525, ptr %4526, align 4, !tbaa !5
  %4527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4528 = load i32, ptr @test_count, align 4, !tbaa !5
  %4529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call ptr @s2n_strerror(i32 noundef %4530, ptr noundef @.str.4)
  %4532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call ptr @s2n_strerror_debug(i32 noundef %4533, ptr noundef @.str.4)
  %4535 = call ptr @__errno_location() #10
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  %4537 = call ptr @strerror(i32 noundef %4536) #9
  %4538 = call ptr @__errno_location() #10
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  %4540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4527, ptr noundef @.str.5, i32 noundef %4528, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 181, ptr noundef %4531, ptr noundef %4534, ptr noundef %4537, i32 noundef %4539) #9
  br label %4541

4541:                                             ; preds = %4524, %4507
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

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

4544:                                             ; No predecessors!
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

4546:                                             ; preds = %4545, %4486
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547
  br label %4549

4549:                                             ; preds = %4548
  %4550 = load i32, ptr @test_count, align 4, !tbaa !5
  %4551 = add nsw i32 %4550, 1
  store i32 %4551, ptr @test_count, align 4, !tbaa !5
  %4552 = load ptr, ptr %89, align 8, !tbaa !9
  %4553 = getelementptr inbounds %struct.s2n_config, ptr %4552, i32 0, i32 51
  %4554 = load i32, ptr %4553, align 8, !tbaa !20
  %4555 = icmp eq i32 %4554, 1
  br i1 %4555, label %4609, label %4556

4556:                                             ; preds = %4549
  br label %4557

4557:                                             ; preds = %4556
  br label %4558

4558:                                             ; preds = %4557
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %4559 = call ptr @__errno_location() #10
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  store i32 %4560, ptr %95, align 4, !tbaa !5
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = call i32 @s2n_print_stacktrace(ptr noundef %4561)
  %4563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4564 = trunc i8 %4563 to i1
  br i1 %4564, label %4565, label %4587

4565:                                             ; preds = %4558
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = call i32 @fileno(ptr noundef %4566) #9
  %4568 = call i32 @isatty(i32 noundef %4567) #9
  %4569 = icmp ne i32 %4568, 0
  br i1 %4569, label %4570, label %4587

4570:                                             ; preds = %4565
  %4571 = load i32, ptr %95, align 4, !tbaa !5
  %4572 = call ptr @__errno_location() #10
  store i32 %4571, ptr %4572, align 4, !tbaa !5
  %4573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror(i32 noundef %4576, ptr noundef @.str.4)
  %4578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror_debug(i32 noundef %4579, ptr noundef @.str.4)
  %4581 = call ptr @__errno_location() #10
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call ptr @strerror(i32 noundef %4582) #9
  %4584 = call ptr @__errno_location() #10
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4573, ptr noundef @.str.2, i32 noundef %4574, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4577, ptr noundef %4580, ptr noundef %4583, i32 noundef %4585) #9
  br label %4604

4587:                                             ; preds = %4565, %4558
  %4588 = load i32, ptr %95, align 4, !tbaa !5
  %4589 = call ptr @__errno_location() #10
  store i32 %4588, ptr %4589, align 4, !tbaa !5
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4593 = load i32, ptr %4592, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror(i32 noundef %4593, ptr noundef @.str.4)
  %4595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror_debug(i32 noundef %4596, ptr noundef @.str.4)
  %4598 = call ptr @__errno_location() #10
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call ptr @strerror(i32 noundef %4599) #9
  %4601 = call ptr @__errno_location() #10
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4590, ptr noundef @.str.5, i32 noundef %4591, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4594, ptr noundef %4597, ptr noundef %4600, i32 noundef %4602) #9
  br label %4604

4604:                                             ; preds = %4587, %4570
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

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

4607:                                             ; No predecessors!
  br label %4608

4608:                                             ; preds = %4607
  br label %4609

4609:                                             ; preds = %4608, %4549
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  br label %4612

4612:                                             ; preds = %4611
  br label %4613

4613:                                             ; preds = %4612
  br label %4614

4614:                                             ; preds = %4613
  %4615 = load i32, ptr @test_count, align 4, !tbaa !5
  %4616 = add nsw i32 %4615, 1
  store i32 %4616, ptr @test_count, align 4, !tbaa !5
  %4617 = load ptr, ptr %89, align 8, !tbaa !9
  %4618 = load ptr, ptr %12, align 8, !tbaa !9
  %4619 = load ptr, ptr %13, align 8, !tbaa !9
  %4620 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef %4617, ptr noundef %4618, ptr noundef %4619)
  %4621 = icmp eq i32 %4620, -1
  br i1 %4621, label %4675, label %4622

4622:                                             ; preds = %4614
  br label %4623

4623:                                             ; preds = %4622
  br label %4624

4624:                                             ; preds = %4623
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4625 = call ptr @__errno_location() #10
  %4626 = load i32, ptr %4625, align 4, !tbaa !5
  store i32 %4626, ptr %96, align 4, !tbaa !5
  %4627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4628 = call i32 @s2n_print_stacktrace(ptr noundef %4627)
  %4629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4630 = trunc i8 %4629 to i1
  br i1 %4630, label %4631, label %4653

4631:                                             ; preds = %4624
  %4632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4633 = call i32 @fileno(ptr noundef %4632) #9
  %4634 = call i32 @isatty(i32 noundef %4633) #9
  %4635 = icmp ne i32 %4634, 0
  br i1 %4635, label %4636, label %4653

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

4653:                                             ; preds = %4631, %4624
  %4654 = load i32, ptr %96, align 4, !tbaa !5
  %4655 = call ptr @__errno_location() #10
  store i32 %4654, ptr %4655, align 4, !tbaa !5
  %4656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4657 = load i32, ptr @test_count, align 4, !tbaa !5
  %4658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4659 = load i32, ptr %4658, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror(i32 noundef %4659, ptr noundef @.str.4)
  %4661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror_debug(i32 noundef %4662, ptr noundef @.str.4)
  %4664 = call ptr @__errno_location() #10
  %4665 = load i32, ptr %4664, align 4, !tbaa !5
  %4666 = call ptr @strerror(i32 noundef %4665) #9
  %4667 = call ptr @__errno_location() #10
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4656, ptr noundef @.str.5, i32 noundef %4657, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4660, ptr noundef %4663, ptr noundef %4666, i32 noundef %4668) #9
  br label %4670

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

4671:                                             ; preds = %4670
  br label %4672

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

4673:                                             ; No predecessors!
  br label %4674

4674:                                             ; preds = %4673
  br label %4675

4675:                                             ; preds = %4674, %4614
  br label %4676

4676:                                             ; preds = %4675
  br label %4677

4677:                                             ; preds = %4676
  br label %4678

4678:                                             ; preds = %4677
  %4679 = load i32, ptr @test_count, align 4, !tbaa !5
  %4680 = add nsw i32 %4679, 1
  store i32 %4680, ptr @test_count, align 4, !tbaa !5
  %4681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  %4683 = icmp eq i32 %4682, 469762123
  br i1 %4683, label %4737, label %4684

4684:                                             ; preds = %4678
  br label %4685

4685:                                             ; preds = %4684
  br label %4686

4686:                                             ; preds = %4685
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %4687 = call ptr @__errno_location() #10
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  store i32 %4688, ptr %97, align 4, !tbaa !5
  %4689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4690 = call i32 @s2n_print_stacktrace(ptr noundef %4689)
  %4691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4692 = trunc i8 %4691 to i1
  br i1 %4692, label %4693, label %4715

4693:                                             ; preds = %4686
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = call i32 @fileno(ptr noundef %4694) #9
  %4696 = call i32 @isatty(i32 noundef %4695) #9
  %4697 = icmp ne i32 %4696, 0
  br i1 %4697, label %4698, label %4715

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

4715:                                             ; preds = %4693, %4686
  %4716 = load i32, ptr %97, align 4, !tbaa !5
  %4717 = call ptr @__errno_location() #10
  store i32 %4716, ptr %4717, align 4, !tbaa !5
  %4718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4719 = load i32, ptr @test_count, align 4, !tbaa !5
  %4720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call ptr @s2n_strerror(i32 noundef %4721, ptr noundef @.str.4)
  %4723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @s2n_strerror_debug(i32 noundef %4724, ptr noundef @.str.4)
  %4726 = call ptr @__errno_location() #10
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call ptr @strerror(i32 noundef %4727) #9
  %4729 = call ptr @__errno_location() #10
  %4730 = load i32, ptr %4729, align 4, !tbaa !5
  %4731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4718, ptr noundef @.str.5, i32 noundef %4719, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4722, ptr noundef %4725, ptr noundef %4728, i32 noundef %4730) #9
  br label %4732

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

4733:                                             ; preds = %4732
  br label %4734

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

4735:                                             ; No predecessors!
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

4737:                                             ; preds = %4736, %4678
  br label %4738

4738:                                             ; preds = %4737
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = add nsw i32 %4741, 1
  store i32 %4742, ptr @test_count, align 4, !tbaa !5
  %4743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror_debug(i32 noundef %4744, ptr noundef @.str.4)
  %4746 = icmp eq ptr %4745, null
  br i1 %4746, label %4747, label %4800

4747:                                             ; preds = %4740
  br label %4748

4748:                                             ; preds = %4747
  br label %4749

4749:                                             ; preds = %4748
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4750 = call ptr @__errno_location() #10
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  store i32 %4751, ptr %98, align 4, !tbaa !5
  %4752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4753 = call i32 @s2n_print_stacktrace(ptr noundef %4752)
  %4754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4755 = trunc i8 %4754 to i1
  br i1 %4755, label %4756, label %4778

4756:                                             ; preds = %4749
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = call i32 @fileno(ptr noundef %4757) #9
  %4759 = call i32 @isatty(i32 noundef %4758) #9
  %4760 = icmp ne i32 %4759, 0
  br i1 %4760, label %4761, label %4778

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

4778:                                             ; preds = %4756, %4749
  %4779 = load i32, ptr %98, align 4, !tbaa !5
  %4780 = call ptr @__errno_location() #10
  store i32 %4779, ptr %4780, align 4, !tbaa !5
  %4781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4782 = load i32, ptr @test_count, align 4, !tbaa !5
  %4783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call ptr @s2n_strerror(i32 noundef %4784, ptr noundef @.str.4)
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror_debug(i32 noundef %4787, ptr noundef @.str.4)
  %4789 = call ptr @__errno_location() #10
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @strerror(i32 noundef %4790) #9
  %4792 = call ptr @__errno_location() #10
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4781, ptr noundef @.str.5, i32 noundef %4782, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4785, ptr noundef %4788, ptr noundef %4791, i32 noundef %4793) #9
  br label %4795

4795:                                             ; preds = %4778, %4761
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4796

4796:                                             ; preds = %4795
  br label %4797

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

4798:                                             ; No predecessors!
  br label %4799

4799:                                             ; preds = %4798
  br label %4800

4800:                                             ; preds = %4799, %4740
  br label %4801

4801:                                             ; preds = %4800
  br label %4802

4802:                                             ; preds = %4801
  br label %4803

4803:                                             ; preds = %4802
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804
  %4806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4806, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4807 = call ptr @__errno_location() #10
  store i32 0, ptr %4807, align 4, !tbaa !5
  br label %4808

4808:                                             ; preds = %4805
  br label %4809

4809:                                             ; preds = %4808
  br label %4810

4810:                                             ; preds = %4809
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

4812:                                             ; preds = %4811
  %4813 = load i32, ptr @test_count, align 4, !tbaa !5
  %4814 = add nsw i32 %4813, 1
  store i32 %4814, ptr @test_count, align 4, !tbaa !5
  %4815 = load ptr, ptr %89, align 8, !tbaa !9
  %4816 = getelementptr inbounds %struct.s2n_config, ptr %4815, i32 0, i32 51
  %4817 = load i32, ptr %4816, align 8, !tbaa !20
  %4818 = icmp eq i32 %4817, 1
  br i1 %4818, label %4872, label %4819

4819:                                             ; preds = %4812
  br label %4820

4820:                                             ; preds = %4819
  br label %4821

4821:                                             ; preds = %4820
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4822 = call ptr @__errno_location() #10
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  store i32 %4823, ptr %99, align 4, !tbaa !5
  %4824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4825 = call i32 @s2n_print_stacktrace(ptr noundef %4824)
  %4826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4827 = trunc i8 %4826 to i1
  br i1 %4827, label %4828, label %4850

4828:                                             ; preds = %4821
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = call i32 @fileno(ptr noundef %4829) #9
  %4831 = call i32 @isatty(i32 noundef %4830) #9
  %4832 = icmp ne i32 %4831, 0
  br i1 %4832, label %4833, label %4850

4833:                                             ; preds = %4828
  %4834 = load i32, ptr %99, align 4, !tbaa !5
  %4835 = call ptr @__errno_location() #10
  store i32 %4834, ptr %4835, align 4, !tbaa !5
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = load i32, ptr @test_count, align 4, !tbaa !5
  %4838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call ptr @s2n_strerror(i32 noundef %4839, ptr noundef @.str.4)
  %4841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4842 = load i32, ptr %4841, align 4, !tbaa !5
  %4843 = call ptr @s2n_strerror_debug(i32 noundef %4842, ptr noundef @.str.4)
  %4844 = call ptr @__errno_location() #10
  %4845 = load i32, ptr %4844, align 4, !tbaa !5
  %4846 = call ptr @strerror(i32 noundef %4845) #9
  %4847 = call ptr @__errno_location() #10
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4836, ptr noundef @.str.2, i32 noundef %4837, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4840, ptr noundef %4843, ptr noundef %4846, i32 noundef %4848) #9
  br label %4867

4850:                                             ; preds = %4828, %4821
  %4851 = load i32, ptr %99, align 4, !tbaa !5
  %4852 = call ptr @__errno_location() #10
  store i32 %4851, ptr %4852, align 4, !tbaa !5
  %4853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4854 = load i32, ptr @test_count, align 4, !tbaa !5
  %4855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4856 = load i32, ptr %4855, align 4, !tbaa !5
  %4857 = call ptr @s2n_strerror(i32 noundef %4856, ptr noundef @.str.4)
  %4858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4859 = load i32, ptr %4858, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror_debug(i32 noundef %4859, ptr noundef @.str.4)
  %4861 = call ptr @__errno_location() #10
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @strerror(i32 noundef %4862) #9
  %4864 = call ptr @__errno_location() #10
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4853, ptr noundef @.str.5, i32 noundef %4854, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4857, ptr noundef %4860, ptr noundef %4863, i32 noundef %4865) #9
  br label %4867

4867:                                             ; preds = %4850, %4833
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4868

4868:                                             ; preds = %4867
  br label %4869

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

4870:                                             ; No predecessors!
  br label %4871

4871:                                             ; preds = %4870
  br label %4872

4872:                                             ; preds = %4871, %4812
  br label %4873

4873:                                             ; preds = %4872
  br label %4874

4874:                                             ; preds = %4873
  %4875 = call i32 @s2n_config_ptr_free(ptr noundef %89)
  %4876 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %4875, ptr %4876, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  %4877 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %73)
  %4878 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %4877, ptr %4878, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  store ptr null, ptr %102, align 8, !tbaa !9
  br label %4879

4879:                                             ; preds = %4874
  %4880 = load i32, ptr @test_count, align 4, !tbaa !5
  %4881 = add nsw i32 %4880, 1
  store i32 %4881, ptr @test_count, align 4, !tbaa !5
  %4882 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef %102, ptr noundef @.str.66, ptr noundef @.str.67, ptr noundef @.str.68, ptr noundef @.str.69)
  %4883 = icmp eq i32 %4882, -1
  br i1 %4883, label %4884, label %4937

4884:                                             ; preds = %4879
  br label %4885

4885:                                             ; preds = %4884
  br label %4886

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

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

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

4915:                                             ; preds = %4893, %4886
  %4916 = load i32, ptr %103, align 4, !tbaa !5
  %4917 = call ptr @__errno_location() #10
  store i32 %4916, ptr %4917, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call ptr @s2n_strerror(i32 noundef %4921, ptr noundef @.str.4)
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror_debug(i32 noundef %4924, ptr noundef @.str.4)
  %4926 = call ptr @__errno_location() #10
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @strerror(i32 noundef %4927) #9
  %4929 = call ptr @__errno_location() #10
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4918, ptr noundef @.str.5, i32 noundef %4919, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 198, ptr noundef %4922, ptr noundef %4925, ptr noundef %4928, i32 noundef %4930) #9
  br label %4932

4932:                                             ; preds = %4915, %4898
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4933

4933:                                             ; preds = %4932
  br label %4934

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

4935:                                             ; No predecessors!
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

4937:                                             ; preds = %4936, %4879
  br label %4938

4938:                                             ; preds = %4937
  br label %4939

4939:                                             ; preds = %4938
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %4940 = load ptr, ptr %102, align 8, !tbaa !9
  %4941 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %4940, i32 0, i32 0
  %4942 = load ptr, ptr %4941, align 8, !tbaa !26
  %4943 = getelementptr inbounds %struct.s2n_cert_chain, ptr %4942, i32 0, i32 1
  %4944 = load ptr, ptr %4943, align 8, !tbaa !28
  store ptr %4944, ptr %104, align 8, !tbaa !9
  br label %4945

4945:                                             ; preds = %4939
  %4946 = load i32, ptr @test_count, align 4, !tbaa !5
  %4947 = add nsw i32 %4946, 1
  store i32 %4947, ptr @test_count, align 4, !tbaa !5
  %4948 = load ptr, ptr %104, align 8, !tbaa !9
  %4949 = getelementptr inbounds %struct.s2n_cert, ptr %4948, i32 0, i32 2
  %4950 = getelementptr inbounds %struct.s2n_cert_info, ptr %4949, i32 0, i32 4
  %4951 = load i8, ptr %4950, align 8, !tbaa !30, !range !13, !noundef !14
  %4952 = trunc i8 %4951 to i1
  %4953 = zext i1 %4952 to i32
  %4954 = icmp eq i32 %4953, 0
  br i1 %4954, label %5008, label %4955

4955:                                             ; preds = %4945
  br label %4956

4956:                                             ; preds = %4955
  br label %4957

4957:                                             ; preds = %4956
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %4958 = call ptr @__errno_location() #10
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  store i32 %4959, ptr %105, align 4, !tbaa !5
  %4960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4961 = call i32 @s2n_print_stacktrace(ptr noundef %4960)
  %4962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4963 = trunc i8 %4962 to i1
  br i1 %4963, label %4964, label %4986

4964:                                             ; preds = %4957
  %4965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4966 = call i32 @fileno(ptr noundef %4965) #9
  %4967 = call i32 @isatty(i32 noundef %4966) #9
  %4968 = icmp ne i32 %4967, 0
  br i1 %4968, label %4969, label %4986

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

4986:                                             ; preds = %4964, %4957
  %4987 = load i32, ptr %105, align 4, !tbaa !5
  %4988 = call ptr @__errno_location() #10
  store i32 %4987, ptr %4988, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = load i32, ptr @test_count, align 4, !tbaa !5
  %4991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @s2n_strerror(i32 noundef %4992, ptr noundef @.str.4)
  %4994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call ptr @s2n_strerror_debug(i32 noundef %4995, ptr noundef @.str.4)
  %4997 = call ptr @__errno_location() #10
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call ptr @strerror(i32 noundef %4998) #9
  %5000 = call ptr @__errno_location() #10
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  %5002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4989, ptr noundef @.str.5, i32 noundef %4990, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4993, ptr noundef %4996, ptr noundef %4999, i32 noundef %5001) #9
  br label %5003

5003:                                             ; preds = %4986, %4969
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

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

5006:                                             ; No predecessors!
  br label %5007

5007:                                             ; preds = %5006
  br label %5008

5008:                                             ; preds = %5007, %4945
  br label %5009

5009:                                             ; preds = %5008
  br label %5010

5010:                                             ; preds = %5009
  br label %5011

5011:                                             ; preds = %5010
  %5012 = load i32, ptr @test_count, align 4, !tbaa !5
  %5013 = add nsw i32 %5012, 1
  store i32 %5013, ptr @test_count, align 4, !tbaa !5
  %5014 = load ptr, ptr %104, align 8, !tbaa !9
  %5015 = getelementptr inbounds %struct.s2n_cert, ptr %5014, i32 0, i32 2
  %5016 = getelementptr inbounds %struct.s2n_cert_info, ptr %5015, i32 0, i32 0
  %5017 = load i32, ptr %5016, align 8, !tbaa !34
  %5018 = icmp eq i32 %5017, 794
  br i1 %5018, label %5072, label %5019

5019:                                             ; preds = %5011
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

5021:                                             ; preds = %5020
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %5022 = call ptr @__errno_location() #10
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  store i32 %5023, ptr %106, align 4, !tbaa !5
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = call i32 @s2n_print_stacktrace(ptr noundef %5024)
  %5026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5027 = trunc i8 %5026 to i1
  br i1 %5027, label %5028, label %5050

5028:                                             ; preds = %5021
  %5029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5030 = call i32 @fileno(ptr noundef %5029) #9
  %5031 = call i32 @isatty(i32 noundef %5030) #9
  %5032 = icmp ne i32 %5031, 0
  br i1 %5032, label %5033, label %5050

5033:                                             ; preds = %5028
  %5034 = load i32, ptr %106, align 4, !tbaa !5
  %5035 = call ptr @__errno_location() #10
  store i32 %5034, ptr %5035, align 4, !tbaa !5
  %5036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5037 = load i32, ptr @test_count, align 4, !tbaa !5
  %5038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  %5040 = call ptr @s2n_strerror(i32 noundef %5039, ptr noundef @.str.4)
  %5041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5042 = load i32, ptr %5041, align 4, !tbaa !5
  %5043 = call ptr @s2n_strerror_debug(i32 noundef %5042, ptr noundef @.str.4)
  %5044 = call ptr @__errno_location() #10
  %5045 = load i32, ptr %5044, align 4, !tbaa !5
  %5046 = call ptr @strerror(i32 noundef %5045) #9
  %5047 = call ptr @__errno_location() #10
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  %5049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5036, ptr noundef @.str.2, i32 noundef %5037, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 201, ptr noundef %5040, ptr noundef %5043, ptr noundef %5046, i32 noundef %5048) #9
  br label %5067

5050:                                             ; preds = %5028, %5021
  %5051 = load i32, ptr %106, align 4, !tbaa !5
  %5052 = call ptr @__errno_location() #10
  store i32 %5051, ptr %5052, align 4, !tbaa !5
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call ptr @s2n_strerror(i32 noundef %5056, ptr noundef @.str.4)
  %5058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5059 = load i32, ptr %5058, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror_debug(i32 noundef %5059, ptr noundef @.str.4)
  %5061 = call ptr @__errno_location() #10
  %5062 = load i32, ptr %5061, align 4, !tbaa !5
  %5063 = call ptr @strerror(i32 noundef %5062) #9
  %5064 = call ptr @__errno_location() #10
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5053, ptr noundef @.str.5, i32 noundef %5054, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 201, ptr noundef %5057, ptr noundef %5060, ptr noundef %5063, i32 noundef %5065) #9
  br label %5067

5067:                                             ; preds = %5050, %5033
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %5068

5068:                                             ; preds = %5067
  br label %5069

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

5070:                                             ; No predecessors!
  br label %5071

5071:                                             ; preds = %5070
  br label %5072

5072:                                             ; preds = %5071, %5011
  br label %5073

5073:                                             ; preds = %5072
  br label %5074

5074:                                             ; preds = %5073
  br label %5075

5075:                                             ; preds = %5074
  %5076 = load i32, ptr @test_count, align 4, !tbaa !5
  %5077 = add nsw i32 %5076, 1
  store i32 %5077, ptr @test_count, align 4, !tbaa !5
  %5078 = load ptr, ptr %104, align 8, !tbaa !9
  %5079 = getelementptr inbounds %struct.s2n_cert, ptr %5078, i32 0, i32 2
  %5080 = getelementptr inbounds %struct.s2n_cert_info, ptr %5079, i32 0, i32 1
  %5081 = load i32, ptr %5080, align 4, !tbaa !35
  %5082 = icmp eq i32 %5081, 672
  br i1 %5082, label %5136, label %5083

5083:                                             ; preds = %5075
  br label %5084

5084:                                             ; preds = %5083
  br label %5085

5085:                                             ; preds = %5084
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  %5086 = call ptr @__errno_location() #10
  %5087 = load i32, ptr %5086, align 4, !tbaa !5
  store i32 %5087, ptr %107, align 4, !tbaa !5
  %5088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5089 = call i32 @s2n_print_stacktrace(ptr noundef %5088)
  %5090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5091 = trunc i8 %5090 to i1
  br i1 %5091, label %5092, label %5114

5092:                                             ; preds = %5085
  %5093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5094 = call i32 @fileno(ptr noundef %5093) #9
  %5095 = call i32 @isatty(i32 noundef %5094) #9
  %5096 = icmp ne i32 %5095, 0
  br i1 %5096, label %5097, label %5114

5097:                                             ; preds = %5092
  %5098 = load i32, ptr %107, align 4, !tbaa !5
  %5099 = call ptr @__errno_location() #10
  store i32 %5098, ptr %5099, align 4, !tbaa !5
  %5100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5101 = load i32, ptr @test_count, align 4, !tbaa !5
  %5102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @s2n_strerror(i32 noundef %5103, ptr noundef @.str.4)
  %5105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call ptr @s2n_strerror_debug(i32 noundef %5106, ptr noundef @.str.4)
  %5108 = call ptr @__errno_location() #10
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = call ptr @strerror(i32 noundef %5109) #9
  %5111 = call ptr @__errno_location() #10
  %5112 = load i32, ptr %5111, align 4, !tbaa !5
  %5113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5100, ptr noundef @.str.2, i32 noundef %5101, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 202, ptr noundef %5104, ptr noundef %5107, ptr noundef %5110, i32 noundef %5112) #9
  br label %5131

5114:                                             ; preds = %5092, %5085
  %5115 = load i32, ptr %107, align 4, !tbaa !5
  %5116 = call ptr @__errno_location() #10
  store i32 %5115, ptr %5116, align 4, !tbaa !5
  %5117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5118 = load i32, ptr @test_count, align 4, !tbaa !5
  %5119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call ptr @s2n_strerror(i32 noundef %5120, ptr noundef @.str.4)
  %5122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5123 = load i32, ptr %5122, align 4, !tbaa !5
  %5124 = call ptr @s2n_strerror_debug(i32 noundef %5123, ptr noundef @.str.4)
  %5125 = call ptr @__errno_location() #10
  %5126 = load i32, ptr %5125, align 4, !tbaa !5
  %5127 = call ptr @strerror(i32 noundef %5126) #9
  %5128 = call ptr @__errno_location() #10
  %5129 = load i32, ptr %5128, align 4, !tbaa !5
  %5130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5117, ptr noundef @.str.5, i32 noundef %5118, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 202, ptr noundef %5121, ptr noundef %5124, ptr noundef %5127, i32 noundef %5129) #9
  br label %5131

5131:                                             ; preds = %5114, %5097
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %5132

5132:                                             ; preds = %5131
  br label %5133

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

5134:                                             ; No predecessors!
  br label %5135

5135:                                             ; preds = %5134
  br label %5136

5136:                                             ; preds = %5135, %5075
  br label %5137

5137:                                             ; preds = %5136
  br label %5138

5138:                                             ; preds = %5137
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  %5139 = load ptr, ptr %104, align 8, !tbaa !9
  %5140 = getelementptr inbounds %struct.s2n_cert, ptr %5139, i32 0, i32 4
  %5141 = load ptr, ptr %5140, align 8, !tbaa !36
  store ptr %5141, ptr %108, align 8, !tbaa !9
  br label %5142

5142:                                             ; preds = %5138
  %5143 = load i32, ptr @test_count, align 4, !tbaa !5
  %5144 = add nsw i32 %5143, 1
  store i32 %5144, ptr @test_count, align 4, !tbaa !5
  %5145 = load ptr, ptr %108, align 8, !tbaa !9
  %5146 = icmp eq ptr %5145, null
  br i1 %5146, label %5147, label %5200

5147:                                             ; preds = %5142
  br label %5148

5148:                                             ; preds = %5147
  br label %5149

5149:                                             ; preds = %5148
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %5150 = call ptr @__errno_location() #10
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  store i32 %5151, ptr %109, align 4, !tbaa !5
  %5152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5153 = call i32 @s2n_print_stacktrace(ptr noundef %5152)
  %5154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5155 = trunc i8 %5154 to i1
  br i1 %5155, label %5156, label %5178

5156:                                             ; preds = %5149
  %5157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5158 = call i32 @fileno(ptr noundef %5157) #9
  %5159 = call i32 @isatty(i32 noundef %5158) #9
  %5160 = icmp ne i32 %5159, 0
  br i1 %5160, label %5161, label %5178

5161:                                             ; preds = %5156
  %5162 = load i32, ptr %109, align 4, !tbaa !5
  %5163 = call ptr @__errno_location() #10
  store i32 %5162, ptr %5163, align 4, !tbaa !5
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = load i32, ptr @test_count, align 4, !tbaa !5
  %5166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror(i32 noundef %5167, ptr noundef @.str.4)
  %5169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror_debug(i32 noundef %5170, ptr noundef @.str.4)
  %5172 = call ptr @__errno_location() #10
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = call ptr @strerror(i32 noundef %5173) #9
  %5175 = call ptr @__errno_location() #10
  %5176 = load i32, ptr %5175, align 4, !tbaa !5
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5164, ptr noundef @.str.2, i32 noundef %5165, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 205, ptr noundef %5168, ptr noundef %5171, ptr noundef %5174, i32 noundef %5176) #9
  br label %5195

5178:                                             ; preds = %5156, %5149
  %5179 = load i32, ptr %109, align 4, !tbaa !5
  %5180 = call ptr @__errno_location() #10
  store i32 %5179, ptr %5180, align 4, !tbaa !5
  %5181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5182 = load i32, ptr @test_count, align 4, !tbaa !5
  %5183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5184 = load i32, ptr %5183, align 4, !tbaa !5
  %5185 = call ptr @s2n_strerror(i32 noundef %5184, ptr noundef @.str.4)
  %5186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5187 = load i32, ptr %5186, align 4, !tbaa !5
  %5188 = call ptr @s2n_strerror_debug(i32 noundef %5187, ptr noundef @.str.4)
  %5189 = call ptr @__errno_location() #10
  %5190 = load i32, ptr %5189, align 4, !tbaa !5
  %5191 = call ptr @strerror(i32 noundef %5190) #9
  %5192 = call ptr @__errno_location() #10
  %5193 = load i32, ptr %5192, align 4, !tbaa !5
  %5194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5181, ptr noundef @.str.5, i32 noundef %5182, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 205, ptr noundef %5185, ptr noundef %5188, ptr noundef %5191, i32 noundef %5193) #9
  br label %5195

5195:                                             ; preds = %5178, %5161
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %5196

5196:                                             ; preds = %5195
  br label %5197

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

5198:                                             ; No predecessors!
  br label %5199

5199:                                             ; preds = %5198
  br label %5200

5200:                                             ; preds = %5199, %5142
  br label %5201

5201:                                             ; preds = %5200
  br label %5202

5202:                                             ; preds = %5201
  br label %5203

5203:                                             ; preds = %5202
  %5204 = load i32, ptr @test_count, align 4, !tbaa !5
  %5205 = add nsw i32 %5204, 1
  store i32 %5205, ptr @test_count, align 4, !tbaa !5
  %5206 = load ptr, ptr %108, align 8, !tbaa !9
  %5207 = getelementptr inbounds %struct.s2n_cert, ptr %5206, i32 0, i32 2
  %5208 = getelementptr inbounds %struct.s2n_cert_info, ptr %5207, i32 0, i32 4
  %5209 = load i8, ptr %5208, align 8, !tbaa !30, !range !13, !noundef !14
  %5210 = trunc i8 %5209 to i1
  %5211 = zext i1 %5210 to i32
  %5212 = icmp eq i32 %5211, 0
  br i1 %5212, label %5266, label %5213

5213:                                             ; preds = %5203
  br label %5214

5214:                                             ; preds = %5213
  br label %5215

5215:                                             ; preds = %5214
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %5216 = call ptr @__errno_location() #10
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  store i32 %5217, ptr %110, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = call i32 @s2n_print_stacktrace(ptr noundef %5218)
  %5220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5221 = trunc i8 %5220 to i1
  br i1 %5221, label %5222, label %5244

5222:                                             ; preds = %5215
  %5223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5224 = call i32 @fileno(ptr noundef %5223) #9
  %5225 = call i32 @isatty(i32 noundef %5224) #9
  %5226 = icmp ne i32 %5225, 0
  br i1 %5226, label %5227, label %5244

5227:                                             ; preds = %5222
  %5228 = load i32, ptr %110, align 4, !tbaa !5
  %5229 = call ptr @__errno_location() #10
  store i32 %5228, ptr %5229, align 4, !tbaa !5
  %5230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5231 = load i32, ptr @test_count, align 4, !tbaa !5
  %5232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  %5234 = call ptr @s2n_strerror(i32 noundef %5233, ptr noundef @.str.4)
  %5235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5236 = load i32, ptr %5235, align 4, !tbaa !5
  %5237 = call ptr @s2n_strerror_debug(i32 noundef %5236, ptr noundef @.str.4)
  %5238 = call ptr @__errno_location() #10
  %5239 = load i32, ptr %5238, align 4, !tbaa !5
  %5240 = call ptr @strerror(i32 noundef %5239) #9
  %5241 = call ptr @__errno_location() #10
  %5242 = load i32, ptr %5241, align 4, !tbaa !5
  %5243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5230, ptr noundef @.str.2, i32 noundef %5231, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5234, ptr noundef %5237, ptr noundef %5240, i32 noundef %5242) #9
  br label %5261

5244:                                             ; preds = %5222, %5215
  %5245 = load i32, ptr %110, align 4, !tbaa !5
  %5246 = call ptr @__errno_location() #10
  store i32 %5245, ptr %5246, align 4, !tbaa !5
  %5247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5248 = load i32, ptr @test_count, align 4, !tbaa !5
  %5249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5250 = load i32, ptr %5249, align 4, !tbaa !5
  %5251 = call ptr @s2n_strerror(i32 noundef %5250, ptr noundef @.str.4)
  %5252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5253 = load i32, ptr %5252, align 4, !tbaa !5
  %5254 = call ptr @s2n_strerror_debug(i32 noundef %5253, ptr noundef @.str.4)
  %5255 = call ptr @__errno_location() #10
  %5256 = load i32, ptr %5255, align 4, !tbaa !5
  %5257 = call ptr @strerror(i32 noundef %5256) #9
  %5258 = call ptr @__errno_location() #10
  %5259 = load i32, ptr %5258, align 4, !tbaa !5
  %5260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5247, ptr noundef @.str.5, i32 noundef %5248, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5251, ptr noundef %5254, ptr noundef %5257, i32 noundef %5259) #9
  br label %5261

5261:                                             ; preds = %5244, %5227
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %5262

5262:                                             ; preds = %5261
  br label %5263

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

5264:                                             ; No predecessors!
  br label %5265

5265:                                             ; preds = %5264
  br label %5266

5266:                                             ; preds = %5265, %5203
  br label %5267

5267:                                             ; preds = %5266
  br label %5268

5268:                                             ; preds = %5267
  br label %5269

5269:                                             ; preds = %5268
  %5270 = load i32, ptr @test_count, align 4, !tbaa !5
  %5271 = add nsw i32 %5270, 1
  store i32 %5271, ptr @test_count, align 4, !tbaa !5
  %5272 = load ptr, ptr %108, align 8, !tbaa !9
  %5273 = getelementptr inbounds %struct.s2n_cert, ptr %5272, i32 0, i32 2
  %5274 = getelementptr inbounds %struct.s2n_cert_info, ptr %5273, i32 0, i32 0
  %5275 = load i32, ptr %5274, align 8, !tbaa !34
  %5276 = icmp eq i32 %5275, 794
  br i1 %5276, label %5330, label %5277

5277:                                             ; preds = %5269
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

5279:                                             ; preds = %5278
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %5280 = call ptr @__errno_location() #10
  %5281 = load i32, ptr %5280, align 4, !tbaa !5
  store i32 %5281, ptr %111, align 4, !tbaa !5
  %5282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5283 = call i32 @s2n_print_stacktrace(ptr noundef %5282)
  %5284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5285 = trunc i8 %5284 to i1
  br i1 %5285, label %5286, label %5308

5286:                                             ; preds = %5279
  %5287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5288 = call i32 @fileno(ptr noundef %5287) #9
  %5289 = call i32 @isatty(i32 noundef %5288) #9
  %5290 = icmp ne i32 %5289, 0
  br i1 %5290, label %5291, label %5308

5291:                                             ; preds = %5286
  %5292 = load i32, ptr %111, align 4, !tbaa !5
  %5293 = call ptr @__errno_location() #10
  store i32 %5292, ptr %5293, align 4, !tbaa !5
  %5294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5295 = load i32, ptr @test_count, align 4, !tbaa !5
  %5296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5297 = load i32, ptr %5296, align 4, !tbaa !5
  %5298 = call ptr @s2n_strerror(i32 noundef %5297, ptr noundef @.str.4)
  %5299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror_debug(i32 noundef %5300, ptr noundef @.str.4)
  %5302 = call ptr @__errno_location() #10
  %5303 = load i32, ptr %5302, align 4, !tbaa !5
  %5304 = call ptr @strerror(i32 noundef %5303) #9
  %5305 = call ptr @__errno_location() #10
  %5306 = load i32, ptr %5305, align 4, !tbaa !5
  %5307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5294, ptr noundef @.str.2, i32 noundef %5295, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 207, ptr noundef %5298, ptr noundef %5301, ptr noundef %5304, i32 noundef %5306) #9
  br label %5325

5308:                                             ; preds = %5286, %5279
  %5309 = load i32, ptr %111, align 4, !tbaa !5
  %5310 = call ptr @__errno_location() #10
  store i32 %5309, ptr %5310, align 4, !tbaa !5
  %5311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5312 = load i32, ptr @test_count, align 4, !tbaa !5
  %5313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call ptr @s2n_strerror(i32 noundef %5314, ptr noundef @.str.4)
  %5316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  %5318 = call ptr @s2n_strerror_debug(i32 noundef %5317, ptr noundef @.str.4)
  %5319 = call ptr @__errno_location() #10
  %5320 = load i32, ptr %5319, align 4, !tbaa !5
  %5321 = call ptr @strerror(i32 noundef %5320) #9
  %5322 = call ptr @__errno_location() #10
  %5323 = load i32, ptr %5322, align 4, !tbaa !5
  %5324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5311, ptr noundef @.str.5, i32 noundef %5312, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 207, ptr noundef %5315, ptr noundef %5318, ptr noundef %5321, i32 noundef %5323) #9
  br label %5325

5325:                                             ; preds = %5308, %5291
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %5326

5326:                                             ; preds = %5325
  br label %5327

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

5328:                                             ; No predecessors!
  br label %5329

5329:                                             ; preds = %5328
  br label %5330

5330:                                             ; preds = %5329, %5269
  br label %5331

5331:                                             ; preds = %5330
  br label %5332

5332:                                             ; preds = %5331
  br label %5333

5333:                                             ; preds = %5332
  %5334 = load i32, ptr @test_count, align 4, !tbaa !5
  %5335 = add nsw i32 %5334, 1
  store i32 %5335, ptr @test_count, align 4, !tbaa !5
  %5336 = load ptr, ptr %108, align 8, !tbaa !9
  %5337 = getelementptr inbounds %struct.s2n_cert, ptr %5336, i32 0, i32 2
  %5338 = getelementptr inbounds %struct.s2n_cert_info, ptr %5337, i32 0, i32 1
  %5339 = load i32, ptr %5338, align 4, !tbaa !35
  %5340 = icmp eq i32 %5339, 672
  br i1 %5340, label %5394, label %5341

5341:                                             ; preds = %5333
  br label %5342

5342:                                             ; preds = %5341
  br label %5343

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

5350:                                             ; preds = %5343
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = call i32 @fileno(ptr noundef %5351) #9
  %5353 = call i32 @isatty(i32 noundef %5352) #9
  %5354 = icmp ne i32 %5353, 0
  br i1 %5354, label %5355, label %5372

5355:                                             ; preds = %5350
  %5356 = load i32, ptr %112, align 4, !tbaa !5
  %5357 = call ptr @__errno_location() #10
  store i32 %5356, ptr %5357, align 4, !tbaa !5
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5361 = load i32, ptr %5360, align 4, !tbaa !5
  %5362 = call ptr @s2n_strerror(i32 noundef %5361, ptr noundef @.str.4)
  %5363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @s2n_strerror_debug(i32 noundef %5364, ptr noundef @.str.4)
  %5366 = call ptr @__errno_location() #10
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call ptr @strerror(i32 noundef %5367) #9
  %5369 = call ptr @__errno_location() #10
  %5370 = load i32, ptr %5369, align 4, !tbaa !5
  %5371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5358, ptr noundef @.str.2, i32 noundef %5359, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5362, ptr noundef %5365, ptr noundef %5368, i32 noundef %5370) #9
  br label %5389

5372:                                             ; preds = %5350, %5343
  %5373 = load i32, ptr %112, align 4, !tbaa !5
  %5374 = call ptr @__errno_location() #10
  store i32 %5373, ptr %5374, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = load i32, ptr @test_count, align 4, !tbaa !5
  %5377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5378 = load i32, ptr %5377, align 4, !tbaa !5
  %5379 = call ptr @s2n_strerror(i32 noundef %5378, ptr noundef @.str.4)
  %5380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @s2n_strerror_debug(i32 noundef %5381, ptr noundef @.str.4)
  %5383 = call ptr @__errno_location() #10
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @strerror(i32 noundef %5384) #9
  %5386 = call ptr @__errno_location() #10
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5375, ptr noundef @.str.5, i32 noundef %5376, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5379, ptr noundef %5382, ptr noundef %5385, i32 noundef %5387) #9
  br label %5389

5389:                                             ; preds = %5372, %5355
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %5390

5390:                                             ; preds = %5389
  br label %5391

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

5392:                                             ; No predecessors!
  br label %5393

5393:                                             ; preds = %5392
  br label %5394

5394:                                             ; preds = %5393, %5333
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

5396:                                             ; preds = %5395
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #9
  %5397 = load ptr, ptr %108, align 8, !tbaa !9
  %5398 = getelementptr inbounds %struct.s2n_cert, ptr %5397, i32 0, i32 4
  %5399 = load ptr, ptr %5398, align 8, !tbaa !36
  store ptr %5399, ptr %113, align 8, !tbaa !9
  br label %5400

5400:                                             ; preds = %5396
  %5401 = load i32, ptr @test_count, align 4, !tbaa !5
  %5402 = add nsw i32 %5401, 1
  store i32 %5402, ptr @test_count, align 4, !tbaa !5
  %5403 = load ptr, ptr %108, align 8, !tbaa !9
  %5404 = icmp eq ptr %5403, null
  br i1 %5404, label %5405, label %5458

5405:                                             ; preds = %5400
  br label %5406

5406:                                             ; preds = %5405
  br label %5407

5407:                                             ; preds = %5406
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %5408 = call ptr @__errno_location() #10
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  store i32 %5409, ptr %114, align 4, !tbaa !5
  %5410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5411 = call i32 @s2n_print_stacktrace(ptr noundef %5410)
  %5412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5413 = trunc i8 %5412 to i1
  br i1 %5413, label %5414, label %5436

5414:                                             ; preds = %5407
  %5415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5416 = call i32 @fileno(ptr noundef %5415) #9
  %5417 = call i32 @isatty(i32 noundef %5416) #9
  %5418 = icmp ne i32 %5417, 0
  br i1 %5418, label %5419, label %5436

5419:                                             ; preds = %5414
  %5420 = load i32, ptr %114, align 4, !tbaa !5
  %5421 = call ptr @__errno_location() #10
  store i32 %5420, ptr %5421, align 4, !tbaa !5
  %5422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  %5426 = call ptr @s2n_strerror(i32 noundef %5425, ptr noundef @.str.4)
  %5427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @s2n_strerror_debug(i32 noundef %5428, ptr noundef @.str.4)
  %5430 = call ptr @__errno_location() #10
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @strerror(i32 noundef %5431) #9
  %5433 = call ptr @__errno_location() #10
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5422, ptr noundef @.str.2, i32 noundef %5423, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 211, ptr noundef %5426, ptr noundef %5429, ptr noundef %5432, i32 noundef %5434) #9
  br label %5453

5436:                                             ; preds = %5414, %5407
  %5437 = load i32, ptr %114, align 4, !tbaa !5
  %5438 = call ptr @__errno_location() #10
  store i32 %5437, ptr %5438, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  %5443 = call ptr @s2n_strerror(i32 noundef %5442, ptr noundef @.str.4)
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror_debug(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call ptr @__errno_location() #10
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @strerror(i32 noundef %5448) #9
  %5450 = call ptr @__errno_location() #10
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef @.str.5, i32 noundef %5440, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 211, ptr noundef %5443, ptr noundef %5446, ptr noundef %5449, i32 noundef %5451) #9
  br label %5453

5453:                                             ; preds = %5436, %5419
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  br label %5454

5454:                                             ; preds = %5453
  br label %5455

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

5456:                                             ; No predecessors!
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457, %5400
  br label %5459

5459:                                             ; preds = %5458
  br label %5460

5460:                                             ; preds = %5459
  br label %5461

5461:                                             ; preds = %5460
  %5462 = load i32, ptr @test_count, align 4, !tbaa !5
  %5463 = add nsw i32 %5462, 1
  store i32 %5463, ptr @test_count, align 4, !tbaa !5
  %5464 = load ptr, ptr %113, align 8, !tbaa !9
  %5465 = getelementptr inbounds %struct.s2n_cert, ptr %5464, i32 0, i32 4
  %5466 = load ptr, ptr %5465, align 8, !tbaa !36
  %5467 = icmp eq ptr %5466, null
  br i1 %5467, label %5521, label %5468

5468:                                             ; preds = %5461
  br label %5469

5469:                                             ; preds = %5468
  br label %5470

5470:                                             ; preds = %5469
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %5471 = call ptr @__errno_location() #10
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  store i32 %5472, ptr %115, align 4, !tbaa !5
  %5473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5474 = call i32 @s2n_print_stacktrace(ptr noundef %5473)
  %5475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5476 = trunc i8 %5475 to i1
  br i1 %5476, label %5477, label %5499

5477:                                             ; preds = %5470
  %5478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5479 = call i32 @fileno(ptr noundef %5478) #9
  %5480 = call i32 @isatty(i32 noundef %5479) #9
  %5481 = icmp ne i32 %5480, 0
  br i1 %5481, label %5482, label %5499

5482:                                             ; preds = %5477
  %5483 = load i32, ptr %115, align 4, !tbaa !5
  %5484 = call ptr @__errno_location() #10
  store i32 %5483, ptr %5484, align 4, !tbaa !5
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = load i32, ptr @test_count, align 4, !tbaa !5
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror(i32 noundef %5488, ptr noundef @.str.4)
  %5490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @s2n_strerror_debug(i32 noundef %5491, ptr noundef @.str.4)
  %5493 = call ptr @__errno_location() #10
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call ptr @strerror(i32 noundef %5494) #9
  %5496 = call ptr @__errno_location() #10
  %5497 = load i32, ptr %5496, align 4, !tbaa !5
  %5498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5485, ptr noundef @.str.2, i32 noundef %5486, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 212, ptr noundef %5489, ptr noundef %5492, ptr noundef %5495, i32 noundef %5497) #9
  br label %5516

5499:                                             ; preds = %5477, %5470
  %5500 = load i32, ptr %115, align 4, !tbaa !5
  %5501 = call ptr @__errno_location() #10
  store i32 %5500, ptr %5501, align 4, !tbaa !5
  %5502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5503 = load i32, ptr @test_count, align 4, !tbaa !5
  %5504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5505 = load i32, ptr %5504, align 4, !tbaa !5
  %5506 = call ptr @s2n_strerror(i32 noundef %5505, ptr noundef @.str.4)
  %5507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5508 = load i32, ptr %5507, align 4, !tbaa !5
  %5509 = call ptr @s2n_strerror_debug(i32 noundef %5508, ptr noundef @.str.4)
  %5510 = call ptr @__errno_location() #10
  %5511 = load i32, ptr %5510, align 4, !tbaa !5
  %5512 = call ptr @strerror(i32 noundef %5511) #9
  %5513 = call ptr @__errno_location() #10
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  %5515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5502, ptr noundef @.str.5, i32 noundef %5503, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 212, ptr noundef %5506, ptr noundef %5509, ptr noundef %5512, i32 noundef %5514) #9
  br label %5516

5516:                                             ; preds = %5499, %5482
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  br label %5517

5517:                                             ; preds = %5516
  br label %5518

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

5519:                                             ; No predecessors!
  br label %5520

5520:                                             ; preds = %5519
  br label %5521

5521:                                             ; preds = %5520, %5461
  br label %5522

5522:                                             ; preds = %5521
  br label %5523

5523:                                             ; preds = %5522
  br label %5524

5524:                                             ; preds = %5523
  %5525 = load i32, ptr @test_count, align 4, !tbaa !5
  %5526 = add nsw i32 %5525, 1
  store i32 %5526, ptr @test_count, align 4, !tbaa !5
  %5527 = load ptr, ptr %113, align 8, !tbaa !9
  %5528 = getelementptr inbounds %struct.s2n_cert, ptr %5527, i32 0, i32 2
  %5529 = getelementptr inbounds %struct.s2n_cert_info, ptr %5528, i32 0, i32 4
  %5530 = load i8, ptr %5529, align 8, !tbaa !30, !range !13, !noundef !14
  %5531 = trunc i8 %5530 to i1
  %5532 = zext i1 %5531 to i32
  %5533 = icmp eq i32 %5532, 1
  br i1 %5533, label %5587, label %5534

5534:                                             ; preds = %5524
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

5536:                                             ; preds = %5535
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #9
  %5537 = call ptr @__errno_location() #10
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  store i32 %5538, ptr %116, align 4, !tbaa !5
  %5539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5540 = call i32 @s2n_print_stacktrace(ptr noundef %5539)
  %5541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5542 = trunc i8 %5541 to i1
  br i1 %5542, label %5543, label %5565

5543:                                             ; preds = %5536
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = call i32 @fileno(ptr noundef %5544) #9
  %5546 = call i32 @isatty(i32 noundef %5545) #9
  %5547 = icmp ne i32 %5546, 0
  br i1 %5547, label %5548, label %5565

5548:                                             ; preds = %5543
  %5549 = load i32, ptr %116, align 4, !tbaa !5
  %5550 = call ptr @__errno_location() #10
  store i32 %5549, ptr %5550, align 4, !tbaa !5
  %5551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5552 = load i32, ptr @test_count, align 4, !tbaa !5
  %5553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call ptr @s2n_strerror(i32 noundef %5554, ptr noundef @.str.4)
  %5556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = call ptr @s2n_strerror_debug(i32 noundef %5557, ptr noundef @.str.4)
  %5559 = call ptr @__errno_location() #10
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call ptr @strerror(i32 noundef %5560) #9
  %5562 = call ptr @__errno_location() #10
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  %5564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5551, ptr noundef @.str.2, i32 noundef %5552, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 213, ptr noundef %5555, ptr noundef %5558, ptr noundef %5561, i32 noundef %5563) #9
  br label %5582

5565:                                             ; preds = %5543, %5536
  %5566 = load i32, ptr %116, align 4, !tbaa !5
  %5567 = call ptr @__errno_location() #10
  store i32 %5566, ptr %5567, align 4, !tbaa !5
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = load i32, ptr @test_count, align 4, !tbaa !5
  %5570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call ptr @s2n_strerror(i32 noundef %5571, ptr noundef @.str.4)
  %5573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror_debug(i32 noundef %5574, ptr noundef @.str.4)
  %5576 = call ptr @__errno_location() #10
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @strerror(i32 noundef %5577) #9
  %5579 = call ptr @__errno_location() #10
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5568, ptr noundef @.str.5, i32 noundef %5569, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 213, ptr noundef %5572, ptr noundef %5575, ptr noundef %5578, i32 noundef %5580) #9
  br label %5582

5582:                                             ; preds = %5565, %5548
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #9
  br label %5583

5583:                                             ; preds = %5582
  br label %5584

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

5585:                                             ; No predecessors!
  br label %5586

5586:                                             ; preds = %5585
  br label %5587

5587:                                             ; preds = %5586, %5524
  br label %5588

5588:                                             ; preds = %5587
  br label %5589

5589:                                             ; preds = %5588
  br label %5590

5590:                                             ; preds = %5589
  %5591 = load i32, ptr @test_count, align 4, !tbaa !5
  %5592 = add nsw i32 %5591, 1
  store i32 %5592, ptr @test_count, align 4, !tbaa !5
  %5593 = load ptr, ptr %113, align 8, !tbaa !9
  %5594 = getelementptr inbounds %struct.s2n_cert, ptr %5593, i32 0, i32 2
  %5595 = getelementptr inbounds %struct.s2n_cert_info, ptr %5594, i32 0, i32 0
  %5596 = load i32, ptr %5595, align 8, !tbaa !34
  %5597 = icmp eq i32 %5596, 794
  br i1 %5597, label %5651, label %5598

5598:                                             ; preds = %5590
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

5600:                                             ; preds = %5599
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %5601 = call ptr @__errno_location() #10
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  store i32 %5602, ptr %117, align 4, !tbaa !5
  %5603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5604 = call i32 @s2n_print_stacktrace(ptr noundef %5603)
  %5605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5606 = trunc i8 %5605 to i1
  br i1 %5606, label %5607, label %5629

5607:                                             ; preds = %5600
  %5608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5609 = call i32 @fileno(ptr noundef %5608) #9
  %5610 = call i32 @isatty(i32 noundef %5609) #9
  %5611 = icmp ne i32 %5610, 0
  br i1 %5611, label %5612, label %5629

5612:                                             ; preds = %5607
  %5613 = load i32, ptr %117, align 4, !tbaa !5
  %5614 = call ptr @__errno_location() #10
  store i32 %5613, ptr %5614, align 4, !tbaa !5
  %5615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5616 = load i32, ptr @test_count, align 4, !tbaa !5
  %5617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @s2n_strerror(i32 noundef %5618, ptr noundef @.str.4)
  %5620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call ptr @s2n_strerror_debug(i32 noundef %5621, ptr noundef @.str.4)
  %5623 = call ptr @__errno_location() #10
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call ptr @strerror(i32 noundef %5624) #9
  %5626 = call ptr @__errno_location() #10
  %5627 = load i32, ptr %5626, align 4, !tbaa !5
  %5628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5615, ptr noundef @.str.2, i32 noundef %5616, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5619, ptr noundef %5622, ptr noundef %5625, i32 noundef %5627) #9
  br label %5646

5629:                                             ; preds = %5607, %5600
  %5630 = load i32, ptr %117, align 4, !tbaa !5
  %5631 = call ptr @__errno_location() #10
  store i32 %5630, ptr %5631, align 4, !tbaa !5
  %5632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5633 = load i32, ptr @test_count, align 4, !tbaa !5
  %5634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5635 = load i32, ptr %5634, align 4, !tbaa !5
  %5636 = call ptr @s2n_strerror(i32 noundef %5635, ptr noundef @.str.4)
  %5637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call ptr @s2n_strerror_debug(i32 noundef %5638, ptr noundef @.str.4)
  %5640 = call ptr @__errno_location() #10
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @strerror(i32 noundef %5641) #9
  %5643 = call ptr @__errno_location() #10
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5632, ptr noundef @.str.5, i32 noundef %5633, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5636, ptr noundef %5639, ptr noundef %5642, i32 noundef %5644) #9
  br label %5646

5646:                                             ; preds = %5629, %5612
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5647

5647:                                             ; preds = %5646
  br label %5648

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

5649:                                             ; No predecessors!
  br label %5650

5650:                                             ; preds = %5649
  br label %5651

5651:                                             ; preds = %5650, %5590
  br label %5652

5652:                                             ; preds = %5651
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

5654:                                             ; preds = %5653
  %5655 = load i32, ptr @test_count, align 4, !tbaa !5
  %5656 = add nsw i32 %5655, 1
  store i32 %5656, ptr @test_count, align 4, !tbaa !5
  %5657 = load ptr, ptr %113, align 8, !tbaa !9
  %5658 = getelementptr inbounds %struct.s2n_cert, ptr %5657, i32 0, i32 2
  %5659 = getelementptr inbounds %struct.s2n_cert_info, ptr %5658, i32 0, i32 1
  %5660 = load i32, ptr %5659, align 4, !tbaa !35
  %5661 = icmp eq i32 %5660, 672
  br i1 %5661, label %5715, label %5662

5662:                                             ; preds = %5654
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

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

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

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

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

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

5711:                                             ; preds = %5710
  br label %5712

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

5713:                                             ; No predecessors!
  br label %5714

5714:                                             ; preds = %5713
  br label %5715

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

5716:                                             ; preds = %5715
  br label %5717

5717:                                             ; preds = %5716
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  %5718 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %102)
  %5719 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %5718, ptr %5719, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %5720

5720:                                             ; preds = %5717
  %5721 = load i32, ptr @test_count, align 4, !tbaa !5
  %5722 = add nsw i32 %5721, 1
  store i32 %5722, ptr @test_count, align 4, !tbaa !5
  %5723 = call i32 @s2n_io_pair_close(ptr noundef %18)
  %5724 = icmp eq i32 %5723, -1
  br i1 %5724, label %5725, label %5778

5725:                                             ; preds = %5720
  br label %5726

5726:                                             ; preds = %5725
  br label %5727

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

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

5739:                                             ; preds = %5734
  %5740 = load i32, ptr %120, align 4, !tbaa !5
  %5741 = call ptr @__errno_location() #10
  store i32 %5740, ptr %5741, align 4, !tbaa !5
  %5742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5743 = load i32, ptr @test_count, align 4, !tbaa !5
  %5744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  %5746 = call ptr @s2n_strerror(i32 noundef %5745, ptr noundef @.str.4)
  %5747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5748 = load i32, ptr %5747, align 4, !tbaa !5
  %5749 = call ptr @s2n_strerror_debug(i32 noundef %5748, ptr noundef @.str.4)
  %5750 = call ptr @__errno_location() #10
  %5751 = load i32, ptr %5750, align 4, !tbaa !5
  %5752 = call ptr @strerror(i32 noundef %5751) #9
  %5753 = call ptr @__errno_location() #10
  %5754 = load i32, ptr %5753, align 4, !tbaa !5
  %5755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5742, ptr noundef @.str.2, i32 noundef %5743, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 219, ptr noundef %5746, ptr noundef %5749, ptr noundef %5752, i32 noundef %5754) #9
  br label %5773

5756:                                             ; preds = %5734, %5727
  %5757 = load i32, ptr %120, align 4, !tbaa !5
  %5758 = call ptr @__errno_location() #10
  store i32 %5757, ptr %5758, align 4, !tbaa !5
  %5759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5760 = load i32, ptr @test_count, align 4, !tbaa !5
  %5761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  %5763 = call ptr @s2n_strerror(i32 noundef %5762, ptr noundef @.str.4)
  %5764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5765 = load i32, ptr %5764, align 4, !tbaa !5
  %5766 = call ptr @s2n_strerror_debug(i32 noundef %5765, ptr noundef @.str.4)
  %5767 = call ptr @__errno_location() #10
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  %5769 = call ptr @strerror(i32 noundef %5768) #9
  %5770 = call ptr @__errno_location() #10
  %5771 = load i32, ptr %5770, align 4, !tbaa !5
  %5772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5759, ptr noundef @.str.5, i32 noundef %5760, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 219, ptr noundef %5763, ptr noundef %5766, ptr noundef %5769, i32 noundef %5771) #9
  br label %5773

5773:                                             ; preds = %5756, %5739
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5774

5774:                                             ; preds = %5773
  br label %5775

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

5776:                                             ; No predecessors!
  br label %5777

5777:                                             ; preds = %5776
  br label %5778

5778:                                             ; preds = %5777, %5720
  br label %5779

5779:                                             ; preds = %5778
  br label %5780

5780:                                             ; preds = %5779
  br label %5781

5781:                                             ; preds = %5780
  %5782 = load i32, ptr @test_count, align 4, !tbaa !5
  %5783 = add nsw i32 %5782, 1
  store i32 %5783, ptr @test_count, align 4, !tbaa !5
  %5784 = load ptr, ptr %7, align 8, !tbaa !9
  %5785 = call i32 @s2n_config_free(ptr noundef %5784)
  %5786 = icmp eq i32 %5785, -1
  br i1 %5786, label %5787, label %5840

5787:                                             ; preds = %5781
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

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

5796:                                             ; preds = %5789
  %5797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5798 = call i32 @fileno(ptr noundef %5797) #9
  %5799 = call i32 @isatty(i32 noundef %5798) #9
  %5800 = icmp ne i32 %5799, 0
  br i1 %5800, label %5801, label %5818

5801:                                             ; preds = %5796
  %5802 = load i32, ptr %121, align 4, !tbaa !5
  %5803 = call ptr @__errno_location() #10
  store i32 %5802, ptr %5803, align 4, !tbaa !5
  %5804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5805 = load i32, ptr @test_count, align 4, !tbaa !5
  %5806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5807 = load i32, ptr %5806, align 4, !tbaa !5
  %5808 = call ptr @s2n_strerror(i32 noundef %5807, ptr noundef @.str.4)
  %5809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5810 = load i32, ptr %5809, align 4, !tbaa !5
  %5811 = call ptr @s2n_strerror_debug(i32 noundef %5810, ptr noundef @.str.4)
  %5812 = call ptr @__errno_location() #10
  %5813 = load i32, ptr %5812, align 4, !tbaa !5
  %5814 = call ptr @strerror(i32 noundef %5813) #9
  %5815 = call ptr @__errno_location() #10
  %5816 = load i32, ptr %5815, align 4, !tbaa !5
  %5817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5804, ptr noundef @.str.2, i32 noundef %5805, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5808, ptr noundef %5811, ptr noundef %5814, i32 noundef %5816) #9
  br label %5835

5818:                                             ; preds = %5796, %5789
  %5819 = load i32, ptr %121, align 4, !tbaa !5
  %5820 = call ptr @__errno_location() #10
  store i32 %5819, ptr %5820, align 4, !tbaa !5
  %5821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5822 = load i32, ptr @test_count, align 4, !tbaa !5
  %5823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5824 = load i32, ptr %5823, align 4, !tbaa !5
  %5825 = call ptr @s2n_strerror(i32 noundef %5824, ptr noundef @.str.4)
  %5826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5827 = load i32, ptr %5826, align 4, !tbaa !5
  %5828 = call ptr @s2n_strerror_debug(i32 noundef %5827, ptr noundef @.str.4)
  %5829 = call ptr @__errno_location() #10
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call ptr @strerror(i32 noundef %5830) #9
  %5832 = call ptr @__errno_location() #10
  %5833 = load i32, ptr %5832, align 4, !tbaa !5
  %5834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5821, ptr noundef @.str.5, i32 noundef %5822, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5825, ptr noundef %5828, ptr noundef %5831, i32 noundef %5833) #9
  br label %5835

5835:                                             ; preds = %5818, %5801
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #9
  br label %5836

5836:                                             ; preds = %5835
  br label %5837

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

5838:                                             ; No predecessors!
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839, %5781
  br label %5841

5841:                                             ; preds = %5840
  br label %5842

5842:                                             ; preds = %5841
  %5843 = load ptr, ptr %12, align 8, !tbaa !9
  call void @free(ptr noundef %5843) #9
  %5844 = load ptr, ptr %13, align 8, !tbaa !9
  call void @free(ptr noundef %5844) #9
  %5845 = load ptr, ptr %10, align 8, !tbaa !9
  call void @free(ptr noundef %5845) #9
  %5846 = load ptr, ptr %11, align 8, !tbaa !9
  call void @free(ptr noundef %5846) #9
  br label %5847

5847:                                             ; preds = %5842
  br label %5848

5848:                                             ; preds = %5847
  %5849 = call i32 @s2n_cleanup()
  %5850 = icmp eq i32 %5849, -1
  br i1 %5850, label %5851, label %5904

5851:                                             ; preds = %5848
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

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

5860:                                             ; preds = %5853
  %5861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5862 = call i32 @fileno(ptr noundef %5861) #9
  %5863 = call i32 @isatty(i32 noundef %5862) #9
  %5864 = icmp ne i32 %5863, 0
  br i1 %5864, label %5865, label %5882

5865:                                             ; preds = %5860
  %5866 = load i32, ptr %122, align 4, !tbaa !5
  %5867 = call ptr @__errno_location() #10
  store i32 %5866, ptr %5867, align 4, !tbaa !5
  %5868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5869 = load i32, ptr @test_count, align 4, !tbaa !5
  %5870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @s2n_strerror(i32 noundef %5871, ptr noundef @.str.4)
  %5873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @s2n_strerror_debug(i32 noundef %5874, ptr noundef @.str.4)
  %5876 = call ptr @__errno_location() #10
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call ptr @strerror(i32 noundef %5877) #9
  %5879 = call ptr @__errno_location() #10
  %5880 = load i32, ptr %5879, align 4, !tbaa !5
  %5881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5868, ptr noundef @.str.2, i32 noundef %5869, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 226, ptr noundef %5872, ptr noundef %5875, ptr noundef %5878, i32 noundef %5880) #9
  br label %5899

5882:                                             ; preds = %5860, %5853
  %5883 = load i32, ptr %122, align 4, !tbaa !5
  %5884 = call ptr @__errno_location() #10
  store i32 %5883, ptr %5884, align 4, !tbaa !5
  %5885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5886 = load i32, ptr @test_count, align 4, !tbaa !5
  %5887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call ptr @s2n_strerror(i32 noundef %5888, ptr noundef @.str.4)
  %5890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  %5892 = call ptr @s2n_strerror_debug(i32 noundef %5891, ptr noundef @.str.4)
  %5893 = call ptr @__errno_location() #10
  %5894 = load i32, ptr %5893, align 4, !tbaa !5
  %5895 = call ptr @strerror(i32 noundef %5894) #9
  %5896 = call ptr @__errno_location() #10
  %5897 = load i32, ptr %5896, align 4, !tbaa !5
  %5898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5885, ptr noundef @.str.5, i32 noundef %5886, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 226, ptr noundef %5889, ptr noundef %5892, ptr noundef %5895, i32 noundef %5897) #9
  br label %5899

5899:                                             ; preds = %5882, %5865
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %5900

5900:                                             ; preds = %5899
  br label %5901

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

5902:                                             ; No predecessors!
  br label %5903

5903:                                             ; preds = %5902
  br label %5904

5904:                                             ; preds = %5903, %5848
  br label %5905

5905:                                             ; preds = %5904
  br label %5906

5906:                                             ; preds = %5905
  br label %5907

5907:                                             ; preds = %5906
  br label %5908

5908:                                             ; preds = %5907
  %5909 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5910 = icmp eq i32 %5909, -1
  br i1 %5910, label %5911, label %5964

5911:                                             ; preds = %5908
  br label %5912

5912:                                             ; preds = %5911
  br label %5913

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

5920:                                             ; preds = %5913
  %5921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5922 = call i32 @fileno(ptr noundef %5921) #9
  %5923 = call i32 @isatty(i32 noundef %5922) #9
  %5924 = icmp ne i32 %5923, 0
  br i1 %5924, label %5925, label %5942

5925:                                             ; preds = %5920
  %5926 = load i32, ptr %123, align 4, !tbaa !5
  %5927 = call ptr @__errno_location() #10
  store i32 %5926, ptr %5927, align 4, !tbaa !5
  %5928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5929 = load i32, ptr @test_count, align 4, !tbaa !5
  %5930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5931 = load i32, ptr %5930, align 4, !tbaa !5
  %5932 = call ptr @s2n_strerror(i32 noundef %5931, ptr noundef @.str.4)
  %5933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5934 = load i32, ptr %5933, align 4, !tbaa !5
  %5935 = call ptr @s2n_strerror_debug(i32 noundef %5934, ptr noundef @.str.4)
  %5936 = call ptr @__errno_location() #10
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @strerror(i32 noundef %5937) #9
  %5939 = call ptr @__errno_location() #10
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5928, ptr noundef @.str.2, i32 noundef %5929, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 226, ptr noundef %5932, ptr noundef %5935, ptr noundef %5938, i32 noundef %5940) #9
  br label %5959

5942:                                             ; preds = %5920, %5913
  %5943 = load i32, ptr %123, align 4, !tbaa !5
  %5944 = call ptr @__errno_location() #10
  store i32 %5943, ptr %5944, align 4, !tbaa !5
  %5945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5946 = load i32, ptr @test_count, align 4, !tbaa !5
  %5947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5948 = load i32, ptr %5947, align 4, !tbaa !5
  %5949 = call ptr @s2n_strerror(i32 noundef %5948, ptr noundef @.str.4)
  %5950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @s2n_strerror_debug(i32 noundef %5951, ptr noundef @.str.4)
  %5953 = call ptr @__errno_location() #10
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call ptr @strerror(i32 noundef %5954) #9
  %5956 = call ptr @__errno_location() #10
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5945, ptr noundef @.str.5, i32 noundef %5946, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 226, ptr noundef %5949, ptr noundef %5952, ptr noundef %5955, i32 noundef %5957) #9
  br label %5959

5959:                                             ; preds = %5942, %5925
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #9
  br label %5960

5960:                                             ; preds = %5959
  br label %5961

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

5962:                                             ; No predecessors!
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963, %5908
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  %5967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5968 = trunc i8 %5967 to i1
  br i1 %5968, label %5969, label %5985

5969:                                             ; preds = %5966
  %5970 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5971 = call i32 @fileno(ptr noundef %5970) #9
  %5972 = call i32 @isatty(i32 noundef %5971) #9
  %5973 = icmp ne i32 %5972, 0
  br i1 %5973, label %5974, label %5985

5974:                                             ; preds = %5969
  %5975 = load i32, ptr @test_count, align 4, !tbaa !5
  %5976 = icmp ne i32 %5975, 0
  br i1 %5976, label %5977, label %5981

5977:                                             ; preds = %5974
  %5978 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5979 = load i32, ptr @test_count, align 4, !tbaa !5
  %5980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5978, ptr noundef @.str.86, i32 noundef %5979) #9
  br label %5984

5981:                                             ; preds = %5974
  %5982 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5982, ptr noundef @.str.87) #9
  br label %5984

5984:                                             ; preds = %5981, %5977
  br label %5996

5985:                                             ; preds = %5969, %5966
  %5986 = load i32, ptr @test_count, align 4, !tbaa !5
  %5987 = icmp ne i32 %5986, 0
  br i1 %5987, label %5988, label %5992

5988:                                             ; preds = %5985
  %5989 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5990 = load i32, ptr @test_count, align 4, !tbaa !5
  %5991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5989, ptr noundef @.str.88, i32 noundef %5990) #9
  br label %5995

5992:                                             ; preds = %5985
  %5993 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5993, ptr noundef @.str.89) #9
  br label %5995

5995:                                             ; preds = %5992, %5988
  br label %5996

5996:                                             ; preds = %5995, %5984
  store i32 0, ptr %3, align 4
  store i32 1, ptr %124, align 4
  br label %6001

5997:                                             ; No predecessors!
  br label %5998

5998:                                             ; preds = %5997
  br label %5999

5999:                                             ; preds = %5998
  br label %6000

6000:                                             ; preds = %5999
  store i32 0, ptr %124, align 4
  br label %6001

6001:                                             ; preds = %6000, %5996
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  %6002 = load i32, ptr %124, align 4
  switch i32 %6002, label %6005 [
    i32 0, label %6003
    i32 1, label %6003
  ]

6003:                                             ; preds = %6001, %6001
  %6004 = load i32, ptr %3, align 4
  ret i32 %6004

6005:                                             ; preds = %6001
  unreachable
}

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

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #3

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

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

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) #2

declare ptr @s2n_config_new() #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #3

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

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

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

declare ptr @s2n_cert_chain_and_key_new() #3

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

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

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

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

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

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

declare zeroext i1 @s2n_handshake_type_check_flag(ptr noundef, i32 noundef) #3

declare ptr @s2n_connection_get_selected_cert(ptr noundef) #3

declare ptr @s2n_cert_chain_and_key_get_ctx(ptr noundef) #3

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

declare i32 @s2n_connection_free(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_config_add_cert_chain_and_key(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #3

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

declare i32 @s2n_config_ptr_free(ptr noundef) #3

declare void @s2n_debug_info_reset() #3

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

declare i32 @s2n_io_pair_close(ptr noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

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 "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 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 #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 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { nounwind allocsize(0) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = distinct !{!19, !16}
!20 = !{!21, !6, i64 416}
!21 = !{!"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, !22, i64 24, !23, 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, !18, i64 144, !10, i64 152, !18, i64 160, !18, 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, !24, i64 304, !25, 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, !23, i64 448}
!22 = !{!"certs_by_type", !7, i64 0}
!23 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!24 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!25 = !{!"short", !7, i64 0}
!26 = !{!27, !10, i64 0}
!27 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !23, i64 16, !23, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!28 = !{!29, !10, i64 8}
!29 = !{!"s2n_cert_chain", !6, i64 0, !10, i64 8}
!30 = !{!31, !12, i64 72}
!31 = !{!"s2n_cert", !6, i64 0, !32, i64 8, !33, i64 56, !23, i64 80, !10, i64 104}
!32 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!33 = !{!"s2n_cert_info", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !12, i64 16}
!34 = !{!31, !6, i64 56}
!35 = !{!31, !6, i64 60}
!36 = !{!31, !10, i64 104}


; 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_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [44 x i8], align 1
@num_times_cb_executed = external hidden local_unnamed_addr global i32, align 4
@.str.43 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [192 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local ptr @create_conn(i32 noundef, ptr 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

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

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

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

27:                                               ; preds = %23, %16
  br label %28

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

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

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

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

56:                                               ; preds = %52, %45
  br label %57

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

69:                                               ; preds = %40
  %70 = tail call i32 @s2n_init() #11
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %72, label %96

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

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

83:                                               ; preds = %79, %72
  br label %84

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

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

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

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

112:                                              ; preds = %108, %101
  br label %113

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

125:                                              ; preds = %96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %3) #11
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %154

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

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

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.5.sink429 = phi ptr [ @.str.5, %141 ], [ @.str.2, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.4) #11
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.4) #11
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = call ptr @strerror(i32 noundef %150) #11
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.5.sink429, i32 noundef %144, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #13
  call void @exit(i32 noundef 1) #14
  unreachable

154:                                              ; preds = %125
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %158 = icmp eq ptr %157, null
  br i1 %158, label %159, label %183

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

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

170:                                              ; preds = %166, %159
  br label %171

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

183:                                              ; preds = %154
  %184 = add nsw i32 %155, 2
  store i32 %184, ptr @test_count, align 4, !tbaa !5
  %185 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %186 = icmp eq ptr %185, null
  br i1 %186, label %187, label %211

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

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

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

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

211:                                              ; preds = %183
  %212 = add nsw i32 %155, 3
  store i32 %212, ptr @test_count, align 4, !tbaa !5
  %213 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.12, ptr noundef nonnull %157, i64 noundef 12000) #11
  %214 = icmp eq i32 %213, -1
  br i1 %214, label %215, label %239

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

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

226:                                              ; preds = %222, %215
  br label %227

227:                                              ; preds = %222, %226
  %.str.5.sink462 = phi ptr [ @.str.5, %226 ], [ @.str.2, %222 ]
  store i32 %217, ptr %216, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #11
  %233 = load i32, ptr %230, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #11
  %235 = load i32, ptr %216, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #11
  %237 = load i32, ptr %216, align 4, !tbaa !5
  %238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef nonnull %.str.5.sink462, i32 noundef %229, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #13
  call void @exit(i32 noundef 1) #14
  unreachable

239:                                              ; preds = %211
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr @test_count, align 4, !tbaa !5
  %242 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.14, ptr noundef nonnull %185, i64 noundef 12000) #11
  %243 = icmp eq i32 %242, -1
  br i1 %243, label %244, label %268

244:                                              ; preds = %239
  %245 = tail call ptr @__errno_location() #12
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = call i32 @s2n_print_stacktrace(ptr noundef %247) #11
  %249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %250 = trunc nuw i8 %249 to i1
  br i1 %250, label %251, label %255

251:                                              ; preds = %244
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = call i32 @fileno(ptr noundef %252) #11
  %254 = call i32 @isatty(i32 noundef %253) #11
  %.not372 = icmp eq i32 %254, 0
  br i1 %.not372, label %255, label %256

255:                                              ; preds = %251, %244
  br label %256

256:                                              ; preds = %251, %255
  %.str.5.sink473 = phi ptr [ @.str.5, %255 ], [ @.str.2, %251 ]
  store i32 %246, ptr %245, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror(i32 noundef %260, ptr noundef nonnull @.str.4) #11
  %262 = load i32, ptr %259, align 4, !tbaa !5
  %263 = call ptr @s2n_strerror_debug(i32 noundef %262, ptr noundef nonnull @.str.4) #11
  %264 = load i32, ptr %245, align 4, !tbaa !5
  %265 = call ptr @strerror(i32 noundef %264) #11
  %266 = load i32, ptr %245, align 4, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef nonnull %.str.5.sink473, i32 noundef %258, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %261, ptr noundef %263, ptr noundef %265, i32 noundef %266) #13
  call void @exit(i32 noundef 1) #14
  unreachable

268:                                              ; preds = %239
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr @test_count, align 4, !tbaa !5
  %271 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %272 = icmp eq ptr %271, null
  br i1 %272, label %273, label %297

273:                                              ; preds = %268
  %274 = tail call ptr @__errno_location() #12
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @s2n_print_stacktrace(ptr noundef %276) #11
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc nuw i8 %278 to i1
  br i1 %279, label %280, label %284

280:                                              ; preds = %273
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @fileno(ptr noundef %281) #11
  %283 = call i32 @isatty(i32 noundef %282) #11
  %.not371 = icmp eq i32 %283, 0
  br i1 %.not371, label %284, label %285

284:                                              ; preds = %280, %273
  br label %285

285:                                              ; preds = %280, %284
  %.str.5.sink484 = phi ptr [ @.str.5, %284 ], [ @.str.2, %280 ]
  store i32 %275, ptr %274, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef nonnull @.str.4) #11
  %291 = load i32, ptr %288, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror_debug(i32 noundef %291, ptr noundef nonnull @.str.4) #11
  %293 = load i32, ptr %274, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #11
  %295 = load i32, ptr %274, align 4, !tbaa !5
  %296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef nonnull %.str.5.sink484, i32 noundef %287, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %290, ptr noundef %292, ptr noundef %294, i32 noundef %295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

297:                                              ; preds = %268
  %298 = add nsw i32 %269, 2
  store i32 %298, ptr @test_count, align 4, !tbaa !5
  %299 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %300 = icmp eq ptr %299, null
  br i1 %300, label %301, label %325

301:                                              ; preds = %297
  %302 = tail call ptr @__errno_location() #12
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @s2n_print_stacktrace(ptr noundef %304) #11
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %307 = trunc nuw i8 %306 to i1
  br i1 %307, label %308, label %312

308:                                              ; preds = %301
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @fileno(ptr noundef %309) #11
  %311 = call i32 @isatty(i32 noundef %310) #11
  %.not370 = icmp eq i32 %311, 0
  br i1 %.not370, label %312, label %313

312:                                              ; preds = %308, %301
  br label %313

313:                                              ; preds = %308, %312
  %.str.5.sink495 = phi ptr [ @.str.5, %312 ], [ @.str.2, %308 ]
  store i32 %303, ptr %302, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @s2n_strerror(i32 noundef %317, ptr noundef nonnull @.str.4) #11
  %319 = load i32, ptr %316, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror_debug(i32 noundef %319, ptr noundef nonnull @.str.4) #11
  %321 = load i32, ptr %302, align 4, !tbaa !5
  %322 = call ptr @strerror(i32 noundef %321) #11
  %323 = load i32, ptr %302, align 4, !tbaa !5
  %324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef nonnull %.str.5.sink495, i32 noundef %315, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %318, ptr noundef %320, ptr noundef %322, i32 noundef %323) #13
  call void @exit(i32 noundef 1) #14
  unreachable

325:                                              ; preds = %297
  %326 = add nsw i32 %269, 3
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.18, ptr noundef nonnull %271, i64 noundef 12000) #11
  %328 = icmp eq i32 %327, -1
  br i1 %328, label %329, label %353

329:                                              ; preds = %325
  %330 = tail call ptr @__errno_location() #12
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @s2n_print_stacktrace(ptr noundef %332) #11
  %334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %335 = trunc nuw i8 %334 to i1
  br i1 %335, label %336, label %340

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

340:                                              ; preds = %336, %329
  br label %341

341:                                              ; preds = %336, %340
  %.str.5.sink506 = phi ptr [ @.str.5, %340 ], [ @.str.2, %336 ]
  store i32 %331, ptr %330, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %345, ptr noundef nonnull @.str.4) #11
  %347 = load i32, ptr %344, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %347, ptr noundef nonnull @.str.4) #11
  %349 = load i32, ptr %330, align 4, !tbaa !5
  %350 = call ptr @strerror(i32 noundef %349) #11
  %351 = load i32, ptr %330, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %342, ptr noundef nonnull %.str.5.sink506, i32 noundef %343, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %346, ptr noundef %348, ptr noundef %350, i32 noundef %351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

353:                                              ; preds = %325
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr @test_count, align 4, !tbaa !5
  %356 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.20, ptr noundef nonnull %299, i64 noundef 12000) #11
  %357 = icmp eq i32 %356, -1
  br i1 %357, label %358, label %382

358:                                              ; preds = %353
  %359 = tail call ptr @__errno_location() #12
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @s2n_print_stacktrace(ptr noundef %361) #11
  %363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %364 = trunc nuw i8 %363 to i1
  br i1 %364, label %365, label %369

365:                                              ; preds = %358
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @fileno(ptr noundef %366) #11
  %368 = call i32 @isatty(i32 noundef %367) #11
  %.not368 = icmp eq i32 %368, 0
  br i1 %.not368, label %369, label %370

369:                                              ; preds = %365, %358
  br label %370

370:                                              ; preds = %365, %369
  %.str.5.sink517 = phi ptr [ @.str.5, %369 ], [ @.str.2, %365 ]
  store i32 %360, ptr %359, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror(i32 noundef %374, ptr noundef nonnull @.str.4) #11
  %376 = load i32, ptr %373, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror_debug(i32 noundef %376, ptr noundef nonnull @.str.4) #11
  %378 = load i32, ptr %359, align 4, !tbaa !5
  %379 = call ptr @strerror(i32 noundef %378) #11
  %380 = load i32, ptr %359, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %371, ptr noundef nonnull %.str.5.sink517, i32 noundef %372, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %375, ptr noundef %377, ptr noundef %379, i32 noundef %380) #13
  call void @exit(i32 noundef 1) #14
  unreachable

382:                                              ; preds = %353
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr @test_count, align 4, !tbaa !5
  %385 = call i32 @setenv(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.23, i32 noundef 0) #11
  %386 = icmp eq i32 %385, -1
  br i1 %386, label %387, label %411

387:                                              ; preds = %382
  %388 = tail call ptr @__errno_location() #12
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390) #11
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #11
  %397 = call i32 @isatty(i32 noundef %396) #11
  %.not367 = icmp eq i32 %397, 0
  br i1 %.not367, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

399:                                              ; preds = %394, %398
  %.str.5.sink528 = phi ptr [ @.str.5, %398 ], [ @.str.2, %394 ]
  store i32 %389, ptr %388, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.4) #11
  %405 = load i32, ptr %402, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.4) #11
  %407 = load i32, ptr %388, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #11
  %409 = load i32, ptr %388, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.5.sink528, i32 noundef %401, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #13
  call void @exit(i32 noundef 1) #14
  unreachable

411:                                              ; preds = %382
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr @test_count, align 4, !tbaa !5
  %414 = call ptr @s2n_config_new() #11
  %415 = icmp eq ptr %414, null
  br i1 %415, label %416, label %440

416:                                              ; preds = %411
  %417 = tail call ptr @__errno_location() #12
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = call i32 @s2n_print_stacktrace(ptr noundef %419) #11
  %421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %423, label %427

423:                                              ; preds = %416
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = call i32 @fileno(ptr noundef %424) #11
  %426 = call i32 @isatty(i32 noundef %425) #11
  %.not366 = icmp eq i32 %426, 0
  br i1 %.not366, label %427, label %428

427:                                              ; preds = %423, %416
  br label %428

428:                                              ; preds = %423, %427
  %.str.5.sink539 = phi ptr [ @.str.5, %427 ], [ @.str.2, %423 ]
  store i32 %418, ptr %417, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef nonnull @.str.4) #11
  %434 = load i32, ptr %431, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef nonnull @.str.4) #11
  %436 = load i32, ptr %417, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #11
  %438 = load i32, ptr %417, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull %.str.5.sink539, i32 noundef %430, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %433, ptr noundef %435, ptr noundef %437, i32 noundef %438) #13
  call void @exit(i32 noundef 1) #14
  unreachable

440:                                              ; preds = %411
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = add nsw i32 %441, 1
  store i32 %442, ptr @test_count, align 4, !tbaa !5
  %443 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %414) #11
  %444 = icmp eq i32 %443, -1
  br i1 %444, label %445, label %469

445:                                              ; preds = %440
  %446 = tail call ptr @__errno_location() #12
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448) #11
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %452, label %456

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

456:                                              ; preds = %452, %445
  br label %457

457:                                              ; preds = %452, %456
  %.str.5.sink550 = phi ptr [ @.str.5, %456 ], [ @.str.2, %452 ]
  store i32 %447, ptr %446, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef nonnull @.str.4) #11
  %463 = load i32, ptr %460, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror_debug(i32 noundef %463, ptr noundef nonnull @.str.4) #11
  %465 = load i32, ptr %446, align 4, !tbaa !5
  %466 = call ptr @strerror(i32 noundef %465) #11
  %467 = load i32, ptr %446, align 4, !tbaa !5
  %468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull %.str.5.sink550, i32 noundef %459, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %462, ptr noundef %464, ptr noundef %466, i32 noundef %467) #13
  call void @exit(i32 noundef 1) #14
  unreachable

469:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %4) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(400) %4, i8 0, i64 400, i1 false)
  call void @llvm.lifetime.start.p0(i64 800, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(800) %5, i8 0, i64 800, i1 false)
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr @test_count, align 4, !tbaa !5
  %472 = call ptr @s2n_config_new() #11
  %473 = icmp eq ptr %472, null
  br i1 %473, label %474, label %498

474:                                              ; preds = %469
  %475 = tail call ptr @__errno_location() #12
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = call i32 @s2n_print_stacktrace(ptr noundef %477) #11
  %479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %480 = trunc nuw i8 %479 to i1
  br i1 %480, label %481, label %485

481:                                              ; preds = %474
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @fileno(ptr noundef %482) #11
  %484 = call i32 @isatty(i32 noundef %483) #11
  %.not364 = icmp eq i32 %484, 0
  br i1 %.not364, label %485, label %486

485:                                              ; preds = %481, %474
  br label %486

486:                                              ; preds = %481, %485
  %.str.5.sink561 = phi ptr [ @.str.5, %485 ], [ @.str.2, %481 ]
  store i32 %476, ptr %475, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror(i32 noundef %490, ptr noundef nonnull @.str.4) #11
  %492 = load i32, ptr %489, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef nonnull @.str.4) #11
  %494 = load i32, ptr %475, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #11
  %496 = load i32, ptr %475, align 4, !tbaa !5
  %497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %487, ptr noundef nonnull %.str.5.sink561, i32 noundef %488, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %491, ptr noundef %493, ptr noundef %495, i32 noundef %496) #13
  call void @exit(i32 noundef 1) #14
  unreachable

498:                                              ; preds = %469
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr @test_count, align 4, !tbaa !5
  %501 = call i32 @s2n_config_set_cert_tiebreak_callback(ptr noundef nonnull %472, ptr noundef nonnull @test_cert_tiebreak_cb) #11
  %502 = icmp eq i32 %501, -1
  br i1 %502, label %503, label %527

503:                                              ; preds = %498
  %504 = tail call ptr @__errno_location() #12
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @s2n_print_stacktrace(ptr noundef %506) #11
  %508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %509 = trunc nuw i8 %508 to i1
  br i1 %509, label %510, label %514

510:                                              ; preds = %503
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @fileno(ptr noundef %511) #11
  %513 = call i32 @isatty(i32 noundef %512) #11
  %.not363 = icmp eq i32 %513, 0
  br i1 %.not363, label %514, label %515

514:                                              ; preds = %510, %503
  br label %515

515:                                              ; preds = %510, %514
  %.str.5.sink572 = phi ptr [ @.str.5, %514 ], [ @.str.2, %510 ]
  store i32 %505, ptr %504, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror(i32 noundef %519, ptr noundef nonnull @.str.4) #11
  %521 = load i32, ptr %518, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef nonnull @.str.4) #11
  %523 = load i32, ptr %504, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #11
  %525 = load i32, ptr %504, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef nonnull %.str.5.sink572, i32 noundef %517, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %520, ptr noundef %522, ptr noundef %524, i32 noundef %525) #13
  call void @exit(i32 noundef 1) #14
  unreachable

527:                                              ; preds = %498
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = add nsw i32 %528, 1
  store i32 %529, ptr @test_count, align 4, !tbaa !5
  %530 = call ptr @s2n_cert_chain_and_key_new() #11
  %531 = icmp eq ptr %530, null
  br i1 %531, label %532, label %556

532:                                              ; preds = %527
  %533 = tail call ptr @__errno_location() #12
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535) #11
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc nuw i8 %537 to i1
  br i1 %538, label %539, label %543

539:                                              ; preds = %532
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #11
  %542 = call i32 @isatty(i32 noundef %541) #11
  %.not362 = icmp eq i32 %542, 0
  br i1 %.not362, label %543, label %544

543:                                              ; preds = %539, %532
  br label %544

544:                                              ; preds = %539, %543
  %.str.5.sink583 = phi ptr [ @.str.5, %543 ], [ @.str.2, %539 ]
  store i32 %534, ptr %533, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror(i32 noundef %548, ptr noundef nonnull @.str.4) #11
  %550 = load i32, ptr %547, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef nonnull @.str.4) #11
  %552 = load i32, ptr %533, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #11
  %554 = load i32, ptr %533, align 4, !tbaa !5
  %555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef nonnull %.str.5.sink583, i32 noundef %546, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %549, ptr noundef %551, ptr noundef %553, i32 noundef %554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

556:                                              ; preds = %527
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr @test_count, align 4, !tbaa !5
  %559 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %530, ptr noundef nonnull %271, ptr noundef nonnull %299) #11
  %560 = icmp eq i32 %559, -1
  br i1 %560, label %561, label %585

561:                                              ; preds = %556
  %562 = tail call ptr @__errno_location() #12
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @s2n_print_stacktrace(ptr noundef %564) #11
  %566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %567 = trunc nuw i8 %566 to i1
  br i1 %567, label %568, label %572

568:                                              ; preds = %561
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = call i32 @fileno(ptr noundef %569) #11
  %571 = call i32 @isatty(i32 noundef %570) #11
  %.not361 = icmp eq i32 %571, 0
  br i1 %.not361, label %572, label %573

572:                                              ; preds = %568, %561
  br label %573

573:                                              ; preds = %568, %572
  %.str.5.sink594 = phi ptr [ @.str.5, %572 ], [ @.str.2, %568 ]
  store i32 %563, ptr %562, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror(i32 noundef %577, ptr noundef nonnull @.str.4) #11
  %579 = load i32, ptr %576, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror_debug(i32 noundef %579, ptr noundef nonnull @.str.4) #11
  %581 = load i32, ptr %562, align 4, !tbaa !5
  %582 = call ptr @strerror(i32 noundef %581) #11
  %583 = load i32, ptr %562, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef nonnull %.str.5.sink594, i32 noundef %575, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %578, ptr noundef %580, ptr noundef %582, i32 noundef %583) #13
  call void @exit(i32 noundef 1) #14
  unreachable

585:                                              ; preds = %556
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = add nsw i32 %586, 1
  store i32 %587, ptr @test_count, align 4, !tbaa !5
  %588 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %472, ptr noundef nonnull %530) #11
  %589 = icmp eq i32 %588, -1
  br i1 %589, label %590, label %.preheader381

590:                                              ; preds = %585
  %591 = tail call ptr @__errno_location() #12
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593) #11
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %590
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #11
  %600 = call i32 @isatty(i32 noundef %599) #11
  %.not360 = icmp eq i32 %600, 0
  br i1 %.not360, label %601, label %602

601:                                              ; preds = %597, %590
  br label %602

602:                                              ; preds = %597, %601
  %.str.5.sink605 = phi ptr [ @.str.5, %601 ], [ @.str.2, %597 ]
  store i32 %592, ptr %591, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror(i32 noundef %606, ptr noundef nonnull @.str.4) #11
  %608 = load i32, ptr %605, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror_debug(i32 noundef %608, ptr noundef nonnull @.str.4) #11
  %610 = load i32, ptr %591, align 4, !tbaa !5
  %611 = call ptr @strerror(i32 noundef %610) #11
  %612 = load i32, ptr %591, align 4, !tbaa !5
  %613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef nonnull %.str.5.sink605, i32 noundef %604, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %607, ptr noundef %609, ptr noundef %611, i32 noundef %612) #13
  call void @exit(i32 noundef 1) #14
  unreachable

614:                                              ; preds = %709
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 100
  br i1 %exitcond.not, label %615, label %.preheader381, !llvm.loop !15

615:                                              ; preds = %614
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr @test_count, align 4, !tbaa !5
  %618 = call ptr @create_conn(i32 noundef 0, ptr noundef nonnull %472)
  %619 = icmp eq ptr %618, null
  br i1 %619, label %738, label %762

.preheader381:                                    ; preds = %585, %614
  %indvars.iv = phi i64 [ %indvars.iv.next, %614 ], [ 0, %585 ]
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = add nsw i32 %620, 1
  store i32 %621, ptr @test_count, align 4, !tbaa !5
  %622 = call ptr @s2n_cert_chain_and_key_new() #11
  %623 = getelementptr inbounds [100 x ptr], ptr %5, i64 0, i64 %indvars.iv
  store ptr %622, ptr %623, align 8, !tbaa !9
  %624 = icmp eq ptr %622, null
  br i1 %624, label %625, label %649

625:                                              ; preds = %.preheader381
  %626 = tail call ptr @__errno_location() #12
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #11
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %625
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #11
  %635 = call i32 @isatty(i32 noundef %634) #11
  %.not359 = icmp eq i32 %635, 0
  br i1 %.not359, label %636, label %637

636:                                              ; preds = %632, %625
  br label %637

637:                                              ; preds = %632, %636
  %.str.5.sink616 = phi ptr [ @.str.5, %636 ], [ @.str.2, %632 ]
  store i32 %627, ptr %626, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror(i32 noundef %641, ptr noundef nonnull @.str.4) #11
  %643 = load i32, ptr %640, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror_debug(i32 noundef %643, ptr noundef nonnull @.str.4) #11
  %645 = load i32, ptr %626, align 4, !tbaa !5
  %646 = call ptr @strerror(i32 noundef %645) #11
  %647 = load i32, ptr %626, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.5.sink616, i32 noundef %639, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %642, ptr noundef %644, ptr noundef %646, i32 noundef %647) #13
  call void @exit(i32 noundef 1) #14
  unreachable

649:                                              ; preds = %.preheader381
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = add nsw i32 %650, 1
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %622, ptr noundef nonnull %157, ptr noundef nonnull %185) #11
  %653 = icmp eq i32 %652, -1
  br i1 %653, label %654, label %678

654:                                              ; preds = %649
  %655 = tail call ptr @__errno_location() #12
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @s2n_print_stacktrace(ptr noundef %657) #11
  %659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %660 = trunc nuw i8 %659 to i1
  br i1 %660, label %661, label %665

661:                                              ; preds = %654
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = call i32 @fileno(ptr noundef %662) #11
  %664 = call i32 @isatty(i32 noundef %663) #11
  %.not358 = icmp eq i32 %664, 0
  br i1 %.not358, label %665, label %666

665:                                              ; preds = %661, %654
  br label %666

666:                                              ; preds = %661, %665
  %.str.5.sink627 = phi ptr [ @.str.5, %665 ], [ @.str.2, %661 ]
  store i32 %656, ptr %655, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror(i32 noundef %670, ptr noundef nonnull @.str.4) #11
  %672 = load i32, ptr %669, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror_debug(i32 noundef %672, ptr noundef nonnull @.str.4) #11
  %674 = load i32, ptr %655, align 4, !tbaa !5
  %675 = call ptr @strerror(i32 noundef %674) #11
  %676 = load i32, ptr %655, align 4, !tbaa !5
  %677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef nonnull %.str.5.sink627, i32 noundef %668, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %671, ptr noundef %673, ptr noundef %675, i32 noundef %676) #13
  call void @exit(i32 noundef 1) #14
  unreachable

678:                                              ; preds = %649
  %679 = getelementptr inbounds [100 x i32], ptr %4, i64 0, i64 %indvars.iv
  %680 = trunc nuw nsw i64 %indvars.iv to i32
  store i32 %680, ptr %679, align 4, !tbaa !5
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = call i32 @s2n_cert_chain_and_key_set_ctx(ptr noundef nonnull %622, ptr noundef nonnull %679) #11
  %684 = icmp eq i32 %683, -1
  br i1 %684, label %685, label %709

685:                                              ; preds = %678
  %686 = tail call ptr @__errno_location() #12
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @s2n_print_stacktrace(ptr noundef %688) #11
  %690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %691 = trunc nuw i8 %690 to i1
  br i1 %691, label %692, label %696

692:                                              ; preds = %685
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @fileno(ptr noundef %693) #11
  %695 = call i32 @isatty(i32 noundef %694) #11
  %.not357 = icmp eq i32 %695, 0
  br i1 %.not357, label %696, label %697

696:                                              ; preds = %692, %685
  br label %697

697:                                              ; preds = %692, %696
  %.str.5.sink638 = phi ptr [ @.str.5, %696 ], [ @.str.2, %692 ]
  store i32 %687, ptr %686, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %701, ptr noundef nonnull @.str.4) #11
  %703 = load i32, ptr %700, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror_debug(i32 noundef %703, ptr noundef nonnull @.str.4) #11
  %705 = load i32, ptr %686, align 4, !tbaa !5
  %706 = call ptr @strerror(i32 noundef %705) #11
  %707 = load i32, ptr %686, align 4, !tbaa !5
  %708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %698, ptr noundef nonnull %.str.5.sink638, i32 noundef %699, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %702, ptr noundef %704, ptr noundef %706, i32 noundef %707) #13
  call void @exit(i32 noundef 1) #14
  unreachable

709:                                              ; preds = %678
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %472, ptr noundef nonnull %622) #11
  %713 = icmp eq i32 %712, -1
  br i1 %713, label %714, label %614

714:                                              ; preds = %709
  %715 = tail call ptr @__errno_location() #12
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @s2n_print_stacktrace(ptr noundef %717) #11
  %719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %720 = trunc nuw i8 %719 to i1
  br i1 %720, label %721, label %725

721:                                              ; preds = %714
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @fileno(ptr noundef %722) #11
  %724 = call i32 @isatty(i32 noundef %723) #11
  %.not356 = icmp eq i32 %724, 0
  br i1 %.not356, label %725, label %726

725:                                              ; preds = %721, %714
  br label %726

726:                                              ; preds = %721, %725
  %.str.5.sink649 = phi ptr [ @.str.5, %725 ], [ @.str.2, %721 ]
  store i32 %716, ptr %715, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror(i32 noundef %730, ptr noundef nonnull @.str.4) #11
  %732 = load i32, ptr %729, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror_debug(i32 noundef %732, ptr noundef nonnull @.str.4) #11
  %734 = load i32, ptr %715, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #11
  %736 = load i32, ptr %715, align 4, !tbaa !5
  %737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef nonnull %.str.5.sink649, i32 noundef %728, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %731, ptr noundef %733, ptr noundef %735, i32 noundef %736) #13
  call void @exit(i32 noundef 1) #14
  unreachable

738:                                              ; preds = %615
  %739 = tail call ptr @__errno_location() #12
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @s2n_print_stacktrace(ptr noundef %741) #11
  %743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %744 = trunc nuw i8 %743 to i1
  br i1 %744, label %745, label %749

745:                                              ; preds = %738
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = call i32 @fileno(ptr noundef %746) #11
  %748 = call i32 @isatty(i32 noundef %747) #11
  %.not355 = icmp eq i32 %748, 0
  br i1 %.not355, label %749, label %750

749:                                              ; preds = %745, %738
  br label %750

750:                                              ; preds = %745, %749
  %.str.5.sink660 = phi ptr [ @.str.5, %749 ], [ @.str.2, %745 ]
  store i32 %740, ptr %739, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef nonnull @.str.4) #11
  %756 = load i32, ptr %753, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef nonnull @.str.4) #11
  %758 = load i32, ptr %739, align 4, !tbaa !5
  %759 = call ptr @strerror(i32 noundef %758) #11
  %760 = load i32, ptr %739, align 4, !tbaa !5
  %761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef nonnull %.str.5.sink660, i32 noundef %752, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %755, ptr noundef %757, ptr noundef %759, i32 noundef %760) #13
  call void @exit(i32 noundef 1) #14
  unreachable

762:                                              ; preds = %615
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = call ptr @create_conn(i32 noundef 1, ptr noundef nonnull %414)
  %766 = icmp eq ptr %765, null
  br i1 %766, label %767, label %791

767:                                              ; preds = %762
  %768 = tail call ptr @__errno_location() #12
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #11
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

774:                                              ; preds = %767
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #11
  %777 = call i32 @isatty(i32 noundef %776) #11
  %.not354 = icmp eq i32 %777, 0
  br i1 %.not354, label %778, label %779

778:                                              ; preds = %774, %767
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink671 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %768, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror(i32 noundef %783, ptr noundef nonnull @.str.4) #11
  %785 = load i32, ptr %782, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror_debug(i32 noundef %785, ptr noundef nonnull @.str.4) #11
  %787 = load i32, ptr %768, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #11
  %789 = load i32, ptr %768, align 4, !tbaa !5
  %790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink671, i32 noundef %781, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %784, ptr noundef %786, ptr noundef %788, i32 noundef %789) #13
  call void @exit(i32 noundef 1) #14
  unreachable

791:                                              ; preds = %762
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr @test_count, align 4, !tbaa !5
  %794 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %765, ptr noundef nonnull %618, ptr noundef nonnull %3) #11
  %795 = icmp eq i32 %794, -1
  br i1 %795, label %796, label %820

796:                                              ; preds = %791
  %797 = tail call ptr @__errno_location() #12
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = call i32 @s2n_print_stacktrace(ptr noundef %799) #11
  %801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %802 = trunc nuw i8 %801 to i1
  br i1 %802, label %803, label %807

803:                                              ; preds = %796
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @fileno(ptr noundef %804) #11
  %806 = call i32 @isatty(i32 noundef %805) #11
  %.not353 = icmp eq i32 %806, 0
  br i1 %.not353, label %807, label %808

807:                                              ; preds = %803, %796
  br label %808

808:                                              ; preds = %803, %807
  %.str.5.sink682 = phi ptr [ @.str.5, %807 ], [ @.str.2, %803 ]
  store i32 %798, ptr %797, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef nonnull @.str.4) #11
  %814 = load i32, ptr %811, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef nonnull @.str.4) #11
  %816 = load i32, ptr %797, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #11
  %818 = load i32, ptr %797, align 4, !tbaa !5
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef nonnull %.str.5.sink682, i32 noundef %810, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %813, ptr noundef %815, ptr noundef %817, i32 noundef %818) #13
  call void @exit(i32 noundef 1) #14
  unreachable

820:                                              ; preds = %791
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call i32 @s2n_set_server_name(ptr noundef nonnull %765, ptr noundef nonnull @.str.39) #11
  %824 = icmp eq i32 %823, -1
  br i1 %824, label %825, label %849

825:                                              ; preds = %820
  %826 = tail call ptr @__errno_location() #12
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @s2n_print_stacktrace(ptr noundef %828) #11
  %830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %831 = trunc nuw i8 %830 to i1
  br i1 %831, label %832, label %836

832:                                              ; preds = %825
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @fileno(ptr noundef %833) #11
  %835 = call i32 @isatty(i32 noundef %834) #11
  %.not352 = icmp eq i32 %835, 0
  br i1 %.not352, label %836, label %837

836:                                              ; preds = %832, %825
  br label %837

837:                                              ; preds = %832, %836
  %.str.5.sink693 = phi ptr [ @.str.5, %836 ], [ @.str.2, %832 ]
  store i32 %827, ptr %826, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef nonnull @.str.4) #11
  %843 = load i32, ptr %840, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef nonnull @.str.4) #11
  %845 = load i32, ptr %826, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #11
  %847 = load i32, ptr %826, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef nonnull %.str.5.sink693, i32 noundef %839, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %842, ptr noundef %844, ptr noundef %846, i32 noundef %847) #13
  call void @exit(i32 noundef 1) #14
  unreachable

849:                                              ; preds = %820
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = add nsw i32 %850, 1
  store i32 %851, ptr @test_count, align 4, !tbaa !5
  %852 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %618, ptr noundef nonnull %765) #11
  %853 = icmp eq i32 %852, -1
  br i1 %853, label %854, label %878

854:                                              ; preds = %849
  %855 = tail call ptr @__errno_location() #12
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @s2n_print_stacktrace(ptr noundef %857) #11
  %859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %861, label %865

861:                                              ; preds = %854
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @fileno(ptr noundef %862) #11
  %864 = call i32 @isatty(i32 noundef %863) #11
  %.not351 = icmp eq i32 %864, 0
  br i1 %.not351, label %865, label %866

865:                                              ; preds = %861, %854
  br label %866

866:                                              ; preds = %861, %865
  %.str.5.sink704 = phi ptr [ @.str.5, %865 ], [ @.str.2, %861 ]
  store i32 %856, ptr %855, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror(i32 noundef %870, ptr noundef nonnull @.str.4) #11
  %872 = load i32, ptr %869, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror_debug(i32 noundef %872, ptr noundef nonnull @.str.4) #11
  %874 = load i32, ptr %855, align 4, !tbaa !5
  %875 = call ptr @strerror(i32 noundef %874) #11
  %876 = load i32, ptr %855, align 4, !tbaa !5
  %877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef nonnull %.str.5.sink704, i32 noundef %868, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %871, ptr noundef %873, ptr noundef %875, i32 noundef %876) #13
  call void @exit(i32 noundef 1) #14
  unreachable

878:                                              ; preds = %849
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = add nsw i32 %879, 1
  store i32 %880, ptr @test_count, align 4, !tbaa !5
  %881 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %618, i32 noundef 2) #11
  br i1 %881, label %906, label %882

882:                                              ; preds = %878
  %883 = tail call ptr @__errno_location() #12
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @s2n_print_stacktrace(ptr noundef %885) #11
  %887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %888 = trunc nuw i8 %887 to i1
  br i1 %888, label %889, label %893

889:                                              ; preds = %882
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @fileno(ptr noundef %890) #11
  %892 = call i32 @isatty(i32 noundef %891) #11
  %.not = icmp eq i32 %892, 0
  br i1 %.not, label %893, label %894

893:                                              ; preds = %889, %882
  br label %894

894:                                              ; preds = %889, %893
  %.str.5.sink715 = phi ptr [ @.str.5, %893 ], [ @.str.2, %889 ]
  store i32 %884, ptr %883, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror(i32 noundef %898, ptr noundef nonnull @.str.4) #11
  %900 = load i32, ptr %897, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef nonnull @.str.4) #11
  %902 = load i32, ptr %883, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #11
  %904 = load i32, ptr %883, align 4, !tbaa !5
  %905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef nonnull %.str.5.sink715, i32 noundef %896, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %899, ptr noundef %901, ptr noundef %903, i32 noundef %904) #13
  call void @exit(i32 noundef 1) #14
  unreachable

906:                                              ; preds = %878
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = load i32, ptr @num_times_cb_executed, align 4, !tbaa !5
  %910 = icmp eq i32 %909, 99
  br i1 %910, label %935, label %911

911:                                              ; preds = %906
  %912 = tail call ptr @__errno_location() #12
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @s2n_print_stacktrace(ptr noundef %914) #11
  %916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %917 = trunc nuw i8 %916 to i1
  br i1 %917, label %918, label %922

918:                                              ; preds = %911
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @fileno(ptr noundef %919) #11
  %921 = call i32 @isatty(i32 noundef %920) #11
  %.not288 = icmp eq i32 %921, 0
  br i1 %.not288, label %922, label %923

922:                                              ; preds = %918, %911
  br label %923

923:                                              ; preds = %918, %922
  %.str.5.sink726 = phi ptr [ @.str.5, %922 ], [ @.str.2, %918 ]
  store i32 %913, ptr %912, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef nonnull @.str.4) #11
  %929 = load i32, ptr %926, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.4) #11
  %931 = load i32, ptr %912, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #11
  %933 = load i32, ptr %912, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef nonnull %.str.5.sink726, i32 noundef %925, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %928, ptr noundef %930, ptr noundef %932, i32 noundef %933) #13
  call void @exit(i32 noundef 1) #14
  unreachable

935:                                              ; preds = %906
  %936 = call ptr @s2n_connection_get_selected_cert(ptr noundef nonnull %618) #11
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = getelementptr inbounds i8, ptr %5, i64 792
  %940 = load ptr, ptr %939, align 8, !tbaa !9
  %941 = icmp eq ptr %936, %940
  br i1 %941, label %966, label %942

942:                                              ; preds = %935
  %943 = tail call ptr @__errno_location() #12
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945) #11
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %953

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

953:                                              ; preds = %949, %942
  br label %954

954:                                              ; preds = %949, %953
  %.str.5.sink737 = phi ptr [ @.str.5, %953 ], [ @.str.2, %949 ]
  store i32 %944, ptr %943, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror(i32 noundef %958, ptr noundef nonnull @.str.4) #11
  %960 = load i32, ptr %957, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror_debug(i32 noundef %960, ptr noundef nonnull @.str.4) #11
  %962 = load i32, ptr %943, align 4, !tbaa !5
  %963 = call ptr @strerror(i32 noundef %962) #11
  %964 = load i32, ptr %943, align 4, !tbaa !5
  %965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef nonnull %.str.5.sink737, i32 noundef %956, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %959, ptr noundef %961, ptr noundef %963, i32 noundef %964) #13
  call void @exit(i32 noundef 1) #14
  unreachable

966:                                              ; preds = %935
  %967 = add nsw i32 %937, 2
  store i32 %967, ptr @test_count, align 4, !tbaa !5
  %968 = call ptr @s2n_cert_chain_and_key_get_ctx(ptr noundef %936) #11
  %969 = getelementptr inbounds i8, ptr %4, i64 396
  %970 = icmp eq ptr %968, %969
  br i1 %970, label %995, label %971

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

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

982:                                              ; preds = %978, %971
  br label %983

983:                                              ; preds = %978, %982
  %.str.5.sink748 = phi ptr [ @.str.5, %982 ], [ @.str.2, %978 ]
  store i32 %973, ptr %972, align 4, !tbaa !5
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef nonnull @.str.4) #11
  %989 = load i32, ptr %986, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef nonnull @.str.4) #11
  %991 = load i32, ptr %972, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #11
  %993 = load i32, ptr %972, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %984, ptr noundef nonnull %.str.5.sink748, i32 noundef %985, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %988, ptr noundef %990, ptr noundef %992, i32 noundef %993) #13
  call void @exit(i32 noundef 1) #14
  unreachable

995:                                              ; preds = %966
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr @test_count, align 4, !tbaa !5
  %998 = call ptr @s2n_cert_chain_and_key_get_ctx(ptr noundef %936) #11
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = icmp eq i32 %999, 99
  br i1 %1000, label %1025, label %1001

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

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

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

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

1025:                                             ; preds = %995
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %618, ptr noundef nonnull %765) #11
  %1029 = icmp eq i32 %1028, -1
  br i1 %1029, label %1030, label %1054

1030:                                             ; preds = %1025
  %1031 = tail call ptr @__errno_location() #12
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033) #11
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc nuw i8 %1035 to i1
  br i1 %1036, label %1037, label %1041

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #11
  %1040 = call i32 @isatty(i32 noundef %1039) #11
  %.not350 = icmp eq i32 %1040, 0
  br i1 %.not350, label %1041, label %1042

1041:                                             ; preds = %1037, %1030
  br label %1042

1042:                                             ; preds = %1037, %1041
  %.str.5.sink770 = phi ptr [ @.str.5, %1041 ], [ @.str.2, %1037 ]
  store i32 %1032, ptr %1031, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror(i32 noundef %1046, ptr noundef nonnull @.str.4) #11
  %1048 = load i32, ptr %1045, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror_debug(i32 noundef %1048, ptr noundef nonnull @.str.4) #11
  %1050 = load i32, ptr %1031, align 4, !tbaa !5
  %1051 = call ptr @strerror(i32 noundef %1050) #11
  %1052 = load i32, ptr %1031, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef nonnull %.str.5.sink770, i32 noundef %1044, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %1047, ptr noundef %1049, ptr noundef %1051, i32 noundef %1052) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1054:                                             ; preds = %1025
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = call i32 @s2n_connection_free(ptr noundef nonnull %618) #11
  %1058 = icmp eq i32 %1057, -1
  br i1 %1058, label %1059, label %1083

1059:                                             ; preds = %1054
  %1060 = tail call ptr @__errno_location() #12
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @s2n_print_stacktrace(ptr noundef %1062) #11
  %1064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1065 = trunc nuw i8 %1064 to i1
  br i1 %1065, label %1066, label %1070

1066:                                             ; preds = %1059
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @fileno(ptr noundef %1067) #11
  %1069 = call i32 @isatty(i32 noundef %1068) #11
  %.not349 = icmp eq i32 %1069, 0
  br i1 %.not349, label %1070, label %1071

1070:                                             ; preds = %1066, %1059
  br label %1071

1071:                                             ; preds = %1066, %1070
  %.str.5.sink781 = phi ptr [ @.str.5, %1070 ], [ @.str.2, %1066 ]
  store i32 %1061, ptr %1060, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror(i32 noundef %1075, ptr noundef nonnull @.str.4) #11
  %1077 = load i32, ptr %1074, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef nonnull @.str.4) #11
  %1079 = load i32, ptr %1060, align 4, !tbaa !5
  %1080 = call ptr @strerror(i32 noundef %1079) #11
  %1081 = load i32, ptr %1060, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef nonnull %.str.5.sink781, i32 noundef %1073, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1076, ptr noundef %1078, ptr noundef %1080, i32 noundef %1081) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1083:                                             ; preds = %1054
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr @test_count, align 4, !tbaa !5
  %1086 = call i32 @s2n_connection_free(ptr noundef nonnull %765) #11
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %.preheader

1088:                                             ; preds = %1083
  %1089 = tail call ptr @__errno_location() #12
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = call i32 @s2n_print_stacktrace(ptr noundef %1091) #11
  %1093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1094 = trunc nuw i8 %1093 to i1
  br i1 %1094, label %1095, label %1099

1095:                                             ; preds = %1088
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @fileno(ptr noundef %1096) #11
  %1098 = call i32 @isatty(i32 noundef %1097) #11
  %.not348 = icmp eq i32 %1098, 0
  br i1 %.not348, label %1099, label %1100

1099:                                             ; preds = %1095, %1088
  br label %1100

1100:                                             ; preds = %1095, %1099
  %.str.5.sink792 = phi ptr [ @.str.5, %1099 ], [ @.str.2, %1095 ]
  store i32 %1090, ptr %1089, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #11
  %1106 = load i32, ptr %1103, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #11
  %1108 = load i32, ptr %1089, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = load i32, ptr %1089, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef nonnull %.str.5.sink792, i32 noundef %1102, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1112:                                             ; preds = %.preheader
  %1113 = add nuw nsw i64 %.0271383, 1
  %exitcond385.not = icmp eq i64 %1113, 100
  br i1 %exitcond385.not, label %1114, label %.preheader, !llvm.loop !17

1114:                                             ; preds = %1112
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, 1
  store i32 %1116, ptr @test_count, align 4, !tbaa !5
  %1117 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %530) #11
  %1118 = icmp eq i32 %1117, -1
  br i1 %1118, label %1149, label %1173

.preheader:                                       ; preds = %1083, %1112
  %.0271383 = phi i64 [ %1113, %1112 ], [ 0, %1083 ]
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr @test_count, align 4, !tbaa !5
  %1121 = getelementptr inbounds [100 x ptr], ptr %5, i64 0, i64 %.0271383
  %1122 = load ptr, ptr %1121, align 8, !tbaa !9
  %1123 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1122) #11
  %1124 = icmp eq i32 %1123, -1
  br i1 %1124, label %1125, label %1112

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

1132:                                             ; preds = %1125
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @fileno(ptr noundef %1133) #11
  %1135 = call i32 @isatty(i32 noundef %1134) #11
  %.not347 = icmp eq i32 %1135, 0
  br i1 %.not347, label %1136, label %1137

1136:                                             ; preds = %1132, %1125
  br label %1137

1137:                                             ; preds = %1132, %1136
  %.str.5.sink803 = phi ptr [ @.str.5, %1136 ], [ @.str.2, %1132 ]
  store i32 %1127, ptr %1126, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef nonnull @.str.4) #11
  %1143 = load i32, ptr %1140, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef nonnull @.str.4) #11
  %1145 = load i32, ptr %1126, align 4, !tbaa !5
  %1146 = call ptr @strerror(i32 noundef %1145) #11
  %1147 = load i32, ptr %1126, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef nonnull %.str.5.sink803, i32 noundef %1139, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1142, ptr noundef %1144, ptr noundef %1146, i32 noundef %1147) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1149:                                             ; preds = %1114
  %1150 = tail call ptr @__errno_location() #12
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #11
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #11
  %1159 = call i32 @isatty(i32 noundef %1158) #11
  %.not346 = icmp eq i32 %1159, 0
  br i1 %.not346, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.5.sink814 = phi ptr [ @.str.5, %1160 ], [ @.str.2, %1156 ]
  store i32 %1151, ptr %1150, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #11
  %1167 = load i32, ptr %1164, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #11
  %1169 = load i32, ptr %1150, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #11
  %1171 = load i32, ptr %1150, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.5.sink814, i32 noundef %1163, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1173:                                             ; preds = %1114
  %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 = call i32 @s2n_config_free(ptr noundef nonnull %472) #11
  %1177 = icmp eq i32 %1176, -1
  br i1 %1177, label %1178, label %1202

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

1185:                                             ; preds = %1178
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #11
  %1188 = call i32 @isatty(i32 noundef %1187) #11
  %.not345 = icmp eq i32 %1188, 0
  br i1 %.not345, label %1189, label %1190

1189:                                             ; preds = %1185, %1178
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink825 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %1179, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror(i32 noundef %1194, ptr noundef nonnull @.str.4) #11
  %1196 = load i32, ptr %1193, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror_debug(i32 noundef %1196, ptr noundef nonnull @.str.4) #11
  %1198 = load i32, ptr %1179, align 4, !tbaa !5
  %1199 = call ptr @strerror(i32 noundef %1198) #11
  %1200 = load i32, ptr %1179, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink825, i32 noundef %1192, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %1195, ptr noundef %1197, ptr noundef %1199, i32 noundef %1200) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1202:                                             ; preds = %1173
  call void @llvm.lifetime.end.p0(i64 800, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %4) #11
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr @test_count, align 4, !tbaa !5
  %1205 = call ptr @s2n_config_new() #11
  %1206 = icmp eq ptr %1205, null
  br i1 %1206, label %1207, label %1231

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

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

1218:                                             ; preds = %1214, %1207
  br label %1219

1219:                                             ; preds = %1214, %1218
  %.str.5.sink836 = phi ptr [ @.str.5, %1218 ], [ @.str.2, %1214 ]
  store i32 %1209, ptr %1208, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef nonnull @.str.4) #11
  %1225 = load i32, ptr %1222, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror_debug(i32 noundef %1225, ptr noundef nonnull @.str.4) #11
  %1227 = load i32, ptr %1208, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #11
  %1229 = load i32, ptr %1208, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef nonnull %.str.5.sink836, i32 noundef %1221, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1224, ptr noundef %1226, ptr noundef %1228, i32 noundef %1229) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1231:                                             ; preds = %1202
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = add nsw i32 %1232, 1
  store i32 %1233, ptr @test_count, align 4, !tbaa !5
  %1234 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef nonnull %1205, ptr noundef nonnull %271, ptr noundef nonnull %299) #11
  %1235 = icmp eq i32 %1234, -1
  br i1 %1235, label %1236, label %1260

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

1243:                                             ; preds = %1236
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = call i32 @fileno(ptr noundef %1244) #11
  %1246 = call i32 @isatty(i32 noundef %1245) #11
  %.not343 = icmp eq i32 %1246, 0
  br i1 %.not343, label %1247, label %1248

1247:                                             ; preds = %1243, %1236
  br label %1248

1248:                                             ; preds = %1243, %1247
  %.str.5.sink847 = phi ptr [ @.str.5, %1247 ], [ @.str.2, %1243 ]
  store i32 %1238, ptr %1237, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef nonnull @.str.4) #11
  %1254 = load i32, ptr %1251, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef nonnull @.str.4) #11
  %1256 = load i32, ptr %1237, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #11
  %1258 = load i32, ptr %1237, align 4, !tbaa !5
  %1259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef nonnull %.str.5.sink847, i32 noundef %1250, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1253, ptr noundef %1255, ptr noundef %1257, i32 noundef %1258) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1260:                                             ; preds = %1231
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = call ptr @create_conn(i32 noundef 0, ptr noundef nonnull %1205)
  %1264 = icmp eq ptr %1263, null
  br i1 %1264, label %1265, label %1289

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

1272:                                             ; preds = %1265
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @fileno(ptr noundef %1273) #11
  %1275 = call i32 @isatty(i32 noundef %1274) #11
  %.not342 = icmp eq i32 %1275, 0
  br i1 %.not342, label %1276, label %1277

1276:                                             ; preds = %1272, %1265
  br label %1277

1277:                                             ; preds = %1272, %1276
  %.str.5.sink858 = phi ptr [ @.str.5, %1276 ], [ @.str.2, %1272 ]
  store i32 %1267, ptr %1266, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1281, ptr noundef nonnull @.str.4) #11
  %1283 = load i32, ptr %1280, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef nonnull @.str.4) #11
  %1285 = load i32, ptr %1266, align 4, !tbaa !5
  %1286 = call ptr @strerror(i32 noundef %1285) #11
  %1287 = load i32, ptr %1266, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef nonnull %.str.5.sink858, i32 noundef %1279, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1282, ptr noundef %1284, ptr noundef %1286, i32 noundef %1287) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1289:                                             ; preds = %1260
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr @test_count, align 4, !tbaa !5
  %1292 = call ptr @create_conn(i32 noundef 1, ptr noundef nonnull %414)
  %1293 = icmp eq ptr %1292, null
  br i1 %1293, label %1294, label %1318

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

1301:                                             ; preds = %1294
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @fileno(ptr noundef %1302) #11
  %1304 = call i32 @isatty(i32 noundef %1303) #11
  %.not341 = icmp eq i32 %1304, 0
  br i1 %.not341, label %1305, label %1306

1305:                                             ; preds = %1301, %1294
  br label %1306

1306:                                             ; preds = %1301, %1305
  %.str.5.sink869 = phi ptr [ @.str.5, %1305 ], [ @.str.2, %1301 ]
  store i32 %1296, ptr %1295, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror(i32 noundef %1310, ptr noundef nonnull @.str.4) #11
  %1312 = load i32, ptr %1309, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef nonnull @.str.4) #11
  %1314 = load i32, ptr %1295, align 4, !tbaa !5
  %1315 = call ptr @strerror(i32 noundef %1314) #11
  %1316 = load i32, ptr %1295, align 4, !tbaa !5
  %1317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1307, ptr noundef nonnull %.str.5.sink869, i32 noundef %1308, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1311, ptr noundef %1313, ptr noundef %1315, i32 noundef %1316) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1318:                                             ; preds = %1289
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %1292, ptr noundef nonnull %1263, ptr noundef nonnull %3) #11
  %1322 = icmp eq i32 %1321, -1
  br i1 %1322, label %1323, label %1347

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

1330:                                             ; preds = %1323
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @fileno(ptr noundef %1331) #11
  %1333 = call i32 @isatty(i32 noundef %1332) #11
  %.not340 = icmp eq i32 %1333, 0
  br i1 %.not340, label %1334, label %1335

1334:                                             ; preds = %1330, %1323
  br label %1335

1335:                                             ; preds = %1330, %1334
  %.str.5.sink880 = phi ptr [ @.str.5, %1334 ], [ @.str.2, %1330 ]
  store i32 %1325, ptr %1324, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef nonnull @.str.4) #11
  %1341 = load i32, ptr %1338, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef nonnull @.str.4) #11
  %1343 = load i32, ptr %1324, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #11
  %1345 = load i32, ptr %1324, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef nonnull %.str.5.sink880, i32 noundef %1337, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1340, ptr noundef %1342, ptr noundef %1344, i32 noundef %1345) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1347:                                             ; preds = %1318
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr @test_count, align 4, !tbaa !5
  %1350 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1263, ptr noundef nonnull %1292) #11
  %1351 = icmp eq i32 %1350, -1
  br i1 %1351, label %1352, label %1376

1352:                                             ; preds = %1347
  %1353 = tail call ptr @__errno_location() #12
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @s2n_print_stacktrace(ptr noundef %1355) #11
  %1357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1358 = trunc nuw i8 %1357 to i1
  br i1 %1358, label %1359, label %1363

1359:                                             ; preds = %1352
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @fileno(ptr noundef %1360) #11
  %1362 = call i32 @isatty(i32 noundef %1361) #11
  %.not339 = icmp eq i32 %1362, 0
  br i1 %.not339, label %1363, label %1364

1363:                                             ; preds = %1359, %1352
  br label %1364

1364:                                             ; preds = %1359, %1363
  %.str.5.sink891 = phi ptr [ @.str.5, %1363 ], [ @.str.2, %1359 ]
  store i32 %1354, ptr %1353, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef nonnull @.str.4) #11
  %1370 = load i32, ptr %1367, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef nonnull @.str.4) #11
  %1372 = load i32, ptr %1353, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #11
  %1374 = load i32, ptr %1353, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef nonnull %.str.5.sink891, i32 noundef %1366, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1369, ptr noundef %1371, ptr noundef %1373, i32 noundef %1374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1376:                                             ; preds = %1347
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1263, i32 noundef 2) #11
  br i1 %1379, label %1404, label %1380

1380:                                             ; preds = %1376
  %1381 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %1390 = call i32 @isatty(i32 noundef %1389) #11
  %.not292 = icmp eq i32 %1390, 0
  br i1 %.not292, label %1391, label %1392

1391:                                             ; preds = %1387, %1380
  br label %1392

1392:                                             ; preds = %1387, %1391
  %.str.5.sink902 = phi ptr [ @.str.5, %1391 ], [ @.str.2, %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.4) #11
  %1398 = load i32, ptr %1395, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.4) #11
  %1400 = load i32, ptr %1381, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #11
  %1402 = load i32, ptr %1381, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef nonnull %.str.5.sink902, i32 noundef %1394, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1404:                                             ; preds = %1376
  %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 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %1263, ptr noundef nonnull %1292) #11
  %1408 = icmp eq i32 %1407, -1
  br i1 %1408, label %1409, label %1433

1409:                                             ; preds = %1404
  %1410 = tail call ptr @__errno_location() #12
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412) #11
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc nuw i8 %1414 to i1
  br i1 %1415, label %1416, label %1420

1416:                                             ; preds = %1409
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @fileno(ptr noundef %1417) #11
  %1419 = call i32 @isatty(i32 noundef %1418) #11
  %.not338 = icmp eq i32 %1419, 0
  br i1 %.not338, label %1420, label %1421

1420:                                             ; preds = %1416, %1409
  br label %1421

1421:                                             ; preds = %1416, %1420
  %.str.5.sink913 = phi ptr [ @.str.5, %1420 ], [ @.str.2, %1416 ]
  store i32 %1411, ptr %1410, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror(i32 noundef %1425, ptr noundef nonnull @.str.4) #11
  %1427 = load i32, ptr %1424, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef nonnull @.str.4) #11
  %1429 = load i32, ptr %1410, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #11
  %1431 = load i32, ptr %1410, align 4, !tbaa !5
  %1432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.5.sink913, i32 noundef %1423, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1426, ptr noundef %1428, ptr noundef %1430, i32 noundef %1431) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1433:                                             ; preds = %1404
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = add nsw i32 %1434, 1
  store i32 %1435, ptr @test_count, align 4, !tbaa !5
  %1436 = call i32 @s2n_connection_free(ptr noundef nonnull %1263) #11
  %1437 = icmp eq i32 %1436, -1
  br i1 %1437, label %1438, label %1462

1438:                                             ; preds = %1433
  %1439 = tail call ptr @__errno_location() #12
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @s2n_print_stacktrace(ptr noundef %1441) #11
  %1443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1444 = trunc nuw i8 %1443 to i1
  br i1 %1444, label %1445, label %1449

1445:                                             ; preds = %1438
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @fileno(ptr noundef %1446) #11
  %1448 = call i32 @isatty(i32 noundef %1447) #11
  %.not337 = icmp eq i32 %1448, 0
  br i1 %.not337, label %1449, label %1450

1449:                                             ; preds = %1445, %1438
  br label %1450

1450:                                             ; preds = %1445, %1449
  %.str.5.sink924 = phi ptr [ @.str.5, %1449 ], [ @.str.2, %1445 ]
  store i32 %1440, ptr %1439, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror(i32 noundef %1454, ptr noundef nonnull @.str.4) #11
  %1456 = load i32, ptr %1453, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1456, ptr noundef nonnull @.str.4) #11
  %1458 = load i32, ptr %1439, align 4, !tbaa !5
  %1459 = call ptr @strerror(i32 noundef %1458) #11
  %1460 = load i32, ptr %1439, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1451, ptr noundef nonnull %.str.5.sink924, i32 noundef %1452, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1455, ptr noundef %1457, ptr noundef %1459, i32 noundef %1460) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1462:                                             ; preds = %1433
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = add nsw i32 %1463, 1
  store i32 %1464, ptr @test_count, align 4, !tbaa !5
  %1465 = call i32 @s2n_connection_free(ptr noundef nonnull %1292) #11
  %1466 = icmp eq i32 %1465, -1
  br i1 %1466, label %1467, label %1491

1467:                                             ; preds = %1462
  %1468 = tail call ptr @__errno_location() #12
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = call i32 @s2n_print_stacktrace(ptr noundef %1470) #11
  %1472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1473 = trunc nuw i8 %1472 to i1
  br i1 %1473, label %1474, label %1478

1474:                                             ; preds = %1467
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @fileno(ptr noundef %1475) #11
  %1477 = call i32 @isatty(i32 noundef %1476) #11
  %.not336 = icmp eq i32 %1477, 0
  br i1 %.not336, label %1478, label %1479

1478:                                             ; preds = %1474, %1467
  br label %1479

1479:                                             ; preds = %1474, %1478
  %.str.5.sink935 = phi ptr [ @.str.5, %1478 ], [ @.str.2, %1474 ]
  store i32 %1469, ptr %1468, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef nonnull @.str.4) #11
  %1485 = load i32, ptr %1482, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror_debug(i32 noundef %1485, ptr noundef nonnull @.str.4) #11
  %1487 = load i32, ptr %1468, align 4, !tbaa !5
  %1488 = call ptr @strerror(i32 noundef %1487) #11
  %1489 = load i32, ptr %1468, align 4, !tbaa !5
  %1490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef nonnull %.str.5.sink935, i32 noundef %1481, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1484, ptr noundef %1486, ptr noundef %1488, i32 noundef %1489) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1491:                                             ; preds = %1462
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = add nsw i32 %1492, 1
  store i32 %1493, ptr @test_count, align 4, !tbaa !5
  %1494 = call i32 @s2n_config_free(ptr noundef nonnull %1205) #11
  %1495 = icmp eq i32 %1494, -1
  br i1 %1495, label %1496, label %1520

1496:                                             ; preds = %1491
  %1497 = tail call ptr @__errno_location() #12
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = call i32 @s2n_print_stacktrace(ptr noundef %1499) #11
  %1501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1502 = trunc nuw i8 %1501 to i1
  br i1 %1502, label %1503, label %1507

1503:                                             ; preds = %1496
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @fileno(ptr noundef %1504) #11
  %1506 = call i32 @isatty(i32 noundef %1505) #11
  %.not335 = icmp eq i32 %1506, 0
  br i1 %.not335, label %1507, label %1508

1507:                                             ; preds = %1503, %1496
  br label %1508

1508:                                             ; preds = %1503, %1507
  %.str.5.sink946 = phi ptr [ @.str.5, %1507 ], [ @.str.2, %1503 ]
  store i32 %1498, ptr %1497, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %1511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror(i32 noundef %1512, ptr noundef nonnull @.str.4) #11
  %1514 = load i32, ptr %1511, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef nonnull @.str.4) #11
  %1516 = load i32, ptr %1497, align 4, !tbaa !5
  %1517 = call ptr @strerror(i32 noundef %1516) #11
  %1518 = load i32, ptr %1497, align 4, !tbaa !5
  %1519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1509, ptr noundef nonnull %.str.5.sink946, i32 noundef %1510, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1513, ptr noundef %1515, ptr noundef %1517, i32 noundef %1518) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1520:                                             ; preds = %1491
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  store ptr null, ptr %6, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = add nsw i32 %1521, 1
  store i32 %1522, ptr @test_count, align 4, !tbaa !5
  %1523 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %6, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.20) #11
  %1524 = icmp eq i32 %1523, -1
  br i1 %1524, label %1525, label %1549

1525:                                             ; preds = %1520
  %1526 = tail call ptr @__errno_location() #12
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = call i32 @s2n_print_stacktrace(ptr noundef %1528) #11
  %1530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1531 = trunc nuw i8 %1530 to i1
  br i1 %1531, label %1532, label %1536

1532:                                             ; preds = %1525
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = call i32 @fileno(ptr noundef %1533) #11
  %1535 = call i32 @isatty(i32 noundef %1534) #11
  %.not334 = icmp eq i32 %1535, 0
  br i1 %.not334, label %1536, label %1537

1536:                                             ; preds = %1532, %1525
  br label %1537

1537:                                             ; preds = %1532, %1536
  %.str.5.sink957 = phi ptr [ @.str.5, %1536 ], [ @.str.2, %1532 ]
  store i32 %1527, ptr %1526, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror(i32 noundef %1541, ptr noundef nonnull @.str.4) #11
  %1543 = load i32, ptr %1540, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror_debug(i32 noundef %1543, ptr noundef nonnull @.str.4) #11
  %1545 = load i32, ptr %1526, align 4, !tbaa !5
  %1546 = call ptr @strerror(i32 noundef %1545) #11
  %1547 = load i32, ptr %1526, align 4, !tbaa !5
  %1548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1538, ptr noundef nonnull %.str.5.sink957, i32 noundef %1539, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1542, ptr noundef %1544, ptr noundef %1546, i32 noundef %1547) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1549:                                             ; preds = %1520
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %1550 = call ptr @s2n_config_new() #11
  store ptr %1550, ptr %7, align 8, !tbaa !9
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, ptr @test_count, align 4, !tbaa !5
  %1553 = icmp eq ptr %1550, null
  br i1 %1553, label %1554, label %1578

1554:                                             ; preds = %1549
  %1555 = tail call ptr @__errno_location() #12
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @s2n_print_stacktrace(ptr noundef %1557) #11
  %1559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1560 = trunc nuw i8 %1559 to i1
  br i1 %1560, label %1561, label %1565

1561:                                             ; preds = %1554
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @fileno(ptr noundef %1562) #11
  %1564 = call i32 @isatty(i32 noundef %1563) #11
  %.not333 = icmp eq i32 %1564, 0
  br i1 %.not333, label %1565, label %1566

1565:                                             ; preds = %1561, %1554
  br label %1566

1566:                                             ; preds = %1561, %1565
  %.str.5.sink968 = phi ptr [ @.str.5, %1565 ], [ @.str.2, %1561 ]
  store i32 %1556, ptr %1555, 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 nonnull @.str.4) #11
  %1572 = load i32, ptr %1569, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef nonnull @.str.4) #11
  %1574 = load i32, ptr %1555, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #11
  %1576 = load i32, ptr %1555, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef nonnull %.str.5.sink968, i32 noundef %1568, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1571, ptr noundef %1573, ptr noundef %1575, i32 noundef %1576) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1578:                                             ; preds = %1549
  %1579 = add nsw i32 %1551, 2
  store i32 %1579, ptr @test_count, align 4, !tbaa !5
  %1580 = getelementptr inbounds i8, ptr %1550, i64 416
  %1581 = load i32, ptr %1580, align 8, !tbaa !18
  %1582 = icmp eq i32 %1581, 0
  br i1 %1582, label %1607, label %1583

1583:                                             ; preds = %1578
  %1584 = tail call ptr @__errno_location() #12
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = call i32 @s2n_print_stacktrace(ptr noundef %1586) #11
  %1588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1589 = trunc nuw i8 %1588 to i1
  br i1 %1589, label %1590, label %1594

1590:                                             ; preds = %1583
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = call i32 @fileno(ptr noundef %1591) #11
  %1593 = call i32 @isatty(i32 noundef %1592) #11
  %.not293 = icmp eq i32 %1593, 0
  br i1 %.not293, label %1594, label %1595

1594:                                             ; preds = %1590, %1583
  br label %1595

1595:                                             ; preds = %1590, %1594
  %.str.5.sink979 = phi ptr [ @.str.5, %1594 ], [ @.str.2, %1590 ]
  store i32 %1585, ptr %1584, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror(i32 noundef %1599, ptr noundef nonnull @.str.4) #11
  %1601 = load i32, ptr %1598, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror_debug(i32 noundef %1601, ptr noundef nonnull @.str.4) #11
  %1603 = load i32, ptr %1584, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #11
  %1605 = load i32, ptr %1584, align 4, !tbaa !5
  %1606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1596, ptr noundef nonnull %.str.5.sink979, i32 noundef %1597, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1600, ptr noundef %1602, ptr noundef %1604, i32 noundef %1605) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1607:                                             ; preds = %1578
  %1608 = add nsw i32 %1551, 3
  store i32 %1608, ptr @test_count, align 4, !tbaa !5
  %1609 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef nonnull %1550, ptr noundef nonnull %271, ptr noundef nonnull %299) #11
  %1610 = icmp eq i32 %1609, -1
  br i1 %1610, label %1611, label %1635

1611:                                             ; preds = %1607
  %1612 = tail call ptr @__errno_location() #12
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @s2n_print_stacktrace(ptr noundef %1614) #11
  %1616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1617 = trunc nuw i8 %1616 to i1
  br i1 %1617, label %1618, label %1622

1618:                                             ; preds = %1611
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @fileno(ptr noundef %1619) #11
  %1621 = call i32 @isatty(i32 noundef %1620) #11
  %.not332 = icmp eq i32 %1621, 0
  br i1 %.not332, label %1622, label %1623

1622:                                             ; preds = %1618, %1611
  br label %1623

1623:                                             ; preds = %1618, %1622
  %.str.5.sink990 = phi ptr [ @.str.5, %1622 ], [ @.str.2, %1618 ]
  store i32 %1613, ptr %1612, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.4) #11
  %1629 = load i32, ptr %1626, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.4) #11
  %1631 = load i32, ptr %1612, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #11
  %1633 = load i32, ptr %1612, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef nonnull %.str.5.sink990, i32 noundef %1625, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1635:                                             ; preds = %1607
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = add nsw i32 %1636, 1
  store i32 %1637, ptr @test_count, align 4, !tbaa !5
  %1638 = load ptr, ptr %7, align 8, !tbaa !9
  %1639 = getelementptr inbounds i8, ptr %1638, i64 416
  %1640 = load i32, ptr %1639, align 8, !tbaa !18
  %1641 = icmp eq i32 %1640, 2
  br i1 %1641, label %1666, label %1642

1642:                                             ; preds = %1635
  %1643 = tail call ptr @__errno_location() #12
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @s2n_print_stacktrace(ptr noundef %1645) #11
  %1647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1648 = trunc nuw i8 %1647 to i1
  br i1 %1648, label %1649, label %1653

1649:                                             ; preds = %1642
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @fileno(ptr noundef %1650) #11
  %1652 = call i32 @isatty(i32 noundef %1651) #11
  %.not294 = icmp eq i32 %1652, 0
  br i1 %.not294, label %1653, label %1654

1653:                                             ; preds = %1649, %1642
  br label %1654

1654:                                             ; preds = %1649, %1653
  %.str.5.sink1001 = phi ptr [ @.str.5, %1653 ], [ @.str.2, %1649 ]
  store i32 %1644, ptr %1643, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef nonnull @.str.4) #11
  %1660 = load i32, ptr %1657, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef nonnull @.str.4) #11
  %1662 = load i32, ptr %1643, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #11
  %1664 = load i32, ptr %1643, align 4, !tbaa !5
  %1665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1655, ptr noundef nonnull %.str.5.sink1001, i32 noundef %1656, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1659, ptr noundef %1661, ptr noundef %1663, i32 noundef %1664) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1666:                                             ; preds = %1635
  %1667 = add nsw i32 %1636, 2
  store i32 %1667, ptr @test_count, align 4, !tbaa !5
  %1668 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef nonnull %1638, ptr noundef nonnull %271, ptr noundef nonnull %299) #11
  %1669 = icmp eq i32 %1668, -1
  br i1 %1669, label %1694, label %1670

1670:                                             ; preds = %1666
  %1671 = tail call ptr @__errno_location() #12
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @s2n_print_stacktrace(ptr noundef %1673) #11
  %1675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1676 = trunc nuw i8 %1675 to i1
  br i1 %1676, label %1677, label %1681

1677:                                             ; preds = %1670
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @fileno(ptr noundef %1678) #11
  %1680 = call i32 @isatty(i32 noundef %1679) #11
  %.not295 = icmp eq i32 %1680, 0
  br i1 %.not295, label %1681, label %1682

1681:                                             ; preds = %1677, %1670
  br label %1682

1682:                                             ; preds = %1677, %1681
  %.str.5.sink1012 = phi ptr [ @.str.5, %1681 ], [ @.str.2, %1677 ]
  store i32 %1672, ptr %1671, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror(i32 noundef %1686, ptr noundef nonnull @.str.4) #11
  %1688 = load i32, ptr %1685, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror_debug(i32 noundef %1688, ptr noundef nonnull @.str.4) #11
  %1690 = load i32, ptr %1671, align 4, !tbaa !5
  %1691 = call ptr @strerror(i32 noundef %1690) #11
  %1692 = load i32, ptr %1671, align 4, !tbaa !5
  %1693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef nonnull %.str.5.sink1012, i32 noundef %1684, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1687, ptr noundef %1689, ptr noundef %1691, i32 noundef %1692) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1694:                                             ; preds = %1666
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = add nsw i32 %1695, 1
  store i32 %1696, ptr @test_count, align 4, !tbaa !5
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = icmp eq i32 %1698, 469762065
  br i1 %1699, label %1723, label %1700

1700:                                             ; preds = %1694
  %1701 = tail call ptr @__errno_location() #12
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = call i32 @s2n_print_stacktrace(ptr noundef %1703) #11
  %1705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1706 = trunc nuw i8 %1705 to i1
  br i1 %1706, label %1707, label %1711

1707:                                             ; preds = %1700
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @fileno(ptr noundef %1708) #11
  %1710 = call i32 @isatty(i32 noundef %1709) #11
  %.not296 = icmp eq i32 %1710, 0
  br i1 %.not296, label %1711, label %1712

1711:                                             ; preds = %1707, %1700
  br label %1712

1712:                                             ; preds = %1707, %1711
  %.str.5.sink1023 = phi ptr [ @.str.5, %1711 ], [ @.str.2, %1707 ]
  store i32 %1702, ptr %1701, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = load i32, ptr %1697, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror(i32 noundef %1715, ptr noundef nonnull @.str.4) #11
  %1717 = load i32, ptr %1697, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef nonnull @.str.4) #11
  %1719 = load i32, ptr %1701, align 4, !tbaa !5
  %1720 = call ptr @strerror(i32 noundef %1719) #11
  %1721 = load i32, ptr %1701, align 4, !tbaa !5
  %1722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1713, ptr noundef nonnull %.str.5.sink1023, i32 noundef %1714, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1716, ptr noundef %1718, ptr noundef %1720, i32 noundef %1721) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1723:                                             ; preds = %1694
  %1724 = add nsw i32 %1695, 2
  store i32 %1724, ptr @test_count, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror_debug(i32 noundef 469762065, ptr noundef nonnull @.str.4) #11
  %1726 = icmp eq ptr %1725, null
  br i1 %1726, label %1727, label %1750

1727:                                             ; preds = %1723
  %1728 = tail call ptr @__errno_location() #12
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @s2n_print_stacktrace(ptr noundef %1730) #11
  %1732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1733 = trunc nuw i8 %1732 to i1
  br i1 %1733, label %1734, label %1738

1734:                                             ; preds = %1727
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @fileno(ptr noundef %1735) #11
  %1737 = call i32 @isatty(i32 noundef %1736) #11
  %.not331 = icmp eq i32 %1737, 0
  br i1 %.not331, label %1738, label %1739

1738:                                             ; preds = %1734, %1727
  br label %1739

1739:                                             ; preds = %1734, %1738
  %.str.5.sink1032 = phi ptr [ @.str.5, %1738 ], [ @.str.2, %1734 ]
  store i32 %1729, ptr %1728, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = load i32, ptr %1697, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror(i32 noundef %1742, ptr noundef nonnull @.str.4) #11
  %1744 = load i32, ptr %1697, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror_debug(i32 noundef %1744, ptr noundef nonnull @.str.4) #11
  %1746 = load i32, ptr %1728, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #11
  %1748 = load i32, ptr %1728, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef nonnull %.str.5.sink1032, i32 noundef %1741, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1743, ptr noundef %1745, ptr noundef %1747, i32 noundef %1748) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1750:                                             ; preds = %1723
  store i32 0, ptr %1697, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %1751 = tail call ptr @__errno_location() #12
  store i32 0, ptr %1751, align 4, !tbaa !5
  %1752 = load i32, ptr @test_count, align 4, !tbaa !5
  %1753 = add nsw i32 %1752, 1
  store i32 %1753, ptr @test_count, align 4, !tbaa !5
  %1754 = load ptr, ptr %7, align 8, !tbaa !9
  %1755 = getelementptr inbounds i8, ptr %1754, i64 416
  %1756 = load i32, ptr %1755, align 8, !tbaa !18
  %1757 = icmp eq i32 %1756, 2
  br i1 %1757, label %1780, label %1758

1758:                                             ; preds = %1750
  %1759 = load i32, ptr %1751, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = call i32 @s2n_print_stacktrace(ptr noundef %1760) #11
  %1762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1763 = trunc nuw i8 %1762 to i1
  br i1 %1763, label %1764, label %1768

1764:                                             ; preds = %1758
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = call i32 @fileno(ptr noundef %1765) #11
  %1767 = call i32 @isatty(i32 noundef %1766) #11
  %.not297 = icmp eq i32 %1767, 0
  br i1 %.not297, label %1768, label %1769

1768:                                             ; preds = %1764, %1758
  br label %1769

1769:                                             ; preds = %1764, %1768
  %.str.5.sink1041 = phi ptr [ @.str.5, %1768 ], [ @.str.2, %1764 ]
  store i32 %1759, ptr %1751, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = load i32, ptr @test_count, align 4, !tbaa !5
  %1772 = load i32, ptr %1697, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror(i32 noundef %1772, ptr noundef nonnull @.str.4) #11
  %1774 = load i32, ptr %1697, align 4, !tbaa !5
  %1775 = call ptr @s2n_strerror_debug(i32 noundef %1774, ptr noundef nonnull @.str.4) #11
  %1776 = load i32, ptr %1751, align 4, !tbaa !5
  %1777 = call ptr @strerror(i32 noundef %1776) #11
  %1778 = load i32, ptr %1751, align 4, !tbaa !5
  %1779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1770, ptr noundef nonnull %.str.5.sink1041, i32 noundef %1771, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1773, ptr noundef %1775, ptr noundef %1777, i32 noundef %1778) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1780:                                             ; preds = %1750
  %1781 = add nsw i32 %1752, 2
  store i32 %1781, ptr @test_count, align 4, !tbaa !5
  %1782 = load ptr, ptr %6, align 8, !tbaa !9
  %1783 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1754, ptr noundef %1782) #11
  %1784 = icmp eq i32 %1783, -1
  br i1 %1784, label %1807, label %1785

1785:                                             ; preds = %1780
  %1786 = load i32, ptr %1751, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = call i32 @s2n_print_stacktrace(ptr noundef %1787) #11
  %1789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1790 = trunc nuw i8 %1789 to i1
  br i1 %1790, label %1791, label %1795

1791:                                             ; preds = %1785
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = call i32 @fileno(ptr noundef %1792) #11
  %1794 = call i32 @isatty(i32 noundef %1793) #11
  %.not298 = icmp eq i32 %1794, 0
  br i1 %.not298, label %1795, label %1796

1795:                                             ; preds = %1791, %1785
  br label %1796

1796:                                             ; preds = %1791, %1795
  %.str.5.sink1050 = phi ptr [ @.str.5, %1795 ], [ @.str.2, %1791 ]
  store i32 %1786, ptr %1751, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = load i32, ptr %1697, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror(i32 noundef %1799, ptr noundef nonnull @.str.4) #11
  %1801 = load i32, ptr %1697, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror_debug(i32 noundef %1801, ptr noundef nonnull @.str.4) #11
  %1803 = load i32, ptr %1751, align 4, !tbaa !5
  %1804 = call ptr @strerror(i32 noundef %1803) #11
  %1805 = load i32, ptr %1751, align 4, !tbaa !5
  %1806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1797, ptr noundef nonnull %.str.5.sink1050, i32 noundef %1798, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1800, ptr noundef %1802, ptr noundef %1804, i32 noundef %1805) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1807:                                             ; preds = %1780
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = add nsw i32 %1808, 1
  store i32 %1809, ptr @test_count, align 4, !tbaa !5
  %1810 = load i32, ptr %1697, align 4, !tbaa !5
  %1811 = icmp eq i32 %1810, 469762123
  br i1 %1811, label %1834, label %1812

1812:                                             ; preds = %1807
  %1813 = load i32, ptr %1751, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = call i32 @s2n_print_stacktrace(ptr noundef %1814) #11
  %1816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1817 = trunc nuw i8 %1816 to i1
  br i1 %1817, label %1818, label %1822

1818:                                             ; preds = %1812
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = call i32 @fileno(ptr noundef %1819) #11
  %1821 = call i32 @isatty(i32 noundef %1820) #11
  %.not299 = icmp eq i32 %1821, 0
  br i1 %.not299, label %1822, label %1823

1822:                                             ; preds = %1818, %1812
  br label %1823

1823:                                             ; preds = %1818, %1822
  %.str.5.sink1059 = phi ptr [ @.str.5, %1822 ], [ @.str.2, %1818 ]
  store i32 %1813, ptr %1751, align 4, !tbaa !5
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = load i32, ptr @test_count, align 4, !tbaa !5
  %1826 = load i32, ptr %1697, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror(i32 noundef %1826, ptr noundef nonnull @.str.4) #11
  %1828 = load i32, ptr %1697, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror_debug(i32 noundef %1828, ptr noundef nonnull @.str.4) #11
  %1830 = load i32, ptr %1751, align 4, !tbaa !5
  %1831 = call ptr @strerror(i32 noundef %1830) #11
  %1832 = load i32, ptr %1751, align 4, !tbaa !5
  %1833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1824, ptr noundef nonnull %.str.5.sink1059, i32 noundef %1825, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1827, ptr noundef %1829, ptr noundef %1831, i32 noundef %1832) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1834:                                             ; preds = %1807
  %1835 = add nsw i32 %1808, 2
  store i32 %1835, ptr @test_count, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror_debug(i32 noundef 469762123, ptr noundef nonnull @.str.4) #11
  %1837 = icmp eq ptr %1836, null
  br i1 %1837, label %1838, label %1860

1838:                                             ; preds = %1834
  %1839 = load i32, ptr %1751, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = call i32 @s2n_print_stacktrace(ptr noundef %1840) #11
  %1842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1843 = trunc nuw i8 %1842 to i1
  br i1 %1843, label %1844, label %1848

1844:                                             ; preds = %1838
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = call i32 @fileno(ptr noundef %1845) #11
  %1847 = call i32 @isatty(i32 noundef %1846) #11
  %.not330 = icmp eq i32 %1847, 0
  br i1 %.not330, label %1848, label %1849

1848:                                             ; preds = %1844, %1838
  br label %1849

1849:                                             ; preds = %1844, %1848
  %.str.5.sink1068 = phi ptr [ @.str.5, %1848 ], [ @.str.2, %1844 ]
  store i32 %1839, ptr %1751, align 4, !tbaa !5
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = load i32, ptr @test_count, align 4, !tbaa !5
  %1852 = load i32, ptr %1697, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror(i32 noundef %1852, ptr noundef nonnull @.str.4) #11
  %1854 = load i32, ptr %1697, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror_debug(i32 noundef %1854, ptr noundef nonnull @.str.4) #11
  %1856 = load i32, ptr %1751, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #11
  %1858 = load i32, ptr %1751, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1850, ptr noundef nonnull %.str.5.sink1068, i32 noundef %1851, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1853, ptr noundef %1855, ptr noundef %1857, i32 noundef %1858) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1860:                                             ; preds = %1834
  store i32 0, ptr %1697, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1751, align 4, !tbaa !5
  %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 = load ptr, ptr %7, align 8, !tbaa !9
  %1864 = getelementptr inbounds i8, ptr %1863, i64 416
  %1865 = load i32, ptr %1864, align 8, !tbaa !18
  %1866 = icmp eq i32 %1865, 2
  br i1 %1866, label %1889, label %1867

1867:                                             ; preds = %1860
  %1868 = load i32, ptr %1751, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @s2n_print_stacktrace(ptr noundef %1869) #11
  %1871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1872 = trunc nuw i8 %1871 to i1
  br i1 %1872, label %1873, label %1877

1873:                                             ; preds = %1867
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = call i32 @fileno(ptr noundef %1874) #11
  %1876 = call i32 @isatty(i32 noundef %1875) #11
  %.not300 = icmp eq i32 %1876, 0
  br i1 %.not300, label %1877, label %1878

1877:                                             ; preds = %1873, %1867
  br label %1878

1878:                                             ; preds = %1873, %1877
  %.str.5.sink1077 = phi ptr [ @.str.5, %1877 ], [ @.str.2, %1873 ]
  store i32 %1868, ptr %1751, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = load i32, ptr %1697, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror(i32 noundef %1881, ptr noundef nonnull @.str.4) #11
  %1883 = load i32, ptr %1697, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef nonnull @.str.4) #11
  %1885 = load i32, ptr %1751, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #11
  %1887 = load i32, ptr %1751, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef nonnull %.str.5.sink1077, i32 noundef %1880, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1882, ptr noundef %1884, ptr noundef %1886, i32 noundef %1887) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1889:                                             ; preds = %1860
  %1890 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %1891 = call ptr @s2n_config_new() #11
  store ptr %1891, ptr %8, align 8, !tbaa !9
  %1892 = load i32, ptr @test_count, align 4, !tbaa !5
  %1893 = add nsw i32 %1892, 1
  store i32 %1893, ptr @test_count, align 4, !tbaa !5
  %1894 = icmp eq ptr %1891, null
  br i1 %1894, label %1895, label %1917

1895:                                             ; preds = %1889
  %1896 = load i32, ptr %1751, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = call i32 @s2n_print_stacktrace(ptr noundef %1897) #11
  %1899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1900 = trunc nuw i8 %1899 to i1
  br i1 %1900, label %1901, label %1905

1901:                                             ; preds = %1895
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = call i32 @fileno(ptr noundef %1902) #11
  %1904 = call i32 @isatty(i32 noundef %1903) #11
  %.not329 = icmp eq i32 %1904, 0
  br i1 %.not329, label %1905, label %1906

1905:                                             ; preds = %1901, %1895
  br label %1906

1906:                                             ; preds = %1901, %1905
  %.str.5.sink1086 = phi ptr [ @.str.5, %1905 ], [ @.str.2, %1901 ]
  store i32 %1896, ptr %1751, align 4, !tbaa !5
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = load i32, ptr %1697, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror(i32 noundef %1909, ptr noundef nonnull @.str.4) #11
  %1911 = load i32, ptr %1697, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror_debug(i32 noundef %1911, ptr noundef nonnull @.str.4) #11
  %1913 = load i32, ptr %1751, align 4, !tbaa !5
  %1914 = call ptr @strerror(i32 noundef %1913) #11
  %1915 = load i32, ptr %1751, align 4, !tbaa !5
  %1916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1907, ptr noundef nonnull %.str.5.sink1086, i32 noundef %1908, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1910, ptr noundef %1912, ptr noundef %1914, i32 noundef %1915) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1917:                                             ; preds = %1889
  %1918 = add nsw i32 %1892, 2
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = getelementptr inbounds i8, ptr %1891, i64 416
  %1920 = load i32, ptr %1919, align 8, !tbaa !18
  %1921 = icmp eq i32 %1920, 0
  br i1 %1921, label %1944, label %1922

1922:                                             ; preds = %1917
  %1923 = load i32, ptr %1751, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = call i32 @s2n_print_stacktrace(ptr noundef %1924) #11
  %1926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1927 = trunc nuw i8 %1926 to i1
  br i1 %1927, label %1928, label %1932

1928:                                             ; preds = %1922
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @fileno(ptr noundef %1929) #11
  %1931 = call i32 @isatty(i32 noundef %1930) #11
  %.not301 = icmp eq i32 %1931, 0
  br i1 %.not301, label %1932, label %1933

1932:                                             ; preds = %1928, %1922
  br label %1933

1933:                                             ; preds = %1928, %1932
  %.str.5.sink1095 = phi ptr [ @.str.5, %1932 ], [ @.str.2, %1928 ]
  store i32 %1923, ptr %1751, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = load i32, ptr %1697, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror(i32 noundef %1936, ptr noundef nonnull @.str.4) #11
  %1938 = load i32, ptr %1697, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror_debug(i32 noundef %1938, ptr noundef nonnull @.str.4) #11
  %1940 = load i32, ptr %1751, align 4, !tbaa !5
  %1941 = call ptr @strerror(i32 noundef %1940) #11
  %1942 = load i32, ptr %1751, align 4, !tbaa !5
  %1943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1934, ptr noundef nonnull %.str.5.sink1095, i32 noundef %1935, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1937, ptr noundef %1939, ptr noundef %1941, i32 noundef %1942) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1944:                                             ; preds = %1917
  %1945 = add nsw i32 %1892, 3
  store i32 %1945, ptr @test_count, align 4, !tbaa !5
  %1946 = load ptr, ptr %6, align 8, !tbaa !9
  %1947 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1891, ptr noundef %1946) #11
  %1948 = icmp eq i32 %1947, -1
  br i1 %1948, label %1949, label %1971

1949:                                             ; preds = %1944
  %1950 = load i32, ptr %1751, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @s2n_print_stacktrace(ptr noundef %1951) #11
  %1953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc nuw i8 %1953 to i1
  br i1 %1954, label %1955, label %1959

1955:                                             ; preds = %1949
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @fileno(ptr noundef %1956) #11
  %1958 = call i32 @isatty(i32 noundef %1957) #11
  %.not328 = icmp eq i32 %1958, 0
  br i1 %.not328, label %1959, label %1960

1959:                                             ; preds = %1955, %1949
  br label %1960

1960:                                             ; preds = %1955, %1959
  %.str.5.sink1104 = phi ptr [ @.str.5, %1959 ], [ @.str.2, %1955 ]
  store i32 %1950, ptr %1751, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = load i32, ptr @test_count, align 4, !tbaa !5
  %1963 = load i32, ptr %1697, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror(i32 noundef %1963, ptr noundef nonnull @.str.4) #11
  %1965 = load i32, ptr %1697, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror_debug(i32 noundef %1965, ptr noundef nonnull @.str.4) #11
  %1967 = load i32, ptr %1751, align 4, !tbaa !5
  %1968 = call ptr @strerror(i32 noundef %1967) #11
  %1969 = load i32, ptr %1751, align 4, !tbaa !5
  %1970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1961, ptr noundef nonnull %.str.5.sink1104, i32 noundef %1962, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1964, ptr noundef %1966, ptr noundef %1968, i32 noundef %1969) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1971:                                             ; preds = %1944
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = add nsw i32 %1972, 1
  store i32 %1973, ptr @test_count, align 4, !tbaa !5
  %1974 = load ptr, ptr %8, align 8, !tbaa !9
  %1975 = getelementptr inbounds i8, ptr %1974, i64 416
  %1976 = load i32, ptr %1975, align 8, !tbaa !18
  %1977 = icmp eq i32 %1976, 1
  br i1 %1977, label %2000, label %1978

1978:                                             ; preds = %1971
  %1979 = load i32, ptr %1751, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @s2n_print_stacktrace(ptr noundef %1980) #11
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc nuw i8 %1982 to i1
  br i1 %1983, label %1984, label %1988

1984:                                             ; preds = %1978
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @fileno(ptr noundef %1985) #11
  %1987 = call i32 @isatty(i32 noundef %1986) #11
  %.not302 = icmp eq i32 %1987, 0
  br i1 %.not302, label %1988, label %1989

1988:                                             ; preds = %1984, %1978
  br label %1989

1989:                                             ; preds = %1984, %1988
  %.str.5.sink1113 = phi ptr [ @.str.5, %1988 ], [ @.str.2, %1984 ]
  store i32 %1979, ptr %1751, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = load i32, ptr %1697, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror(i32 noundef %1992, ptr noundef nonnull @.str.4) #11
  %1994 = load i32, ptr %1697, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror_debug(i32 noundef %1994, ptr noundef nonnull @.str.4) #11
  %1996 = load i32, ptr %1751, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #11
  %1998 = load i32, ptr %1751, align 4, !tbaa !5
  %1999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1990, ptr noundef nonnull %.str.5.sink1113, i32 noundef %1991, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1993, ptr noundef %1995, ptr noundef %1997, i32 noundef %1998) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2000:                                             ; preds = %1971
  %2001 = add nsw i32 %1972, 2
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = load ptr, ptr %6, align 8, !tbaa !9
  %2003 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1974, ptr noundef %2002) #11
  %2004 = icmp eq i32 %2003, -1
  br i1 %2004, label %2005, label %2027

2005:                                             ; preds = %2000
  %2006 = load i32, ptr %1751, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @s2n_print_stacktrace(ptr noundef %2007) #11
  %2009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2010 = trunc nuw i8 %2009 to i1
  br i1 %2010, label %2011, label %2015

2011:                                             ; preds = %2005
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @fileno(ptr noundef %2012) #11
  %2014 = call i32 @isatty(i32 noundef %2013) #11
  %.not327 = icmp eq i32 %2014, 0
  br i1 %.not327, label %2015, label %2016

2015:                                             ; preds = %2011, %2005
  br label %2016

2016:                                             ; preds = %2011, %2015
  %.str.5.sink1122 = phi ptr [ @.str.5, %2015 ], [ @.str.2, %2011 ]
  store i32 %2006, ptr %1751, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = load i32, ptr %1697, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror(i32 noundef %2019, ptr noundef nonnull @.str.4) #11
  %2021 = load i32, ptr %1697, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror_debug(i32 noundef %2021, ptr noundef nonnull @.str.4) #11
  %2023 = load i32, ptr %1751, align 4, !tbaa !5
  %2024 = call ptr @strerror(i32 noundef %2023) #11
  %2025 = load i32, ptr %1751, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef nonnull %.str.5.sink1122, i32 noundef %2018, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %2020, ptr noundef %2022, ptr noundef %2024, i32 noundef %2025) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2027:                                             ; preds = %2000
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = add nsw i32 %2028, 1
  store i32 %2029, ptr @test_count, align 4, !tbaa !5
  %2030 = load ptr, ptr %8, align 8, !tbaa !9
  %2031 = getelementptr inbounds i8, ptr %2030, i64 416
  %2032 = load i32, ptr %2031, align 8, !tbaa !18
  %2033 = icmp eq i32 %2032, 1
  br i1 %2033, label %2056, label %2034

2034:                                             ; preds = %2027
  %2035 = load i32, ptr %1751, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @s2n_print_stacktrace(ptr noundef %2036) #11
  %2038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2039 = trunc nuw i8 %2038 to i1
  br i1 %2039, label %2040, label %2044

2040:                                             ; preds = %2034
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @fileno(ptr noundef %2041) #11
  %2043 = call i32 @isatty(i32 noundef %2042) #11
  %.not303 = icmp eq i32 %2043, 0
  br i1 %.not303, label %2044, label %2045

2044:                                             ; preds = %2040, %2034
  br label %2045

2045:                                             ; preds = %2040, %2044
  %.str.5.sink1131 = phi ptr [ @.str.5, %2044 ], [ @.str.2, %2040 ]
  store i32 %2035, ptr %1751, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = load i32, ptr %1697, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror(i32 noundef %2048, ptr noundef nonnull @.str.4) #11
  %2050 = load i32, ptr %1697, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror_debug(i32 noundef %2050, ptr noundef nonnull @.str.4) #11
  %2052 = load i32, ptr %1751, align 4, !tbaa !5
  %2053 = call ptr @strerror(i32 noundef %2052) #11
  %2054 = load i32, ptr %1751, align 4, !tbaa !5
  %2055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2046, ptr noundef nonnull %.str.5.sink1131, i32 noundef %2047, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %2049, ptr noundef %2051, ptr noundef %2053, i32 noundef %2054) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2056:                                             ; preds = %2027
  %2057 = add nsw i32 %2028, 2
  store i32 %2057, ptr @test_count, align 4, !tbaa !5
  %2058 = call i32 @s2n_config_add_cert_chain_and_key(ptr noundef nonnull %2030, ptr noundef nonnull %271, ptr noundef nonnull %299) #11
  %2059 = icmp eq i32 %2058, -1
  br i1 %2059, label %2082, label %2060

2060:                                             ; preds = %2056
  %2061 = load i32, ptr %1751, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = call i32 @s2n_print_stacktrace(ptr noundef %2062) #11
  %2064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2065 = trunc nuw i8 %2064 to i1
  br i1 %2065, label %2066, label %2070

2066:                                             ; preds = %2060
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = call i32 @fileno(ptr noundef %2067) #11
  %2069 = call i32 @isatty(i32 noundef %2068) #11
  %.not304 = icmp eq i32 %2069, 0
  br i1 %.not304, label %2070, label %2071

2070:                                             ; preds = %2066, %2060
  br label %2071

2071:                                             ; preds = %2066, %2070
  %.str.5.sink1140 = phi ptr [ @.str.5, %2070 ], [ @.str.2, %2066 ]
  store i32 %2061, ptr %1751, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = load i32, ptr @test_count, align 4, !tbaa !5
  %2074 = load i32, ptr %1697, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror(i32 noundef %2074, ptr noundef nonnull @.str.4) #11
  %2076 = load i32, ptr %1697, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef nonnull @.str.4) #11
  %2078 = load i32, ptr %1751, align 4, !tbaa !5
  %2079 = call ptr @strerror(i32 noundef %2078) #11
  %2080 = load i32, ptr %1751, align 4, !tbaa !5
  %2081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2072, ptr noundef nonnull %.str.5.sink1140, i32 noundef %2073, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %2075, ptr noundef %2077, ptr noundef %2079, i32 noundef %2080) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2082:                                             ; preds = %2056
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = add nsw i32 %2083, 1
  store i32 %2084, ptr @test_count, align 4, !tbaa !5
  %2085 = load i32, ptr %1697, align 4, !tbaa !5
  %2086 = icmp eq i32 %2085, 469762123
  br i1 %2086, label %2109, label %2087

2087:                                             ; preds = %2082
  %2088 = load i32, ptr %1751, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @s2n_print_stacktrace(ptr noundef %2089) #11
  %2091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2092 = trunc nuw i8 %2091 to i1
  br i1 %2092, label %2093, label %2097

2093:                                             ; preds = %2087
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @fileno(ptr noundef %2094) #11
  %2096 = call i32 @isatty(i32 noundef %2095) #11
  %.not305 = icmp eq i32 %2096, 0
  br i1 %.not305, label %2097, label %2098

2097:                                             ; preds = %2093, %2087
  br label %2098

2098:                                             ; preds = %2093, %2097
  %.str.5.sink1149 = phi ptr [ @.str.5, %2097 ], [ @.str.2, %2093 ]
  store i32 %2088, ptr %1751, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = load i32, ptr %1697, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror(i32 noundef %2101, ptr noundef nonnull @.str.4) #11
  %2103 = load i32, ptr %1697, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror_debug(i32 noundef %2103, ptr noundef nonnull @.str.4) #11
  %2105 = load i32, ptr %1751, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #11
  %2107 = load i32, ptr %1751, align 4, !tbaa !5
  %2108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2099, ptr noundef nonnull %.str.5.sink1149, i32 noundef %2100, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %2102, ptr noundef %2104, ptr noundef %2106, i32 noundef %2107) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2109:                                             ; preds = %2082
  %2110 = add nsw i32 %2083, 2
  store i32 %2110, ptr @test_count, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror_debug(i32 noundef 469762123, ptr noundef nonnull @.str.4) #11
  %2112 = icmp eq ptr %2111, null
  br i1 %2112, label %2113, label %2135

2113:                                             ; preds = %2109
  %2114 = load i32, ptr %1751, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @s2n_print_stacktrace(ptr noundef %2115) #11
  %2117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2118 = trunc nuw i8 %2117 to i1
  br i1 %2118, label %2119, label %2123

2119:                                             ; preds = %2113
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = call i32 @fileno(ptr noundef %2120) #11
  %2122 = call i32 @isatty(i32 noundef %2121) #11
  %.not326 = icmp eq i32 %2122, 0
  br i1 %.not326, label %2123, label %2124

2123:                                             ; preds = %2119, %2113
  br label %2124

2124:                                             ; preds = %2119, %2123
  %.str.5.sink1158 = phi ptr [ @.str.5, %2123 ], [ @.str.2, %2119 ]
  store i32 %2114, ptr %1751, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = load i32, ptr %1697, align 4, !tbaa !5
  %2128 = call ptr @s2n_strerror(i32 noundef %2127, ptr noundef nonnull @.str.4) #11
  %2129 = load i32, ptr %1697, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror_debug(i32 noundef %2129, ptr noundef nonnull @.str.4) #11
  %2131 = load i32, ptr %1751, align 4, !tbaa !5
  %2132 = call ptr @strerror(i32 noundef %2131) #11
  %2133 = load i32, ptr %1751, align 4, !tbaa !5
  %2134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2125, ptr noundef nonnull %.str.5.sink1158, i32 noundef %2126, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %2128, ptr noundef %2130, ptr noundef %2132, i32 noundef %2133) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2135:                                             ; preds = %2109
  store i32 0, ptr %1697, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1751, align 4, !tbaa !5
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = add nsw i32 %2136, 1
  store i32 %2137, ptr @test_count, align 4, !tbaa !5
  %2138 = load ptr, ptr %8, align 8, !tbaa !9
  %2139 = getelementptr inbounds i8, ptr %2138, i64 416
  %2140 = load i32, ptr %2139, align 8, !tbaa !18
  %2141 = icmp eq i32 %2140, 1
  br i1 %2141, label %2164, label %2142

2142:                                             ; preds = %2135
  %2143 = load i32, ptr %1751, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @s2n_print_stacktrace(ptr noundef %2144) #11
  %2146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2147 = trunc nuw i8 %2146 to i1
  br i1 %2147, label %2148, label %2152

2148:                                             ; preds = %2142
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = call i32 @fileno(ptr noundef %2149) #11
  %2151 = call i32 @isatty(i32 noundef %2150) #11
  %.not306 = icmp eq i32 %2151, 0
  br i1 %.not306, label %2152, label %2153

2152:                                             ; preds = %2148, %2142
  br label %2153

2153:                                             ; preds = %2148, %2152
  %.str.5.sink1167 = phi ptr [ @.str.5, %2152 ], [ @.str.2, %2148 ]
  store i32 %2143, ptr %1751, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = load i32, ptr %1697, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror(i32 noundef %2156, ptr noundef nonnull @.str.4) #11
  %2158 = load i32, ptr %1697, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror_debug(i32 noundef %2158, ptr noundef nonnull @.str.4) #11
  %2160 = load i32, ptr %1751, align 4, !tbaa !5
  %2161 = call ptr @strerror(i32 noundef %2160) #11
  %2162 = load i32, ptr %1751, align 4, !tbaa !5
  %2163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2154, ptr noundef nonnull %.str.5.sink1167, i32 noundef %2155, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %2157, ptr noundef %2159, ptr noundef %2161, i32 noundef %2162) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2164:                                             ; preds = %2135
  %2165 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  %2166 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  store ptr null, ptr %9, align 8, !tbaa !9
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = add nsw i32 %2167, 1
  store i32 %2168, ptr @test_count, align 4, !tbaa !5
  %2169 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef nonnull %9, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.69) #11
  %2170 = icmp eq i32 %2169, -1
  br i1 %2170, label %2171, label %2193

2171:                                             ; preds = %2164
  %2172 = load i32, ptr %1751, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @s2n_print_stacktrace(ptr noundef %2173) #11
  %2175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2176 = trunc nuw i8 %2175 to i1
  br i1 %2176, label %2177, label %2181

2177:                                             ; preds = %2171
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = call i32 @fileno(ptr noundef %2178) #11
  %2180 = call i32 @isatty(i32 noundef %2179) #11
  %.not325 = icmp eq i32 %2180, 0
  br i1 %.not325, label %2181, label %2182

2181:                                             ; preds = %2177, %2171
  br label %2182

2182:                                             ; preds = %2177, %2181
  %.str.5.sink1176 = phi ptr [ @.str.5, %2181 ], [ @.str.2, %2177 ]
  store i32 %2172, ptr %1751, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = load i32, ptr %1697, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef nonnull @.str.4) #11
  %2187 = load i32, ptr %1697, align 4, !tbaa !5
  %2188 = call ptr @s2n_strerror_debug(i32 noundef %2187, ptr noundef nonnull @.str.4) #11
  %2189 = load i32, ptr %1751, align 4, !tbaa !5
  %2190 = call ptr @strerror(i32 noundef %2189) #11
  %2191 = load i32, ptr %1751, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2183, ptr noundef nonnull %.str.5.sink1176, i32 noundef %2184, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %2186, ptr noundef %2188, ptr noundef %2190, i32 noundef %2191) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2193:                                             ; preds = %2164
  %2194 = load ptr, ptr %9, align 8, !tbaa !9
  %2195 = load ptr, ptr %2194, align 8, !tbaa !25
  %2196 = getelementptr inbounds i8, ptr %2195, i64 8
  %2197 = load ptr, ptr %2196, align 8, !tbaa !27
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = add nsw i32 %2198, 1
  store i32 %2199, ptr @test_count, align 4, !tbaa !5
  %2200 = getelementptr inbounds i8, ptr %2197, i64 72
  %2201 = load i8, ptr %2200, align 8, !tbaa !29, !range !13, !noundef !14
  %2202 = icmp eq i8 %2201, 0
  br i1 %2202, label %2225, label %2203

2203:                                             ; preds = %2193
  %2204 = load i32, ptr %1751, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @s2n_print_stacktrace(ptr noundef %2205) #11
  %2207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2208 = trunc nuw i8 %2207 to i1
  br i1 %2208, label %2209, label %2213

2209:                                             ; preds = %2203
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @fileno(ptr noundef %2210) #11
  %2212 = call i32 @isatty(i32 noundef %2211) #11
  %.not307 = icmp eq i32 %2212, 0
  br i1 %.not307, label %2213, label %2214

2213:                                             ; preds = %2209, %2203
  br label %2214

2214:                                             ; preds = %2209, %2213
  %.str.5.sink1185 = phi ptr [ @.str.5, %2213 ], [ @.str.2, %2209 ]
  store i32 %2204, ptr %1751, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = load i32, ptr %1697, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror(i32 noundef %2217, ptr noundef nonnull @.str.4) #11
  %2219 = load i32, ptr %1697, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror_debug(i32 noundef %2219, ptr noundef nonnull @.str.4) #11
  %2221 = load i32, ptr %1751, align 4, !tbaa !5
  %2222 = call ptr @strerror(i32 noundef %2221) #11
  %2223 = load i32, ptr %1751, align 4, !tbaa !5
  %2224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef nonnull %.str.5.sink1185, i32 noundef %2216, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %2218, ptr noundef %2220, ptr noundef %2222, i32 noundef %2223) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2225:                                             ; preds = %2193
  %2226 = getelementptr inbounds i8, ptr %2197, i64 56
  %2227 = add nsw i32 %2198, 2
  store i32 %2227, ptr @test_count, align 4, !tbaa !5
  %2228 = load i32, ptr %2226, align 8, !tbaa !33
  %2229 = icmp eq i32 %2228, 794
  br i1 %2229, label %2252, label %2230

2230:                                             ; preds = %2225
  %2231 = load i32, ptr %1751, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @s2n_print_stacktrace(ptr noundef %2232) #11
  %2234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2235 = trunc nuw i8 %2234 to i1
  br i1 %2235, label %2236, label %2240

2236:                                             ; preds = %2230
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @fileno(ptr noundef %2237) #11
  %2239 = call i32 @isatty(i32 noundef %2238) #11
  %.not308 = icmp eq i32 %2239, 0
  br i1 %.not308, label %2240, label %2241

2240:                                             ; preds = %2236, %2230
  br label %2241

2241:                                             ; preds = %2236, %2240
  %.str.5.sink1194 = phi ptr [ @.str.5, %2240 ], [ @.str.2, %2236 ]
  store i32 %2231, ptr %1751, align 4, !tbaa !5
  %2242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2243 = load i32, ptr @test_count, align 4, !tbaa !5
  %2244 = load i32, ptr %1697, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror(i32 noundef %2244, ptr noundef nonnull @.str.4) #11
  %2246 = load i32, ptr %1697, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror_debug(i32 noundef %2246, ptr noundef nonnull @.str.4) #11
  %2248 = load i32, ptr %1751, align 4, !tbaa !5
  %2249 = call ptr @strerror(i32 noundef %2248) #11
  %2250 = load i32, ptr %1751, align 4, !tbaa !5
  %2251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2242, ptr noundef nonnull %.str.5.sink1194, i32 noundef %2243, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %2245, ptr noundef %2247, ptr noundef %2249, i32 noundef %2250) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2252:                                             ; preds = %2225
  %2253 = add nsw i32 %2198, 3
  store i32 %2253, ptr @test_count, align 4, !tbaa !5
  %2254 = getelementptr inbounds i8, ptr %2197, i64 60
  %2255 = load i32, ptr %2254, align 4, !tbaa !34
  %2256 = icmp eq i32 %2255, 672
  br i1 %2256, label %2279, label %2257

2257:                                             ; preds = %2252
  %2258 = load i32, ptr %1751, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = call i32 @s2n_print_stacktrace(ptr noundef %2259) #11
  %2261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2262 = trunc nuw i8 %2261 to i1
  br i1 %2262, label %2263, label %2267

2263:                                             ; preds = %2257
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = call i32 @fileno(ptr noundef %2264) #11
  %2266 = call i32 @isatty(i32 noundef %2265) #11
  %.not309 = icmp eq i32 %2266, 0
  br i1 %.not309, label %2267, label %2268

2267:                                             ; preds = %2263, %2257
  br label %2268

2268:                                             ; preds = %2263, %2267
  %.str.5.sink1203 = phi ptr [ @.str.5, %2267 ], [ @.str.2, %2263 ]
  store i32 %2258, ptr %1751, align 4, !tbaa !5
  %2269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2270 = load i32, ptr @test_count, align 4, !tbaa !5
  %2271 = load i32, ptr %1697, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror(i32 noundef %2271, ptr noundef nonnull @.str.4) #11
  %2273 = load i32, ptr %1697, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror_debug(i32 noundef %2273, ptr noundef nonnull @.str.4) #11
  %2275 = load i32, ptr %1751, align 4, !tbaa !5
  %2276 = call ptr @strerror(i32 noundef %2275) #11
  %2277 = load i32, ptr %1751, align 4, !tbaa !5
  %2278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2269, ptr noundef nonnull %.str.5.sink1203, i32 noundef %2270, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %2272, ptr noundef %2274, ptr noundef %2276, i32 noundef %2277) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2279:                                             ; preds = %2252
  %2280 = getelementptr inbounds i8, ptr %2197, i64 104
  %2281 = load ptr, ptr %2280, align 8, !tbaa !35
  %2282 = add nsw i32 %2198, 4
  store i32 %2282, ptr @test_count, align 4, !tbaa !5
  %2283 = icmp eq ptr %2281, null
  br i1 %2283, label %2284, label %2306

2284:                                             ; preds = %2279
  %2285 = load i32, ptr %1751, align 4, !tbaa !5
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = call i32 @s2n_print_stacktrace(ptr noundef %2286) #11
  %2288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2289 = trunc nuw i8 %2288 to i1
  br i1 %2289, label %2290, label %2294

2290:                                             ; preds = %2284
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = call i32 @fileno(ptr noundef %2291) #11
  %2293 = call i32 @isatty(i32 noundef %2292) #11
  %.not324 = icmp eq i32 %2293, 0
  br i1 %.not324, label %2294, label %2295

2294:                                             ; preds = %2290, %2284
  br label %2295

2295:                                             ; preds = %2290, %2294
  %.str.5.sink1212 = phi ptr [ @.str.5, %2294 ], [ @.str.2, %2290 ]
  store i32 %2285, ptr %1751, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = load i32, ptr %1697, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror(i32 noundef %2298, ptr noundef nonnull @.str.4) #11
  %2300 = load i32, ptr %1697, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef nonnull @.str.4) #11
  %2302 = load i32, ptr %1751, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #11
  %2304 = load i32, ptr %1751, align 4, !tbaa !5
  %2305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2296, ptr noundef nonnull %.str.5.sink1212, i32 noundef %2297, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %2299, ptr noundef %2301, ptr noundef %2303, i32 noundef %2304) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2306:                                             ; preds = %2279
  %2307 = add nsw i32 %2198, 5
  store i32 %2307, ptr @test_count, align 4, !tbaa !5
  %2308 = getelementptr inbounds i8, ptr %2281, i64 72
  %2309 = load i8, ptr %2308, align 8, !tbaa !29, !range !13, !noundef !14
  %2310 = icmp eq i8 %2309, 0
  br i1 %2310, label %2333, label %2311

2311:                                             ; preds = %2306
  %2312 = load i32, ptr %1751, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @s2n_print_stacktrace(ptr noundef %2313) #11
  %2315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2316 = trunc nuw i8 %2315 to i1
  br i1 %2316, label %2317, label %2321

2317:                                             ; preds = %2311
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = call i32 @fileno(ptr noundef %2318) #11
  %2320 = call i32 @isatty(i32 noundef %2319) #11
  %.not310 = icmp eq i32 %2320, 0
  br i1 %.not310, label %2321, label %2322

2321:                                             ; preds = %2317, %2311
  br label %2322

2322:                                             ; preds = %2317, %2321
  %.str.5.sink1221 = phi ptr [ @.str.5, %2321 ], [ @.str.2, %2317 ]
  store i32 %2312, ptr %1751, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = load i32, ptr @test_count, align 4, !tbaa !5
  %2325 = load i32, ptr %1697, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror(i32 noundef %2325, ptr noundef nonnull @.str.4) #11
  %2327 = load i32, ptr %1697, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror_debug(i32 noundef %2327, ptr noundef nonnull @.str.4) #11
  %2329 = load i32, ptr %1751, align 4, !tbaa !5
  %2330 = call ptr @strerror(i32 noundef %2329) #11
  %2331 = load i32, ptr %1751, align 4, !tbaa !5
  %2332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2323, ptr noundef nonnull %.str.5.sink1221, i32 noundef %2324, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %2326, ptr noundef %2328, ptr noundef %2330, i32 noundef %2331) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2333:                                             ; preds = %2306
  %2334 = getelementptr inbounds i8, ptr %2281, i64 56
  %2335 = add nsw i32 %2198, 6
  store i32 %2335, ptr @test_count, align 4, !tbaa !5
  %2336 = load i32, ptr %2334, align 8, !tbaa !33
  %2337 = icmp eq i32 %2336, 794
  br i1 %2337, label %2360, label %2338

2338:                                             ; preds = %2333
  %2339 = load i32, ptr %1751, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = call i32 @s2n_print_stacktrace(ptr noundef %2340) #11
  %2342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2343 = trunc nuw i8 %2342 to i1
  br i1 %2343, label %2344, label %2348

2344:                                             ; preds = %2338
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @fileno(ptr noundef %2345) #11
  %2347 = call i32 @isatty(i32 noundef %2346) #11
  %.not311 = icmp eq i32 %2347, 0
  br i1 %.not311, label %2348, label %2349

2348:                                             ; preds = %2344, %2338
  br label %2349

2349:                                             ; preds = %2344, %2348
  %.str.5.sink1230 = phi ptr [ @.str.5, %2348 ], [ @.str.2, %2344 ]
  store i32 %2339, ptr %1751, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = load i32, ptr %1697, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror(i32 noundef %2352, ptr noundef nonnull @.str.4) #11
  %2354 = load i32, ptr %1697, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef nonnull @.str.4) #11
  %2356 = load i32, ptr %1751, align 4, !tbaa !5
  %2357 = call ptr @strerror(i32 noundef %2356) #11
  %2358 = load i32, ptr %1751, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2350, ptr noundef nonnull %.str.5.sink1230, i32 noundef %2351, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %2353, ptr noundef %2355, ptr noundef %2357, i32 noundef %2358) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2360:                                             ; preds = %2333
  %2361 = add nsw i32 %2198, 7
  store i32 %2361, ptr @test_count, align 4, !tbaa !5
  %2362 = getelementptr inbounds i8, ptr %2281, i64 60
  %2363 = load i32, ptr %2362, align 4, !tbaa !34
  %2364 = icmp eq i32 %2363, 672
  br i1 %2364, label %2387, label %2365

2365:                                             ; preds = %2360
  %2366 = load i32, ptr %1751, align 4, !tbaa !5
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = call i32 @s2n_print_stacktrace(ptr noundef %2367) #11
  %2369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2370 = trunc nuw i8 %2369 to i1
  br i1 %2370, label %2371, label %2375

2371:                                             ; preds = %2365
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = call i32 @fileno(ptr noundef %2372) #11
  %2374 = call i32 @isatty(i32 noundef %2373) #11
  %.not312 = icmp eq i32 %2374, 0
  br i1 %.not312, label %2375, label %2376

2375:                                             ; preds = %2371, %2365
  br label %2376

2376:                                             ; preds = %2371, %2375
  %.str.5.sink1239 = phi ptr [ @.str.5, %2375 ], [ @.str.2, %2371 ]
  store i32 %2366, ptr %1751, align 4, !tbaa !5
  %2377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2378 = load i32, ptr @test_count, align 4, !tbaa !5
  %2379 = load i32, ptr %1697, align 4, !tbaa !5
  %2380 = call ptr @s2n_strerror(i32 noundef %2379, ptr noundef nonnull @.str.4) #11
  %2381 = load i32, ptr %1697, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror_debug(i32 noundef %2381, ptr noundef nonnull @.str.4) #11
  %2383 = load i32, ptr %1751, align 4, !tbaa !5
  %2384 = call ptr @strerror(i32 noundef %2383) #11
  %2385 = load i32, ptr %1751, align 4, !tbaa !5
  %2386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2377, ptr noundef nonnull %.str.5.sink1239, i32 noundef %2378, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %2380, ptr noundef %2382, ptr noundef %2384, i32 noundef %2385) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2387:                                             ; preds = %2360
  %2388 = getelementptr inbounds i8, ptr %2281, i64 104
  %2389 = load ptr, ptr %2388, align 8, !tbaa !35
  %2390 = add nsw i32 %2198, 9
  store i32 %2390, ptr @test_count, align 4, !tbaa !5
  %2391 = getelementptr inbounds i8, ptr %2389, i64 104
  %2392 = load ptr, ptr %2391, align 8, !tbaa !35
  %2393 = icmp eq ptr %2392, null
  br i1 %2393, label %2416, label %2394

2394:                                             ; preds = %2387
  %2395 = load i32, ptr %1751, align 4, !tbaa !5
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = call i32 @s2n_print_stacktrace(ptr noundef %2396) #11
  %2398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2399 = trunc nuw i8 %2398 to i1
  br i1 %2399, label %2400, label %2404

2400:                                             ; preds = %2394
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = call i32 @fileno(ptr noundef %2401) #11
  %2403 = call i32 @isatty(i32 noundef %2402) #11
  %.not313 = icmp eq i32 %2403, 0
  br i1 %.not313, label %2404, label %2405

2404:                                             ; preds = %2400, %2394
  br label %2405

2405:                                             ; preds = %2400, %2404
  %.str.5.sink1248 = phi ptr [ @.str.5, %2404 ], [ @.str.2, %2400 ]
  store i32 %2395, ptr %1751, align 4, !tbaa !5
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = load i32, ptr %1697, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror(i32 noundef %2408, ptr noundef nonnull @.str.4) #11
  %2410 = load i32, ptr %1697, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror_debug(i32 noundef %2410, ptr noundef nonnull @.str.4) #11
  %2412 = load i32, ptr %1751, align 4, !tbaa !5
  %2413 = call ptr @strerror(i32 noundef %2412) #11
  %2414 = load i32, ptr %1751, align 4, !tbaa !5
  %2415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2406, ptr noundef nonnull %.str.5.sink1248, i32 noundef %2407, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %2409, ptr noundef %2411, ptr noundef %2413, i32 noundef %2414) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2416:                                             ; preds = %2387
  %2417 = add nsw i32 %2198, 10
  store i32 %2417, ptr @test_count, align 4, !tbaa !5
  %2418 = getelementptr inbounds i8, ptr %2389, i64 72
  %2419 = load i8, ptr %2418, align 8, !tbaa !29, !range !13, !noundef !14
  %2420 = trunc nuw i8 %2419 to i1
  br i1 %2420, label %2443, label %2421

2421:                                             ; preds = %2416
  %2422 = load i32, ptr %1751, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @s2n_print_stacktrace(ptr noundef %2423) #11
  %2425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2426 = trunc nuw i8 %2425 to i1
  br i1 %2426, label %2427, label %2431

2427:                                             ; preds = %2421
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @fileno(ptr noundef %2428) #11
  %2430 = call i32 @isatty(i32 noundef %2429) #11
  %.not314 = icmp eq i32 %2430, 0
  br i1 %.not314, label %2431, label %2432

2431:                                             ; preds = %2427, %2421
  br label %2432

2432:                                             ; preds = %2427, %2431
  %.str.5.sink1257 = phi ptr [ @.str.5, %2431 ], [ @.str.2, %2427 ]
  store i32 %2422, ptr %1751, align 4, !tbaa !5
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = load i32, ptr %1697, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror(i32 noundef %2435, ptr noundef nonnull @.str.4) #11
  %2437 = load i32, ptr %1697, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror_debug(i32 noundef %2437, ptr noundef nonnull @.str.4) #11
  %2439 = load i32, ptr %1751, align 4, !tbaa !5
  %2440 = call ptr @strerror(i32 noundef %2439) #11
  %2441 = load i32, ptr %1751, align 4, !tbaa !5
  %2442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2433, ptr noundef nonnull %.str.5.sink1257, i32 noundef %2434, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %2436, ptr noundef %2438, ptr noundef %2440, i32 noundef %2441) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2443:                                             ; preds = %2416
  %2444 = getelementptr inbounds i8, ptr %2389, i64 56
  %2445 = add nsw i32 %2198, 11
  store i32 %2445, ptr @test_count, align 4, !tbaa !5
  %2446 = load i32, ptr %2444, align 8, !tbaa !33
  %2447 = icmp eq i32 %2446, 794
  br i1 %2447, label %2470, label %2448

2448:                                             ; preds = %2443
  %2449 = load i32, ptr %1751, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @s2n_print_stacktrace(ptr noundef %2450) #11
  %2452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2453 = trunc nuw i8 %2452 to i1
  br i1 %2453, label %2454, label %2458

2454:                                             ; preds = %2448
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @fileno(ptr noundef %2455) #11
  %2457 = call i32 @isatty(i32 noundef %2456) #11
  %.not315 = icmp eq i32 %2457, 0
  br i1 %.not315, label %2458, label %2459

2458:                                             ; preds = %2454, %2448
  br label %2459

2459:                                             ; preds = %2454, %2458
  %.str.5.sink1266 = phi ptr [ @.str.5, %2458 ], [ @.str.2, %2454 ]
  store i32 %2449, ptr %1751, align 4, !tbaa !5
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = load i32, ptr %1697, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef nonnull @.str.4) #11
  %2464 = load i32, ptr %1697, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef nonnull @.str.4) #11
  %2466 = load i32, ptr %1751, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #11
  %2468 = load i32, ptr %1751, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2460, ptr noundef nonnull %.str.5.sink1266, i32 noundef %2461, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2463, ptr noundef %2465, ptr noundef %2467, i32 noundef %2468) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2470:                                             ; preds = %2443
  %2471 = add nsw i32 %2198, 12
  store i32 %2471, ptr @test_count, align 4, !tbaa !5
  %2472 = getelementptr inbounds i8, ptr %2389, i64 60
  %2473 = load i32, ptr %2472, align 4, !tbaa !34
  %2474 = icmp eq i32 %2473, 672
  br i1 %2474, label %2497, label %2475

2475:                                             ; preds = %2470
  %2476 = load i32, ptr %1751, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = call i32 @s2n_print_stacktrace(ptr noundef %2477) #11
  %2479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2480 = trunc nuw i8 %2479 to i1
  br i1 %2480, label %2481, label %2485

2481:                                             ; preds = %2475
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = call i32 @fileno(ptr noundef %2482) #11
  %2484 = call i32 @isatty(i32 noundef %2483) #11
  %.not316 = icmp eq i32 %2484, 0
  br i1 %.not316, label %2485, label %2486

2485:                                             ; preds = %2481, %2475
  br label %2486

2486:                                             ; preds = %2481, %2485
  %.str.5.sink1275 = phi ptr [ @.str.5, %2485 ], [ @.str.2, %2481 ]
  store i32 %2476, ptr %1751, align 4, !tbaa !5
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = load i32, ptr @test_count, align 4, !tbaa !5
  %2489 = load i32, ptr %1697, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror(i32 noundef %2489, ptr noundef nonnull @.str.4) #11
  %2491 = load i32, ptr %1697, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror_debug(i32 noundef %2491, ptr noundef nonnull @.str.4) #11
  %2493 = load i32, ptr %1751, align 4, !tbaa !5
  %2494 = call ptr @strerror(i32 noundef %2493) #11
  %2495 = load i32, ptr %1751, align 4, !tbaa !5
  %2496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2487, ptr noundef nonnull %.str.5.sink1275, i32 noundef %2488, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %2490, ptr noundef %2492, ptr noundef %2494, i32 noundef %2495) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2497:                                             ; preds = %2470
  %2498 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  %2499 = load i32, ptr @test_count, align 4, !tbaa !5
  %2500 = add nsw i32 %2499, 1
  store i32 %2500, ptr @test_count, align 4, !tbaa !5
  %2501 = call i32 @s2n_io_pair_close(ptr noundef nonnull %3) #11
  %2502 = icmp eq i32 %2501, -1
  br i1 %2502, label %2503, label %2525

2503:                                             ; preds = %2497
  %2504 = load i32, ptr %1751, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = call i32 @s2n_print_stacktrace(ptr noundef %2505) #11
  %2507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2508 = trunc nuw i8 %2507 to i1
  br i1 %2508, label %2509, label %2513

2509:                                             ; preds = %2503
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = call i32 @fileno(ptr noundef %2510) #11
  %2512 = call i32 @isatty(i32 noundef %2511) #11
  %.not323 = icmp eq i32 %2512, 0
  br i1 %.not323, label %2513, label %2514

2513:                                             ; preds = %2509, %2503
  br label %2514

2514:                                             ; preds = %2509, %2513
  %.str.5.sink1284 = phi ptr [ @.str.5, %2513 ], [ @.str.2, %2509 ]
  store i32 %2504, ptr %1751, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = load i32, ptr %1697, align 4, !tbaa !5
  %2518 = call ptr @s2n_strerror(i32 noundef %2517, ptr noundef nonnull @.str.4) #11
  %2519 = load i32, ptr %1697, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror_debug(i32 noundef %2519, ptr noundef nonnull @.str.4) #11
  %2521 = load i32, ptr %1751, align 4, !tbaa !5
  %2522 = call ptr @strerror(i32 noundef %2521) #11
  %2523 = load i32, ptr %1751, align 4, !tbaa !5
  %2524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2515, ptr noundef nonnull %.str.5.sink1284, i32 noundef %2516, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2518, ptr noundef %2520, ptr noundef %2522, i32 noundef %2523) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2525:                                             ; preds = %2497
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = add nsw i32 %2526, 1
  store i32 %2527, ptr @test_count, align 4, !tbaa !5
  %2528 = call i32 @s2n_config_free(ptr noundef nonnull %414) #11
  %2529 = icmp eq i32 %2528, -1
  br i1 %2529, label %2530, label %2552

2530:                                             ; preds = %2525
  %2531 = load i32, ptr %1751, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @s2n_print_stacktrace(ptr noundef %2532) #11
  %2534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2535 = trunc nuw i8 %2534 to i1
  br i1 %2535, label %2536, label %2540

2536:                                             ; preds = %2530
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = call i32 @fileno(ptr noundef %2537) #11
  %2539 = call i32 @isatty(i32 noundef %2538) #11
  %.not322 = icmp eq i32 %2539, 0
  br i1 %.not322, label %2540, label %2541

2540:                                             ; preds = %2536, %2530
  br label %2541

2541:                                             ; preds = %2536, %2540
  %.str.5.sink1293 = phi ptr [ @.str.5, %2540 ], [ @.str.2, %2536 ]
  store i32 %2531, ptr %1751, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = load i32, ptr %1697, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef nonnull @.str.4) #11
  %2546 = load i32, ptr %1697, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror_debug(i32 noundef %2546, ptr noundef nonnull @.str.4) #11
  %2548 = load i32, ptr %1751, align 4, !tbaa !5
  %2549 = call ptr @strerror(i32 noundef %2548) #11
  %2550 = load i32, ptr %1751, align 4, !tbaa !5
  %2551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2542, ptr noundef nonnull %.str.5.sink1293, i32 noundef %2543, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2545, ptr noundef %2547, ptr noundef %2549, i32 noundef %2550) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2552:                                             ; preds = %2525
  call void @free(ptr noundef %271) #11
  call void @free(ptr noundef %299) #11
  call void @free(ptr noundef %157) #11
  call void @free(ptr noundef %185) #11
  %2553 = call i32 @s2n_cleanup() #11
  %2554 = icmp eq i32 %2553, -1
  br i1 %2554, label %2555, label %2577

2555:                                             ; preds = %2552
  %2556 = load i32, ptr %1751, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @s2n_print_stacktrace(ptr noundef %2557) #11
  %2559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2560 = trunc nuw i8 %2559 to i1
  br i1 %2560, label %2561, label %2565

2561:                                             ; preds = %2555
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = call i32 @fileno(ptr noundef %2562) #11
  %2564 = call i32 @isatty(i32 noundef %2563) #11
  %.not321 = icmp eq i32 %2564, 0
  br i1 %.not321, label %2565, label %2566

2565:                                             ; preds = %2561, %2555
  br label %2566

2566:                                             ; preds = %2561, %2565
  %.str.5.sink1302 = phi ptr [ @.str.5, %2565 ], [ @.str.2, %2561 ]
  store i32 %2556, ptr %1751, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = load i32, ptr @test_count, align 4, !tbaa !5
  %2569 = load i32, ptr %1697, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror(i32 noundef %2569, ptr noundef nonnull @.str.4) #11
  %2571 = load i32, ptr %1697, align 4, !tbaa !5
  %2572 = call ptr @s2n_strerror_debug(i32 noundef %2571, ptr noundef nonnull @.str.4) #11
  %2573 = load i32, ptr %1751, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #11
  %2575 = load i32, ptr %1751, align 4, !tbaa !5
  %2576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2567, ptr noundef nonnull %.str.5.sink1302, i32 noundef %2568, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2570, ptr noundef %2572, ptr noundef %2574, i32 noundef %2575) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2577:                                             ; preds = %2552
  %2578 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %2579 = icmp eq i32 %2578, -1
  br i1 %2579, label %2580, label %2602

2580:                                             ; preds = %2577
  %2581 = load i32, ptr %1751, align 4, !tbaa !5
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @s2n_print_stacktrace(ptr noundef %2582) #11
  %2584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2585 = trunc nuw i8 %2584 to i1
  br i1 %2585, label %2586, label %2590

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

2590:                                             ; preds = %2586, %2580
  br label %2591

2591:                                             ; preds = %2586, %2590
  %.str.5.sink1311 = phi ptr [ @.str.5, %2590 ], [ @.str.2, %2586 ]
  store i32 %2581, ptr %1751, align 4, !tbaa !5
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = load i32, ptr @test_count, align 4, !tbaa !5
  %2594 = load i32, ptr %1697, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror(i32 noundef %2594, ptr noundef nonnull @.str.4) #11
  %2596 = load i32, ptr %1697, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror_debug(i32 noundef %2596, ptr noundef nonnull @.str.4) #11
  %2598 = load i32, ptr %1751, align 4, !tbaa !5
  %2599 = call ptr @strerror(i32 noundef %2598) #11
  %2600 = load i32, ptr %1751, align 4, !tbaa !5
  %2601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2592, ptr noundef nonnull %.str.5.sink1311, i32 noundef %2593, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2595, ptr noundef %2597, ptr noundef %2599, i32 noundef %2600) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2602:                                             ; preds = %2577
  %2603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2604 = trunc nuw i8 %2603 to i1
  br i1 %2604, label %2605, label %2616

2605:                                             ; preds = %2602
  %2606 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2607 = call i32 @fileno(ptr noundef %2606) #11
  %2608 = call i32 @isatty(i32 noundef %2607) #11
  %.not317 = icmp eq i32 %2608, 0
  br i1 %.not317, label %2616, label %2609

2609:                                             ; preds = %2605
  %2610 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not319 = icmp eq i32 %2610, 0
  %2611 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not319, label %2614, label %2612

2612:                                             ; preds = %2609
  %2613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef nonnull @.str.86, i32 noundef %2610) #11
  br label %2623

2614:                                             ; preds = %2609
  %2615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef nonnull @.str.87) #11
  br label %2623

2616:                                             ; preds = %2605, %2602
  %2617 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not318 = icmp eq i32 %2617, 0
  %2618 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not318, label %2621, label %2619

2619:                                             ; preds = %2616
  %2620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef nonnull @.str.88, i32 noundef %2617) #11
  br label %2623

2621:                                             ; preds = %2616
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef nonnull @.str.89) #11
  br label %2623

2623:                                             ; preds = %2619, %2621, %2612, %2614
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

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

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 #5

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

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_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8

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

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #3

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

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

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

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, 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_cert_chain_and_key_set_ctx(ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

declare zeroext i1 @s2n_handshake_type_check_flag(ptr noundef, i32 noundef) local_unnamed_addr #3

declare ptr @s2n_connection_get_selected_cert(ptr noundef) local_unnamed_addr #3

declare ptr @s2n_cert_chain_and_key_get_ctx(ptr noundef) local_unnamed_addr #3

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

declare i32 @s2n_connection_free(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_config_add_cert_chain_and_key(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr 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 i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #3

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

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #10

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 = { 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 #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 = { 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 #5 = { 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 nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind allocsize(0) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!19, !6, i64 416}
!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, !10, i64 0}
!26 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !21, i64 16, !21, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!27 = !{!28, !10, i64 8}
!28 = !{!"s2n_cert_chain", !6, i64 0, !10, i64 8}
!29 = !{!30, !12, i64 72}
!30 = !{!"s2n_cert", !6, i64 0, !31, i64 8, !32, i64 56, !21, i64 80, !10, i64 104}
!31 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!32 = !{!"s2n_cert_info", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !12, i64 16}
!33 = !{!30, !6, i64 56}
!34 = !{!30, !6, i64 60}
!35 = !{!30, !10, i64 104}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass