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

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

%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_result = type { i32 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%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_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 [105 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
@__const.main.test_sig_scheme_list = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.8 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca [12000 x i8], align 16
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i64, align 8
  %13 = alloca [2 x ptr], align 16
  %14 = alloca %struct.s2n_signature_preferences, align 8
  %15 = alloca %struct.s2n_security_policy, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %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 %struct.s2n_result, 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 ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca %struct.s2n_result, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca ptr, align 8
  %78 = alloca i32, align 4
  %79 = alloca ptr, align 8
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca ptr, align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca i32, align 4
  %89 = alloca %struct.s2n_result, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca %struct.s2n_result, align 4
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_result, align 4
  %108 = alloca i32, align 4
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %114

114:                                              ; preds = %2
  br label %115

115:                                              ; preds = %114
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %116 = load ptr, ptr @stdout, align 8, !tbaa !9
  %117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %116, ptr noundef @.str, ptr noundef @.str.1) #11
  %118 = load ptr, ptr @stdout, align 8, !tbaa !9
  %119 = call i32 @fflush(ptr noundef %118)
  br label %120

120:                                              ; preds = %115
  %121 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %122 = icmp eq i32 %121, -1
  br i1 %122, label %123, label %174

123:                                              ; preds = %120
  br label %124

124:                                              ; preds = %123
  br label %125

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %126 = call ptr @__errno_location() #12
  %127 = load i32, ptr %126, align 4, !tbaa !5
  store i32 %127, ptr %6, align 4, !tbaa !5
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = call i32 @s2n_print_stacktrace(ptr noundef %128)
  %130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %131 = trunc i8 %130 to i1
  br i1 %131, label %132, label %154

132:                                              ; preds = %125
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = call i32 @fileno(ptr noundef %133) #11
  %135 = call i32 @isatty(i32 noundef %134) #11
  %136 = icmp ne i32 %135, 0
  br i1 %136, label %137, label %154

137:                                              ; preds = %132
  %138 = load i32, ptr %6, align 4, !tbaa !5
  %139 = call ptr @__errno_location() #12
  store i32 %138, ptr %139, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = call ptr @s2n_strerror(i32 noundef %143, ptr noundef @.str.4)
  %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_debug(i32 noundef %146, ptr noundef @.str.4)
  %148 = call ptr @__errno_location() #12
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = call ptr @strerror(i32 noundef %149) #11
  %151 = call ptr @__errno_location() #12
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef @.str.2, i32 noundef %141, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 39, ptr noundef %144, ptr noundef %147, ptr noundef %150, i32 noundef %152) #11
  br label %171

154:                                              ; preds = %132, %125
  %155 = load i32, ptr %6, align 4, !tbaa !5
  %156 = call ptr @__errno_location() #12
  store i32 %155, ptr %156, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror(i32 noundef %160, ptr noundef @.str.4)
  %162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @s2n_strerror_debug(i32 noundef %163, ptr noundef @.str.4)
  %165 = call ptr @__errno_location() #12
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call ptr @strerror(i32 noundef %166) #11
  %168 = call ptr @__errno_location() #12
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef @.str.5, i32 noundef %158, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 39, ptr noundef %161, ptr noundef %164, ptr noundef %167, i32 noundef %169) #11
  br label %171

171:                                              ; preds = %154, %137
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %172

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

173:                                              ; No predecessors!
  br label %174

174:                                              ; preds = %173, %120
  br label %175

175:                                              ; preds = %174
  br label %176

176:                                              ; preds = %175
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = add nsw i32 %177, 1
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = call i32 @s2n_enable_atexit()
  %180 = icmp eq i32 %179, -1
  br i1 %180, label %181, label %232

181:                                              ; preds = %176
  br label %182

182:                                              ; preds = %181
  br label %183

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

190:                                              ; preds = %183
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = call i32 @fileno(ptr noundef %191) #11
  %193 = call i32 @isatty(i32 noundef %192) #11
  %194 = icmp ne i32 %193, 0
  br i1 %194, label %195, label %212

195:                                              ; preds = %190
  %196 = load i32, ptr %7, align 4, !tbaa !5
  %197 = call ptr @__errno_location() #12
  store i32 %196, ptr %197, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror(i32 noundef %201, ptr noundef @.str.4)
  %203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef @.str.4)
  %206 = call ptr @__errno_location() #12
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = call ptr @strerror(i32 noundef %207) #11
  %209 = call ptr @__errno_location() #12
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %198, ptr noundef @.str.2, i32 noundef %199, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 39, ptr noundef %202, ptr noundef %205, ptr noundef %208, i32 noundef %210) #11
  br label %229

212:                                              ; preds = %190, %183
  %213 = load i32, ptr %7, align 4, !tbaa !5
  %214 = call ptr @__errno_location() #12
  store i32 %213, ptr %214, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror(i32 noundef %218, ptr noundef @.str.4)
  %220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @s2n_strerror_debug(i32 noundef %221, ptr noundef @.str.4)
  %223 = call ptr @__errno_location() #12
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call ptr @strerror(i32 noundef %224) #11
  %226 = call ptr @__errno_location() #12
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef @.str.5, i32 noundef %216, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 39, ptr noundef %219, ptr noundef %222, ptr noundef %225, i32 noundef %227) #11
  br label %229

229:                                              ; preds = %212, %195
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %230

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

231:                                              ; No predecessors!
  br label %232

232:                                              ; preds = %231, %176
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  %236 = call i32 @s2n_init()
  %237 = icmp eq i32 %236, -1
  br i1 %237, label %238, label %289

238:                                              ; preds = %235
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %241 = call ptr @__errno_location() #12
  %242 = load i32, ptr %241, align 4, !tbaa !5
  store i32 %242, ptr %8, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = call i32 @s2n_print_stacktrace(ptr noundef %243)
  %245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %246 = trunc i8 %245 to i1
  br i1 %246, label %247, label %269

247:                                              ; preds = %240
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = call i32 @fileno(ptr noundef %248) #11
  %250 = call i32 @isatty(i32 noundef %249) #11
  %251 = icmp ne i32 %250, 0
  br i1 %251, label %252, label %269

252:                                              ; preds = %247
  %253 = load i32, ptr %8, align 4, !tbaa !5
  %254 = call ptr @__errno_location() #12
  store i32 %253, ptr %254, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror(i32 noundef %258, ptr noundef @.str.4)
  %260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror_debug(i32 noundef %261, ptr noundef @.str.4)
  %263 = call ptr @__errno_location() #12
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call ptr @strerror(i32 noundef %264) #11
  %266 = call ptr @__errno_location() #12
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef @.str.2, i32 noundef %256, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 39, ptr noundef %259, ptr noundef %262, ptr noundef %265, i32 noundef %267) #11
  br label %286

269:                                              ; preds = %247, %240
  %270 = load i32, ptr %8, align 4, !tbaa !5
  %271 = call ptr @__errno_location() #12
  store i32 %270, ptr %271, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror(i32 noundef %275, ptr noundef @.str.4)
  %277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = call ptr @s2n_strerror_debug(i32 noundef %278, ptr noundef @.str.4)
  %280 = call ptr @__errno_location() #12
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %282 = call ptr @strerror(i32 noundef %281) #11
  %283 = call ptr @__errno_location() #12
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %272, ptr noundef @.str.5, i32 noundef %273, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 39, ptr noundef %276, ptr noundef %279, ptr noundef %282, i32 noundef %284) #11
  br label %286

286:                                              ; preds = %269, %252
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %287

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

288:                                              ; No predecessors!
  br label %289

289:                                              ; preds = %288, %235
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 12000, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 16 %9, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  store i64 0, ptr %12, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %13, ptr align 16 @__const.main.test_sig_scheme_list, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #11
  %292 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %14, i32 0, i32 0
  store i8 2, ptr %292, align 8, !tbaa !17
  %293 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %14, i32 0, i32 1
  %294 = getelementptr inbounds [2 x ptr], ptr %13, i64 0, i64 0
  store ptr %294, ptr %293, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 64, ptr %15) #11
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 64, i1 false)
  %295 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 0
  store i8 33, ptr %295, align 8, !tbaa !20
  %296 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 1
  %297 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 2
  %298 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 3
  %299 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 4
  store ptr %14, ptr %299, align 8, !tbaa !22
  %300 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 5
  %301 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 6
  %302 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 7
  %303 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  store ptr null, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  %304 = call ptr @s2n_config_new()
  store ptr %304, ptr %17, align 8, !tbaa !9
  br label %305

305:                                              ; preds = %291
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr @test_count, align 4, !tbaa !5
  %308 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %308, ptr %16, align 8, !tbaa !9
  %309 = icmp eq ptr %308, null
  br i1 %309, label %310, label %363

310:                                              ; preds = %305
  br label %311

311:                                              ; preds = %310
  br label %312

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

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

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

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

358:                                              ; preds = %341, %324
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %359

359:                                              ; preds = %358
  br label %360

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

361:                                              ; No predecessors!
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362, %305
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = load ptr, ptr %17, align 8, !tbaa !9
  %370 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %369, ptr noundef @.str.9)
  %371 = icmp eq i32 %370, -1
  br i1 %371, label %372, label %425

372:                                              ; preds = %366
  br label %373

373:                                              ; preds = %372
  br label %374

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

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

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

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

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

421:                                              ; preds = %420
  br label %422

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

423:                                              ; No predecessors!
  br label %424

424:                                              ; preds = %423
  br label %425

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

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @test_count, align 4, !tbaa !5
  %431 = load ptr, ptr %16, align 8, !tbaa !9
  %432 = load ptr, ptr %17, align 8, !tbaa !9
  %433 = call i32 @s2n_connection_set_config(ptr noundef %431, ptr noundef %432)
  %434 = icmp eq i32 %433, -1
  br i1 %434, label %435, label %488

435:                                              ; preds = %428
  br label %436

436:                                              ; preds = %435
  br label %437

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

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

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

466:                                              ; preds = %444, %437
  %467 = load i32, ptr %20, align 4, !tbaa !5
  %468 = call ptr @__errno_location() #12
  store i32 %467, ptr %468, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef @.str.4)
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef %475, ptr noundef @.str.4)
  %477 = call ptr @__errno_location() #12
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #11
  %480 = call ptr @__errno_location() #12
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef @.str.5, i32 noundef %470, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 71, ptr noundef %473, ptr noundef %476, ptr noundef %479, i32 noundef %481) #11
  br label %483

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

484:                                              ; preds = %483
  br label %485

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

486:                                              ; No predecessors!
  br label %487

487:                                              ; preds = %486
  br label %488

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

489:                                              ; preds = %488
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %495 = call i32 @s2n_read_test_pem(ptr noundef @.str.12, ptr noundef %494, i64 noundef 12000)
  %496 = icmp eq i32 %495, -1
  br i1 %496, label %497, label %550

497:                                              ; preds = %491
  br label %498

498:                                              ; preds = %497
  br label %499

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

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

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

528:                                              ; preds = %506, %499
  %529 = load i32, ptr %21, align 4, !tbaa !5
  %530 = call ptr @__errno_location() #12
  store i32 %529, ptr %530, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror(i32 noundef %534, ptr noundef @.str.4)
  %536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = call ptr @s2n_strerror_debug(i32 noundef %537, ptr noundef @.str.4)
  %539 = call ptr @__errno_location() #12
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @strerror(i32 noundef %540) #11
  %542 = call ptr @__errno_location() #12
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %531, ptr noundef @.str.5, i32 noundef %532, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 73, ptr noundef %535, ptr noundef %538, ptr noundef %541, i32 noundef %543) #11
  br label %545

545:                                              ; preds = %528, %511
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %546

546:                                              ; preds = %545
  br label %547

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

548:                                              ; No predecessors!
  br label %549

549:                                              ; preds = %548
  br label %550

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

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551
  %553 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %554 = call i64 @strlen(ptr noundef %553) #14
  store i64 %554, ptr %12, align 8, !tbaa !15
  br label %555

555:                                              ; preds = %552
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr @test_count, align 4, !tbaa !5
  %558 = call ptr @BIO_s_mem()
  %559 = call ptr @BIO_new(ptr noundef %558)
  store ptr %559, ptr %11, align 8, !tbaa !9
  %560 = icmp eq ptr %559, null
  br i1 %560, label %561, label %614

561:                                              ; preds = %555
  br label %562

562:                                              ; preds = %561
  br label %563

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

570:                                              ; preds = %563
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = call i32 @fileno(ptr noundef %571) #11
  %573 = call i32 @isatty(i32 noundef %572) #11
  %574 = icmp ne i32 %573, 0
  br i1 %574, label %575, label %592

575:                                              ; preds = %570
  %576 = load i32, ptr %22, align 4, !tbaa !5
  %577 = call ptr @__errno_location() #12
  store i32 %576, ptr %577, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror(i32 noundef %581, ptr noundef @.str.4)
  %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_debug(i32 noundef %584, ptr noundef @.str.4)
  %586 = call ptr @__errno_location() #12
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = call ptr @strerror(i32 noundef %587) #11
  %589 = call ptr @__errno_location() #12
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %578, ptr noundef @.str.2, i32 noundef %579, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 77, ptr noundef %582, ptr noundef %585, ptr noundef %588, i32 noundef %590) #11
  br label %609

592:                                              ; preds = %570, %563
  %593 = load i32, ptr %22, align 4, !tbaa !5
  %594 = call ptr @__errno_location() #12
  store i32 %593, ptr %594, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror(i32 noundef %598, ptr noundef @.str.4)
  %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_debug(i32 noundef %601, ptr noundef @.str.4)
  %603 = call ptr @__errno_location() #12
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #11
  %606 = call ptr @__errno_location() #12
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %595, ptr noundef @.str.5, i32 noundef %596, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 77, ptr noundef %599, ptr noundef %602, ptr noundef %605, i32 noundef %607) #11
  br label %609

609:                                              ; preds = %592, %575
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %610

610:                                              ; preds = %609
  br label %611

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

612:                                              ; No predecessors!
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613, %555
  br label %615

615:                                              ; preds = %614
  br label %616

616:                                              ; preds = %615
  br label %617

617:                                              ; preds = %616
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr @test_count, align 4, !tbaa !5
  %620 = load ptr, ptr %11, align 8, !tbaa !9
  %621 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %622 = load i64, ptr %12, align 8, !tbaa !15
  %623 = trunc i64 %622 to i32
  %624 = call i32 @BIO_write(ptr noundef %620, ptr noundef %621, i32 noundef %623)
  %625 = icmp sgt i32 %624, 0
  br i1 %625, label %679, label %626

626:                                              ; preds = %617
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %629 = call ptr @__errno_location() #12
  %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) #11
  %638 = call i32 @isatty(i32 noundef %637) #11
  %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() #12
  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() #12
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #11
  %654 = call ptr @__errno_location() #12
  %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 78, ptr noundef %647, ptr noundef %650, ptr noundef %653, i32 noundef %655) #11
  br label %674

657:                                              ; preds = %635, %628
  %658 = load i32, ptr %23, align 4, !tbaa !5
  %659 = call ptr @__errno_location() #12
  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() #12
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #11
  %671 = call ptr @__errno_location() #12
  %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 78, ptr noundef %664, ptr noundef %667, ptr noundef %670, i32 noundef %672) #11
  br label %674

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

675:                                              ; preds = %674
  br label %676

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

677:                                              ; No predecessors!
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678, %617
  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 = load ptr, ptr %11, align 8, !tbaa !9
  %686 = call ptr @PEM_read_bio_X509(ptr noundef %685, ptr noundef null, ptr noundef null, ptr noundef null)
  store ptr %686, ptr %10, align 8, !tbaa !9
  %687 = icmp eq ptr %686, null
  br i1 %687, label %688, label %741

688:                                              ; preds = %682
  br label %689

689:                                              ; preds = %688
  br label %690

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

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

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

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

736:                                              ; preds = %719, %702
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %737

737:                                              ; preds = %736
  br label %738

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

739:                                              ; No predecessors!
  br label %740

740:                                              ; preds = %739
  br label %741

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

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load ptr, ptr %16, align 8, !tbaa !9
  %748 = load ptr, ptr %10, align 8, !tbaa !9
  %749 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %747, ptr noundef %748)
  %750 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %749, ptr %750, align 4
  %751 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %752 = load i32, ptr %751, align 4
  %753 = call zeroext i1 @s2n_result_is_ok(i32 %752)
  br i1 %753, label %807, label %754

754:                                              ; preds = %744
  br label %755

755:                                              ; preds = %754
  br label %756

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

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

768:                                              ; preds = %763
  %769 = load i32, ptr %26, align 4, !tbaa !5
  %770 = call ptr @__errno_location() #12
  store i32 %769, ptr %770, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef @.str.4)
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef @.str.4)
  %779 = call ptr @__errno_location() #12
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #11
  %782 = call ptr @__errno_location() #12
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef @.str.2, i32 noundef %772, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 81, ptr noundef %775, ptr noundef %778, ptr noundef %781, i32 noundef %783) #11
  br label %802

785:                                              ; preds = %763, %756
  %786 = load i32, ptr %26, align 4, !tbaa !5
  %787 = call ptr @__errno_location() #12
  store i32 %786, ptr %787, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef @.str.4)
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef @.str.4)
  %796 = call ptr @__errno_location() #12
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @strerror(i32 noundef %797) #11
  %799 = call ptr @__errno_location() #12
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef @.str.5, i32 noundef %789, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 81, ptr noundef %792, ptr noundef %795, ptr noundef %798, i32 noundef %800) #11
  br label %802

802:                                              ; preds = %785, %768
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %803

803:                                              ; preds = %802
  br label %804

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

805:                                              ; No predecessors!
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806, %744
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr @test_count, align 4, !tbaa !5
  %813 = load ptr, ptr %17, align 8, !tbaa !9
  %814 = call i32 @s2n_config_free(ptr noundef %813)
  %815 = icmp eq i32 %814, -1
  br i1 %815, label %816, label %869

816:                                              ; preds = %810
  br label %817

817:                                              ; preds = %816
  br label %818

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

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

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

847:                                              ; preds = %825, %818
  %848 = load i32, ptr %27, align 4, !tbaa !5
  %849 = call ptr @__errno_location() #12
  store i32 %848, ptr %849, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef @.str.4)
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror_debug(i32 noundef %856, ptr noundef @.str.4)
  %858 = call ptr @__errno_location() #12
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @strerror(i32 noundef %859) #11
  %861 = call ptr @__errno_location() #12
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %850, ptr noundef @.str.5, i32 noundef %851, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %854, ptr noundef %857, ptr noundef %860, i32 noundef %862) #11
  br label %864

864:                                              ; preds = %847, %830
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %865

865:                                              ; preds = %864
  br label %866

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

867:                                              ; No predecessors!
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868, %810
  br label %870

870:                                              ; preds = %869
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = load ptr, ptr %16, align 8, !tbaa !9
  %876 = call i32 @s2n_connection_free(ptr noundef %875)
  %877 = icmp eq i32 %876, -1
  br i1 %877, label %878, label %931

878:                                              ; preds = %872
  br label %879

879:                                              ; preds = %878
  br label %880

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

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

892:                                              ; preds = %887
  %893 = load i32, ptr %28, align 4, !tbaa !5
  %894 = call ptr @__errno_location() #12
  store i32 %893, ptr %894, 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 @.str.4)
  %900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call ptr @s2n_strerror_debug(i32 noundef %901, ptr noundef @.str.4)
  %903 = call ptr @__errno_location() #12
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #11
  %906 = call ptr @__errno_location() #12
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef @.str.2, i32 noundef %896, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 84, ptr noundef %899, ptr noundef %902, ptr noundef %905, i32 noundef %907) #11
  br label %926

909:                                              ; preds = %887, %880
  %910 = load i32, ptr %28, align 4, !tbaa !5
  %911 = call ptr @__errno_location() #12
  store i32 %910, ptr %911, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror(i32 noundef %915, ptr noundef @.str.4)
  %917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef @.str.4)
  %920 = call ptr @__errno_location() #12
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #11
  %923 = call ptr @__errno_location() #12
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef @.str.5, i32 noundef %913, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 84, ptr noundef %916, ptr noundef %919, ptr noundef %922, i32 noundef %924) #11
  br label %926

926:                                              ; preds = %909, %892
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %927

927:                                              ; preds = %926
  br label %928

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

929:                                              ; No predecessors!
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930, %872
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  br label %934

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

940:                                              ; preds = %934
  br label %941

941:                                              ; preds = %940
  br label %942

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

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

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

971:                                              ; preds = %949, %942
  %972 = load i32, ptr %29, align 4, !tbaa !5
  %973 = call ptr @__errno_location() #12
  store i32 %972, ptr %973, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror(i32 noundef %977, ptr noundef @.str.4)
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef @.str.4)
  %982 = call ptr @__errno_location() #12
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #11
  %985 = call ptr @__errno_location() #12
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef @.str.5, i32 noundef %975, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 85, ptr noundef %978, ptr noundef %981, ptr noundef %984, i32 noundef %986) #11
  br label %988

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

989:                                              ; preds = %988
  br label %990

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

991:                                              ; No predecessors!
  br label %992

992:                                              ; preds = %991
  br label %993

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

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  %996 = load ptr, ptr %10, align 8, !tbaa !9
  call void @X509_free(ptr noundef %996)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  store ptr null, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %997 = call ptr @s2n_config_new()
  store ptr %997, ptr %31, align 8, !tbaa !9
  br label %998

998:                                              ; preds = %995
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr @test_count, align 4, !tbaa !5
  %1001 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1001, ptr %30, align 8, !tbaa !9
  %1002 = icmp eq ptr %1001, null
  br i1 %1002, label %1003, label %1056

1003:                                             ; preds = %998
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

1005:                                             ; preds = %1004
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1006 = call ptr @__errno_location() #12
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  store i32 %1007, ptr %32, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @s2n_print_stacktrace(ptr noundef %1008)
  %1010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1011 = trunc i8 %1010 to i1
  br i1 %1011, label %1012, label %1034

1012:                                             ; preds = %1005
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #11
  %1015 = call i32 @isatty(i32 noundef %1014) #11
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1034

1017:                                             ; preds = %1012
  %1018 = load i32, ptr %32, align 4, !tbaa !5
  %1019 = call ptr @__errno_location() #12
  store i32 %1018, ptr %1019, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef @.str.4)
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call ptr @__errno_location() #12
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #11
  %1031 = call ptr @__errno_location() #12
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1020, ptr noundef @.str.2, i32 noundef %1021, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1024, ptr noundef %1027, ptr noundef %1030, i32 noundef %1032) #11
  br label %1051

1034:                                             ; preds = %1012, %1005
  %1035 = load i32, ptr %32, align 4, !tbaa !5
  %1036 = call ptr @__errno_location() #12
  store i32 %1035, ptr %1036, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @s2n_strerror(i32 noundef %1040, ptr noundef @.str.4)
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef @.str.4)
  %1045 = call ptr @__errno_location() #12
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @strerror(i32 noundef %1046) #11
  %1048 = call ptr @__errno_location() #12
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1037, ptr noundef @.str.5, i32 noundef %1038, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1041, ptr noundef %1044, ptr noundef %1047, i32 noundef %1049) #11
  br label %1051

1051:                                             ; preds = %1034, %1017
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

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

1054:                                             ; No predecessors!
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055, %998
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = load ptr, ptr %31, align 8, !tbaa !9
  %1063 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1062, ptr noundef @.str.21)
  %1064 = icmp eq i32 %1063, -1
  br i1 %1064, label %1065, label %1118

1065:                                             ; preds = %1059
  br label %1066

1066:                                             ; preds = %1065
  br label %1067

1067:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1068 = call ptr @__errno_location() #12
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  store i32 %1069, ptr %33, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @s2n_print_stacktrace(ptr noundef %1070)
  %1072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1073 = trunc i8 %1072 to i1
  br i1 %1073, label %1074, label %1096

1074:                                             ; preds = %1067
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = call i32 @fileno(ptr noundef %1075) #11
  %1077 = call i32 @isatty(i32 noundef %1076) #11
  %1078 = icmp ne i32 %1077, 0
  br i1 %1078, label %1079, label %1096

1079:                                             ; preds = %1074
  %1080 = load i32, ptr %33, align 4, !tbaa !5
  %1081 = call ptr @__errno_location() #12
  store i32 %1080, ptr %1081, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef @.str.4)
  %1087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef @.str.4)
  %1090 = call ptr @__errno_location() #12
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @strerror(i32 noundef %1091) #11
  %1093 = call ptr @__errno_location() #12
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1082, ptr noundef @.str.2, i32 noundef %1083, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1086, ptr noundef %1089, ptr noundef %1092, i32 noundef %1094) #11
  br label %1113

1096:                                             ; preds = %1074, %1067
  %1097 = load i32, ptr %33, align 4, !tbaa !5
  %1098 = call ptr @__errno_location() #12
  store i32 %1097, ptr %1098, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef @.str.4)
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror_debug(i32 noundef %1105, ptr noundef @.str.4)
  %1107 = call ptr @__errno_location() #12
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = call ptr @__errno_location() #12
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef @.str.5, i32 noundef %1100, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1103, ptr noundef %1106, ptr noundef %1109, i32 noundef %1111) #11
  br label %1113

1113:                                             ; preds = %1096, %1079
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

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

1116:                                             ; No predecessors!
  br label %1117

1117:                                             ; preds = %1116
  br label %1118

1118:                                             ; preds = %1117, %1059
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119
  br label %1121

1121:                                             ; preds = %1120
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr @test_count, align 4, !tbaa !5
  %1124 = load ptr, ptr %30, align 8, !tbaa !9
  %1125 = load ptr, ptr %31, align 8, !tbaa !9
  %1126 = call i32 @s2n_connection_set_config(ptr noundef %1124, ptr noundef %1125)
  %1127 = icmp eq i32 %1126, -1
  br i1 %1127, label %1128, label %1181

1128:                                             ; preds = %1121
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1131 = call ptr @__errno_location() #12
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  store i32 %1132, ptr %34, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @s2n_print_stacktrace(ptr noundef %1133)
  %1135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1136 = trunc i8 %1135 to i1
  br i1 %1136, label %1137, label %1159

1137:                                             ; preds = %1130
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = call i32 @fileno(ptr noundef %1138) #11
  %1140 = call i32 @isatty(i32 noundef %1139) #11
  %1141 = icmp ne i32 %1140, 0
  br i1 %1141, label %1142, label %1159

1142:                                             ; preds = %1137
  %1143 = load i32, ptr %34, align 4, !tbaa !5
  %1144 = call ptr @__errno_location() #12
  store i32 %1143, ptr %1144, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef @.str.4)
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror_debug(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call ptr @__errno_location() #12
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #11
  %1156 = call ptr @__errno_location() #12
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.2, i32 noundef %1146, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1149, ptr noundef %1152, ptr noundef %1155, i32 noundef %1157) #11
  br label %1176

1159:                                             ; preds = %1137, %1130
  %1160 = load i32, ptr %34, align 4, !tbaa !5
  %1161 = call ptr @__errno_location() #12
  store i32 %1160, ptr %1161, 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 @.str.4)
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef @.str.4)
  %1170 = call ptr @__errno_location() #12
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #11
  %1173 = call ptr @__errno_location() #12
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef @.str.5, i32 noundef %1163, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1166, ptr noundef %1169, ptr noundef %1172, i32 noundef %1174) #11
  br label %1176

1176:                                             ; preds = %1159, %1142
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

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

1179:                                             ; No predecessors!
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180, %1121
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = add nsw i32 %1185, 1
  store i32 %1186, ptr @test_count, align 4, !tbaa !5
  %1187 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %1188 = call i32 @s2n_read_test_pem(ptr noundef @.str.12, ptr noundef %1187, i64 noundef 12000)
  %1189 = icmp eq i32 %1188, -1
  br i1 %1189, label %1190, label %1243

1190:                                             ; preds = %1184
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

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

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

1204:                                             ; preds = %1199
  %1205 = load i32, ptr %35, align 4, !tbaa !5
  %1206 = call ptr @__errno_location() #12
  store i32 %1205, ptr %1206, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = load i32, ptr @test_count, align 4, !tbaa !5
  %1209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror(i32 noundef %1210, ptr noundef @.str.4)
  %1212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror_debug(i32 noundef %1213, ptr noundef @.str.4)
  %1215 = call ptr @__errno_location() #12
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @strerror(i32 noundef %1216) #11
  %1218 = call ptr @__errno_location() #12
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1207, ptr noundef @.str.2, i32 noundef %1208, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1211, ptr noundef %1214, ptr noundef %1217, i32 noundef %1219) #11
  br label %1238

1221:                                             ; preds = %1199, %1192
  %1222 = load i32, ptr %35, align 4, !tbaa !5
  %1223 = call ptr @__errno_location() #12
  store i32 %1222, ptr %1223, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror(i32 noundef %1227, ptr noundef @.str.4)
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror_debug(i32 noundef %1230, ptr noundef @.str.4)
  %1232 = call ptr @__errno_location() #12
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @strerror(i32 noundef %1233) #11
  %1235 = call ptr @__errno_location() #12
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef @.str.5, i32 noundef %1225, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1228, ptr noundef %1231, ptr noundef %1234, i32 noundef %1236) #11
  br label %1238

1238:                                             ; preds = %1221, %1204
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

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

1241:                                             ; No predecessors!
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242, %1184
  br label %1244

1244:                                             ; preds = %1243
  br label %1245

1245:                                             ; preds = %1244
  %1246 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %1247 = call i64 @strlen(ptr noundef %1246) #14
  store i64 %1247, ptr %12, align 8, !tbaa !15
  br label %1248

1248:                                             ; preds = %1245
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = add nsw i32 %1249, 1
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = call ptr @BIO_s_mem()
  %1252 = call ptr @BIO_new(ptr noundef %1251)
  store ptr %1252, ptr %11, align 8, !tbaa !9
  %1253 = icmp eq ptr %1252, null
  br i1 %1253, label %1254, label %1307

1254:                                             ; preds = %1248
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

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

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

1268:                                             ; preds = %1263
  %1269 = load i32, ptr %36, align 4, !tbaa !5
  %1270 = call ptr @__errno_location() #12
  store i32 %1269, ptr %1270, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror(i32 noundef %1274, ptr noundef @.str.4)
  %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_debug(i32 noundef %1277, ptr noundef @.str.4)
  %1279 = call ptr @__errno_location() #12
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @strerror(i32 noundef %1280) #11
  %1282 = call ptr @__errno_location() #12
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef @.str.2, i32 noundef %1272, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1275, ptr noundef %1278, ptr noundef %1281, i32 noundef %1283) #11
  br label %1302

1285:                                             ; preds = %1263, %1256
  %1286 = load i32, ptr %36, align 4, !tbaa !5
  %1287 = call ptr @__errno_location() #12
  store i32 %1286, ptr %1287, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call ptr @s2n_strerror(i32 noundef %1291, ptr noundef @.str.4)
  %1293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror_debug(i32 noundef %1294, ptr noundef @.str.4)
  %1296 = call ptr @__errno_location() #12
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @strerror(i32 noundef %1297) #11
  %1299 = call ptr @__errno_location() #12
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1288, ptr noundef @.str.5, i32 noundef %1289, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1292, ptr noundef %1295, ptr noundef %1298, i32 noundef %1300) #11
  br label %1302

1302:                                             ; preds = %1285, %1268
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

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

1305:                                             ; No predecessors!
  br label %1306

1306:                                             ; preds = %1305
  br label %1307

1307:                                             ; preds = %1306, %1248
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr @test_count, align 4, !tbaa !5
  %1313 = load ptr, ptr %11, align 8, !tbaa !9
  %1314 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %1315 = load i64, ptr %12, align 8, !tbaa !15
  %1316 = trunc i64 %1315 to i32
  %1317 = call i32 @BIO_write(ptr noundef %1313, ptr noundef %1314, i32 noundef %1316)
  %1318 = icmp sgt i32 %1317, 0
  br i1 %1318, label %1372, label %1319

1319:                                             ; preds = %1310
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

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

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #11
  %1331 = call i32 @isatty(i32 noundef %1330) #11
  %1332 = icmp ne i32 %1331, 0
  br i1 %1332, label %1333, label %1350

1333:                                             ; preds = %1328
  %1334 = load i32, ptr %37, align 4, !tbaa !5
  %1335 = call ptr @__errno_location() #12
  store i32 %1334, ptr %1335, 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 @.str.4)
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef @.str.4)
  %1344 = call ptr @__errno_location() #12
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #11
  %1347 = call ptr @__errno_location() #12
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef @.str.2, i32 noundef %1337, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1340, ptr noundef %1343, ptr noundef %1346, i32 noundef %1348) #11
  br label %1367

1350:                                             ; preds = %1328, %1321
  %1351 = load i32, ptr %37, align 4, !tbaa !5
  %1352 = call ptr @__errno_location() #12
  store i32 %1351, ptr %1352, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror(i32 noundef %1356, ptr noundef @.str.4)
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call ptr @__errno_location() #12
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @strerror(i32 noundef %1362) #11
  %1364 = call ptr @__errno_location() #12
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef @.str.5, i32 noundef %1354, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1357, ptr noundef %1360, ptr noundef %1363, i32 noundef %1365) #11
  br label %1367

1367:                                             ; preds = %1350, %1333
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

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

1370:                                             ; No predecessors!
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371, %1310
  br label %1373

1373:                                             ; preds = %1372
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = load ptr, ptr %11, align 8, !tbaa !9
  %1379 = call ptr @PEM_read_bio_X509(ptr noundef %1378, ptr noundef null, ptr noundef null, ptr noundef null)
  store ptr %1379, ptr %10, align 8, !tbaa !9
  %1380 = icmp eq ptr %1379, null
  br i1 %1380, label %1381, label %1434

1381:                                             ; preds = %1375
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1384 = call ptr @__errno_location() #12
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  store i32 %1385, ptr %38, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @s2n_print_stacktrace(ptr noundef %1386)
  %1388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1389 = trunc i8 %1388 to i1
  br i1 %1389, label %1390, label %1412

1390:                                             ; preds = %1383
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @fileno(ptr noundef %1391) #11
  %1393 = call i32 @isatty(i32 noundef %1392) #11
  %1394 = icmp ne i32 %1393, 0
  br i1 %1394, label %1395, label %1412

1395:                                             ; preds = %1390
  %1396 = load i32, ptr %38, align 4, !tbaa !5
  %1397 = call ptr @__errno_location() #12
  store i32 %1396, ptr %1397, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef @.str.4)
  %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_debug(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call ptr @__errno_location() #12
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #11
  %1409 = call ptr @__errno_location() #12
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef @.str.2, i32 noundef %1399, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1402, ptr noundef %1405, ptr noundef %1408, i32 noundef %1410) #11
  br label %1429

1412:                                             ; preds = %1390, %1383
  %1413 = load i32, ptr %38, align 4, !tbaa !5
  %1414 = call ptr @__errno_location() #12
  store i32 %1413, ptr %1414, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror_debug(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call ptr @__errno_location() #12
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @strerror(i32 noundef %1424) #11
  %1426 = call ptr @__errno_location() #12
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1415, ptr noundef @.str.5, i32 noundef %1416, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1419, ptr noundef %1422, ptr noundef %1425, i32 noundef %1427) #11
  br label %1429

1429:                                             ; preds = %1412, %1395
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

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

1432:                                             ; No predecessors!
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433, %1375
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = add nsw i32 %1440, 1
  store i32 %1441, ptr @test_count, align 4, !tbaa !5
  %1442 = load ptr, ptr %30, align 8, !tbaa !9
  %1443 = load ptr, ptr %10, align 8, !tbaa !9
  %1444 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %1442, ptr noundef %1443)
  %1445 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1444, ptr %1445, align 4
  %1446 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1447 = load i32, ptr %1446, align 4
  %1448 = call zeroext i1 @s2n_result_is_error(i32 %1447)
  br i1 %1448, label %1502, label %1449

1449:                                             ; preds = %1439
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

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

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

1463:                                             ; preds = %1458
  %1464 = load i32, ptr %40, align 4, !tbaa !5
  %1465 = call ptr @__errno_location() #12
  store i32 %1464, ptr %1465, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror(i32 noundef %1469, ptr noundef @.str.4)
  %1471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call ptr @s2n_strerror_debug(i32 noundef %1472, ptr noundef @.str.4)
  %1474 = call ptr @__errno_location() #12
  %1475 = load i32, ptr %1474, align 4, !tbaa !5
  %1476 = call ptr @strerror(i32 noundef %1475) #11
  %1477 = call ptr @__errno_location() #12
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  %1479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1466, ptr noundef @.str.2, i32 noundef %1467, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1470, ptr noundef %1473, ptr noundef %1476, i32 noundef %1478) #11
  br label %1497

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

1497:                                             ; preds = %1480, %1463
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

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

1500:                                             ; No predecessors!
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501, %1439
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  %1506 = load i32, ptr @test_count, align 4, !tbaa !5
  %1507 = add nsw i32 %1506, 1
  store i32 %1507, ptr @test_count, align 4, !tbaa !5
  %1508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = icmp eq i32 %1509, 335544366
  br i1 %1510, label %1564, label %1511

1511:                                             ; preds = %1505
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1514 = call ptr @__errno_location() #12
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  store i32 %1515, ptr %41, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @s2n_print_stacktrace(ptr noundef %1516)
  %1518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1519 = trunc i8 %1518 to i1
  br i1 %1519, label %1520, label %1542

1520:                                             ; preds = %1513
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = call i32 @fileno(ptr noundef %1521) #11
  %1523 = call i32 @isatty(i32 noundef %1522) #11
  %1524 = icmp ne i32 %1523, 0
  br i1 %1524, label %1525, label %1542

1525:                                             ; preds = %1520
  %1526 = load i32, ptr %41, align 4, !tbaa !5
  %1527 = call ptr @__errno_location() #12
  store i32 %1526, ptr %1527, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = load i32, ptr @test_count, align 4, !tbaa !5
  %1530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror(i32 noundef %1531, ptr noundef @.str.4)
  %1533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef @.str.4)
  %1536 = call ptr @__errno_location() #12
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call ptr @strerror(i32 noundef %1537) #11
  %1539 = call ptr @__errno_location() #12
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1528, ptr noundef @.str.2, i32 noundef %1529, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1532, ptr noundef %1535, ptr noundef %1538, i32 noundef %1540) #11
  br label %1559

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

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

1560:                                             ; preds = %1559
  br label %1561

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

1562:                                             ; No predecessors!
  br label %1563

1563:                                             ; preds = %1562
  br label %1564

1564:                                             ; preds = %1563, %1505
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = add nsw i32 %1568, 1
  store i32 %1569, ptr @test_count, align 4, !tbaa !5
  %1570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror_debug(i32 noundef %1571, ptr noundef @.str.4)
  %1573 = icmp eq ptr %1572, null
  br i1 %1573, label %1574, label %1627

1574:                                             ; preds = %1567
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

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

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

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

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

1622:                                             ; preds = %1605, %1588
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

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

1625:                                             ; No predecessors!
  br label %1626

1626:                                             ; preds = %1625
  br label %1627

1627:                                             ; preds = %1626, %1567
  br label %1628

1628:                                             ; preds = %1627
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1633, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1634 = call ptr @__errno_location() #12
  store i32 0, ptr %1634, align 4, !tbaa !5
  br label %1635

1635:                                             ; preds = %1632
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

1639:                                             ; preds = %1638
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = load ptr, ptr %31, align 8, !tbaa !9
  %1643 = call i32 @s2n_config_free(ptr noundef %1642)
  %1644 = icmp eq i32 %1643, -1
  br i1 %1644, label %1645, label %1698

1645:                                             ; preds = %1639
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

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

1654:                                             ; preds = %1647
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = call i32 @fileno(ptr noundef %1655) #11
  %1657 = call i32 @isatty(i32 noundef %1656) #11
  %1658 = icmp ne i32 %1657, 0
  br i1 %1658, label %1659, label %1676

1659:                                             ; preds = %1654
  %1660 = load i32, ptr %43, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #12
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #12
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #11
  %1673 = call ptr @__errno_location() #12
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.2, i32 noundef %1663, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #11
  br label %1693

1676:                                             ; preds = %1654, %1647
  %1677 = load i32, ptr %43, align 4, !tbaa !5
  %1678 = call ptr @__errno_location() #12
  store i32 %1677, ptr %1678, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror(i32 noundef %1682, ptr noundef @.str.4)
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror_debug(i32 noundef %1685, ptr noundef @.str.4)
  %1687 = call ptr @__errno_location() #12
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @strerror(i32 noundef %1688) #11
  %1690 = call ptr @__errno_location() #12
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1679, ptr noundef @.str.5, i32 noundef %1680, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1683, ptr noundef %1686, ptr noundef %1689, i32 noundef %1691) #11
  br label %1693

1693:                                             ; preds = %1676, %1659
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1694

1694:                                             ; preds = %1693
  br label %1695

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

1696:                                             ; No predecessors!
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697, %1639
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  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 %30, align 8, !tbaa !9
  %1705 = call i32 @s2n_connection_free(ptr noundef %1704)
  %1706 = icmp eq i32 %1705, -1
  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) #11
  %1710 = call ptr @__errno_location() #12
  %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) #11
  %1719 = call i32 @isatty(i32 noundef %1718) #11
  %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() #12
  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() #12
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #11
  %1735 = call ptr @__errno_location() #12
  %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.19, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1728, ptr noundef %1731, ptr noundef %1734, i32 noundef %1736) #11
  br label %1755

1738:                                             ; preds = %1716, %1709
  %1739 = load i32, ptr %44, align 4, !tbaa !5
  %1740 = call ptr @__errno_location() #12
  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() #12
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #11
  %1752 = call ptr @__errno_location() #12
  %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.19, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1745, ptr noundef %1748, ptr noundef %1751, i32 noundef %1753) #11
  br label %1755

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

1756:                                             ; preds = %1755
  br label %1757

1757:                                             ; preds = %1756
  call void @exit(i32 noundef 1) #13
  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 %11, align 8, !tbaa !9
  %1767 = call i32 @BIO_free(ptr noundef %1766)
  %1768 = icmp eq i32 %1767, -1
  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) #11
  %1772 = call ptr @__errno_location() #12
  %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) #11
  %1781 = call i32 @isatty(i32 noundef %1780) #11
  %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() #12
  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() #12
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #11
  %1797 = call ptr @__errno_location() #12
  %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.20, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #11
  br label %1817

1800:                                             ; preds = %1778, %1771
  %1801 = load i32, ptr %45, align 4, !tbaa !5
  %1802 = call ptr @__errno_location() #12
  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() #12
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #11
  %1814 = call ptr @__errno_location() #12
  %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.20, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1807, ptr noundef %1810, ptr noundef %1813, i32 noundef %1815) #11
  br label %1817

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

1818:                                             ; preds = %1817
  br label %1819

1819:                                             ; preds = %1818
  call void @exit(i32 noundef 1) #13
  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
  %1825 = load ptr, ptr %10, align 8, !tbaa !9
  call void @X509_free(ptr noundef %1825)
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  store ptr null, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  %1826 = call ptr @s2n_config_new()
  store ptr %1826, ptr %47, align 8, !tbaa !9
  br label %1827

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

1832:                                             ; preds = %1827
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1835 = call ptr @__errno_location() #12
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  store i32 %1836, ptr %48, 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) #11
  %1844 = call i32 @isatty(i32 noundef %1843) #11
  %1845 = icmp ne i32 %1844, 0
  br i1 %1845, label %1846, label %1863

1846:                                             ; preds = %1841
  %1847 = load i32, ptr %48, align 4, !tbaa !5
  %1848 = call ptr @__errno_location() #12
  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() #12
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #11
  %1860 = call ptr @__errno_location() #12
  %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.8, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1853, ptr noundef %1856, ptr noundef %1859, i32 noundef %1861) #11
  br label %1880

1863:                                             ; preds = %1841, %1834
  %1864 = load i32, ptr %48, align 4, !tbaa !5
  %1865 = call ptr @__errno_location() #12
  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() #12
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #11
  %1877 = call ptr @__errno_location() #12
  %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.8, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1870, ptr noundef %1873, ptr noundef %1876, i32 noundef %1878) #11
  br label %1880

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

1881:                                             ; preds = %1880
  br label %1882

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

1883:                                             ; No predecessors!
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1884, %1827
  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 %47, align 8, !tbaa !9
  %1892 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1891, ptr noundef @.str.21)
  %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 %49) #11
  %1897 = call ptr @__errno_location() #12
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  store i32 %1898, ptr %49, 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) #11
  %1906 = call i32 @isatty(i32 noundef %1905) #11
  %1907 = icmp ne i32 %1906, 0
  br i1 %1907, label %1908, label %1925

1908:                                             ; preds = %1903
  %1909 = load i32, ptr %49, align 4, !tbaa !5
  %1910 = call ptr @__errno_location() #12
  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() #12
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @strerror(i32 noundef %1920) #11
  %1922 = call ptr @__errno_location() #12
  %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.22, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1915, ptr noundef %1918, ptr noundef %1921, i32 noundef %1923) #11
  br label %1942

1925:                                             ; preds = %1903, %1896
  %1926 = load i32, ptr %49, align 4, !tbaa !5
  %1927 = call ptr @__errno_location() #12
  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() #12
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @strerror(i32 noundef %1937) #11
  %1939 = call ptr @__errno_location() #12
  %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.22, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1932, ptr noundef %1935, ptr noundef %1938, i32 noundef %1940) #11
  br label %1942

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

1943:                                             ; preds = %1942
  br label %1944

1944:                                             ; preds = %1943
  call void @exit(i32 noundef 1) #13
  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 %46, align 8, !tbaa !9
  %1954 = load ptr, ptr %47, align 8, !tbaa !9
  %1955 = call i32 @s2n_connection_set_config(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 %50) #11
  %1960 = call ptr @__errno_location() #12
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  store i32 %1961, ptr %50, 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) #11
  %1969 = call i32 @isatty(i32 noundef %1968) #11
  %1970 = icmp ne i32 %1969, 0
  br i1 %1970, label %1971, label %1988

1971:                                             ; preds = %1966
  %1972 = load i32, ptr %50, align 4, !tbaa !5
  %1973 = call ptr @__errno_location() #12
  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() #12
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @strerror(i32 noundef %1983) #11
  %1985 = call ptr @__errno_location() #12
  %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.11, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1978, ptr noundef %1981, ptr noundef %1984, i32 noundef %1986) #11
  br label %2005

1988:                                             ; preds = %1966, %1959
  %1989 = load i32, ptr %50, align 4, !tbaa !5
  %1990 = call ptr @__errno_location() #12
  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() #12
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @strerror(i32 noundef %2000) #11
  %2002 = call ptr @__errno_location() #12
  %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.11, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1995, ptr noundef %1998, ptr noundef %2001, i32 noundef %2003) #11
  br label %2005

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

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  call void @exit(i32 noundef 1) #13
  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 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %2017 = call i32 @s2n_read_test_pem(ptr noundef @.str.26, ptr noundef %2016, i64 noundef 12000)
  %2018 = icmp eq i32 %2017, -1
  br i1 %2018, label %2019, label %2072

2019:                                             ; preds = %2013
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

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

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

2033:                                             ; preds = %2028
  %2034 = load i32, ptr %51, align 4, !tbaa !5
  %2035 = call ptr @__errno_location() #12
  store i32 %2034, ptr %2035, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror(i32 noundef %2039, ptr noundef @.str.4)
  %2041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror_debug(i32 noundef %2042, ptr noundef @.str.4)
  %2044 = call ptr @__errno_location() #12
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @strerror(i32 noundef %2045) #11
  %2047 = call ptr @__errno_location() #12
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2036, ptr noundef @.str.2, i32 noundef %2037, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2040, ptr noundef %2043, ptr noundef %2046, i32 noundef %2048) #11
  br label %2067

2050:                                             ; preds = %2028, %2021
  %2051 = load i32, ptr %51, align 4, !tbaa !5
  %2052 = call ptr @__errno_location() #12
  store i32 %2051, ptr %2052, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef @.str.4)
  %2058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror_debug(i32 noundef %2059, ptr noundef @.str.4)
  %2061 = call ptr @__errno_location() #12
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @strerror(i32 noundef %2062) #11
  %2064 = call ptr @__errno_location() #12
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef @.str.5, i32 noundef %2054, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2057, ptr noundef %2060, ptr noundef %2063, i32 noundef %2065) #11
  br label %2067

2067:                                             ; preds = %2050, %2033
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

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

2070:                                             ; No predecessors!
  br label %2071

2071:                                             ; preds = %2070
  br label %2072

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

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  %2075 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %2076 = call i64 @strlen(ptr noundef %2075) #14
  store i64 %2076, ptr %12, align 8, !tbaa !15
  br label %2077

2077:                                             ; preds = %2074
  %2078 = load i32, ptr @test_count, align 4, !tbaa !5
  %2079 = add nsw i32 %2078, 1
  store i32 %2079, ptr @test_count, align 4, !tbaa !5
  %2080 = call ptr @BIO_s_mem()
  %2081 = call ptr @BIO_new(ptr noundef %2080)
  store ptr %2081, ptr %11, align 8, !tbaa !9
  %2082 = icmp eq ptr %2081, null
  br i1 %2082, label %2083, label %2136

2083:                                             ; preds = %2077
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %2086 = call ptr @__errno_location() #12
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  store i32 %2087, ptr %52, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = call i32 @s2n_print_stacktrace(ptr noundef %2088)
  %2090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2091 = trunc i8 %2090 to i1
  br i1 %2091, label %2092, label %2114

2092:                                             ; preds = %2085
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = call i32 @fileno(ptr noundef %2093) #11
  %2095 = call i32 @isatty(i32 noundef %2094) #11
  %2096 = icmp ne i32 %2095, 0
  br i1 %2096, label %2097, label %2114

2097:                                             ; preds = %2092
  %2098 = load i32, ptr %52, align 4, !tbaa !5
  %2099 = call ptr @__errno_location() #12
  store i32 %2098, ptr %2099, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror(i32 noundef %2103, ptr noundef @.str.4)
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call ptr @__errno_location() #12
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @strerror(i32 noundef %2109) #11
  %2111 = call ptr @__errno_location() #12
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2100, ptr noundef @.str.2, i32 noundef %2101, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2104, ptr noundef %2107, ptr noundef %2110, i32 noundef %2112) #11
  br label %2131

2114:                                             ; preds = %2092, %2085
  %2115 = load i32, ptr %52, align 4, !tbaa !5
  %2116 = call ptr @__errno_location() #12
  store i32 %2115, ptr %2116, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror(i32 noundef %2120, ptr noundef @.str.4)
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror_debug(i32 noundef %2123, ptr noundef @.str.4)
  %2125 = call ptr @__errno_location() #12
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @strerror(i32 noundef %2126) #11
  %2128 = call ptr @__errno_location() #12
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2117, ptr noundef @.str.5, i32 noundef %2118, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2121, ptr noundef %2124, ptr noundef %2127, i32 noundef %2129) #11
  br label %2131

2131:                                             ; preds = %2114, %2097
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

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

2134:                                             ; No predecessors!
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135, %2077
  br label %2137

2137:                                             ; preds = %2136
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

2139:                                             ; preds = %2138
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = add nsw i32 %2140, 1
  store i32 %2141, ptr @test_count, align 4, !tbaa !5
  %2142 = load ptr, ptr %11, align 8, !tbaa !9
  %2143 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %2144 = load i64, ptr %12, align 8, !tbaa !15
  %2145 = trunc i64 %2144 to i32
  %2146 = call i32 @BIO_write(ptr noundef %2142, ptr noundef %2143, i32 noundef %2145)
  %2147 = icmp sgt i32 %2146, 0
  br i1 %2147, label %2201, label %2148

2148:                                             ; preds = %2139
  br label %2149

2149:                                             ; preds = %2148
  br label %2150

2150:                                             ; preds = %2149
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %2151 = call ptr @__errno_location() #12
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  store i32 %2152, ptr %53, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = call i32 @s2n_print_stacktrace(ptr noundef %2153)
  %2155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2156 = trunc i8 %2155 to i1
  br i1 %2156, label %2157, label %2179

2157:                                             ; preds = %2150
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @fileno(ptr noundef %2158) #11
  %2160 = call i32 @isatty(i32 noundef %2159) #11
  %2161 = icmp ne i32 %2160, 0
  br i1 %2161, label %2162, label %2179

2162:                                             ; preds = %2157
  %2163 = load i32, ptr %53, align 4, !tbaa !5
  %2164 = call ptr @__errno_location() #12
  store i32 %2163, ptr %2164, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror(i32 noundef %2168, ptr noundef @.str.4)
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror_debug(i32 noundef %2171, ptr noundef @.str.4)
  %2173 = call ptr @__errno_location() #12
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @strerror(i32 noundef %2174) #11
  %2176 = call ptr @__errno_location() #12
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2165, ptr noundef @.str.2, i32 noundef %2166, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2169, ptr noundef %2172, ptr noundef %2175, i32 noundef %2177) #11
  br label %2196

2179:                                             ; preds = %2157, %2150
  %2180 = load i32, ptr %53, align 4, !tbaa !5
  %2181 = call ptr @__errno_location() #12
  store i32 %2180, ptr %2181, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror_debug(i32 noundef %2188, ptr noundef @.str.4)
  %2190 = call ptr @__errno_location() #12
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call ptr @strerror(i32 noundef %2191) #11
  %2193 = call ptr @__errno_location() #12
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef @.str.5, i32 noundef %2183, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2186, ptr noundef %2189, ptr noundef %2192, i32 noundef %2194) #11
  br label %2196

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

2197:                                             ; preds = %2196
  br label %2198

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

2199:                                             ; No predecessors!
  br label %2200

2200:                                             ; preds = %2199
  br label %2201

2201:                                             ; preds = %2200, %2139
  br label %2202

2202:                                             ; preds = %2201
  br label %2203

2203:                                             ; preds = %2202
  br label %2204

2204:                                             ; preds = %2203
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr @test_count, align 4, !tbaa !5
  %2207 = load ptr, ptr %11, align 8, !tbaa !9
  %2208 = call ptr @PEM_read_bio_X509(ptr noundef %2207, ptr noundef null, ptr noundef null, ptr noundef null)
  store ptr %2208, ptr %10, align 8, !tbaa !9
  %2209 = icmp eq ptr %2208, null
  br i1 %2209, label %2210, label %2263

2210:                                             ; preds = %2204
  br label %2211

2211:                                             ; preds = %2210
  br label %2212

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

2219:                                             ; preds = %2212
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @fileno(ptr noundef %2220) #11
  %2222 = call i32 @isatty(i32 noundef %2221) #11
  %2223 = icmp ne i32 %2222, 0
  br i1 %2223, label %2224, label %2241

2224:                                             ; preds = %2219
  %2225 = load i32, ptr %54, align 4, !tbaa !5
  %2226 = call ptr @__errno_location() #12
  store i32 %2225, ptr %2226, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2230, ptr noundef @.str.4)
  %2232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror_debug(i32 noundef %2233, ptr noundef @.str.4)
  %2235 = call ptr @__errno_location() #12
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call ptr @strerror(i32 noundef %2236) #11
  %2238 = call ptr @__errno_location() #12
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  %2240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2227, ptr noundef @.str.2, i32 noundef %2228, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2231, ptr noundef %2234, ptr noundef %2237, i32 noundef %2239) #11
  br label %2258

2241:                                             ; preds = %2219, %2212
  %2242 = load i32, ptr %54, align 4, !tbaa !5
  %2243 = call ptr @__errno_location() #12
  store i32 %2242, ptr %2243, align 4, !tbaa !5
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror_debug(i32 noundef %2250, ptr noundef @.str.4)
  %2252 = call ptr @__errno_location() #12
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #11
  %2255 = call ptr @__errno_location() #12
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2244, ptr noundef @.str.5, i32 noundef %2245, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2248, ptr noundef %2251, ptr noundef %2254, i32 noundef %2256) #11
  br label %2258

2258:                                             ; preds = %2241, %2224
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2259

2259:                                             ; preds = %2258
  br label %2260

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

2261:                                             ; No predecessors!
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262, %2204
  br label %2264

2264:                                             ; preds = %2263
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

2266:                                             ; preds = %2265
  %2267 = load i32, ptr @test_count, align 4, !tbaa !5
  %2268 = add nsw i32 %2267, 1
  store i32 %2268, ptr @test_count, align 4, !tbaa !5
  %2269 = load ptr, ptr %46, align 8, !tbaa !9
  %2270 = load ptr, ptr %10, align 8, !tbaa !9
  %2271 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %2269, ptr noundef %2270)
  %2272 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2271, ptr %2272, align 4
  %2273 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  %2274 = load i32, ptr %2273, align 4
  %2275 = call zeroext i1 @s2n_result_is_ok(i32 %2274)
  br i1 %2275, label %2329, label %2276

2276:                                             ; preds = %2266
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

2278:                                             ; preds = %2277
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2279 = call ptr @__errno_location() #12
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  store i32 %2280, ptr %56, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @s2n_print_stacktrace(ptr noundef %2281)
  %2283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2284 = trunc i8 %2283 to i1
  br i1 %2284, label %2285, label %2307

2285:                                             ; preds = %2278
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = call i32 @fileno(ptr noundef %2286) #11
  %2288 = call i32 @isatty(i32 noundef %2287) #11
  %2289 = icmp ne i32 %2288, 0
  br i1 %2289, label %2290, label %2307

2290:                                             ; preds = %2285
  %2291 = load i32, ptr %56, align 4, !tbaa !5
  %2292 = call ptr @__errno_location() #12
  store i32 %2291, ptr %2292, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror(i32 noundef %2296, ptr noundef @.str.4)
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef @.str.4)
  %2301 = call ptr @__errno_location() #12
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #11
  %2304 = call ptr @__errno_location() #12
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2293, ptr noundef @.str.2, i32 noundef %2294, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2297, ptr noundef %2300, ptr noundef %2303, i32 noundef %2305) #11
  br label %2324

2307:                                             ; preds = %2285, %2278
  %2308 = load i32, ptr %56, align 4, !tbaa !5
  %2309 = call ptr @__errno_location() #12
  store i32 %2308, ptr %2309, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call ptr @s2n_strerror(i32 noundef %2313, ptr noundef @.str.4)
  %2315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @s2n_strerror_debug(i32 noundef %2316, ptr noundef @.str.4)
  %2318 = call ptr @__errno_location() #12
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @strerror(i32 noundef %2319) #11
  %2321 = call ptr @__errno_location() #12
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2310, ptr noundef @.str.5, i32 noundef %2311, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2314, ptr noundef %2317, ptr noundef %2320, i32 noundef %2322) #11
  br label %2324

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

2325:                                             ; preds = %2324
  br label %2326

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

2327:                                             ; No predecessors!
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

2329:                                             ; preds = %2328, %2266
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = add nsw i32 %2333, 1
  store i32 %2334, ptr @test_count, align 4, !tbaa !5
  %2335 = load ptr, ptr %47, align 8, !tbaa !9
  %2336 = call i32 @s2n_config_free(ptr noundef %2335)
  %2337 = icmp eq i32 %2336, -1
  br i1 %2337, label %2338, label %2391

2338:                                             ; preds = %2332
  br label %2339

2339:                                             ; preds = %2338
  br label %2340

2340:                                             ; preds = %2339
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2341 = call ptr @__errno_location() #12
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  store i32 %2342, ptr %57, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @s2n_print_stacktrace(ptr noundef %2343)
  %2345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2346 = trunc i8 %2345 to i1
  br i1 %2346, label %2347, label %2369

2347:                                             ; preds = %2340
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = call i32 @fileno(ptr noundef %2348) #11
  %2350 = call i32 @isatty(i32 noundef %2349) #11
  %2351 = icmp ne i32 %2350, 0
  br i1 %2351, label %2352, label %2369

2352:                                             ; preds = %2347
  %2353 = load i32, ptr %57, align 4, !tbaa !5
  %2354 = call ptr @__errno_location() #12
  store i32 %2353, ptr %2354, align 4, !tbaa !5
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call ptr @s2n_strerror(i32 noundef %2358, ptr noundef @.str.4)
  %2360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call ptr @s2n_strerror_debug(i32 noundef %2361, ptr noundef @.str.4)
  %2363 = call ptr @__errno_location() #12
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call ptr @strerror(i32 noundef %2364) #11
  %2366 = call ptr @__errno_location() #12
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2355, ptr noundef @.str.2, i32 noundef %2356, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2359, ptr noundef %2362, ptr noundef %2365, i32 noundef %2367) #11
  br label %2386

2369:                                             ; preds = %2347, %2340
  %2370 = load i32, ptr %57, align 4, !tbaa !5
  %2371 = call ptr @__errno_location() #12
  store i32 %2370, ptr %2371, align 4, !tbaa !5
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = load i32, ptr @test_count, align 4, !tbaa !5
  %2374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call ptr @s2n_strerror(i32 noundef %2375, ptr noundef @.str.4)
  %2377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2378 = load i32, ptr %2377, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror_debug(i32 noundef %2378, ptr noundef @.str.4)
  %2380 = call ptr @__errno_location() #12
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call ptr @strerror(i32 noundef %2381) #11
  %2383 = call ptr @__errno_location() #12
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2372, ptr noundef @.str.5, i32 noundef %2373, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2376, ptr noundef %2379, ptr noundef %2382, i32 noundef %2384) #11
  br label %2386

2386:                                             ; preds = %2369, %2352
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

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

2389:                                             ; No predecessors!
  br label %2390

2390:                                             ; preds = %2389
  br label %2391

2391:                                             ; preds = %2390, %2332
  br label %2392

2392:                                             ; preds = %2391
  br label %2393

2393:                                             ; preds = %2392
  br label %2394

2394:                                             ; preds = %2393
  %2395 = load i32, ptr @test_count, align 4, !tbaa !5
  %2396 = add nsw i32 %2395, 1
  store i32 %2396, ptr @test_count, align 4, !tbaa !5
  %2397 = load ptr, ptr %46, align 8, !tbaa !9
  %2398 = call i32 @s2n_connection_free(ptr noundef %2397)
  %2399 = icmp eq i32 %2398, -1
  br i1 %2399, label %2400, label %2453

2400:                                             ; preds = %2394
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

2402:                                             ; preds = %2401
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2403 = call ptr @__errno_location() #12
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  store i32 %2404, ptr %58, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = call i32 @s2n_print_stacktrace(ptr noundef %2405)
  %2407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2408 = trunc i8 %2407 to i1
  br i1 %2408, label %2409, label %2431

2409:                                             ; preds = %2402
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = call i32 @fileno(ptr noundef %2410) #11
  %2412 = call i32 @isatty(i32 noundef %2411) #11
  %2413 = icmp ne i32 %2412, 0
  br i1 %2413, label %2414, label %2431

2414:                                             ; preds = %2409
  %2415 = load i32, ptr %58, align 4, !tbaa !5
  %2416 = call ptr @__errno_location() #12
  store i32 %2415, ptr %2416, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror_debug(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = call ptr @__errno_location() #12
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #11
  %2428 = call ptr @__errno_location() #12
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef @.str.2, i32 noundef %2418, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2421, ptr noundef %2424, ptr noundef %2427, i32 noundef %2429) #11
  br label %2448

2431:                                             ; preds = %2409, %2402
  %2432 = load i32, ptr %58, align 4, !tbaa !5
  %2433 = call ptr @__errno_location() #12
  store i32 %2432, ptr %2433, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef @.str.4)
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror_debug(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call ptr @__errno_location() #12
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #11
  %2445 = call ptr @__errno_location() #12
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2434, ptr noundef @.str.5, i32 noundef %2435, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2438, ptr noundef %2441, ptr noundef %2444, i32 noundef %2446) #11
  br label %2448

2448:                                             ; preds = %2431, %2414
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

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

2451:                                             ; No predecessors!
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

2453:                                             ; preds = %2452, %2394
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

2456:                                             ; preds = %2455
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = add nsw i32 %2457, 1
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = load ptr, ptr %11, align 8, !tbaa !9
  %2460 = call i32 @BIO_free(ptr noundef %2459)
  %2461 = icmp eq i32 %2460, -1
  br i1 %2461, label %2462, label %2515

2462:                                             ; preds = %2456
  br label %2463

2463:                                             ; preds = %2462
  br label %2464

2464:                                             ; preds = %2463
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2465 = call ptr @__errno_location() #12
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  store i32 %2466, ptr %59, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467)
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc i8 %2469 to i1
  br i1 %2470, label %2471, label %2493

2471:                                             ; preds = %2464
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #11
  %2474 = call i32 @isatty(i32 noundef %2473) #11
  %2475 = icmp ne i32 %2474, 0
  br i1 %2475, label %2476, label %2493

2476:                                             ; preds = %2471
  %2477 = load i32, ptr %59, align 4, !tbaa !5
  %2478 = call ptr @__errno_location() #12
  store i32 %2477, ptr %2478, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror(i32 noundef %2482, ptr noundef @.str.4)
  %2484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror_debug(i32 noundef %2485, ptr noundef @.str.4)
  %2487 = call ptr @__errno_location() #12
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @strerror(i32 noundef %2488) #11
  %2490 = call ptr @__errno_location() #12
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2479, ptr noundef @.str.2, i32 noundef %2480, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2483, ptr noundef %2486, ptr noundef %2489, i32 noundef %2491) #11
  br label %2510

2493:                                             ; preds = %2471, %2464
  %2494 = load i32, ptr %59, align 4, !tbaa !5
  %2495 = call ptr @__errno_location() #12
  store i32 %2494, ptr %2495, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror(i32 noundef %2499, ptr noundef @.str.4)
  %2501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2502, ptr noundef @.str.4)
  %2504 = call ptr @__errno_location() #12
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @strerror(i32 noundef %2505) #11
  %2507 = call ptr @__errno_location() #12
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2496, ptr noundef @.str.5, i32 noundef %2497, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2500, ptr noundef %2503, ptr noundef %2506, i32 noundef %2508) #11
  br label %2510

2510:                                             ; preds = %2493, %2476
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

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

2513:                                             ; No predecessors!
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514, %2456
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  %2518 = load ptr, ptr %10, align 8, !tbaa !9
  call void @X509_free(ptr noundef %2518)
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %2519 = call ptr @s2n_config_new()
  store ptr %2519, ptr %60, align 8, !tbaa !9
  br label %2520

2520:                                             ; preds = %2517
  %2521 = load i32, ptr @test_count, align 4, !tbaa !5
  %2522 = add nsw i32 %2521, 1
  store i32 %2522, ptr @test_count, align 4, !tbaa !5
  %2523 = load ptr, ptr %60, align 8, !tbaa !9
  %2524 = icmp eq ptr %2523, null
  br i1 %2524, label %2525, label %2578

2525:                                             ; preds = %2520
  br label %2526

2526:                                             ; preds = %2525
  br label %2527

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

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

2539:                                             ; preds = %2534
  %2540 = load i32, ptr %61, align 4, !tbaa !5
  %2541 = call ptr @__errno_location() #12
  store i32 %2540, ptr %2541, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror(i32 noundef %2545, ptr noundef @.str.4)
  %2547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror_debug(i32 noundef %2548, ptr noundef @.str.4)
  %2550 = call ptr @__errno_location() #12
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call ptr @strerror(i32 noundef %2551) #11
  %2553 = call ptr @__errno_location() #12
  %2554 = load i32, ptr %2553, align 4, !tbaa !5
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2542, ptr noundef @.str.2, i32 noundef %2543, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2546, ptr noundef %2549, ptr noundef %2552, i32 noundef %2554) #11
  br label %2573

2556:                                             ; preds = %2534, %2527
  %2557 = load i32, ptr %61, align 4, !tbaa !5
  %2558 = call ptr @__errno_location() #12
  store i32 %2557, ptr %2558, align 4, !tbaa !5
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2560 = load i32, ptr @test_count, align 4, !tbaa !5
  %2561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror(i32 noundef %2562, ptr noundef @.str.4)
  %2564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  %2566 = call ptr @s2n_strerror_debug(i32 noundef %2565, ptr noundef @.str.4)
  %2567 = call ptr @__errno_location() #12
  %2568 = load i32, ptr %2567, align 4, !tbaa !5
  %2569 = call ptr @strerror(i32 noundef %2568) #11
  %2570 = call ptr @__errno_location() #12
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  %2572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2559, ptr noundef @.str.5, i32 noundef %2560, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2563, ptr noundef %2566, ptr noundef %2569, i32 noundef %2571) #11
  br label %2573

2573:                                             ; preds = %2556, %2539
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

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

2576:                                             ; No predecessors!
  br label %2577

2577:                                             ; preds = %2576
  br label %2578

2578:                                             ; preds = %2577, %2520
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  %2581 = load ptr, ptr %60, align 8, !tbaa !9
  %2582 = getelementptr inbounds %struct.s2n_config, ptr %2581, i32 0, i32 7
  store ptr %15, ptr %2582, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %2583 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2583, ptr %62, align 8, !tbaa !9
  br label %2584

2584:                                             ; preds = %2580
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = add nsw i32 %2585, 1
  store i32 %2586, ptr @test_count, align 4, !tbaa !5
  %2587 = load ptr, ptr %62, align 8, !tbaa !9
  %2588 = icmp eq ptr %2587, null
  br i1 %2588, label %2589, label %2642

2589:                                             ; preds = %2584
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

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

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

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

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

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

2638:                                             ; preds = %2637
  br label %2639

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

2640:                                             ; No predecessors!
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

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

2643:                                             ; preds = %2642
  br label %2644

2644:                                             ; preds = %2643
  %2645 = load ptr, ptr %62, align 8, !tbaa !9
  %2646 = getelementptr inbounds %struct.s2n_connection, ptr %2645, i32 0, i32 23
  store i8 33, ptr %2646, align 4, !tbaa !29
  br label %2647

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

2654:                                             ; preds = %2647
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2657 = call ptr @__errno_location() #12
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  store i32 %2658, ptr %64, 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) #11
  %2666 = call i32 @isatty(i32 noundef %2665) #11
  %2667 = icmp ne i32 %2666, 0
  br i1 %2667, label %2668, label %2685

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %64, align 4, !tbaa !5
  %2670 = call ptr @__errno_location() #12
  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() #12
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #11
  %2682 = call ptr @__errno_location() #12
  %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.11, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2675, ptr noundef %2678, ptr noundef %2681, i32 noundef %2683) #11
  br label %2702

2685:                                             ; preds = %2663, %2656
  %2686 = load i32, ptr %64, align 4, !tbaa !5
  %2687 = call ptr @__errno_location() #12
  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() #12
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @strerror(i32 noundef %2697) #11
  %2699 = call ptr @__errno_location() #12
  %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.11, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2692, ptr noundef %2695, ptr noundef %2698, i32 noundef %2700) #11
  br label %2702

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

2703:                                             ; preds = %2702
  br label %2704

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

2705:                                             ; No predecessors!
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

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

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  store ptr null, ptr %65, align 8, !tbaa !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 i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef %65, ptr noundef @.str.30, ptr noundef @.str.31, ptr noundef @.str.32, ptr noundef @.str.33)
  %2714 = icmp eq i32 %2713, -1
  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 %66) #11
  %2718 = call ptr @__errno_location() #12
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  store i32 %2719, ptr %66, 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) #11
  %2727 = call i32 @isatty(i32 noundef %2726) #11
  %2728 = icmp ne i32 %2727, 0
  br i1 %2728, label %2729, label %2746

2729:                                             ; preds = %2724
  %2730 = load i32, ptr %66, align 4, !tbaa !5
  %2731 = call ptr @__errno_location() #12
  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() #12
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @strerror(i32 noundef %2741) #11
  %2743 = call ptr @__errno_location() #12
  %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.34, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2736, ptr noundef %2739, ptr noundef %2742, i32 noundef %2744) #11
  br label %2763

2746:                                             ; preds = %2724, %2717
  %2747 = load i32, ptr %66, align 4, !tbaa !5
  %2748 = call ptr @__errno_location() #12
  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() #12
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #11
  %2760 = call ptr @__errno_location() #12
  %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.34, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2753, ptr noundef %2756, ptr noundef %2759, i32 noundef %2761) #11
  br label %2763

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

2764:                                             ; preds = %2763
  br label %2765

2765:                                             ; preds = %2764
  call void @exit(i32 noundef 1) #13
  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
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #11
  store ptr null, ptr %67, align 8, !tbaa !9
  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 %65, align 8, !tbaa !9
  %2775 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %2774, i32 0, i32 0
  %2776 = load ptr, ptr %2775, align 8, !tbaa !53
  %2777 = getelementptr inbounds %struct.s2n_cert_chain, ptr %2776, i32 0, i32 1
  %2778 = load ptr, ptr %2777, align 8, !tbaa !55
  %2779 = getelementptr inbounds %struct.s2n_cert, ptr %2778, i32 0, i32 3
  %2780 = call i32 @s2n_openssl_x509_parse(ptr noundef %2779, ptr noundef %67)
  %2781 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  store i32 %2780, ptr %2781, align 4
  %2782 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  %2783 = load i32, ptr %2782, align 4
  %2784 = call zeroext i1 @s2n_result_is_ok(i32 %2783)
  br i1 %2784, label %2838, label %2785

2785:                                             ; preds = %2771
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2788 = call ptr @__errno_location() #12
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  store i32 %2789, ptr %69, align 4, !tbaa !5
  %2790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2791 = call i32 @s2n_print_stacktrace(ptr noundef %2790)
  %2792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2793 = trunc i8 %2792 to i1
  br i1 %2793, label %2794, label %2816

2794:                                             ; preds = %2787
  %2795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2796 = call i32 @fileno(ptr noundef %2795) #11
  %2797 = call i32 @isatty(i32 noundef %2796) #11
  %2798 = icmp ne i32 %2797, 0
  br i1 %2798, label %2799, label %2816

2799:                                             ; preds = %2794
  %2800 = load i32, ptr %69, align 4, !tbaa !5
  %2801 = call ptr @__errno_location() #12
  store i32 %2800, ptr %2801, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror(i32 noundef %2805, ptr noundef @.str.4)
  %2807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror_debug(i32 noundef %2808, ptr noundef @.str.4)
  %2810 = call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call ptr @strerror(i32 noundef %2811) #11
  %2813 = call ptr @__errno_location() #12
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2802, ptr noundef @.str.2, i32 noundef %2803, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2806, ptr noundef %2809, ptr noundef %2812, i32 noundef %2814) #11
  br label %2833

2816:                                             ; preds = %2794, %2787
  %2817 = load i32, ptr %69, align 4, !tbaa !5
  %2818 = call ptr @__errno_location() #12
  store i32 %2817, ptr %2818, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef @.str.4)
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror_debug(i32 noundef %2825, ptr noundef @.str.4)
  %2827 = call ptr @__errno_location() #12
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @strerror(i32 noundef %2828) #11
  %2830 = call ptr @__errno_location() #12
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2819, ptr noundef @.str.5, i32 noundef %2820, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2823, ptr noundef %2826, ptr noundef %2829, i32 noundef %2831) #11
  br label %2833

2833:                                             ; preds = %2816, %2799
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

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

2836:                                             ; No predecessors!
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837, %2771
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

2842:                                             ; preds = %2841
  br label %2843

2843:                                             ; preds = %2842
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = add nsw i32 %2844, 1
  store i32 %2845, ptr @test_count, align 4, !tbaa !5
  %2846 = load ptr, ptr %62, align 8, !tbaa !9
  %2847 = load ptr, ptr %67, align 8, !tbaa !9
  %2848 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %2846, ptr noundef %2847)
  %2849 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %2848, ptr %2849, align 4
  %2850 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %2851 = load i32, ptr %2850, align 4
  %2852 = call zeroext i1 @s2n_result_is_error(i32 %2851)
  br i1 %2852, label %2906, label %2853

2853:                                             ; preds = %2843
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2856 = call ptr @__errno_location() #12
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  store i32 %2857, ptr %71, align 4, !tbaa !5
  %2858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2859 = call i32 @s2n_print_stacktrace(ptr noundef %2858)
  %2860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2861 = trunc i8 %2860 to i1
  br i1 %2861, label %2862, label %2884

2862:                                             ; preds = %2855
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = call i32 @fileno(ptr noundef %2863) #11
  %2865 = call i32 @isatty(i32 noundef %2864) #11
  %2866 = icmp ne i32 %2865, 0
  br i1 %2866, label %2867, label %2884

2867:                                             ; preds = %2862
  %2868 = load i32, ptr %71, align 4, !tbaa !5
  %2869 = call ptr @__errno_location() #12
  store i32 %2868, ptr %2869, align 4, !tbaa !5
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = load i32, ptr @test_count, align 4, !tbaa !5
  %2872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call ptr @s2n_strerror(i32 noundef %2873, ptr noundef @.str.4)
  %2875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call ptr @s2n_strerror_debug(i32 noundef %2876, ptr noundef @.str.4)
  %2878 = call ptr @__errno_location() #12
  %2879 = load i32, ptr %2878, align 4, !tbaa !5
  %2880 = call ptr @strerror(i32 noundef %2879) #11
  %2881 = call ptr @__errno_location() #12
  %2882 = load i32, ptr %2881, align 4, !tbaa !5
  %2883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2870, ptr noundef @.str.2, i32 noundef %2871, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2874, ptr noundef %2877, ptr noundef %2880, i32 noundef %2882) #11
  br label %2901

2884:                                             ; preds = %2862, %2855
  %2885 = load i32, ptr %71, align 4, !tbaa !5
  %2886 = call ptr @__errno_location() #12
  store i32 %2885, ptr %2886, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef @.str.4)
  %2892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef @.str.4)
  %2895 = call ptr @__errno_location() #12
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #11
  %2898 = call ptr @__errno_location() #12
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2887, ptr noundef @.str.5, i32 noundef %2888, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2891, ptr noundef %2894, ptr noundef %2897, i32 noundef %2899) #11
  br label %2901

2901:                                             ; preds = %2884, %2867
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2902

2902:                                             ; preds = %2901
  br label %2903

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

2904:                                             ; No predecessors!
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905, %2843
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907
  br label %2909

2909:                                             ; preds = %2908
  %2910 = load i32, ptr @test_count, align 4, !tbaa !5
  %2911 = add nsw i32 %2910, 1
  store i32 %2911, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = icmp eq i32 %2913, 335544366
  br i1 %2914, label %2968, label %2915

2915:                                             ; preds = %2909
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2916
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %2918 = call ptr @__errno_location() #12
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  store i32 %2919, ptr %72, align 4, !tbaa !5
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = call i32 @s2n_print_stacktrace(ptr noundef %2920)
  %2922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2923 = trunc i8 %2922 to i1
  br i1 %2923, label %2924, label %2946

2924:                                             ; preds = %2917
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @fileno(ptr noundef %2925) #11
  %2927 = call i32 @isatty(i32 noundef %2926) #11
  %2928 = icmp ne i32 %2927, 0
  br i1 %2928, label %2929, label %2946

2929:                                             ; preds = %2924
  %2930 = load i32, ptr %72, align 4, !tbaa !5
  %2931 = call ptr @__errno_location() #12
  store i32 %2930, ptr %2931, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call ptr @s2n_strerror(i32 noundef %2935, ptr noundef @.str.4)
  %2937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror_debug(i32 noundef %2938, ptr noundef @.str.4)
  %2940 = call ptr @__errno_location() #12
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  %2942 = call ptr @strerror(i32 noundef %2941) #11
  %2943 = call ptr @__errno_location() #12
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  %2945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef @.str.2, i32 noundef %2933, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2936, ptr noundef %2939, ptr noundef %2942, i32 noundef %2944) #11
  br label %2963

2946:                                             ; preds = %2924, %2917
  %2947 = load i32, ptr %72, align 4, !tbaa !5
  %2948 = call ptr @__errno_location() #12
  store i32 %2947, ptr %2948, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror(i32 noundef %2952, ptr noundef @.str.4)
  %2954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call ptr @s2n_strerror_debug(i32 noundef %2955, ptr noundef @.str.4)
  %2957 = call ptr @__errno_location() #12
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  %2959 = call ptr @strerror(i32 noundef %2958) #11
  %2960 = call ptr @__errno_location() #12
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2949, ptr noundef @.str.5, i32 noundef %2950, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2953, ptr noundef %2956, ptr noundef %2959, i32 noundef %2961) #11
  br label %2963

2963:                                             ; preds = %2946, %2929
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2964

2964:                                             ; preds = %2963
  br label %2965

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

2966:                                             ; No predecessors!
  br label %2967

2967:                                             ; preds = %2966
  br label %2968

2968:                                             ; preds = %2967, %2909
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  br label %2971

2971:                                             ; preds = %2970
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = add nsw i32 %2972, 1
  store i32 %2973, ptr @test_count, align 4, !tbaa !5
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror_debug(i32 noundef %2975, ptr noundef @.str.4)
  %2977 = icmp eq ptr %2976, null
  br i1 %2977, label %2978, label %3031

2978:                                             ; preds = %2971
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %2981 = call ptr @__errno_location() #12
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  store i32 %2982, ptr %73, align 4, !tbaa !5
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = call i32 @s2n_print_stacktrace(ptr noundef %2983)
  %2985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2986 = trunc i8 %2985 to i1
  br i1 %2986, label %2987, label %3009

2987:                                             ; preds = %2980
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = call i32 @fileno(ptr noundef %2988) #11
  %2990 = call i32 @isatty(i32 noundef %2989) #11
  %2991 = icmp ne i32 %2990, 0
  br i1 %2991, label %2992, label %3009

2992:                                             ; preds = %2987
  %2993 = load i32, ptr %73, align 4, !tbaa !5
  %2994 = call ptr @__errno_location() #12
  store i32 %2993, ptr %2994, align 4, !tbaa !5
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = load i32, ptr @test_count, align 4, !tbaa !5
  %2997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror(i32 noundef %2998, ptr noundef @.str.4)
  %3000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror_debug(i32 noundef %3001, ptr noundef @.str.4)
  %3003 = call ptr @__errno_location() #12
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #11
  %3006 = call ptr @__errno_location() #12
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2995, ptr noundef @.str.2, i32 noundef %2996, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2999, ptr noundef %3002, ptr noundef %3005, i32 noundef %3007) #11
  br label %3026

3009:                                             ; preds = %2987, %2980
  %3010 = load i32, ptr %73, align 4, !tbaa !5
  %3011 = call ptr @__errno_location() #12
  store i32 %3010, ptr %3011, align 4, !tbaa !5
  %3012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3013 = load i32, ptr @test_count, align 4, !tbaa !5
  %3014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = call ptr @s2n_strerror(i32 noundef %3015, ptr noundef @.str.4)
  %3017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  %3019 = call ptr @s2n_strerror_debug(i32 noundef %3018, ptr noundef @.str.4)
  %3020 = call ptr @__errno_location() #12
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call ptr @strerror(i32 noundef %3021) #11
  %3023 = call ptr @__errno_location() #12
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3012, ptr noundef @.str.5, i32 noundef %3013, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3016, ptr noundef %3019, ptr noundef %3022, i32 noundef %3024) #11
  br label %3026

3026:                                             ; preds = %3009, %2992
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

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

3029:                                             ; No predecessors!
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030, %2971
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

3033:                                             ; preds = %3032
  br label %3034

3034:                                             ; preds = %3033
  br label %3035

3035:                                             ; preds = %3034
  br label %3036

3036:                                             ; preds = %3035
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3037, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3038 = call ptr @__errno_location() #12
  store i32 0, ptr %3038, align 4, !tbaa !5
  br label %3039

3039:                                             ; preds = %3036
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  call void @X509_free_pointer(ptr noundef %67)
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  %3043 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %65)
  %3044 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3043, ptr %3044, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  %3045 = call i32 @s2n_connection_ptr_free(ptr noundef %62)
  %3046 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %3045, ptr %3046, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  %3047 = call i32 @s2n_config_ptr_free(ptr noundef %60)
  %3048 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %3047, ptr %3048, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #11
  %3049 = call ptr @s2n_config_new()
  store ptr %3049, ptr %77, align 8, !tbaa !9
  br label %3050

3050:                                             ; preds = %3042
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = add nsw i32 %3051, 1
  store i32 %3052, ptr @test_count, align 4, !tbaa !5
  %3053 = load ptr, ptr %77, align 8, !tbaa !9
  %3054 = icmp eq ptr %3053, null
  br i1 %3054, label %3055, label %3108

3055:                                             ; preds = %3050
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

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

3064:                                             ; preds = %3057
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = call i32 @fileno(ptr noundef %3065) #11
  %3067 = call i32 @isatty(i32 noundef %3066) #11
  %3068 = icmp ne i32 %3067, 0
  br i1 %3068, label %3069, label %3086

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

3086:                                             ; preds = %3064, %3057
  %3087 = load i32, ptr %78, align 4, !tbaa !5
  %3088 = call ptr @__errno_location() #12
  store i32 %3087, ptr %3088, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = load i32, ptr @test_count, align 4, !tbaa !5
  %3091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @s2n_strerror(i32 noundef %3092, ptr noundef @.str.4)
  %3094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror_debug(i32 noundef %3095, ptr noundef @.str.4)
  %3097 = call ptr @__errno_location() #12
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @strerror(i32 noundef %3098) #11
  %3100 = call ptr @__errno_location() #12
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3089, ptr noundef @.str.5, i32 noundef %3090, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3093, ptr noundef %3096, ptr noundef %3099, i32 noundef %3101) #11
  br label %3103

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

3104:                                             ; preds = %3103
  br label %3105

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

3106:                                             ; No predecessors!
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

3108:                                             ; preds = %3107, %3050
  br label %3109

3109:                                             ; preds = %3108
  br label %3110

3110:                                             ; preds = %3109
  %3111 = load ptr, ptr %77, align 8, !tbaa !9
  %3112 = getelementptr inbounds %struct.s2n_config, ptr %3111, i32 0, i32 7
  store ptr %15, ptr %3112, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #11
  %3113 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3113, ptr %79, align 8, !tbaa !9
  br label %3114

3114:                                             ; preds = %3110
  %3115 = load i32, ptr @test_count, align 4, !tbaa !5
  %3116 = add nsw i32 %3115, 1
  store i32 %3116, ptr @test_count, align 4, !tbaa !5
  %3117 = load ptr, ptr %79, align 8, !tbaa !9
  %3118 = icmp eq ptr %3117, null
  br i1 %3118, label %3119, label %3172

3119:                                             ; preds = %3114
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

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

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

3133:                                             ; preds = %3128
  %3134 = load i32, ptr %80, align 4, !tbaa !5
  %3135 = call ptr @__errno_location() #12
  store i32 %3134, ptr %3135, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call ptr @s2n_strerror(i32 noundef %3139, ptr noundef @.str.4)
  %3141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call ptr @s2n_strerror_debug(i32 noundef %3142, ptr noundef @.str.4)
  %3144 = call ptr @__errno_location() #12
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @strerror(i32 noundef %3145) #11
  %3147 = call ptr @__errno_location() #12
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3136, ptr noundef @.str.2, i32 noundef %3137, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3140, ptr noundef %3143, ptr noundef %3146, i32 noundef %3148) #11
  br label %3167

3150:                                             ; preds = %3128, %3121
  %3151 = load i32, ptr %80, align 4, !tbaa !5
  %3152 = call ptr @__errno_location() #12
  store i32 %3151, ptr %3152, align 4, !tbaa !5
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = load i32, ptr @test_count, align 4, !tbaa !5
  %3155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3156 = load i32, ptr %3155, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror(i32 noundef %3156, ptr noundef @.str.4)
  %3158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  %3160 = call ptr @s2n_strerror_debug(i32 noundef %3159, ptr noundef @.str.4)
  %3161 = call ptr @__errno_location() #12
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call ptr @strerror(i32 noundef %3162) #11
  %3164 = call ptr @__errno_location() #12
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3153, ptr noundef @.str.5, i32 noundef %3154, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3157, ptr noundef %3160, ptr noundef %3163, i32 noundef %3165) #11
  br label %3167

3167:                                             ; preds = %3150, %3133
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3168

3168:                                             ; preds = %3167
  br label %3169

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

3170:                                             ; No predecessors!
  br label %3171

3171:                                             ; preds = %3170
  br label %3172

3172:                                             ; preds = %3171, %3114
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

3174:                                             ; preds = %3173
  %3175 = load ptr, ptr %79, align 8, !tbaa !9
  %3176 = getelementptr inbounds %struct.s2n_connection, ptr %3175, i32 0, i32 23
  store i8 34, ptr %3176, align 4, !tbaa !29
  br label %3177

3177:                                             ; preds = %3174
  %3178 = load i32, ptr @test_count, align 4, !tbaa !5
  %3179 = add nsw i32 %3178, 1
  store i32 %3179, ptr @test_count, align 4, !tbaa !5
  %3180 = load ptr, ptr %79, align 8, !tbaa !9
  %3181 = load ptr, ptr %77, align 8, !tbaa !9
  %3182 = call i32 @s2n_connection_set_config(ptr noundef %3180, ptr noundef %3181)
  %3183 = icmp eq i32 %3182, -1
  br i1 %3183, label %3184, label %3237

3184:                                             ; preds = %3177
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

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

3193:                                             ; preds = %3186
  %3194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3195 = call i32 @fileno(ptr noundef %3194) #11
  %3196 = call i32 @isatty(i32 noundef %3195) #11
  %3197 = icmp ne i32 %3196, 0
  br i1 %3197, label %3198, label %3215

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

3215:                                             ; preds = %3193, %3186
  %3216 = load i32, ptr %81, align 4, !tbaa !5
  %3217 = call ptr @__errno_location() #12
  store i32 %3216, ptr %3217, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = call ptr @s2n_strerror(i32 noundef %3221, ptr noundef @.str.4)
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror_debug(i32 noundef %3224, ptr noundef @.str.4)
  %3226 = call ptr @__errno_location() #12
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @strerror(i32 noundef %3227) #11
  %3229 = call ptr @__errno_location() #12
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3218, ptr noundef @.str.5, i32 noundef %3219, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3222, ptr noundef %3225, ptr noundef %3228, i32 noundef %3230) #11
  br label %3232

3232:                                             ; preds = %3215, %3198
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

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

3235:                                             ; No predecessors!
  br label %3236

3236:                                             ; preds = %3235
  br label %3237

3237:                                             ; preds = %3236, %3177
  br label %3238

3238:                                             ; preds = %3237
  br label %3239

3239:                                             ; preds = %3238
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  store i32 0, ptr %82, align 4, !tbaa !5
  br label %3240

3240:                                             ; preds = %3239
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = add nsw i32 %3241, 1
  store i32 %3242, ptr @test_count, align 4, !tbaa !5
  %3243 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %3244 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.12, ptr noundef %3243, ptr noundef %82, i64 noundef 12000)
  %3245 = icmp eq i32 %3244, -1
  br i1 %3245, label %3246, label %3299

3246:                                             ; preds = %3240
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3249 = call ptr @__errno_location() #12
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  store i32 %3250, ptr %83, align 4, !tbaa !5
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = call i32 @s2n_print_stacktrace(ptr noundef %3251)
  %3253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3254 = trunc i8 %3253 to i1
  br i1 %3254, label %3255, label %3277

3255:                                             ; preds = %3248
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @fileno(ptr noundef %3256) #11
  %3258 = call i32 @isatty(i32 noundef %3257) #11
  %3259 = icmp ne i32 %3258, 0
  br i1 %3259, label %3260, label %3277

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

3277:                                             ; preds = %3255, %3248
  %3278 = load i32, ptr %83, align 4, !tbaa !5
  %3279 = call ptr @__errno_location() #12
  store i32 %3278, ptr %3279, align 4, !tbaa !5
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = load i32, ptr @test_count, align 4, !tbaa !5
  %3282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  %3284 = call ptr @s2n_strerror(i32 noundef %3283, ptr noundef @.str.4)
  %3285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror_debug(i32 noundef %3286, ptr noundef @.str.4)
  %3288 = call ptr @__errno_location() #12
  %3289 = load i32, ptr %3288, align 4, !tbaa !5
  %3290 = call ptr @strerror(i32 noundef %3289) #11
  %3291 = call ptr @__errno_location() #12
  %3292 = load i32, ptr %3291, align 4, !tbaa !5
  %3293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3280, ptr noundef @.str.5, i32 noundef %3281, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3284, ptr noundef %3287, ptr noundef %3290, i32 noundef %3292) #11
  br label %3294

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

3295:                                             ; preds = %3294
  br label %3296

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

3297:                                             ; No predecessors!
  br label %3298

3298:                                             ; preds = %3297
  br label %3299

3299:                                             ; preds = %3298, %3240
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

3301:                                             ; preds = %3300
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  %3302 = call ptr @BIO_s_mem()
  %3303 = call ptr @BIO_new(ptr noundef %3302)
  store ptr %3303, ptr %84, align 8, !tbaa !9
  br label %3304

3304:                                             ; preds = %3301
  %3305 = load i32, ptr @test_count, align 4, !tbaa !5
  %3306 = add nsw i32 %3305, 1
  store i32 %3306, ptr @test_count, align 4, !tbaa !5
  %3307 = load ptr, ptr %84, align 8, !tbaa !9
  %3308 = icmp eq ptr %3307, null
  br i1 %3308, label %3309, label %3362

3309:                                             ; preds = %3304
  br label %3310

3310:                                             ; preds = %3309
  br label %3311

3311:                                             ; preds = %3310
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %3312 = call ptr @__errno_location() #12
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  store i32 %3313, ptr %85, align 4, !tbaa !5
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = call i32 @s2n_print_stacktrace(ptr noundef %3314)
  %3316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3317 = trunc i8 %3316 to i1
  br i1 %3317, label %3318, label %3340

3318:                                             ; preds = %3311
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @fileno(ptr noundef %3319) #11
  %3321 = call i32 @isatty(i32 noundef %3320) #11
  %3322 = icmp ne i32 %3321, 0
  br i1 %3322, label %3323, label %3340

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

3340:                                             ; preds = %3318, %3311
  %3341 = load i32, ptr %85, align 4, !tbaa !5
  %3342 = call ptr @__errno_location() #12
  store i32 %3341, ptr %3342, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = load i32, ptr @test_count, align 4, !tbaa !5
  %3345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror(i32 noundef %3346, ptr noundef @.str.4)
  %3348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror_debug(i32 noundef %3349, ptr noundef @.str.4)
  %3351 = call ptr @__errno_location() #12
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @strerror(i32 noundef %3352) #11
  %3354 = call ptr @__errno_location() #12
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3343, ptr noundef @.str.5, i32 noundef %3344, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3347, ptr noundef %3350, ptr noundef %3353, i32 noundef %3355) #11
  br label %3357

3357:                                             ; preds = %3340, %3323
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

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

3360:                                             ; No predecessors!
  br label %3361

3361:                                             ; preds = %3360
  br label %3362

3362:                                             ; preds = %3361, %3304
  br label %3363

3363:                                             ; preds = %3362
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

3365:                                             ; preds = %3364
  %3366 = load i32, ptr @test_count, align 4, !tbaa !5
  %3367 = add nsw i32 %3366, 1
  store i32 %3367, ptr @test_count, align 4, !tbaa !5
  %3368 = load ptr, ptr %84, align 8, !tbaa !9
  %3369 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %3370 = load i32, ptr %82, align 4, !tbaa !5
  %3371 = call i32 @BIO_write(ptr noundef %3368, ptr noundef %3369, i32 noundef %3370)
  %3372 = icmp sgt i32 %3371, 0
  br i1 %3372, label %3426, label %3373

3373:                                             ; preds = %3365
  br label %3374

3374:                                             ; preds = %3373
  br label %3375

3375:                                             ; preds = %3374
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3376 = call ptr @__errno_location() #12
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  store i32 %3377, ptr %86, align 4, !tbaa !5
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = call i32 @s2n_print_stacktrace(ptr noundef %3378)
  %3380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3381 = trunc i8 %3380 to i1
  br i1 %3381, label %3382, label %3404

3382:                                             ; preds = %3375
  %3383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3384 = call i32 @fileno(ptr noundef %3383) #11
  %3385 = call i32 @isatty(i32 noundef %3384) #11
  %3386 = icmp ne i32 %3385, 0
  br i1 %3386, label %3387, label %3404

3387:                                             ; preds = %3382
  %3388 = load i32, ptr %86, align 4, !tbaa !5
  %3389 = call ptr @__errno_location() #12
  store i32 %3388, ptr %3389, align 4, !tbaa !5
  %3390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3391 = load i32, ptr @test_count, align 4, !tbaa !5
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror(i32 noundef %3393, ptr noundef @.str.4)
  %3395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror_debug(i32 noundef %3396, ptr noundef @.str.4)
  %3398 = call ptr @__errno_location() #12
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @strerror(i32 noundef %3399) #11
  %3401 = call ptr @__errno_location() #12
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3390, ptr noundef @.str.2, i32 noundef %3391, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3394, ptr noundef %3397, ptr noundef %3400, i32 noundef %3402) #11
  br label %3421

3404:                                             ; preds = %3382, %3375
  %3405 = load i32, ptr %86, align 4, !tbaa !5
  %3406 = call ptr @__errno_location() #12
  store i32 %3405, ptr %3406, align 4, !tbaa !5
  %3407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror(i32 noundef %3410, ptr noundef @.str.4)
  %3412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror_debug(i32 noundef %3413, ptr noundef @.str.4)
  %3415 = call ptr @__errno_location() #12
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @strerror(i32 noundef %3416) #11
  %3418 = call ptr @__errno_location() #12
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3407, ptr noundef @.str.5, i32 noundef %3408, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3411, ptr noundef %3414, ptr noundef %3417, i32 noundef %3419) #11
  br label %3421

3421:                                             ; preds = %3404, %3387
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3422

3422:                                             ; preds = %3421
  br label %3423

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

3424:                                             ; No predecessors!
  br label %3425

3425:                                             ; preds = %3424
  br label %3426

3426:                                             ; preds = %3425, %3365
  br label %3427

3427:                                             ; preds = %3426
  br label %3428

3428:                                             ; preds = %3427
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #11
  %3429 = load ptr, ptr %84, align 8, !tbaa !9
  %3430 = call ptr @PEM_read_bio_X509(ptr noundef %3429, ptr noundef null, ptr noundef null, ptr noundef null)
  store ptr %3430, ptr %87, align 8, !tbaa !9
  br label %3431

3431:                                             ; preds = %3428
  %3432 = load i32, ptr @test_count, align 4, !tbaa !5
  %3433 = add nsw i32 %3432, 1
  store i32 %3433, ptr @test_count, align 4, !tbaa !5
  %3434 = load ptr, ptr %87, align 8, !tbaa !9
  %3435 = icmp eq ptr %3434, null
  br i1 %3435, label %3436, label %3489

3436:                                             ; preds = %3431
  br label %3437

3437:                                             ; preds = %3436
  br label %3438

3438:                                             ; preds = %3437
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3439 = call ptr @__errno_location() #12
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  store i32 %3440, ptr %88, align 4, !tbaa !5
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = call i32 @s2n_print_stacktrace(ptr noundef %3441)
  %3443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3444 = trunc i8 %3443 to i1
  br i1 %3444, label %3445, label %3467

3445:                                             ; preds = %3438
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = call i32 @fileno(ptr noundef %3446) #11
  %3448 = call i32 @isatty(i32 noundef %3447) #11
  %3449 = icmp ne i32 %3448, 0
  br i1 %3449, label %3450, label %3467

3450:                                             ; preds = %3445
  %3451 = load i32, ptr %88, align 4, !tbaa !5
  %3452 = call ptr @__errno_location() #12
  store i32 %3451, ptr %3452, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = load i32, ptr @test_count, align 4, !tbaa !5
  %3455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror(i32 noundef %3456, ptr noundef @.str.4)
  %3458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror_debug(i32 noundef %3459, ptr noundef @.str.4)
  %3461 = call ptr @__errno_location() #12
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @strerror(i32 noundef %3462) #11
  %3464 = call ptr @__errno_location() #12
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3453, ptr noundef @.str.2, i32 noundef %3454, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3457, ptr noundef %3460, ptr noundef %3463, i32 noundef %3465) #11
  br label %3484

3467:                                             ; preds = %3445, %3438
  %3468 = load i32, ptr %88, align 4, !tbaa !5
  %3469 = call ptr @__errno_location() #12
  store i32 %3468, ptr %3469, align 4, !tbaa !5
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror(i32 noundef %3473, ptr noundef @.str.4)
  %3475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3476 = load i32, ptr %3475, align 4, !tbaa !5
  %3477 = call ptr @s2n_strerror_debug(i32 noundef %3476, ptr noundef @.str.4)
  %3478 = call ptr @__errno_location() #12
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @strerror(i32 noundef %3479) #11
  %3481 = call ptr @__errno_location() #12
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3470, ptr noundef @.str.5, i32 noundef %3471, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3474, ptr noundef %3477, ptr noundef %3480, i32 noundef %3482) #11
  br label %3484

3484:                                             ; preds = %3467, %3450
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3485

3485:                                             ; preds = %3484
  br label %3486

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

3487:                                             ; No predecessors!
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

3489:                                             ; preds = %3488, %3431
  br label %3490

3490:                                             ; preds = %3489
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  br label %3494

3494:                                             ; preds = %3493
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = add nsw i32 %3495, 1
  store i32 %3496, ptr @test_count, align 4, !tbaa !5
  %3497 = load ptr, ptr %79, align 8, !tbaa !9
  %3498 = load ptr, ptr %87, align 8, !tbaa !9
  %3499 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %3497, ptr noundef %3498)
  %3500 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  store i32 %3499, ptr %3500, align 4
  %3501 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  %3502 = load i32, ptr %3501, align 4
  %3503 = call zeroext i1 @s2n_result_is_error(i32 %3502)
  br i1 %3503, label %3557, label %3504

3504:                                             ; preds = %3494
  br label %3505

3505:                                             ; preds = %3504
  br label %3506

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

3513:                                             ; preds = %3506
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = call i32 @fileno(ptr noundef %3514) #11
  %3516 = call i32 @isatty(i32 noundef %3515) #11
  %3517 = icmp ne i32 %3516, 0
  br i1 %3517, label %3518, label %3535

3518:                                             ; preds = %3513
  %3519 = load i32, ptr %90, align 4, !tbaa !5
  %3520 = call ptr @__errno_location() #12
  store i32 %3519, ptr %3520, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3524 = load i32, ptr %3523, align 4, !tbaa !5
  %3525 = call ptr @s2n_strerror(i32 noundef %3524, ptr noundef @.str.4)
  %3526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror_debug(i32 noundef %3527, ptr noundef @.str.4)
  %3529 = call ptr @__errno_location() #12
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @strerror(i32 noundef %3530) #11
  %3532 = call ptr @__errno_location() #12
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3521, ptr noundef @.str.2, i32 noundef %3522, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3525, ptr noundef %3528, ptr noundef %3531, i32 noundef %3533) #11
  br label %3552

3535:                                             ; preds = %3513, %3506
  %3536 = load i32, ptr %90, align 4, !tbaa !5
  %3537 = call ptr @__errno_location() #12
  store i32 %3536, ptr %3537, align 4, !tbaa !5
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call ptr @s2n_strerror(i32 noundef %3541, ptr noundef @.str.4)
  %3543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @s2n_strerror_debug(i32 noundef %3544, ptr noundef @.str.4)
  %3546 = call ptr @__errno_location() #12
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call ptr @strerror(i32 noundef %3547) #11
  %3549 = call ptr @__errno_location() #12
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3538, ptr noundef @.str.5, i32 noundef %3539, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3542, ptr noundef %3545, ptr noundef %3548, i32 noundef %3550) #11
  br label %3552

3552:                                             ; preds = %3535, %3518
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3553

3553:                                             ; preds = %3552
  br label %3554

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

3555:                                             ; No predecessors!
  br label %3556

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556, %3494
  br label %3558

3558:                                             ; preds = %3557
  br label %3559

3559:                                             ; preds = %3558
  br label %3560

3560:                                             ; preds = %3559
  %3561 = load i32, ptr @test_count, align 4, !tbaa !5
  %3562 = add nsw i32 %3561, 1
  store i32 %3562, ptr @test_count, align 4, !tbaa !5
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = icmp eq i32 %3564, 335544366
  br i1 %3565, label %3619, label %3566

3566:                                             ; preds = %3560
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3569 = call ptr @__errno_location() #12
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  store i32 %3570, ptr %91, align 4, !tbaa !5
  %3571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3572 = call i32 @s2n_print_stacktrace(ptr noundef %3571)
  %3573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3574 = trunc i8 %3573 to i1
  br i1 %3574, label %3575, label %3597

3575:                                             ; preds = %3568
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = call i32 @fileno(ptr noundef %3576) #11
  %3578 = call i32 @isatty(i32 noundef %3577) #11
  %3579 = icmp ne i32 %3578, 0
  br i1 %3579, label %3580, label %3597

3580:                                             ; preds = %3575
  %3581 = load i32, ptr %91, align 4, !tbaa !5
  %3582 = call ptr @__errno_location() #12
  store i32 %3581, ptr %3582, align 4, !tbaa !5
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @s2n_strerror(i32 noundef %3586, ptr noundef @.str.4)
  %3588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call ptr @s2n_strerror_debug(i32 noundef %3589, ptr noundef @.str.4)
  %3591 = call ptr @__errno_location() #12
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #11
  %3594 = call ptr @__errno_location() #12
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef @.str.2, i32 noundef %3584, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3587, ptr noundef %3590, ptr noundef %3593, i32 noundef %3595) #11
  br label %3614

3597:                                             ; preds = %3575, %3568
  %3598 = load i32, ptr %91, align 4, !tbaa !5
  %3599 = call ptr @__errno_location() #12
  store i32 %3598, ptr %3599, align 4, !tbaa !5
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror(i32 noundef %3603, ptr noundef @.str.4)
  %3605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call ptr @s2n_strerror_debug(i32 noundef %3606, ptr noundef @.str.4)
  %3608 = call ptr @__errno_location() #12
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @strerror(i32 noundef %3609) #11
  %3611 = call ptr @__errno_location() #12
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3600, ptr noundef @.str.5, i32 noundef %3601, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3604, ptr noundef %3607, ptr noundef %3610, i32 noundef %3612) #11
  br label %3614

3614:                                             ; preds = %3597, %3580
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3615

3615:                                             ; preds = %3614
  br label %3616

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

3617:                                             ; No predecessors!
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618, %3560
  br label %3620

3620:                                             ; preds = %3619
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

3622:                                             ; preds = %3621
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = add nsw i32 %3623, 1
  store i32 %3624, 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_debug(i32 noundef %3626, ptr noundef @.str.4)
  %3628 = icmp eq ptr %3627, null
  br i1 %3628, label %3629, label %3682

3629:                                             ; preds = %3622
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3632 = call ptr @__errno_location() #12
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  store i32 %3633, ptr %92, align 4, !tbaa !5
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = call i32 @s2n_print_stacktrace(ptr noundef %3634)
  %3636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3637 = trunc i8 %3636 to i1
  br i1 %3637, label %3638, label %3660

3638:                                             ; preds = %3631
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = call i32 @fileno(ptr noundef %3639) #11
  %3641 = call i32 @isatty(i32 noundef %3640) #11
  %3642 = icmp ne i32 %3641, 0
  br i1 %3642, label %3643, label %3660

3643:                                             ; preds = %3638
  %3644 = load i32, ptr %92, align 4, !tbaa !5
  %3645 = call ptr @__errno_location() #12
  store i32 %3644, ptr %3645, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef @.str.4)
  %3651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror_debug(i32 noundef %3652, ptr noundef @.str.4)
  %3654 = call ptr @__errno_location() #12
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #11
  %3657 = call ptr @__errno_location() #12
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef @.str.2, i32 noundef %3647, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3650, ptr noundef %3653, ptr noundef %3656, i32 noundef %3658) #11
  br label %3677

3660:                                             ; preds = %3638, %3631
  %3661 = load i32, ptr %92, align 4, !tbaa !5
  %3662 = call ptr @__errno_location() #12
  store i32 %3661, ptr %3662, align 4, !tbaa !5
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror(i32 noundef %3666, ptr noundef @.str.4)
  %3668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror_debug(i32 noundef %3669, ptr noundef @.str.4)
  %3671 = call ptr @__errno_location() #12
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call ptr @strerror(i32 noundef %3672) #11
  %3674 = call ptr @__errno_location() #12
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3663, ptr noundef @.str.5, i32 noundef %3664, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3667, ptr noundef %3670, ptr noundef %3673, i32 noundef %3675) #11
  br label %3677

3677:                                             ; preds = %3660, %3643
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

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

3680:                                             ; No predecessors!
  br label %3681

3681:                                             ; preds = %3680
  br label %3682

3682:                                             ; preds = %3681, %3622
  br label %3683

3683:                                             ; preds = %3682
  br label %3684

3684:                                             ; preds = %3683
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

3687:                                             ; preds = %3686
  %3688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3688, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3689 = call ptr @__errno_location() #12
  store i32 0, ptr %3689, align 4, !tbaa !5
  br label %3690

3690:                                             ; preds = %3687
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692
  call void @X509_free_pointer(ptr noundef %87)
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #11
  call void @BIO_free_pointer(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  %3694 = call i32 @s2n_connection_ptr_free(ptr noundef %79)
  %3695 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %3694, ptr %3695, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  %3696 = call i32 @s2n_config_ptr_free(ptr noundef %77)
  %3697 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  store i32 %3696, ptr %3697, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  %3698 = call ptr @s2n_config_new()
  store ptr %3698, ptr %95, align 8, !tbaa !9
  br label %3699

3699:                                             ; preds = %3693
  %3700 = load i32, ptr @test_count, align 4, !tbaa !5
  %3701 = add nsw i32 %3700, 1
  store i32 %3701, ptr @test_count, align 4, !tbaa !5
  %3702 = load ptr, ptr %95, align 8, !tbaa !9
  %3703 = icmp eq ptr %3702, null
  br i1 %3703, label %3704, label %3757

3704:                                             ; preds = %3699
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

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

3713:                                             ; preds = %3706
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @fileno(ptr noundef %3714) #11
  %3716 = call i32 @isatty(i32 noundef %3715) #11
  %3717 = icmp ne i32 %3716, 0
  br i1 %3717, label %3718, label %3735

3718:                                             ; preds = %3713
  %3719 = load i32, ptr %96, align 4, !tbaa !5
  %3720 = call ptr @__errno_location() #12
  store i32 %3719, ptr %3720, align 4, !tbaa !5
  %3721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3722 = load i32, ptr @test_count, align 4, !tbaa !5
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror_debug(i32 noundef %3727, ptr noundef @.str.4)
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #11
  %3732 = call ptr @__errno_location() #12
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3721, ptr noundef @.str.2, i32 noundef %3722, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3725, ptr noundef %3728, ptr noundef %3731, i32 noundef %3733) #11
  br label %3752

3735:                                             ; preds = %3713, %3706
  %3736 = load i32, ptr %96, align 4, !tbaa !5
  %3737 = call ptr @__errno_location() #12
  store i32 %3736, ptr %3737, align 4, !tbaa !5
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3741, ptr noundef @.str.4)
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef @.str.4)
  %3746 = call ptr @__errno_location() #12
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @strerror(i32 noundef %3747) #11
  %3749 = call ptr @__errno_location() #12
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef @.str.5, i32 noundef %3739, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3742, ptr noundef %3745, ptr noundef %3748, i32 noundef %3750) #11
  br label %3752

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

3753:                                             ; preds = %3752
  br label %3754

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

3755:                                             ; No predecessors!
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756, %3699
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  %3760 = load ptr, ptr %95, align 8, !tbaa !9
  %3761 = getelementptr inbounds %struct.s2n_config, ptr %3760, i32 0, i32 7
  store ptr %15, ptr %3761, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %3762 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3762, ptr %97, align 8, !tbaa !9
  br label %3763

3763:                                             ; preds = %3759
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = add nsw i32 %3764, 1
  store i32 %3765, ptr @test_count, align 4, !tbaa !5
  %3766 = load ptr, ptr %97, align 8, !tbaa !9
  %3767 = icmp eq ptr %3766, null
  br i1 %3767, label %3768, label %3821

3768:                                             ; preds = %3763
  br label %3769

3769:                                             ; preds = %3768
  br label %3770

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

3777:                                             ; preds = %3770
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @fileno(ptr noundef %3778) #11
  %3780 = call i32 @isatty(i32 noundef %3779) #11
  %3781 = icmp ne i32 %3780, 0
  br i1 %3781, label %3782, label %3799

3782:                                             ; preds = %3777
  %3783 = load i32, ptr %98, align 4, !tbaa !5
  %3784 = call ptr @__errno_location() #12
  store i32 %3783, ptr %3784, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @s2n_strerror(i32 noundef %3788, ptr noundef @.str.4)
  %3790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call ptr @s2n_strerror_debug(i32 noundef %3791, ptr noundef @.str.4)
  %3793 = call ptr @__errno_location() #12
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call ptr @strerror(i32 noundef %3794) #11
  %3796 = call ptr @__errno_location() #12
  %3797 = load i32, ptr %3796, align 4, !tbaa !5
  %3798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3785, ptr noundef @.str.2, i32 noundef %3786, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3789, ptr noundef %3792, ptr noundef %3795, i32 noundef %3797) #11
  br label %3816

3799:                                             ; preds = %3777, %3770
  %3800 = load i32, ptr %98, align 4, !tbaa !5
  %3801 = call ptr @__errno_location() #12
  store i32 %3800, ptr %3801, align 4, !tbaa !5
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = load i32, ptr @test_count, align 4, !tbaa !5
  %3804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @s2n_strerror(i32 noundef %3805, ptr noundef @.str.4)
  %3807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror_debug(i32 noundef %3808, ptr noundef @.str.4)
  %3810 = call ptr @__errno_location() #12
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = call ptr @strerror(i32 noundef %3811) #11
  %3813 = call ptr @__errno_location() #12
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  %3815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3802, ptr noundef @.str.5, i32 noundef %3803, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3806, ptr noundef %3809, ptr noundef %3812, i32 noundef %3814) #11
  br label %3816

3816:                                             ; preds = %3799, %3782
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3817

3817:                                             ; preds = %3816
  br label %3818

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

3819:                                             ; No predecessors!
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820, %3763
  br label %3822

3822:                                             ; preds = %3821
  br label %3823

3823:                                             ; preds = %3822
  %3824 = load ptr, ptr %97, align 8, !tbaa !9
  %3825 = getelementptr inbounds %struct.s2n_connection, ptr %3824, i32 0, i32 23
  store i8 33, ptr %3825, align 4, !tbaa !29
  br label %3826

3826:                                             ; preds = %3823
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %3828 = add nsw i32 %3827, 1
  store i32 %3828, ptr @test_count, align 4, !tbaa !5
  %3829 = load ptr, ptr %97, align 8, !tbaa !9
  %3830 = load ptr, ptr %95, align 8, !tbaa !9
  %3831 = call i32 @s2n_connection_set_config(ptr noundef %3829, ptr noundef %3830)
  %3832 = icmp eq i32 %3831, -1
  br i1 %3832, label %3833, label %3886

3833:                                             ; preds = %3826
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

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

3842:                                             ; preds = %3835
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = call i32 @fileno(ptr noundef %3843) #11
  %3845 = call i32 @isatty(i32 noundef %3844) #11
  %3846 = icmp ne i32 %3845, 0
  br i1 %3846, label %3847, label %3864

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

3864:                                             ; preds = %3842, %3835
  %3865 = load i32, ptr %99, align 4, !tbaa !5
  %3866 = call ptr @__errno_location() #12
  store i32 %3865, ptr %3866, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror(i32 noundef %3870, ptr noundef @.str.4)
  %3872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call ptr @s2n_strerror_debug(i32 noundef %3873, ptr noundef @.str.4)
  %3875 = call ptr @__errno_location() #12
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #11
  %3878 = call ptr @__errno_location() #12
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3867, ptr noundef @.str.5, i32 noundef %3868, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3871, ptr noundef %3874, ptr noundef %3877, i32 noundef %3879) #11
  br label %3881

3881:                                             ; preds = %3864, %3847
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

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

3884:                                             ; No predecessors!
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885, %3826
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

3888:                                             ; preds = %3887
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  store i32 0, ptr %100, align 4, !tbaa !5
  br label %3889

3889:                                             ; preds = %3888
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = add nsw i32 %3890, 1
  store i32 %3891, ptr @test_count, align 4, !tbaa !5
  %3892 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %3893 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.12, ptr noundef %3892, ptr noundef %100, i64 noundef 12000)
  %3894 = icmp eq i32 %3893, -1
  br i1 %3894, label %3895, label %3948

3895:                                             ; preds = %3889
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

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

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

3909:                                             ; preds = %3904
  %3910 = load i32, ptr %101, align 4, !tbaa !5
  %3911 = call ptr @__errno_location() #12
  store i32 %3910, ptr %3911, align 4, !tbaa !5
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror(i32 noundef %3915, ptr noundef @.str.4)
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror_debug(i32 noundef %3918, ptr noundef @.str.4)
  %3920 = call ptr @__errno_location() #12
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @strerror(i32 noundef %3921) #11
  %3923 = call ptr @__errno_location() #12
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3912, ptr noundef @.str.2, i32 noundef %3913, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 205, ptr noundef %3916, ptr noundef %3919, ptr noundef %3922, i32 noundef %3924) #11
  br label %3943

3926:                                             ; preds = %3904, %3897
  %3927 = load i32, ptr %101, align 4, !tbaa !5
  %3928 = call ptr @__errno_location() #12
  store i32 %3927, ptr %3928, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror(i32 noundef %3932, ptr noundef @.str.4)
  %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_debug(i32 noundef %3935, ptr noundef @.str.4)
  %3937 = call ptr @__errno_location() #12
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @strerror(i32 noundef %3938) #11
  %3940 = call ptr @__errno_location() #12
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef @.str.5, i32 noundef %3930, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 205, ptr noundef %3933, ptr noundef %3936, ptr noundef %3939, i32 noundef %3941) #11
  br label %3943

3943:                                             ; preds = %3926, %3909
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

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

3946:                                             ; No predecessors!
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

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

3949:                                             ; preds = %3948
  br label %3950

3950:                                             ; preds = %3949
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #11
  %3951 = call ptr @BIO_s_mem()
  %3952 = call ptr @BIO_new(ptr noundef %3951)
  store ptr %3952, ptr %102, align 8, !tbaa !9
  br label %3953

3953:                                             ; preds = %3950
  %3954 = load i32, ptr @test_count, align 4, !tbaa !5
  %3955 = add nsw i32 %3954, 1
  store i32 %3955, ptr @test_count, align 4, !tbaa !5
  %3956 = load ptr, ptr %102, align 8, !tbaa !9
  %3957 = icmp eq ptr %3956, null
  br i1 %3957, label %3958, label %4011

3958:                                             ; preds = %3953
  br label %3959

3959:                                             ; preds = %3958
  br label %3960

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

3967:                                             ; preds = %3960
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = call i32 @fileno(ptr noundef %3968) #11
  %3970 = call i32 @isatty(i32 noundef %3969) #11
  %3971 = icmp ne i32 %3970, 0
  br i1 %3971, label %3972, label %3989

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

3989:                                             ; preds = %3967, %3960
  %3990 = load i32, ptr %103, align 4, !tbaa !5
  %3991 = call ptr @__errno_location() #12
  store i32 %3990, ptr %3991, align 4, !tbaa !5
  %3992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3993 = load i32, ptr @test_count, align 4, !tbaa !5
  %3994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3995 = load i32, ptr %3994, align 4, !tbaa !5
  %3996 = call ptr @s2n_strerror(i32 noundef %3995, ptr noundef @.str.4)
  %3997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = call ptr @s2n_strerror_debug(i32 noundef %3998, ptr noundef @.str.4)
  %4000 = call ptr @__errno_location() #12
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call ptr @strerror(i32 noundef %4001) #11
  %4003 = call ptr @__errno_location() #12
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3992, ptr noundef @.str.5, i32 noundef %3993, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3996, ptr noundef %3999, ptr noundef %4002, i32 noundef %4004) #11
  br label %4006

4006:                                             ; preds = %3989, %3972
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %4007

4007:                                             ; preds = %4006
  br label %4008

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

4009:                                             ; No predecessors!
  br label %4010

4010:                                             ; preds = %4009
  br label %4011

4011:                                             ; preds = %4010, %3953
  br label %4012

4012:                                             ; preds = %4011
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

4014:                                             ; preds = %4013
  %4015 = load i32, ptr @test_count, align 4, !tbaa !5
  %4016 = add nsw i32 %4015, 1
  store i32 %4016, ptr @test_count, align 4, !tbaa !5
  %4017 = load ptr, ptr %102, align 8, !tbaa !9
  %4018 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %4019 = load i32, ptr %100, align 4, !tbaa !5
  %4020 = call i32 @BIO_write(ptr noundef %4017, ptr noundef %4018, i32 noundef %4019)
  %4021 = icmp sgt i32 %4020, 0
  br i1 %4021, label %4075, label %4022

4022:                                             ; preds = %4014
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

4024:                                             ; preds = %4023
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %4025 = call ptr @__errno_location() #12
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  store i32 %4026, ptr %104, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = call i32 @s2n_print_stacktrace(ptr noundef %4027)
  %4029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4030 = trunc i8 %4029 to i1
  br i1 %4030, label %4031, label %4053

4031:                                             ; preds = %4024
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = call i32 @fileno(ptr noundef %4032) #11
  %4034 = call i32 @isatty(i32 noundef %4033) #11
  %4035 = icmp ne i32 %4034, 0
  br i1 %4035, label %4036, label %4053

4036:                                             ; preds = %4031
  %4037 = load i32, ptr %104, align 4, !tbaa !5
  %4038 = call ptr @__errno_location() #12
  store i32 %4037, ptr %4038, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef @.str.4)
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef @.str.4)
  %4047 = call ptr @__errno_location() #12
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @strerror(i32 noundef %4048) #11
  %4050 = call ptr @__errno_location() #12
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef @.str.2, i32 noundef %4040, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4043, ptr noundef %4046, ptr noundef %4049, i32 noundef %4051) #11
  br label %4070

4053:                                             ; preds = %4031, %4024
  %4054 = load i32, ptr %104, align 4, !tbaa !5
  %4055 = call ptr @__errno_location() #12
  store i32 %4054, ptr %4055, align 4, !tbaa !5
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4057 = load i32, ptr @test_count, align 4, !tbaa !5
  %4058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call ptr @s2n_strerror(i32 noundef %4059, ptr noundef @.str.4)
  %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_debug(i32 noundef %4062, ptr noundef @.str.4)
  %4064 = call ptr @__errno_location() #12
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @strerror(i32 noundef %4065) #11
  %4067 = call ptr @__errno_location() #12
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4056, ptr noundef @.str.5, i32 noundef %4057, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4060, ptr noundef %4063, ptr noundef %4066, i32 noundef %4068) #11
  br label %4070

4070:                                             ; preds = %4053, %4036
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

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

4073:                                             ; No predecessors!
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074, %4014
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

4077:                                             ; preds = %4076
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  %4078 = load ptr, ptr %102, align 8, !tbaa !9
  %4079 = call ptr @PEM_read_bio_X509(ptr noundef %4078, ptr noundef null, ptr noundef null, ptr noundef null)
  store ptr %4079, ptr %105, align 8, !tbaa !9
  br label %4080

4080:                                             ; preds = %4077
  %4081 = load i32, ptr @test_count, align 4, !tbaa !5
  %4082 = add nsw i32 %4081, 1
  store i32 %4082, ptr @test_count, align 4, !tbaa !5
  %4083 = load ptr, ptr %105, align 8, !tbaa !9
  %4084 = icmp eq ptr %4083, null
  br i1 %4084, label %4085, label %4138

4085:                                             ; preds = %4080
  br label %4086

4086:                                             ; preds = %4085
  br label %4087

4087:                                             ; preds = %4086
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %4088 = call ptr @__errno_location() #12
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  store i32 %4089, ptr %106, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = call i32 @s2n_print_stacktrace(ptr noundef %4090)
  %4092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4093 = trunc i8 %4092 to i1
  br i1 %4093, label %4094, label %4116

4094:                                             ; preds = %4087
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @fileno(ptr noundef %4095) #11
  %4097 = call i32 @isatty(i32 noundef %4096) #11
  %4098 = icmp ne i32 %4097, 0
  br i1 %4098, label %4099, label %4116

4099:                                             ; preds = %4094
  %4100 = load i32, ptr %106, align 4, !tbaa !5
  %4101 = call ptr @__errno_location() #12
  store i32 %4100, ptr %4101, align 4, !tbaa !5
  %4102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4103 = load i32, ptr @test_count, align 4, !tbaa !5
  %4104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4105 = load i32, ptr %4104, align 4, !tbaa !5
  %4106 = call ptr @s2n_strerror(i32 noundef %4105, ptr noundef @.str.4)
  %4107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4108 = load i32, ptr %4107, align 4, !tbaa !5
  %4109 = call ptr @s2n_strerror_debug(i32 noundef %4108, ptr noundef @.str.4)
  %4110 = call ptr @__errno_location() #12
  %4111 = load i32, ptr %4110, align 4, !tbaa !5
  %4112 = call ptr @strerror(i32 noundef %4111) #11
  %4113 = call ptr @__errno_location() #12
  %4114 = load i32, ptr %4113, align 4, !tbaa !5
  %4115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4102, ptr noundef @.str.2, i32 noundef %4103, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4106, ptr noundef %4109, ptr noundef %4112, i32 noundef %4114) #11
  br label %4133

4116:                                             ; preds = %4094, %4087
  %4117 = load i32, ptr %106, align 4, !tbaa !5
  %4118 = call ptr @__errno_location() #12
  store i32 %4117, ptr %4118, align 4, !tbaa !5
  %4119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4120 = load i32, ptr @test_count, align 4, !tbaa !5
  %4121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror(i32 noundef %4122, ptr noundef @.str.4)
  %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_debug(i32 noundef %4125, ptr noundef @.str.4)
  %4127 = call ptr @__errno_location() #12
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call ptr @strerror(i32 noundef %4128) #11
  %4130 = call ptr @__errno_location() #12
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4119, ptr noundef @.str.5, i32 noundef %4120, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4123, ptr noundef %4126, ptr noundef %4129, i32 noundef %4131) #11
  br label %4133

4133:                                             ; preds = %4116, %4099
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %4134

4134:                                             ; preds = %4133
  br label %4135

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

4136:                                             ; No predecessors!
  br label %4137

4137:                                             ; preds = %4136
  br label %4138

4138:                                             ; preds = %4137, %4080
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  br label %4141

4141:                                             ; preds = %4140
  %4142 = load i32, ptr @test_count, align 4, !tbaa !5
  %4143 = add nsw i32 %4142, 1
  store i32 %4143, ptr @test_count, align 4, !tbaa !5
  %4144 = load ptr, ptr %97, align 8, !tbaa !9
  %4145 = load ptr, ptr %105, align 8, !tbaa !9
  %4146 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %4144, ptr noundef %4145)
  %4147 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  store i32 %4146, ptr %4147, align 4
  %4148 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  %4149 = load i32, ptr %4148, align 4
  %4150 = call zeroext i1 @s2n_result_is_ok(i32 %4149)
  br i1 %4150, label %4204, label %4151

4151:                                             ; preds = %4141
  br label %4152

4152:                                             ; preds = %4151
  br label %4153

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

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

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

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

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

4200:                                             ; preds = %4199
  br label %4201

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

4202:                                             ; No predecessors!
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

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

4205:                                             ; preds = %4204
  br label %4206

4206:                                             ; preds = %4205
  call void @X509_free_pointer(ptr noundef %105)
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  call void @BIO_free_pointer(ptr noundef %102)
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  %4207 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %4208 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %4207, ptr %4208, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  %4209 = call i32 @s2n_config_ptr_free(ptr noundef %95)
  %4210 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4209, ptr %4210, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  br label %4211

4211:                                             ; preds = %4206
  br label %4212

4212:                                             ; preds = %4211
  %4213 = call i32 @s2n_cleanup()
  %4214 = icmp eq i32 %4213, -1
  br i1 %4214, label %4215, label %4268

4215:                                             ; preds = %4212
  br label %4216

4216:                                             ; preds = %4215
  br label %4217

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

4224:                                             ; preds = %4217
  %4225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4226 = call i32 @fileno(ptr noundef %4225) #11
  %4227 = call i32 @isatty(i32 noundef %4226) #11
  %4228 = icmp ne i32 %4227, 0
  br i1 %4228, label %4229, label %4246

4229:                                             ; preds = %4224
  %4230 = load i32, ptr %111, align 4, !tbaa !5
  %4231 = call ptr @__errno_location() #12
  store i32 %4230, ptr %4231, align 4, !tbaa !5
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror(i32 noundef %4235, ptr noundef @.str.4)
  %4237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror_debug(i32 noundef %4238, ptr noundef @.str.4)
  %4240 = call ptr @__errno_location() #12
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @strerror(i32 noundef %4241) #11
  %4243 = call ptr @__errno_location() #12
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4232, ptr noundef @.str.2, i32 noundef %4233, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4236, ptr noundef %4239, ptr noundef %4242, i32 noundef %4244) #11
  br label %4263

4246:                                             ; preds = %4224, %4217
  %4247 = load i32, ptr %111, align 4, !tbaa !5
  %4248 = call ptr @__errno_location() #12
  store i32 %4247, ptr %4248, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = load i32, ptr @test_count, align 4, !tbaa !5
  %4251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @s2n_strerror(i32 noundef %4252, ptr noundef @.str.4)
  %4254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call ptr @s2n_strerror_debug(i32 noundef %4255, ptr noundef @.str.4)
  %4257 = call ptr @__errno_location() #12
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @strerror(i32 noundef %4258) #11
  %4260 = call ptr @__errno_location() #12
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4249, ptr noundef @.str.5, i32 noundef %4250, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4253, ptr noundef %4256, ptr noundef %4259, i32 noundef %4261) #11
  br label %4263

4263:                                             ; preds = %4246, %4229
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

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

4266:                                             ; No predecessors!
  br label %4267

4267:                                             ; preds = %4266
  br label %4268

4268:                                             ; preds = %4267, %4212
  br label %4269

4269:                                             ; preds = %4268
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

4272:                                             ; preds = %4271
  %4273 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %4274 = icmp eq i32 %4273, -1
  br i1 %4274, label %4275, label %4328

4275:                                             ; preds = %4272
  br label %4276

4276:                                             ; preds = %4275
  br label %4277

4277:                                             ; preds = %4276
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4278 = call ptr @__errno_location() #12
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  store i32 %4279, ptr %112, align 4, !tbaa !5
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = call i32 @s2n_print_stacktrace(ptr noundef %4280)
  %4282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4283 = trunc i8 %4282 to i1
  br i1 %4283, label %4284, label %4306

4284:                                             ; preds = %4277
  %4285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4286 = call i32 @fileno(ptr noundef %4285) #11
  %4287 = call i32 @isatty(i32 noundef %4286) #11
  %4288 = icmp ne i32 %4287, 0
  br i1 %4288, label %4289, label %4306

4289:                                             ; preds = %4284
  %4290 = load i32, ptr %112, align 4, !tbaa !5
  %4291 = call ptr @__errno_location() #12
  store i32 %4290, ptr %4291, align 4, !tbaa !5
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = call ptr @s2n_strerror(i32 noundef %4295, ptr noundef @.str.4)
  %4297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror_debug(i32 noundef %4298, ptr noundef @.str.4)
  %4300 = call ptr @__errno_location() #12
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call ptr @strerror(i32 noundef %4301) #11
  %4303 = call ptr @__errno_location() #12
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4292, ptr noundef @.str.2, i32 noundef %4293, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4296, ptr noundef %4299, ptr noundef %4302, i32 noundef %4304) #11
  br label %4323

4306:                                             ; preds = %4284, %4277
  %4307 = load i32, ptr %112, align 4, !tbaa !5
  %4308 = call ptr @__errno_location() #12
  store i32 %4307, ptr %4308, align 4, !tbaa !5
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = load i32, ptr @test_count, align 4, !tbaa !5
  %4311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror(i32 noundef %4312, ptr noundef @.str.4)
  %4314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror_debug(i32 noundef %4315, ptr noundef @.str.4)
  %4317 = call ptr @__errno_location() #12
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @strerror(i32 noundef %4318) #11
  %4320 = call ptr @__errno_location() #12
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4309, ptr noundef @.str.5, i32 noundef %4310, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4313, ptr noundef %4316, ptr noundef %4319, i32 noundef %4321) #11
  br label %4323

4323:                                             ; preds = %4306, %4289
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

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

4326:                                             ; No predecessors!
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

4328:                                             ; preds = %4327, %4272
  br label %4329

4329:                                             ; preds = %4328
  br label %4330

4330:                                             ; preds = %4329
  %4331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4332 = trunc i8 %4331 to i1
  br i1 %4332, label %4333, label %4349

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

4338:                                             ; preds = %4333
  %4339 = load i32, ptr @test_count, align 4, !tbaa !5
  %4340 = icmp ne i32 %4339, 0
  br i1 %4340, label %4341, label %4345

4341:                                             ; preds = %4338
  %4342 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4342, ptr noundef @.str.44, i32 noundef %4343) #11
  br label %4348

4345:                                             ; preds = %4338
  %4346 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4346, ptr noundef @.str.45) #11
  br label %4348

4348:                                             ; preds = %4345, %4341
  br label %4360

4349:                                             ; preds = %4333, %4330
  %4350 = load i32, ptr @test_count, align 4, !tbaa !5
  %4351 = icmp ne i32 %4350, 0
  br i1 %4351, label %4352, label %4356

4352:                                             ; preds = %4349
  %4353 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4354 = load i32, ptr @test_count, align 4, !tbaa !5
  %4355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4353, ptr noundef @.str.46, i32 noundef %4354) #11
  br label %4359

4356:                                             ; preds = %4349
  %4357 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4357, ptr noundef @.str.47) #11
  br label %4359

4359:                                             ; preds = %4356, %4352
  br label %4360

4360:                                             ; preds = %4359, %4348
  store i32 0, ptr %3, align 4
  store i32 1, ptr %113, align 4
  br label %4365

4361:                                             ; No predecessors!
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363
  store i32 0, ptr %3, align 4
  store i32 1, ptr %113, align 4
  br label %4365

4365:                                             ; preds = %4364, %4360
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr %9) #11
  %4366 = load i32, ptr %3, align 4
  ret i32 %4366
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare ptr @s2n_config_new() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #2

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

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #9

declare ptr @BIO_new(ptr noundef) #2

declare ptr @BIO_s_mem() #2

declare i32 @BIO_write(ptr noundef, ptr noundef, i32 noundef) #2

declare ptr @PEM_read_bio_X509(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @s2n_x509_validator_check_cert_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @BIO_free(ptr noundef) #2

declare void @X509_free(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @X509_free_pointer(ptr noundef) #10

declare i32 @s2n_openssl_x509_parse(ptr noundef, ptr noundef) #2

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @BIO_free_pointer(ptr noundef) #10

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !7, i64 0}
!18 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!19 = !{!18, !10, i64 8}
!20 = !{!21, !7, i64 0}
!21 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!22 = !{!21, !10, i64 32}
!23 = !{!24, !10, i64 96}
!24 = !{!"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, !25, i64 24, !26, 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, !16, i64 144, !10, i64 152, !16, i64 160, !16, 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, !27, i64 304, !28, 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, !26, i64 448}
!25 = !{!"certs_by_type", !7, i64 0}
!26 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!27 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!28 = !{!"short", !7, i64 0}
!29 = !{!30, !7, i64 220}
!30 = !{!"s2n_connection", !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, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !31, i64 160, !16, i64 168, !16, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !32, i64 240, !10, i64 632, !10, i64 640, !33, i64 648, !38, i64 1144, !41, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !43, i64 1776, !43, i64 1816, !43, i64 1856, !43, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !43, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !44, i64 2004, !44, i64 2008, !45, i64 2016, !28, i64 2208, !6, i64 2212, !28, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !44, i64 2264, !44, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !26, i64 2792, !6, i64 2816, !26, i64 2824, !26, i64 2848, !26, i64 2872, !47, i64 2896, !49, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !26, i64 3784, !6, i64 3808, !51, i64 3816, !7, i64 3848, !43, i64 3992, !26, i64 4032, !26, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !28, i64 4084, !28, i64 4086, !6, i64 4088, !6, i64 4092, !26, i64 4096, !6, i64 4120, !52, i64 4128, !44, i64 4176, !7, i64 4180, !7, i64 4181}
!31 = !{!"s2n_timer", !16, i64 0}
!32 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!33 = !{!"s2n_kex_parameters", !34, i64 0, !35, i64 8, !7, i64 24, !35, i64 56, !36, i64 72, !36, i64 184, !7, i64 296, !37, i64 360, !26, i64 448, !26, i64 472}
!34 = !{!"s2n_dh_params", !10, i64 0}
!35 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!36 = !{!"s2n_kem_group_params", !10, i64 0, !37, i64 8, !35, i64 96}
!37 = !{!"s2n_kem_params", !10, i64 0, !26, i64 8, !26, i64 32, !26, i64 56, !12, i64 80}
!38 = !{!"s2n_handshake_parameters", !39, i64 0, !39, i64 48, !26, i64 96, !6, i64 120, !40, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!39 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!40 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!41 = !{!"s2n_psk_parameters", !6, i64 0, !42, i64 8, !28, i64 40, !28, i64 42, !10, i64 48, !6, i64 56}
!42 = !{!"s2n_array", !26, i64 0, !6, i64 24, !6, i64 28}
!43 = !{!"s2n_stuffer", !26, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!44 = !{!"", !6, i64 0}
!45 = !{!"s2n_handshake", !43, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !46, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!46 = !{!"s2n_offered_early_data", !10, i64 0}
!47 = !{!"s2n_client_hello", !26, i64 0, !48, i64 24, !26, i64 728, !26, i64 752, !26, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!48 = !{!"", !7, i64 0, !26, i64 672, !28, i64 696}
!49 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !28, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !50, i64 48, !12, i64 52}
!50 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!51 = !{!"s2n_ticket_fields", !26, i64 0, !6, i64 24}
!52 = !{!"s2n_post_handshake", !43, i64 0, !7, i64 40}
!53 = !{!54, !10, i64 0}
!54 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !26, i64 16, !26, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!55 = !{!56, !10, i64 8}
!56 = !{!"s2n_cert_chain", !6, i64 0, !10, i64 8}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@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 [105 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
@__const.main.test_sig_scheme_list = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.8 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [25 x i8], align 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 [12000 x i8], align 16
  %4 = alloca [2 x ptr], align 16
  %5 = alloca %struct.s2n_signature_preferences, align 8
  %6 = alloca %struct.s2n_security_policy, 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 i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %21 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %23 = load ptr, ptr @stdout, align 8, !tbaa !9
  %24 = tail call i32 @fflush(ptr noundef %23)
  %25 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %26 = icmp eq i32 %25, -1
  br i1 %26, label %27, label %51

27:                                               ; preds = %2
  %28 = tail call ptr @__errno_location() #13
  %29 = load i32, ptr %28, align 4, !tbaa !5
  %30 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31 = tail call i32 @s2n_print_stacktrace(ptr noundef %30) #12
  %32 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33 = trunc nuw i8 %32 to i1
  br i1 %33, label %34, label %38

34:                                               ; preds = %27
  %35 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36 = tail call i32 @fileno(ptr noundef %35) #12
  %37 = tail call i32 @isatty(i32 noundef %36) #12
  %.not264 = icmp eq i32 %37, 0
  br i1 %.not264, label %38, label %39

38:                                               ; preds = %34, %27
  br label %39

39:                                               ; preds = %34, %38
  %.str.5.sink = phi ptr [ @.str.5, %38 ], [ @.str.2, %34 ]
  store i32 %29, ptr %28, align 4, !tbaa !5
  %40 = load ptr, ptr @stderr, align 8, !tbaa !9
  %41 = load i32, ptr @test_count, align 4, !tbaa !5
  %42 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %43 = load i32, ptr %42, align 4, !tbaa !5
  %44 = tail call ptr @s2n_strerror(i32 noundef %43, ptr noundef nonnull @.str.4) #12
  %45 = load i32, ptr %42, align 4, !tbaa !5
  %46 = tail call ptr @s2n_strerror_debug(i32 noundef %45, ptr noundef nonnull @.str.4) #12
  %47 = load i32, ptr %28, align 4, !tbaa !5
  %48 = tail call ptr @strerror(i32 noundef %47) #12
  %49 = load i32, ptr %28, align 4, !tbaa !5
  %50 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef nonnull %.str.5.sink, i32 noundef %41, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %44, ptr noundef %46, ptr noundef %48, i32 noundef %49) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

51:                                               ; preds = %2
  %52 = load i32, ptr @test_count, align 4, !tbaa !5
  %53 = add nsw i32 %52, 1
  store i32 %53, ptr @test_count, align 4, !tbaa !5
  %54 = tail call i32 @s2n_enable_atexit() #12
  %55 = icmp eq i32 %54, -1
  br i1 %55, label %56, label %80

56:                                               ; preds = %51
  %57 = tail call ptr @__errno_location() #13
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = tail call i32 @s2n_print_stacktrace(ptr noundef %59) #12
  %61 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %62 = trunc nuw i8 %61 to i1
  br i1 %62, label %63, label %67

63:                                               ; preds = %56
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = tail call i32 @fileno(ptr noundef %64) #12
  %66 = tail call i32 @isatty(i32 noundef %65) #12
  %.not263 = icmp eq i32 %66, 0
  br i1 %.not263, label %67, label %68

67:                                               ; preds = %63, %56
  br label %68

68:                                               ; preds = %63, %67
  %.str.5.sink275 = phi ptr [ @.str.5, %67 ], [ @.str.2, %63 ]
  store i32 %58, ptr %57, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = load i32, ptr @test_count, align 4, !tbaa !5
  %71 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = tail call ptr @s2n_strerror(i32 noundef %72, ptr noundef nonnull @.str.4) #12
  %74 = load i32, ptr %71, align 4, !tbaa !5
  %75 = tail call ptr @s2n_strerror_debug(i32 noundef %74, ptr noundef nonnull @.str.4) #12
  %76 = load i32, ptr %57, align 4, !tbaa !5
  %77 = tail call ptr @strerror(i32 noundef %76) #12
  %78 = load i32, ptr %57, align 4, !tbaa !5
  %79 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef nonnull %.str.5.sink275, i32 noundef %70, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %73, ptr noundef %75, ptr noundef %77, i32 noundef %78) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

80:                                               ; preds = %51
  %81 = tail call i32 @s2n_init() #12
  %82 = icmp eq i32 %81, -1
  br i1 %82, label %83, label %107

83:                                               ; preds = %80
  %84 = tail call ptr @__errno_location() #13
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = tail call i32 @s2n_print_stacktrace(ptr noundef %86) #12
  %88 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %89 = trunc nuw i8 %88 to i1
  br i1 %89, label %90, label %94

90:                                               ; preds = %83
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = tail call i32 @fileno(ptr noundef %91) #12
  %93 = tail call i32 @isatty(i32 noundef %92) #12
  %.not262 = icmp eq i32 %93, 0
  br i1 %.not262, label %94, label %95

94:                                               ; preds = %90, %83
  br label %95

95:                                               ; preds = %90, %94
  %.str.5.sink286 = phi ptr [ @.str.5, %94 ], [ @.str.2, %90 ]
  store i32 %85, ptr %84, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = tail call ptr @s2n_strerror(i32 noundef %99, ptr noundef nonnull @.str.4) #12
  %101 = load i32, ptr %98, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror_debug(i32 noundef %101, ptr noundef nonnull @.str.4) #12
  %103 = load i32, ptr %84, align 4, !tbaa !5
  %104 = tail call ptr @strerror(i32 noundef %103) #12
  %105 = load i32, ptr %84, align 4, !tbaa !5
  %106 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef nonnull %.str.5.sink286, i32 noundef %97, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %100, ptr noundef %102, ptr noundef %104, i32 noundef %105) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

107:                                              ; preds = %80
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %3, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.test_sig_scheme_list, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #12
  store i8 2, ptr %5, align 8, !tbaa !15
  %108 = getelementptr inbounds i8, ptr %5, i64 8
  store ptr %4, ptr %108, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %6, i8 0, i64 64, i1 false)
  store i8 33, ptr %6, align 8, !tbaa !18
  %109 = getelementptr inbounds i8, ptr %6, i64 32
  store ptr %5, ptr %109, align 8, !tbaa !20
  %110 = call ptr @s2n_config_new() #12
  %111 = load i32, ptr @test_count, align 4, !tbaa !5
  %112 = add nsw i32 %111, 1
  store i32 %112, ptr @test_count, align 4, !tbaa !5
  %113 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %114 = icmp eq ptr %113, null
  br i1 %114, label %115, label %139

115:                                              ; preds = %107
  %116 = tail call ptr @__errno_location() #13
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = call i32 @s2n_print_stacktrace(ptr noundef %118) #12
  %120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %121 = trunc nuw i8 %120 to i1
  br i1 %121, label %122, label %126

122:                                              ; preds = %115
  %123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %124 = call i32 @fileno(ptr noundef %123) #12
  %125 = call i32 @isatty(i32 noundef %124) #12
  %.not261 = icmp eq i32 %125, 0
  br i1 %.not261, label %126, label %127

126:                                              ; preds = %122, %115
  br label %127

127:                                              ; preds = %122, %126
  %.str.5.sink297 = phi ptr [ @.str.5, %126 ], [ @.str.2, %122 ]
  store i32 %117, ptr %116, align 4, !tbaa !5
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = load i32, ptr @test_count, align 4, !tbaa !5
  %130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = call ptr @s2n_strerror(i32 noundef %131, ptr noundef nonnull @.str.4) #12
  %133 = load i32, ptr %130, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror_debug(i32 noundef %133, ptr noundef nonnull @.str.4) #12
  %135 = load i32, ptr %116, align 4, !tbaa !5
  %136 = call ptr @strerror(i32 noundef %135) #12
  %137 = load i32, ptr %116, align 4, !tbaa !5
  %138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %128, ptr noundef nonnull %.str.5.sink297, i32 noundef %129, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %132, ptr noundef %134, ptr noundef %136, i32 noundef %137) #14
  call void @exit(i32 noundef 1) #15
  unreachable

139:                                              ; preds = %107
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr @test_count, align 4, !tbaa !5
  %142 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %110, ptr noundef nonnull @.str.9) #12
  %143 = icmp eq i32 %142, -1
  br i1 %143, label %144, label %168

144:                                              ; preds = %139
  %145 = tail call ptr @__errno_location() #13
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @s2n_print_stacktrace(ptr noundef %147) #12
  %149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %155

151:                                              ; preds = %144
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = call i32 @fileno(ptr noundef %152) #12
  %154 = call i32 @isatty(i32 noundef %153) #12
  %.not260 = icmp eq i32 %154, 0
  br i1 %.not260, label %155, label %156

155:                                              ; preds = %151, %144
  br label %156

156:                                              ; preds = %151, %155
  %.str.5.sink308 = phi ptr [ @.str.5, %155 ], [ @.str.2, %151 ]
  store i32 %146, ptr %145, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror(i32 noundef %160, ptr noundef nonnull @.str.4) #12
  %162 = load i32, ptr %159, align 4, !tbaa !5
  %163 = call ptr @s2n_strerror_debug(i32 noundef %162, ptr noundef nonnull @.str.4) #12
  %164 = load i32, ptr %145, align 4, !tbaa !5
  %165 = call ptr @strerror(i32 noundef %164) #12
  %166 = load i32, ptr %145, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull %.str.5.sink308, i32 noundef %158, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %161, ptr noundef %163, ptr noundef %165, i32 noundef %166) #14
  call void @exit(i32 noundef 1) #15
  unreachable

168:                                              ; preds = %139
  %169 = load i32, ptr @test_count, align 4, !tbaa !5
  %170 = add nsw i32 %169, 1
  store i32 %170, ptr @test_count, align 4, !tbaa !5
  %171 = call i32 @s2n_connection_set_config(ptr noundef nonnull %113, ptr noundef %110) #12
  %172 = icmp eq i32 %171, -1
  br i1 %172, label %173, label %197

173:                                              ; preds = %168
  %174 = tail call ptr @__errno_location() #13
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @s2n_print_stacktrace(ptr noundef %176) #12
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc nuw i8 %178 to i1
  br i1 %179, label %180, label %184

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = call i32 @fileno(ptr noundef %181) #12
  %183 = call i32 @isatty(i32 noundef %182) #12
  %.not259 = icmp eq i32 %183, 0
  br i1 %.not259, label %184, label %185

184:                                              ; preds = %180, %173
  br label %185

185:                                              ; preds = %180, %184
  %.str.5.sink319 = phi ptr [ @.str.5, %184 ], [ @.str.2, %180 ]
  store i32 %175, ptr %174, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call ptr @s2n_strerror(i32 noundef %189, ptr noundef nonnull @.str.4) #12
  %191 = load i32, ptr %188, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror_debug(i32 noundef %191, ptr noundef nonnull @.str.4) #12
  %193 = load i32, ptr %174, align 4, !tbaa !5
  %194 = call ptr @strerror(i32 noundef %193) #12
  %195 = load i32, ptr %174, align 4, !tbaa !5
  %196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull %.str.5.sink319, i32 noundef %187, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %190, ptr noundef %192, ptr noundef %194, i32 noundef %195) #14
  call void @exit(i32 noundef 1) #15
  unreachable

197:                                              ; preds = %168
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr @test_count, align 4, !tbaa !5
  %200 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.12, ptr noundef nonnull %3, i64 noundef 12000) #12
  %201 = icmp eq i32 %200, -1
  br i1 %201, label %202, label %226

202:                                              ; preds = %197
  %203 = tail call ptr @__errno_location() #13
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = call i32 @s2n_print_stacktrace(ptr noundef %205) #12
  %207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %213

209:                                              ; preds = %202
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = call i32 @fileno(ptr noundef %210) #12
  %212 = call i32 @isatty(i32 noundef %211) #12
  %.not258 = icmp eq i32 %212, 0
  br i1 %.not258, label %213, label %214

213:                                              ; preds = %209, %202
  br label %214

214:                                              ; preds = %209, %213
  %.str.5.sink330 = phi ptr [ @.str.5, %213 ], [ @.str.2, %209 ]
  store i32 %204, ptr %203, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror(i32 noundef %218, ptr noundef nonnull @.str.4) #12
  %220 = load i32, ptr %217, align 4, !tbaa !5
  %221 = call ptr @s2n_strerror_debug(i32 noundef %220, ptr noundef nonnull @.str.4) #12
  %222 = load i32, ptr %203, align 4, !tbaa !5
  %223 = call ptr @strerror(i32 noundef %222) #12
  %224 = load i32, ptr %203, align 4, !tbaa !5
  %225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef nonnull %.str.5.sink330, i32 noundef %216, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %219, ptr noundef %221, ptr noundef %223, i32 noundef %224) #14
  call void @exit(i32 noundef 1) #15
  unreachable

226:                                              ; preds = %197
  %227 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr @test_count, align 4, !tbaa !5
  %230 = call ptr @BIO_s_mem() #12
  %231 = call ptr @BIO_new(ptr noundef %230) #12
  %232 = icmp eq ptr %231, null
  br i1 %232, label %233, label %257

233:                                              ; preds = %226
  %234 = tail call ptr @__errno_location() #13
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @s2n_print_stacktrace(ptr noundef %236) #12
  %238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %239 = trunc nuw i8 %238 to i1
  br i1 %239, label %240, label %244

240:                                              ; preds = %233
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = call i32 @fileno(ptr noundef %241) #12
  %243 = call i32 @isatty(i32 noundef %242) #12
  %.not257 = icmp eq i32 %243, 0
  br i1 %.not257, label %244, label %245

244:                                              ; preds = %240, %233
  br label %245

245:                                              ; preds = %240, %244
  %.str.5.sink341 = phi ptr [ @.str.5, %244 ], [ @.str.2, %240 ]
  store i32 %235, ptr %234, align 4, !tbaa !5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror(i32 noundef %249, ptr noundef nonnull @.str.4) #12
  %251 = load i32, ptr %248, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror_debug(i32 noundef %251, ptr noundef nonnull @.str.4) #12
  %253 = load i32, ptr %234, align 4, !tbaa !5
  %254 = call ptr @strerror(i32 noundef %253) #12
  %255 = load i32, ptr %234, align 4, !tbaa !5
  %256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %246, ptr noundef nonnull %.str.5.sink341, i32 noundef %247, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %250, ptr noundef %252, ptr noundef %254, i32 noundef %255) #14
  call void @exit(i32 noundef 1) #15
  unreachable

257:                                              ; preds = %226
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr @test_count, align 4, !tbaa !5
  %260 = trunc i64 %227 to i32
  %261 = call i32 @BIO_write(ptr noundef nonnull %231, ptr noundef nonnull %3, i32 noundef %260) #12
  %262 = icmp sgt i32 %261, 0
  br i1 %262, label %287, label %263

263:                                              ; preds = %257
  %264 = tail call ptr @__errno_location() #13
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @s2n_print_stacktrace(ptr noundef %266) #12
  %268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %269 = trunc nuw i8 %268 to i1
  br i1 %269, label %270, label %274

270:                                              ; preds = %263
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @fileno(ptr noundef %271) #12
  %273 = call i32 @isatty(i32 noundef %272) #12
  %.not = icmp eq i32 %273, 0
  br i1 %.not, label %274, label %275

274:                                              ; preds = %270, %263
  br label %275

275:                                              ; preds = %270, %274
  %.str.5.sink352 = phi ptr [ @.str.5, %274 ], [ @.str.2, %270 ]
  store i32 %265, ptr %264, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror(i32 noundef %279, ptr noundef nonnull @.str.4) #12
  %281 = load i32, ptr %278, align 4, !tbaa !5
  %282 = call ptr @s2n_strerror_debug(i32 noundef %281, ptr noundef nonnull @.str.4) #12
  %283 = load i32, ptr %264, align 4, !tbaa !5
  %284 = call ptr @strerror(i32 noundef %283) #12
  %285 = load i32, ptr %264, align 4, !tbaa !5
  %286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef nonnull %.str.5.sink352, i32 noundef %277, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %280, ptr noundef %282, ptr noundef %284, i32 noundef %285) #14
  call void @exit(i32 noundef 1) #15
  unreachable

287:                                              ; preds = %257
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @test_count, align 4, !tbaa !5
  %290 = call ptr @PEM_read_bio_X509(ptr noundef nonnull %231, ptr noundef null, ptr noundef null, ptr noundef null) #12
  %291 = icmp eq ptr %290, null
  br i1 %291, label %292, label %316

292:                                              ; preds = %287
  %293 = tail call ptr @__errno_location() #13
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = call i32 @s2n_print_stacktrace(ptr noundef %295) #12
  %297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %298 = trunc nuw i8 %297 to i1
  br i1 %298, label %299, label %303

299:                                              ; preds = %292
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = call i32 @fileno(ptr noundef %300) #12
  %302 = call i32 @isatty(i32 noundef %301) #12
  %.not256 = icmp eq i32 %302, 0
  br i1 %.not256, label %303, label %304

303:                                              ; preds = %299, %292
  br label %304

304:                                              ; preds = %299, %303
  %.str.5.sink363 = phi ptr [ @.str.5, %303 ], [ @.str.2, %299 ]
  store i32 %294, ptr %293, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef nonnull @.str.4) #12
  %310 = load i32, ptr %307, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror_debug(i32 noundef %310, ptr noundef nonnull @.str.4) #12
  %312 = load i32, ptr %293, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #12
  %314 = load i32, ptr %293, align 4, !tbaa !5
  %315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef nonnull %.str.5.sink363, i32 noundef %306, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %309, ptr noundef %311, ptr noundef %313, i32 noundef %314) #14
  call void @exit(i32 noundef 1) #15
  unreachable

316:                                              ; preds = %287
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr @test_count, align 4, !tbaa !5
  %319 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef nonnull %113, ptr noundef nonnull %290) #12
  %320 = call zeroext i1 @s2n_result_is_ok(i32 %319)
  br i1 %320, label %345, label %321

321:                                              ; preds = %316
  %322 = tail call ptr @__errno_location() #13
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @s2n_print_stacktrace(ptr noundef %324) #12
  %326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %327 = trunc nuw i8 %326 to i1
  br i1 %327, label %328, label %332

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

332:                                              ; preds = %328, %321
  br label %333

333:                                              ; preds = %328, %332
  %.str.5.sink374 = phi ptr [ @.str.5, %332 ], [ @.str.2, %328 ]
  store i32 %323, ptr %322, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror(i32 noundef %337, ptr noundef nonnull @.str.4) #12
  %339 = load i32, ptr %336, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef nonnull @.str.4) #12
  %341 = load i32, ptr %322, align 4, !tbaa !5
  %342 = call ptr @strerror(i32 noundef %341) #12
  %343 = load i32, ptr %322, align 4, !tbaa !5
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %334, ptr noundef nonnull %.str.5.sink374, i32 noundef %335, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %338, ptr noundef %340, ptr noundef %342, i32 noundef %343) #14
  call void @exit(i32 noundef 1) #15
  unreachable

345:                                              ; preds = %316
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr @test_count, align 4, !tbaa !5
  %348 = call i32 @s2n_config_free(ptr noundef %110) #12
  %349 = icmp eq i32 %348, -1
  br i1 %349, label %350, label %374

350:                                              ; preds = %345
  %351 = tail call ptr @__errno_location() #13
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @s2n_print_stacktrace(ptr noundef %353) #12
  %355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %356 = trunc nuw i8 %355 to i1
  br i1 %356, label %357, label %361

357:                                              ; preds = %350
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = call i32 @fileno(ptr noundef %358) #12
  %360 = call i32 @isatty(i32 noundef %359) #12
  %.not255 = icmp eq i32 %360, 0
  br i1 %.not255, label %361, label %362

361:                                              ; preds = %357, %350
  br label %362

362:                                              ; preds = %357, %361
  %.str.5.sink385 = phi ptr [ @.str.5, %361 ], [ @.str.2, %357 ]
  store i32 %352, ptr %351, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror(i32 noundef %366, ptr noundef nonnull @.str.4) #12
  %368 = load i32, ptr %365, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef nonnull @.str.4) #12
  %370 = load i32, ptr %351, align 4, !tbaa !5
  %371 = call ptr @strerror(i32 noundef %370) #12
  %372 = load i32, ptr %351, align 4, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %363, ptr noundef nonnull %.str.5.sink385, i32 noundef %364, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %367, ptr noundef %369, ptr noundef %371, i32 noundef %372) #14
  call void @exit(i32 noundef 1) #15
  unreachable

374:                                              ; preds = %345
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr @test_count, align 4, !tbaa !5
  %377 = call i32 @s2n_connection_free(ptr noundef nonnull %113) #12
  %378 = icmp eq i32 %377, -1
  br i1 %378, label %379, label %403

379:                                              ; preds = %374
  %380 = tail call ptr @__errno_location() #13
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @s2n_print_stacktrace(ptr noundef %382) #12
  %384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %385 = trunc nuw i8 %384 to i1
  br i1 %385, label %386, label %390

386:                                              ; preds = %379
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @fileno(ptr noundef %387) #12
  %389 = call i32 @isatty(i32 noundef %388) #12
  %.not254 = icmp eq i32 %389, 0
  br i1 %.not254, label %390, label %391

390:                                              ; preds = %386, %379
  br label %391

391:                                              ; preds = %386, %390
  %.str.5.sink396 = phi ptr [ @.str.5, %390 ], [ @.str.2, %386 ]
  store i32 %381, ptr %380, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror(i32 noundef %395, ptr noundef nonnull @.str.4) #12
  %397 = load i32, ptr %394, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef nonnull @.str.4) #12
  %399 = load i32, ptr %380, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #12
  %401 = load i32, ptr %380, align 4, !tbaa !5
  %402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %392, ptr noundef nonnull %.str.5.sink396, i32 noundef %393, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %396, ptr noundef %398, ptr noundef %400, i32 noundef %401) #14
  call void @exit(i32 noundef 1) #15
  unreachable

403:                                              ; preds = %374
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %406 = call i32 @BIO_free(ptr noundef nonnull %231) #12
  %407 = icmp eq i32 %406, -1
  br i1 %407, label %408, label %432

408:                                              ; preds = %403
  %409 = tail call ptr @__errno_location() #13
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @s2n_print_stacktrace(ptr noundef %411) #12
  %413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %414 = trunc nuw i8 %413 to i1
  br i1 %414, label %415, label %419

415:                                              ; preds = %408
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = call i32 @fileno(ptr noundef %416) #12
  %418 = call i32 @isatty(i32 noundef %417) #12
  %.not253 = icmp eq i32 %418, 0
  br i1 %.not253, label %419, label %420

419:                                              ; preds = %415, %408
  br label %420

420:                                              ; preds = %415, %419
  %.str.5.sink407 = phi ptr [ @.str.5, %419 ], [ @.str.2, %415 ]
  store i32 %410, ptr %409, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror(i32 noundef %424, ptr noundef nonnull @.str.4) #12
  %426 = load i32, ptr %423, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef nonnull @.str.4) #12
  %428 = load i32, ptr %409, align 4, !tbaa !5
  %429 = call ptr @strerror(i32 noundef %428) #12
  %430 = load i32, ptr %409, align 4, !tbaa !5
  %431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %421, ptr noundef nonnull %.str.5.sink407, i32 noundef %422, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %425, ptr noundef %427, ptr noundef %429, i32 noundef %430) #14
  call void @exit(i32 noundef 1) #15
  unreachable

432:                                              ; preds = %403
  call void @X509_free(ptr noundef nonnull %290) #12
  %433 = call ptr @s2n_config_new() #12
  %434 = load i32, ptr @test_count, align 4, !tbaa !5
  %435 = add nsw i32 %434, 1
  store i32 %435, ptr @test_count, align 4, !tbaa !5
  %436 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %437 = icmp eq ptr %436, null
  br i1 %437, label %438, label %462

438:                                              ; preds = %432
  %439 = tail call ptr @__errno_location() #13
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @s2n_print_stacktrace(ptr noundef %441) #12
  %443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %444 = trunc nuw i8 %443 to i1
  br i1 %444, label %445, label %449

445:                                              ; preds = %438
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @fileno(ptr noundef %446) #12
  %448 = call i32 @isatty(i32 noundef %447) #12
  %.not252 = icmp eq i32 %448, 0
  br i1 %.not252, label %449, label %450

449:                                              ; preds = %445, %438
  br label %450

450:                                              ; preds = %445, %449
  %.str.5.sink418 = phi ptr [ @.str.5, %449 ], [ @.str.2, %445 ]
  store i32 %440, ptr %439, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror(i32 noundef %454, ptr noundef nonnull @.str.4) #12
  %456 = load i32, ptr %453, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror_debug(i32 noundef %456, ptr noundef nonnull @.str.4) #12
  %458 = load i32, ptr %439, align 4, !tbaa !5
  %459 = call ptr @strerror(i32 noundef %458) #12
  %460 = load i32, ptr %439, align 4, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %451, ptr noundef nonnull %.str.5.sink418, i32 noundef %452, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %455, ptr noundef %457, ptr noundef %459, i32 noundef %460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

462:                                              ; preds = %432
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %433, ptr noundef nonnull @.str.21) #12
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %467, label %491

467:                                              ; preds = %462
  %468 = tail call ptr @__errno_location() #13
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = call i32 @s2n_print_stacktrace(ptr noundef %470) #12
  %472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %473 = trunc nuw i8 %472 to i1
  br i1 %473, label %474, label %478

474:                                              ; preds = %467
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = call i32 @fileno(ptr noundef %475) #12
  %477 = call i32 @isatty(i32 noundef %476) #12
  %.not251 = icmp eq i32 %477, 0
  br i1 %.not251, label %478, label %479

478:                                              ; preds = %474, %467
  br label %479

479:                                              ; preds = %474, %478
  %.str.5.sink429 = phi ptr [ @.str.5, %478 ], [ @.str.2, %474 ]
  store i32 %469, ptr %468, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror(i32 noundef %483, ptr noundef nonnull @.str.4) #12
  %485 = load i32, ptr %482, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef nonnull @.str.4) #12
  %487 = load i32, ptr %468, align 4, !tbaa !5
  %488 = call ptr @strerror(i32 noundef %487) #12
  %489 = load i32, ptr %468, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef nonnull %.str.5.sink429, i32 noundef %481, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %484, ptr noundef %486, ptr noundef %488, i32 noundef %489) #14
  call void @exit(i32 noundef 1) #15
  unreachable

491:                                              ; preds = %462
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = call i32 @s2n_connection_set_config(ptr noundef nonnull %436, ptr noundef %433) #12
  %495 = icmp eq i32 %494, -1
  br i1 %495, label %496, label %520

496:                                              ; preds = %491
  %497 = tail call ptr @__errno_location() #13
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @s2n_print_stacktrace(ptr noundef %499) #12
  %501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %502 = trunc nuw i8 %501 to i1
  br i1 %502, label %503, label %507

503:                                              ; preds = %496
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = call i32 @fileno(ptr noundef %504) #12
  %506 = call i32 @isatty(i32 noundef %505) #12
  %.not250 = icmp eq i32 %506, 0
  br i1 %.not250, label %507, label %508

507:                                              ; preds = %503, %496
  br label %508

508:                                              ; preds = %503, %507
  %.str.5.sink440 = phi ptr [ @.str.5, %507 ], [ @.str.2, %503 ]
  store i32 %498, ptr %497, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef nonnull @.str.4) #12
  %514 = load i32, ptr %511, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef nonnull @.str.4) #12
  %516 = load i32, ptr %497, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #12
  %518 = load i32, ptr %497, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef nonnull %.str.5.sink440, i32 noundef %510, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %513, ptr noundef %515, ptr noundef %517, i32 noundef %518) #14
  call void @exit(i32 noundef 1) #15
  unreachable

520:                                              ; preds = %491
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.12, ptr noundef nonnull %3, i64 noundef 12000) #12
  %524 = icmp eq i32 %523, -1
  br i1 %524, label %525, label %549

525:                                              ; preds = %520
  %526 = tail call ptr @__errno_location() #13
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @s2n_print_stacktrace(ptr noundef %528) #12
  %530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %531 = trunc nuw i8 %530 to i1
  br i1 %531, label %532, label %536

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

536:                                              ; preds = %532, %525
  br label %537

537:                                              ; preds = %532, %536
  %.str.5.sink451 = phi ptr [ @.str.5, %536 ], [ @.str.2, %532 ]
  store i32 %527, ptr %526, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror(i32 noundef %541, ptr noundef nonnull @.str.4) #12
  %543 = load i32, ptr %540, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef nonnull @.str.4) #12
  %545 = load i32, ptr %526, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #12
  %547 = load i32, ptr %526, align 4, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef nonnull %.str.5.sink451, i32 noundef %539, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %542, ptr noundef %544, ptr noundef %546, i32 noundef %547) #14
  call void @exit(i32 noundef 1) #15
  unreachable

549:                                              ; preds = %520
  %550 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr @test_count, align 4, !tbaa !5
  %553 = call ptr @BIO_s_mem() #12
  %554 = call ptr @BIO_new(ptr noundef %553) #12
  %555 = icmp eq ptr %554, null
  br i1 %555, label %556, label %580

556:                                              ; preds = %549
  %557 = tail call ptr @__errno_location() #13
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @s2n_print_stacktrace(ptr noundef %559) #12
  %561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %562 = trunc nuw i8 %561 to i1
  br i1 %562, label %563, label %567

563:                                              ; preds = %556
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @fileno(ptr noundef %564) #12
  %566 = call i32 @isatty(i32 noundef %565) #12
  %.not248 = icmp eq i32 %566, 0
  br i1 %.not248, label %567, label %568

567:                                              ; preds = %563, %556
  br label %568

568:                                              ; preds = %563, %567
  %.str.5.sink462 = phi ptr [ @.str.5, %567 ], [ @.str.2, %563 ]
  store i32 %558, ptr %557, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror(i32 noundef %572, ptr noundef nonnull @.str.4) #12
  %574 = load i32, ptr %571, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror_debug(i32 noundef %574, ptr noundef nonnull @.str.4) #12
  %576 = load i32, ptr %557, align 4, !tbaa !5
  %577 = call ptr @strerror(i32 noundef %576) #12
  %578 = load i32, ptr %557, align 4, !tbaa !5
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull %.str.5.sink462, i32 noundef %570, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %573, ptr noundef %575, ptr noundef %577, i32 noundef %578) #14
  call void @exit(i32 noundef 1) #15
  unreachable

580:                                              ; preds = %549
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr @test_count, align 4, !tbaa !5
  %583 = trunc i64 %550 to i32
  %584 = call i32 @BIO_write(ptr noundef nonnull %554, ptr noundef nonnull %3, i32 noundef %583) #12
  %585 = icmp sgt i32 %584, 0
  br i1 %585, label %610, label %586

586:                                              ; preds = %580
  %587 = tail call ptr @__errno_location() #13
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @s2n_print_stacktrace(ptr noundef %589) #12
  %591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc nuw i8 %591 to i1
  br i1 %592, label %593, label %597

593:                                              ; preds = %586
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @fileno(ptr noundef %594) #12
  %596 = call i32 @isatty(i32 noundef %595) #12
  %.not198 = icmp eq i32 %596, 0
  br i1 %.not198, label %597, label %598

597:                                              ; preds = %593, %586
  br label %598

598:                                              ; preds = %593, %597
  %.str.5.sink473 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %587, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.4) #12
  %604 = load i32, ptr %601, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.4) #12
  %606 = load i32, ptr %587, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #12
  %608 = load i32, ptr %587, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink473, i32 noundef %600, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #14
  call void @exit(i32 noundef 1) #15
  unreachable

610:                                              ; preds = %580
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call ptr @PEM_read_bio_X509(ptr noundef nonnull %554, ptr noundef null, ptr noundef null, ptr noundef null) #12
  %614 = icmp eq ptr %613, null
  br i1 %614, label %615, label %639

615:                                              ; preds = %610
  %616 = tail call ptr @__errno_location() #13
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @s2n_print_stacktrace(ptr noundef %618) #12
  %620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %621 = trunc nuw i8 %620 to i1
  br i1 %621, label %622, label %626

622:                                              ; preds = %615
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @fileno(ptr noundef %623) #12
  %625 = call i32 @isatty(i32 noundef %624) #12
  %.not247 = icmp eq i32 %625, 0
  br i1 %.not247, label %626, label %627

626:                                              ; preds = %622, %615
  br label %627

627:                                              ; preds = %622, %626
  %.str.5.sink484 = phi ptr [ @.str.5, %626 ], [ @.str.2, %622 ]
  store i32 %617, ptr %616, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.4) #12
  %633 = load i32, ptr %630, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.4) #12
  %635 = load i32, ptr %616, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #12
  %637 = load i32, ptr %616, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.5.sink484, i32 noundef %629, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #14
  call void @exit(i32 noundef 1) #15
  unreachable

639:                                              ; preds = %610
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef nonnull %436, ptr noundef nonnull %613) #12
  %643 = call zeroext i1 @s2n_result_is_error(i32 %642)
  br i1 %643, label %668, label %644

644:                                              ; preds = %639
  %645 = tail call ptr @__errno_location() #13
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #12
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %644
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #12
  %654 = call i32 @isatty(i32 noundef %653) #12
  %.not199 = icmp eq i32 %654, 0
  br i1 %.not199, label %655, label %656

655:                                              ; preds = %651, %644
  br label %656

656:                                              ; preds = %651, %655
  %.str.5.sink495 = phi ptr [ @.str.5, %655 ], [ @.str.2, %651 ]
  store i32 %646, ptr %645, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef nonnull @.str.4) #12
  %662 = load i32, ptr %659, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef nonnull @.str.4) #12
  %664 = load i32, ptr %645, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #12
  %666 = load i32, ptr %645, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.5.sink495, i32 noundef %658, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %661, ptr noundef %663, ptr noundef %665, i32 noundef %666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

668:                                              ; preds = %639
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = add nsw i32 %669, 1
  store i32 %670, ptr @test_count, align 4, !tbaa !5
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = icmp eq i32 %672, 335544366
  br i1 %673, label %697, label %674

674:                                              ; preds = %668
  %675 = tail call ptr @__errno_location() #13
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @s2n_print_stacktrace(ptr noundef %677) #12
  %679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %680 = trunc nuw i8 %679 to i1
  br i1 %680, label %681, label %685

681:                                              ; preds = %674
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @fileno(ptr noundef %682) #12
  %684 = call i32 @isatty(i32 noundef %683) #12
  %.not200 = icmp eq i32 %684, 0
  br i1 %.not200, label %685, label %686

685:                                              ; preds = %681, %674
  br label %686

686:                                              ; preds = %681, %685
  %.str.5.sink506 = phi ptr [ @.str.5, %685 ], [ @.str.2, %681 ]
  store i32 %676, ptr %675, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = load i32, ptr %671, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror(i32 noundef %689, ptr noundef nonnull @.str.4) #12
  %691 = load i32, ptr %671, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef nonnull @.str.4) #12
  %693 = load i32, ptr %675, align 4, !tbaa !5
  %694 = call ptr @strerror(i32 noundef %693) #12
  %695 = load i32, ptr %675, align 4, !tbaa !5
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %687, ptr noundef nonnull %.str.5.sink506, i32 noundef %688, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %690, ptr noundef %692, ptr noundef %694, i32 noundef %695) #14
  call void @exit(i32 noundef 1) #15
  unreachable

697:                                              ; preds = %668
  %698 = add nsw i32 %669, 2
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #12
  %700 = icmp eq ptr %699, null
  br i1 %700, label %701, label %724

701:                                              ; preds = %697
  %702 = tail call ptr @__errno_location() #13
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @s2n_print_stacktrace(ptr noundef %704) #12
  %706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %707 = trunc nuw i8 %706 to i1
  br i1 %707, label %708, label %712

708:                                              ; preds = %701
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = call i32 @fileno(ptr noundef %709) #12
  %711 = call i32 @isatty(i32 noundef %710) #12
  %.not246 = icmp eq i32 %711, 0
  br i1 %.not246, label %712, label %713

712:                                              ; preds = %708, %701
  br label %713

713:                                              ; preds = %708, %712
  %.str.5.sink515 = phi ptr [ @.str.5, %712 ], [ @.str.2, %708 ]
  store i32 %703, ptr %702, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = load i32, ptr %671, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror(i32 noundef %716, ptr noundef nonnull @.str.4) #12
  %718 = load i32, ptr %671, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror_debug(i32 noundef %718, ptr noundef nonnull @.str.4) #12
  %720 = load i32, ptr %702, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #12
  %722 = load i32, ptr %702, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef nonnull %.str.5.sink515, i32 noundef %715, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %717, ptr noundef %719, ptr noundef %721, i32 noundef %722) #14
  call void @exit(i32 noundef 1) #15
  unreachable

724:                                              ; preds = %697
  store i32 0, ptr %671, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %725 = tail call ptr @__errno_location() #13
  store i32 0, ptr %725, align 4, !tbaa !5
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr @test_count, align 4, !tbaa !5
  %728 = call i32 @s2n_config_free(ptr noundef %433) #12
  %729 = icmp eq i32 %728, -1
  br i1 %729, label %730, label %752

730:                                              ; preds = %724
  %731 = load i32, ptr %725, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @s2n_print_stacktrace(ptr noundef %732) #12
  %734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %735 = trunc nuw i8 %734 to i1
  br i1 %735, label %736, label %740

736:                                              ; preds = %730
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @fileno(ptr noundef %737) #12
  %739 = call i32 @isatty(i32 noundef %738) #12
  %.not245 = icmp eq i32 %739, 0
  br i1 %.not245, label %740, label %741

740:                                              ; preds = %736, %730
  br label %741

741:                                              ; preds = %736, %740
  %.str.5.sink524 = phi ptr [ @.str.5, %740 ], [ @.str.2, %736 ]
  store i32 %731, ptr %725, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = load i32, ptr %671, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef nonnull @.str.4) #12
  %746 = load i32, ptr %671, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror_debug(i32 noundef %746, ptr noundef nonnull @.str.4) #12
  %748 = load i32, ptr %725, align 4, !tbaa !5
  %749 = call ptr @strerror(i32 noundef %748) #12
  %750 = load i32, ptr %725, align 4, !tbaa !5
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef nonnull %.str.5.sink524, i32 noundef %743, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %745, ptr noundef %747, ptr noundef %749, i32 noundef %750) #14
  call void @exit(i32 noundef 1) #15
  unreachable

752:                                              ; preds = %724
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = add nsw i32 %753, 1
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = call i32 @s2n_connection_free(ptr noundef nonnull %436) #12
  %756 = icmp eq i32 %755, -1
  br i1 %756, label %757, label %779

757:                                              ; preds = %752
  %758 = load i32, ptr %725, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @s2n_print_stacktrace(ptr noundef %759) #12
  %761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %762 = trunc nuw i8 %761 to i1
  br i1 %762, label %763, label %767

763:                                              ; preds = %757
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @fileno(ptr noundef %764) #12
  %766 = call i32 @isatty(i32 noundef %765) #12
  %.not244 = icmp eq i32 %766, 0
  br i1 %.not244, label %767, label %768

767:                                              ; preds = %763, %757
  br label %768

768:                                              ; preds = %763, %767
  %.str.5.sink533 = phi ptr [ @.str.5, %767 ], [ @.str.2, %763 ]
  store i32 %758, ptr %725, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = load i32, ptr %671, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef nonnull @.str.4) #12
  %773 = load i32, ptr %671, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef nonnull @.str.4) #12
  %775 = load i32, ptr %725, align 4, !tbaa !5
  %776 = call ptr @strerror(i32 noundef %775) #12
  %777 = load i32, ptr %725, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef nonnull %.str.5.sink533, i32 noundef %770, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %772, ptr noundef %774, ptr noundef %776, i32 noundef %777) #14
  call void @exit(i32 noundef 1) #15
  unreachable

779:                                              ; preds = %752
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr @test_count, align 4, !tbaa !5
  %782 = call i32 @BIO_free(ptr noundef nonnull %554) #12
  %783 = icmp eq i32 %782, -1
  br i1 %783, label %784, label %806

784:                                              ; preds = %779
  %785 = load i32, ptr %725, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @s2n_print_stacktrace(ptr noundef %786) #12
  %788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %789 = trunc nuw i8 %788 to i1
  br i1 %789, label %790, label %794

790:                                              ; preds = %784
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @fileno(ptr noundef %791) #12
  %793 = call i32 @isatty(i32 noundef %792) #12
  %.not243 = icmp eq i32 %793, 0
  br i1 %.not243, label %794, label %795

794:                                              ; preds = %790, %784
  br label %795

795:                                              ; preds = %790, %794
  %.str.5.sink542 = phi ptr [ @.str.5, %794 ], [ @.str.2, %790 ]
  store i32 %785, ptr %725, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = load i32, ptr @test_count, align 4, !tbaa !5
  %798 = load i32, ptr %671, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror(i32 noundef %798, ptr noundef nonnull @.str.4) #12
  %800 = load i32, ptr %671, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror_debug(i32 noundef %800, ptr noundef nonnull @.str.4) #12
  %802 = load i32, ptr %725, align 4, !tbaa !5
  %803 = call ptr @strerror(i32 noundef %802) #12
  %804 = load i32, ptr %725, align 4, !tbaa !5
  %805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %796, ptr noundef nonnull %.str.5.sink542, i32 noundef %797, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %799, ptr noundef %801, ptr noundef %803, i32 noundef %804) #14
  call void @exit(i32 noundef 1) #15
  unreachable

806:                                              ; preds = %779
  call void @X509_free(ptr noundef nonnull %613) #12
  %807 = call ptr @s2n_config_new() #12
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %811 = icmp eq ptr %810, null
  br i1 %811, label %812, label %834

812:                                              ; preds = %806
  %813 = load i32, ptr %725, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814) #12
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc nuw i8 %816 to i1
  br i1 %817, label %818, label %822

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

822:                                              ; preds = %818, %812
  br label %823

823:                                              ; preds = %818, %822
  %.str.5.sink551 = phi ptr [ @.str.5, %822 ], [ @.str.2, %818 ]
  store i32 %813, ptr %725, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = load i32, ptr %671, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror(i32 noundef %826, ptr noundef nonnull @.str.4) #12
  %828 = load i32, ptr %671, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef nonnull @.str.4) #12
  %830 = load i32, ptr %725, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #12
  %832 = load i32, ptr %725, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef nonnull %.str.5.sink551, i32 noundef %825, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %827, ptr noundef %829, ptr noundef %831, i32 noundef %832) #14
  call void @exit(i32 noundef 1) #15
  unreachable

834:                                              ; preds = %806
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %807, ptr noundef nonnull @.str.21) #12
  %838 = icmp eq i32 %837, -1
  br i1 %838, label %839, label %861

839:                                              ; preds = %834
  %840 = load i32, ptr %725, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @s2n_print_stacktrace(ptr noundef %841) #12
  %843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %844 = trunc nuw i8 %843 to i1
  br i1 %844, label %845, label %849

845:                                              ; preds = %839
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @fileno(ptr noundef %846) #12
  %848 = call i32 @isatty(i32 noundef %847) #12
  %.not241 = icmp eq i32 %848, 0
  br i1 %.not241, label %849, label %850

849:                                              ; preds = %845, %839
  br label %850

850:                                              ; preds = %845, %849
  %.str.5.sink560 = phi ptr [ @.str.5, %849 ], [ @.str.2, %845 ]
  store i32 %840, ptr %725, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = load i32, ptr %671, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef nonnull @.str.4) #12
  %855 = load i32, ptr %671, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef nonnull @.str.4) #12
  %857 = load i32, ptr %725, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #12
  %859 = load i32, ptr %725, align 4, !tbaa !5
  %860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef nonnull %.str.5.sink560, i32 noundef %852, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %854, ptr noundef %856, ptr noundef %858, i32 noundef %859) #14
  call void @exit(i32 noundef 1) #15
  unreachable

861:                                              ; preds = %834
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = add nsw i32 %862, 1
  store i32 %863, ptr @test_count, align 4, !tbaa !5
  %864 = call i32 @s2n_connection_set_config(ptr noundef nonnull %810, ptr noundef %807) #12
  %865 = icmp eq i32 %864, -1
  br i1 %865, label %866, label %888

866:                                              ; preds = %861
  %867 = load i32, ptr %725, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868) #12
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc nuw i8 %870 to i1
  br i1 %871, label %872, label %876

872:                                              ; preds = %866
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #12
  %875 = call i32 @isatty(i32 noundef %874) #12
  %.not240 = icmp eq i32 %875, 0
  br i1 %.not240, label %876, label %877

876:                                              ; preds = %872, %866
  br label %877

877:                                              ; preds = %872, %876
  %.str.5.sink569 = phi ptr [ @.str.5, %876 ], [ @.str.2, %872 ]
  store i32 %867, ptr %725, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = load i32, ptr %671, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef nonnull @.str.4) #12
  %882 = load i32, ptr %671, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror_debug(i32 noundef %882, ptr noundef nonnull @.str.4) #12
  %884 = load i32, ptr %725, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #12
  %886 = load i32, ptr %725, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.5.sink569, i32 noundef %879, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %881, ptr noundef %883, ptr noundef %885, i32 noundef %886) #14
  call void @exit(i32 noundef 1) #15
  unreachable

888:                                              ; preds = %861
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = add nsw i32 %889, 1
  store i32 %890, ptr @test_count, align 4, !tbaa !5
  %891 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.26, ptr noundef nonnull %3, i64 noundef 12000) #12
  %892 = icmp eq i32 %891, -1
  br i1 %892, label %893, label %915

893:                                              ; preds = %888
  %894 = load i32, ptr %725, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @s2n_print_stacktrace(ptr noundef %895) #12
  %897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %898 = trunc nuw i8 %897 to i1
  br i1 %898, label %899, label %903

899:                                              ; preds = %893
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @fileno(ptr noundef %900) #12
  %902 = call i32 @isatty(i32 noundef %901) #12
  %.not239 = icmp eq i32 %902, 0
  br i1 %.not239, label %903, label %904

903:                                              ; preds = %899, %893
  br label %904

904:                                              ; preds = %899, %903
  %.str.5.sink578 = phi ptr [ @.str.5, %903 ], [ @.str.2, %899 ]
  store i32 %894, ptr %725, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = load i32, ptr %671, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror(i32 noundef %907, ptr noundef nonnull @.str.4) #12
  %909 = load i32, ptr %671, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef nonnull @.str.4) #12
  %911 = load i32, ptr %725, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #12
  %913 = load i32, ptr %725, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef nonnull %.str.5.sink578, i32 noundef %906, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %908, ptr noundef %910, ptr noundef %912, i32 noundef %913) #14
  call void @exit(i32 noundef 1) #15
  unreachable

915:                                              ; preds = %888
  %916 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr @test_count, align 4, !tbaa !5
  %919 = call ptr @BIO_s_mem() #12
  %920 = call ptr @BIO_new(ptr noundef %919) #12
  %921 = icmp eq ptr %920, null
  br i1 %921, label %922, label %944

922:                                              ; preds = %915
  %923 = load i32, ptr %725, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @s2n_print_stacktrace(ptr noundef %924) #12
  %926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %927 = trunc nuw i8 %926 to i1
  br i1 %927, label %928, label %932

928:                                              ; preds = %922
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @fileno(ptr noundef %929) #12
  %931 = call i32 @isatty(i32 noundef %930) #12
  %.not238 = icmp eq i32 %931, 0
  br i1 %.not238, label %932, label %933

932:                                              ; preds = %928, %922
  br label %933

933:                                              ; preds = %928, %932
  %.str.5.sink587 = phi ptr [ @.str.5, %932 ], [ @.str.2, %928 ]
  store i32 %923, ptr %725, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = load i32, ptr %671, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror(i32 noundef %936, ptr noundef nonnull @.str.4) #12
  %938 = load i32, ptr %671, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror_debug(i32 noundef %938, ptr noundef nonnull @.str.4) #12
  %940 = load i32, ptr %725, align 4, !tbaa !5
  %941 = call ptr @strerror(i32 noundef %940) #12
  %942 = load i32, ptr %725, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %934, ptr noundef nonnull %.str.5.sink587, i32 noundef %935, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %937, ptr noundef %939, ptr noundef %941, i32 noundef %942) #14
  call void @exit(i32 noundef 1) #15
  unreachable

944:                                              ; preds = %915
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = add nsw i32 %945, 1
  store i32 %946, ptr @test_count, align 4, !tbaa !5
  %947 = trunc i64 %916 to i32
  %948 = call i32 @BIO_write(ptr noundef nonnull %920, ptr noundef nonnull %3, i32 noundef %947) #12
  %949 = icmp sgt i32 %948, 0
  br i1 %949, label %972, label %950

950:                                              ; preds = %944
  %951 = load i32, ptr %725, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = call i32 @s2n_print_stacktrace(ptr noundef %952) #12
  %954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %955 = trunc nuw i8 %954 to i1
  br i1 %955, label %956, label %960

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

960:                                              ; preds = %956, %950
  br label %961

961:                                              ; preds = %956, %960
  %.str.5.sink596 = phi ptr [ @.str.5, %960 ], [ @.str.2, %956 ]
  store i32 %951, ptr %725, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = load i32, ptr %671, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef nonnull @.str.4) #12
  %966 = load i32, ptr %671, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef nonnull @.str.4) #12
  %968 = load i32, ptr %725, align 4, !tbaa !5
  %969 = call ptr @strerror(i32 noundef %968) #12
  %970 = load i32, ptr %725, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %962, ptr noundef nonnull %.str.5.sink596, i32 noundef %963, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %965, ptr noundef %967, ptr noundef %969, i32 noundef %970) #14
  call void @exit(i32 noundef 1) #15
  unreachable

972:                                              ; preds = %944
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr @test_count, align 4, !tbaa !5
  %975 = call ptr @PEM_read_bio_X509(ptr noundef nonnull %920, ptr noundef null, ptr noundef null, ptr noundef null) #12
  %976 = icmp eq ptr %975, null
  br i1 %976, label %977, label %999

977:                                              ; preds = %972
  %978 = load i32, ptr %725, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = call i32 @s2n_print_stacktrace(ptr noundef %979) #12
  %981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %982 = trunc nuw i8 %981 to i1
  br i1 %982, label %983, label %987

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

987:                                              ; preds = %983, %977
  br label %988

988:                                              ; preds = %983, %987
  %.str.5.sink605 = phi ptr [ @.str.5, %987 ], [ @.str.2, %983 ]
  store i32 %978, ptr %725, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = load i32, ptr %671, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror(i32 noundef %991, ptr noundef nonnull @.str.4) #12
  %993 = load i32, ptr %671, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef nonnull @.str.4) #12
  %995 = load i32, ptr %725, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #12
  %997 = load i32, ptr %725, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %989, ptr noundef nonnull %.str.5.sink605, i32 noundef %990, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %992, ptr noundef %994, ptr noundef %996, i32 noundef %997) #14
  call void @exit(i32 noundef 1) #15
  unreachable

999:                                              ; preds = %972
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr @test_count, align 4, !tbaa !5
  %1002 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef nonnull %810, ptr noundef nonnull %975) #12
  %1003 = call zeroext i1 @s2n_result_is_ok(i32 %1002)
  br i1 %1003, label %1026, label %1004

1004:                                             ; preds = %999
  %1005 = load i32, ptr %725, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @s2n_print_stacktrace(ptr noundef %1006) #12
  %1008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1009 = trunc nuw i8 %1008 to i1
  br i1 %1009, label %1010, label %1014

1010:                                             ; preds = %1004
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @fileno(ptr noundef %1011) #12
  %1013 = call i32 @isatty(i32 noundef %1012) #12
  %.not202 = icmp eq i32 %1013, 0
  br i1 %.not202, label %1014, label %1015

1014:                                             ; preds = %1010, %1004
  br label %1015

1015:                                             ; preds = %1010, %1014
  %.str.5.sink614 = phi ptr [ @.str.5, %1014 ], [ @.str.2, %1010 ]
  store i32 %1005, ptr %725, align 4, !tbaa !5
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = load i32, ptr %671, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef nonnull @.str.4) #12
  %1020 = load i32, ptr %671, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef nonnull @.str.4) #12
  %1022 = load i32, ptr %725, align 4, !tbaa !5
  %1023 = call ptr @strerror(i32 noundef %1022) #12
  %1024 = load i32, ptr %725, align 4, !tbaa !5
  %1025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1016, ptr noundef nonnull %.str.5.sink614, i32 noundef %1017, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1019, ptr noundef %1021, ptr noundef %1023, i32 noundef %1024) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1026:                                             ; preds = %999
  %1027 = load i32, ptr @test_count, align 4, !tbaa !5
  %1028 = add nsw i32 %1027, 1
  store i32 %1028, ptr @test_count, align 4, !tbaa !5
  %1029 = call i32 @s2n_config_free(ptr noundef %807) #12
  %1030 = icmp eq i32 %1029, -1
  br i1 %1030, label %1031, label %1053

1031:                                             ; preds = %1026
  %1032 = load i32, ptr %725, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033) #12
  %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 = %1031
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #12
  %1040 = call i32 @isatty(i32 noundef %1039) #12
  %.not236 = icmp eq i32 %1040, 0
  br i1 %.not236, label %1041, label %1042

1041:                                             ; preds = %1037, %1031
  br label %1042

1042:                                             ; preds = %1037, %1041
  %.str.5.sink623 = phi ptr [ @.str.5, %1041 ], [ @.str.2, %1037 ]
  store i32 %1032, ptr %725, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = load i32, ptr %671, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror(i32 noundef %1045, ptr noundef nonnull @.str.4) #12
  %1047 = load i32, ptr %671, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror_debug(i32 noundef %1047, ptr noundef nonnull @.str.4) #12
  %1049 = load i32, ptr %725, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #12
  %1051 = load i32, ptr %725, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef nonnull %.str.5.sink623, i32 noundef %1044, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1046, ptr noundef %1048, ptr noundef %1050, i32 noundef %1051) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1053:                                             ; preds = %1026
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = add nsw i32 %1054, 1
  store i32 %1055, ptr @test_count, align 4, !tbaa !5
  %1056 = call i32 @s2n_connection_free(ptr noundef nonnull %810) #12
  %1057 = icmp eq i32 %1056, -1
  br i1 %1057, label %1058, label %1080

1058:                                             ; preds = %1053
  %1059 = load i32, ptr %725, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = call i32 @s2n_print_stacktrace(ptr noundef %1060) #12
  %1062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1063 = trunc nuw i8 %1062 to i1
  br i1 %1063, label %1064, label %1068

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

1068:                                             ; preds = %1064, %1058
  br label %1069

1069:                                             ; preds = %1064, %1068
  %.str.5.sink632 = phi ptr [ @.str.5, %1068 ], [ @.str.2, %1064 ]
  store i32 %1059, ptr %725, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = load i32, ptr %671, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef nonnull @.str.4) #12
  %1074 = load i32, ptr %671, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror_debug(i32 noundef %1074, ptr noundef nonnull @.str.4) #12
  %1076 = load i32, ptr %725, align 4, !tbaa !5
  %1077 = call ptr @strerror(i32 noundef %1076) #12
  %1078 = load i32, ptr %725, align 4, !tbaa !5
  %1079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1070, ptr noundef nonnull %.str.5.sink632, i32 noundef %1071, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1073, ptr noundef %1075, ptr noundef %1077, i32 noundef %1078) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1080:                                             ; preds = %1053
  %1081 = load i32, ptr @test_count, align 4, !tbaa !5
  %1082 = add nsw i32 %1081, 1
  store i32 %1082, ptr @test_count, align 4, !tbaa !5
  %1083 = call i32 @BIO_free(ptr noundef nonnull %920) #12
  %1084 = icmp eq i32 %1083, -1
  br i1 %1084, label %1085, label %1107

1085:                                             ; preds = %1080
  %1086 = load i32, ptr %725, align 4, !tbaa !5
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = call i32 @s2n_print_stacktrace(ptr noundef %1087) #12
  %1089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1090 = trunc nuw i8 %1089 to i1
  br i1 %1090, label %1091, label %1095

1091:                                             ; preds = %1085
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @fileno(ptr noundef %1092) #12
  %1094 = call i32 @isatty(i32 noundef %1093) #12
  %.not234 = icmp eq i32 %1094, 0
  br i1 %.not234, label %1095, label %1096

1095:                                             ; preds = %1091, %1085
  br label %1096

1096:                                             ; preds = %1091, %1095
  %.str.5.sink641 = phi ptr [ @.str.5, %1095 ], [ @.str.2, %1091 ]
  store i32 %1086, ptr %725, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = load i32, ptr %671, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror(i32 noundef %1099, ptr noundef nonnull @.str.4) #12
  %1101 = load i32, ptr %671, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror_debug(i32 noundef %1101, ptr noundef nonnull @.str.4) #12
  %1103 = load i32, ptr %725, align 4, !tbaa !5
  %1104 = call ptr @strerror(i32 noundef %1103) #12
  %1105 = load i32, ptr %725, align 4, !tbaa !5
  %1106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1097, ptr noundef nonnull %.str.5.sink641, i32 noundef %1098, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1100, ptr noundef %1102, ptr noundef %1104, i32 noundef %1105) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1107:                                             ; preds = %1080
  call void @X509_free(ptr noundef nonnull %975) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  %1108 = call ptr @s2n_config_new() #12
  store ptr %1108, ptr %7, align 8, !tbaa !9
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = add nsw i32 %1109, 1
  store i32 %1110, ptr @test_count, align 4, !tbaa !5
  %1111 = icmp eq ptr %1108, null
  br i1 %1111, label %1112, label %1134

1112:                                             ; preds = %1107
  %1113 = load i32, ptr %725, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = call i32 @s2n_print_stacktrace(ptr noundef %1114) #12
  %1116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1117 = trunc nuw i8 %1116 to i1
  br i1 %1117, label %1118, label %1122

1118:                                             ; preds = %1112
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @fileno(ptr noundef %1119) #12
  %1121 = call i32 @isatty(i32 noundef %1120) #12
  %.not233 = icmp eq i32 %1121, 0
  br i1 %.not233, label %1122, label %1123

1122:                                             ; preds = %1118, %1112
  br label %1123

1123:                                             ; preds = %1118, %1122
  %.str.5.sink650 = phi ptr [ @.str.5, %1122 ], [ @.str.2, %1118 ]
  store i32 %1113, ptr %725, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = load i32, ptr @test_count, align 4, !tbaa !5
  %1126 = load i32, ptr %671, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror(i32 noundef %1126, ptr noundef nonnull @.str.4) #12
  %1128 = load i32, ptr %671, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror_debug(i32 noundef %1128, ptr noundef nonnull @.str.4) #12
  %1130 = load i32, ptr %725, align 4, !tbaa !5
  %1131 = call ptr @strerror(i32 noundef %1130) #12
  %1132 = load i32, ptr %725, align 4, !tbaa !5
  %1133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1124, ptr noundef nonnull %.str.5.sink650, i32 noundef %1125, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1127, ptr noundef %1129, ptr noundef %1131, i32 noundef %1132) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1134:                                             ; preds = %1107
  %1135 = getelementptr inbounds i8, ptr %1108, i64 96
  store ptr %6, ptr %1135, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %1136 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1136, ptr %8, align 8, !tbaa !9
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = add nsw i32 %1137, 1
  store i32 %1138, ptr @test_count, align 4, !tbaa !5
  %1139 = icmp eq ptr %1136, null
  br i1 %1139, label %1140, label %1162

1140:                                             ; preds = %1134
  %1141 = load i32, ptr %725, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @s2n_print_stacktrace(ptr noundef %1142) #12
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc nuw i8 %1144 to i1
  br i1 %1145, label %1146, label %1150

1146:                                             ; preds = %1140
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #12
  %1149 = call i32 @isatty(i32 noundef %1148) #12
  %.not232 = icmp eq i32 %1149, 0
  br i1 %.not232, label %1150, label %1151

1150:                                             ; preds = %1146, %1140
  br label %1151

1151:                                             ; preds = %1146, %1150
  %.str.5.sink659 = phi ptr [ @.str.5, %1150 ], [ @.str.2, %1146 ]
  store i32 %1141, ptr %725, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = load i32, ptr %671, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef nonnull @.str.4) #12
  %1156 = load i32, ptr %671, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef nonnull @.str.4) #12
  %1158 = load i32, ptr %725, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #12
  %1160 = load i32, ptr %725, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef nonnull %.str.5.sink659, i32 noundef %1153, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1155, ptr noundef %1157, ptr noundef %1159, i32 noundef %1160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1162:                                             ; preds = %1134
  %1163 = getelementptr inbounds i8, ptr %1136, i64 220
  store i8 33, ptr %1163, align 4, !tbaa !28
  %1164 = add nsw i32 %1137, 2
  store i32 %1164, ptr @test_count, align 4, !tbaa !5
  %1165 = load ptr, ptr %7, align 8, !tbaa !9
  %1166 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1136, ptr noundef %1165) #12
  %1167 = icmp eq i32 %1166, -1
  br i1 %1167, label %1168, label %1190

1168:                                             ; preds = %1162
  %1169 = load i32, ptr %725, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @s2n_print_stacktrace(ptr noundef %1170) #12
  %1172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1173 = trunc nuw i8 %1172 to i1
  br i1 %1173, label %1174, label %1178

1174:                                             ; preds = %1168
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @fileno(ptr noundef %1175) #12
  %1177 = call i32 @isatty(i32 noundef %1176) #12
  %.not231 = icmp eq i32 %1177, 0
  br i1 %.not231, label %1178, label %1179

1178:                                             ; preds = %1174, %1168
  br label %1179

1179:                                             ; preds = %1174, %1178
  %.str.5.sink668 = phi ptr [ @.str.5, %1178 ], [ @.str.2, %1174 ]
  store i32 %1169, ptr %725, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = load i32, ptr %671, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.4) #12
  %1184 = load i32, ptr %671, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.4) #12
  %1186 = load i32, ptr %725, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #12
  %1188 = load i32, ptr %725, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef nonnull %.str.5.sink668, i32 noundef %1181, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1190:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  store ptr null, ptr %9, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef nonnull %9, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.33) #12
  %1194 = icmp eq i32 %1193, -1
  br i1 %1194, label %1195, label %1217

1195:                                             ; preds = %1190
  %1196 = load i32, ptr %725, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @s2n_print_stacktrace(ptr noundef %1197) #12
  %1199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1200 = trunc nuw i8 %1199 to i1
  br i1 %1200, label %1201, label %1205

1201:                                             ; preds = %1195
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @fileno(ptr noundef %1202) #12
  %1204 = call i32 @isatty(i32 noundef %1203) #12
  %.not230 = icmp eq i32 %1204, 0
  br i1 %.not230, label %1205, label %1206

1205:                                             ; preds = %1201, %1195
  br label %1206

1206:                                             ; preds = %1201, %1205
  %.str.5.sink677 = phi ptr [ @.str.5, %1205 ], [ @.str.2, %1201 ]
  store i32 %1196, ptr %725, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = load i32, ptr @test_count, align 4, !tbaa !5
  %1209 = load i32, ptr %671, align 4, !tbaa !5
  %1210 = call ptr @s2n_strerror(i32 noundef %1209, ptr noundef nonnull @.str.4) #12
  %1211 = load i32, ptr %671, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef nonnull @.str.4) #12
  %1213 = load i32, ptr %725, align 4, !tbaa !5
  %1214 = call ptr @strerror(i32 noundef %1213) #12
  %1215 = load i32, ptr %725, align 4, !tbaa !5
  %1216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1207, ptr noundef nonnull %.str.5.sink677, i32 noundef %1208, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1210, ptr noundef %1212, ptr noundef %1214, i32 noundef %1215) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1217:                                             ; preds = %1190
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  store ptr null, ptr %10, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = add nsw i32 %1218, 1
  store i32 %1219, ptr @test_count, align 4, !tbaa !5
  %1220 = load ptr, ptr %9, align 8, !tbaa !9
  %1221 = load ptr, ptr %1220, align 8, !tbaa !52
  %1222 = getelementptr inbounds i8, ptr %1221, i64 8
  %1223 = load ptr, ptr %1222, align 8, !tbaa !54
  %1224 = getelementptr inbounds i8, ptr %1223, i64 80
  %1225 = call i32 @s2n_openssl_x509_parse(ptr noundef nonnull %1224, ptr noundef nonnull %10) #12
  %1226 = call zeroext i1 @s2n_result_is_ok(i32 %1225)
  br i1 %1226, label %1249, label %1227

1227:                                             ; preds = %1217
  %1228 = load i32, ptr %725, align 4, !tbaa !5
  %1229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1230 = call i32 @s2n_print_stacktrace(ptr noundef %1229) #12
  %1231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1232 = trunc nuw i8 %1231 to i1
  br i1 %1232, label %1233, label %1237

1233:                                             ; preds = %1227
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = call i32 @fileno(ptr noundef %1234) #12
  %1236 = call i32 @isatty(i32 noundef %1235) #12
  %.not203 = icmp eq i32 %1236, 0
  br i1 %.not203, label %1237, label %1238

1237:                                             ; preds = %1233, %1227
  br label %1238

1238:                                             ; preds = %1233, %1237
  %.str.5.sink686 = phi ptr [ @.str.5, %1237 ], [ @.str.2, %1233 ]
  store i32 %1228, ptr %725, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = load i32, ptr %671, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.4) #12
  %1243 = load i32, ptr %671, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.4) #12
  %1245 = load i32, ptr %725, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #12
  %1247 = load i32, ptr %725, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1239, ptr noundef nonnull %.str.5.sink686, i32 noundef %1240, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1249:                                             ; preds = %1217
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr @test_count, align 4, !tbaa !5
  %1252 = load ptr, ptr %8, align 8, !tbaa !9
  %1253 = load ptr, ptr %10, align 8, !tbaa !9
  %1254 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %1252, ptr noundef %1253) #12
  %1255 = call zeroext i1 @s2n_result_is_error(i32 %1254)
  br i1 %1255, label %1278, label %1256

1256:                                             ; preds = %1249
  %1257 = load i32, ptr %725, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = call i32 @s2n_print_stacktrace(ptr noundef %1258) #12
  %1260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1261 = trunc nuw i8 %1260 to i1
  br i1 %1261, label %1262, label %1266

1262:                                             ; preds = %1256
  %1263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1264 = call i32 @fileno(ptr noundef %1263) #12
  %1265 = call i32 @isatty(i32 noundef %1264) #12
  %.not204 = icmp eq i32 %1265, 0
  br i1 %.not204, label %1266, label %1267

1266:                                             ; preds = %1262, %1256
  br label %1267

1267:                                             ; preds = %1262, %1266
  %.str.5.sink695 = phi ptr [ @.str.5, %1266 ], [ @.str.2, %1262 ]
  store i32 %1257, ptr %725, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = load i32, ptr %671, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef nonnull @.str.4) #12
  %1272 = load i32, ptr %671, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef nonnull @.str.4) #12
  %1274 = load i32, ptr %725, align 4, !tbaa !5
  %1275 = call ptr @strerror(i32 noundef %1274) #12
  %1276 = load i32, ptr %725, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef nonnull %.str.5.sink695, i32 noundef %1269, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1271, ptr noundef %1273, ptr noundef %1275, i32 noundef %1276) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1278:                                             ; preds = %1249
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr @test_count, align 4, !tbaa !5
  %1281 = load i32, ptr %671, align 4, !tbaa !5
  %1282 = icmp eq i32 %1281, 335544366
  br i1 %1282, label %1305, label %1283

1283:                                             ; preds = %1278
  %1284 = load i32, ptr %725, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @s2n_print_stacktrace(ptr noundef %1285) #12
  %1287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1288 = trunc nuw i8 %1287 to i1
  br i1 %1288, label %1289, label %1293

1289:                                             ; preds = %1283
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 @fileno(ptr noundef %1290) #12
  %1292 = call i32 @isatty(i32 noundef %1291) #12
  %.not205 = icmp eq i32 %1292, 0
  br i1 %.not205, label %1293, label %1294

1293:                                             ; preds = %1289, %1283
  br label %1294

1294:                                             ; preds = %1289, %1293
  %.str.5.sink704 = phi ptr [ @.str.5, %1293 ], [ @.str.2, %1289 ]
  store i32 %1284, ptr %725, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = load i32, ptr %671, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.4) #12
  %1299 = load i32, ptr %671, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.4) #12
  %1301 = load i32, ptr %725, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #12
  %1303 = load i32, ptr %725, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef nonnull %.str.5.sink704, i32 noundef %1296, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1305:                                             ; preds = %1278
  %1306 = add nsw i32 %1279, 2
  store i32 %1306, ptr @test_count, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #12
  %1308 = icmp eq ptr %1307, null
  br i1 %1308, label %1309, label %1331

1309:                                             ; preds = %1305
  %1310 = load i32, ptr %725, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = call i32 @s2n_print_stacktrace(ptr noundef %1311) #12
  %1313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1314 = trunc nuw i8 %1313 to i1
  br i1 %1314, label %1315, label %1319

1315:                                             ; preds = %1309
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = call i32 @fileno(ptr noundef %1316) #12
  %1318 = call i32 @isatty(i32 noundef %1317) #12
  %.not229 = icmp eq i32 %1318, 0
  br i1 %.not229, label %1319, label %1320

1319:                                             ; preds = %1315, %1309
  br label %1320

1320:                                             ; preds = %1315, %1319
  %.str.5.sink713 = phi ptr [ @.str.5, %1319 ], [ @.str.2, %1315 ]
  store i32 %1310, ptr %725, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = load i32, ptr %671, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef nonnull @.str.4) #12
  %1325 = load i32, ptr %671, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror_debug(i32 noundef %1325, ptr noundef nonnull @.str.4) #12
  %1327 = load i32, ptr %725, align 4, !tbaa !5
  %1328 = call ptr @strerror(i32 noundef %1327) #12
  %1329 = load i32, ptr %725, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef nonnull %.str.5.sink713, i32 noundef %1322, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1324, ptr noundef %1326, ptr noundef %1328, i32 noundef %1329) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1331:                                             ; preds = %1305
  store i32 0, ptr %671, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %725, align 4, !tbaa !5
  call void @X509_free_pointer(ptr noundef nonnull %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  %1332 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  %1333 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  %1334 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %1335 = call ptr @s2n_config_new() #12
  store ptr %1335, ptr %11, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = add nsw i32 %1336, 1
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = icmp eq ptr %1335, null
  br i1 %1338, label %1339, label %1361

1339:                                             ; preds = %1331
  %1340 = load i32, ptr %725, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @s2n_print_stacktrace(ptr noundef %1341) #12
  %1343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1344 = trunc nuw i8 %1343 to i1
  br i1 %1344, label %1345, label %1349

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

1349:                                             ; preds = %1345, %1339
  br label %1350

1350:                                             ; preds = %1345, %1349
  %.str.5.sink722 = phi ptr [ @.str.5, %1349 ], [ @.str.2, %1345 ]
  store i32 %1340, ptr %725, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = load i32, ptr %671, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror(i32 noundef %1353, ptr noundef nonnull @.str.4) #12
  %1355 = load i32, ptr %671, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror_debug(i32 noundef %1355, ptr noundef nonnull @.str.4) #12
  %1357 = load i32, ptr %725, align 4, !tbaa !5
  %1358 = call ptr @strerror(i32 noundef %1357) #12
  %1359 = load i32, ptr %725, align 4, !tbaa !5
  %1360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef nonnull %.str.5.sink722, i32 noundef %1352, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1354, ptr noundef %1356, ptr noundef %1358, i32 noundef %1359) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1361:                                             ; preds = %1331
  %1362 = getelementptr inbounds i8, ptr %1335, i64 96
  store ptr %6, ptr %1362, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %1363 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1363, ptr %12, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = icmp eq ptr %1363, null
  br i1 %1366, label %1367, label %1389

1367:                                             ; preds = %1361
  %1368 = load i32, ptr %725, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @s2n_print_stacktrace(ptr noundef %1369) #12
  %1371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1372 = trunc nuw i8 %1371 to i1
  br i1 %1372, label %1373, label %1377

1373:                                             ; preds = %1367
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @fileno(ptr noundef %1374) #12
  %1376 = call i32 @isatty(i32 noundef %1375) #12
  %.not227 = icmp eq i32 %1376, 0
  br i1 %.not227, label %1377, label %1378

1377:                                             ; preds = %1373, %1367
  br label %1378

1378:                                             ; preds = %1373, %1377
  %.str.5.sink731 = phi ptr [ @.str.5, %1377 ], [ @.str.2, %1373 ]
  store i32 %1368, ptr %725, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = load i32, ptr %671, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror(i32 noundef %1381, ptr noundef nonnull @.str.4) #12
  %1383 = load i32, ptr %671, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror_debug(i32 noundef %1383, ptr noundef nonnull @.str.4) #12
  %1385 = load i32, ptr %725, align 4, !tbaa !5
  %1386 = call ptr @strerror(i32 noundef %1385) #12
  %1387 = load i32, ptr %725, align 4, !tbaa !5
  %1388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1379, ptr noundef nonnull %.str.5.sink731, i32 noundef %1380, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1382, ptr noundef %1384, ptr noundef %1386, i32 noundef %1387) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1389:                                             ; preds = %1361
  %1390 = getelementptr inbounds i8, ptr %1363, i64 220
  store i8 34, ptr %1390, align 4, !tbaa !28
  %1391 = add nsw i32 %1364, 2
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = load ptr, ptr %11, align 8, !tbaa !9
  %1393 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1363, ptr noundef %1392) #12
  %1394 = icmp eq i32 %1393, -1
  br i1 %1394, label %1395, label %1417

1395:                                             ; preds = %1389
  %1396 = load i32, ptr %725, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @s2n_print_stacktrace(ptr noundef %1397) #12
  %1399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1400 = trunc nuw i8 %1399 to i1
  br i1 %1400, label %1401, label %1405

1401:                                             ; preds = %1395
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @fileno(ptr noundef %1402) #12
  %1404 = call i32 @isatty(i32 noundef %1403) #12
  %.not226 = icmp eq i32 %1404, 0
  br i1 %.not226, label %1405, label %1406

1405:                                             ; preds = %1401, %1395
  br label %1406

1406:                                             ; preds = %1401, %1405
  %.str.5.sink740 = phi ptr [ @.str.5, %1405 ], [ @.str.2, %1401 ]
  store i32 %1396, ptr %725, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = load i32, ptr %671, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror(i32 noundef %1409, ptr noundef nonnull @.str.4) #12
  %1411 = load i32, ptr %671, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror_debug(i32 noundef %1411, ptr noundef nonnull @.str.4) #12
  %1413 = load i32, ptr %725, align 4, !tbaa !5
  %1414 = call ptr @strerror(i32 noundef %1413) #12
  %1415 = load i32, ptr %725, align 4, !tbaa !5
  %1416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1407, ptr noundef nonnull %.str.5.sink740, i32 noundef %1408, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1410, ptr noundef %1412, ptr noundef %1414, i32 noundef %1415) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1417:                                             ; preds = %1389
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #12
  store i32 0, ptr %13, align 4, !tbaa !5
  %1418 = load i32, ptr @test_count, align 4, !tbaa !5
  %1419 = add nsw i32 %1418, 1
  store i32 %1419, ptr @test_count, align 4, !tbaa !5
  %1420 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.12, ptr noundef nonnull %3, ptr noundef nonnull %13, i64 noundef 12000) #12
  %1421 = icmp eq i32 %1420, -1
  br i1 %1421, label %1422, label %1444

1422:                                             ; preds = %1417
  %1423 = load i32, ptr %725, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @s2n_print_stacktrace(ptr noundef %1424) #12
  %1426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1427 = trunc nuw i8 %1426 to i1
  br i1 %1427, label %1428, label %1432

1428:                                             ; preds = %1422
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @fileno(ptr noundef %1429) #12
  %1431 = call i32 @isatty(i32 noundef %1430) #12
  %.not225 = icmp eq i32 %1431, 0
  br i1 %.not225, label %1432, label %1433

1432:                                             ; preds = %1428, %1422
  br label %1433

1433:                                             ; preds = %1428, %1432
  %.str.5.sink749 = phi ptr [ @.str.5, %1432 ], [ @.str.2, %1428 ]
  store i32 %1423, ptr %725, align 4, !tbaa !5
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = load i32, ptr %671, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef nonnull @.str.4) #12
  %1438 = load i32, ptr %671, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef nonnull @.str.4) #12
  %1440 = load i32, ptr %725, align 4, !tbaa !5
  %1441 = call ptr @strerror(i32 noundef %1440) #12
  %1442 = load i32, ptr %725, align 4, !tbaa !5
  %1443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1434, ptr noundef nonnull %.str.5.sink749, i32 noundef %1435, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1437, ptr noundef %1439, ptr noundef %1441, i32 noundef %1442) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1444:                                             ; preds = %1417
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  %1445 = call ptr @BIO_s_mem() #12
  %1446 = call ptr @BIO_new(ptr noundef %1445) #12
  store ptr %1446, ptr %14, align 8, !tbaa !9
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr @test_count, align 4, !tbaa !5
  %1449 = icmp eq ptr %1446, null
  br i1 %1449, label %1450, label %1472

1450:                                             ; preds = %1444
  %1451 = load i32, ptr %725, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #12
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc nuw i8 %1454 to i1
  br i1 %1455, label %1456, label %1460

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

1460:                                             ; preds = %1456, %1450
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.5.sink758 = phi ptr [ @.str.5, %1460 ], [ @.str.2, %1456 ]
  store i32 %1451, ptr %725, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = load i32, ptr %671, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.4) #12
  %1466 = load i32, ptr %671, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.4) #12
  %1468 = load i32, ptr %725, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #12
  %1470 = load i32, ptr %725, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.5.sink758, i32 noundef %1463, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1472:                                             ; preds = %1444
  %1473 = add nsw i32 %1447, 2
  store i32 %1473, ptr @test_count, align 4, !tbaa !5
  %1474 = load i32, ptr %13, align 4, !tbaa !5
  %1475 = call i32 @BIO_write(ptr noundef nonnull %1446, ptr noundef nonnull %3, i32 noundef %1474) #12
  %1476 = icmp sgt i32 %1475, 0
  br i1 %1476, label %1499, label %1477

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

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

1487:                                             ; preds = %1483, %1477
  br label %1488

1488:                                             ; preds = %1483, %1487
  %.str.5.sink767 = phi ptr [ @.str.5, %1487 ], [ @.str.2, %1483 ]
  store i32 %1478, ptr %725, align 4, !tbaa !5
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = load i32, ptr %671, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror(i32 noundef %1491, ptr noundef nonnull @.str.4) #12
  %1493 = load i32, ptr %671, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror_debug(i32 noundef %1493, ptr noundef nonnull @.str.4) #12
  %1495 = load i32, ptr %725, align 4, !tbaa !5
  %1496 = call ptr @strerror(i32 noundef %1495) #12
  %1497 = load i32, ptr %725, align 4, !tbaa !5
  %1498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1489, ptr noundef nonnull %.str.5.sink767, i32 noundef %1490, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1492, ptr noundef %1494, ptr noundef %1496, i32 noundef %1497) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1499:                                             ; preds = %1472
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %1500 = load ptr, ptr %14, align 8, !tbaa !9
  %1501 = call ptr @PEM_read_bio_X509(ptr noundef %1500, ptr noundef null, ptr noundef null, ptr noundef null) #12
  store ptr %1501, ptr %15, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = add nsw i32 %1502, 1
  store i32 %1503, ptr @test_count, align 4, !tbaa !5
  %1504 = icmp eq ptr %1501, null
  br i1 %1504, label %1505, label %1527

1505:                                             ; preds = %1499
  %1506 = load i32, ptr %725, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @s2n_print_stacktrace(ptr noundef %1507) #12
  %1509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1510 = trunc nuw i8 %1509 to i1
  br i1 %1510, label %1511, label %1515

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

1515:                                             ; preds = %1511, %1505
  br label %1516

1516:                                             ; preds = %1511, %1515
  %.str.5.sink776 = phi ptr [ @.str.5, %1515 ], [ @.str.2, %1511 ]
  store i32 %1506, ptr %725, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = load i32, ptr @test_count, align 4, !tbaa !5
  %1519 = load i32, ptr %671, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.4) #12
  %1521 = load i32, ptr %671, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.4) #12
  %1523 = load i32, ptr %725, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #12
  %1525 = load i32, ptr %725, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1517, ptr noundef nonnull %.str.5.sink776, i32 noundef %1518, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1527:                                             ; preds = %1499
  %1528 = add nsw i32 %1502, 2
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = load ptr, ptr %12, align 8, !tbaa !9
  %1530 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef %1529, ptr noundef nonnull %1501) #12
  %1531 = call zeroext i1 @s2n_result_is_error(i32 %1530)
  br i1 %1531, label %1554, label %1532

1532:                                             ; preds = %1527
  %1533 = load i32, ptr %725, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #12
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %1532
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #12
  %1541 = call i32 @isatty(i32 noundef %1540) #12
  %.not207 = icmp eq i32 %1541, 0
  br i1 %.not207, label %1542, label %1543

1542:                                             ; preds = %1538, %1532
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.5.sink785 = phi ptr [ @.str.5, %1542 ], [ @.str.2, %1538 ]
  store i32 %1533, ptr %725, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = load i32, ptr %671, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef nonnull @.str.4) #12
  %1548 = load i32, ptr %671, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef nonnull @.str.4) #12
  %1550 = load i32, ptr %725, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #12
  %1552 = load i32, ptr %725, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.5.sink785, i32 noundef %1545, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1547, ptr noundef %1549, ptr noundef %1551, i32 noundef %1552) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1554:                                             ; preds = %1527
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = add nsw i32 %1555, 1
  store i32 %1556, ptr @test_count, align 4, !tbaa !5
  %1557 = load i32, ptr %671, align 4, !tbaa !5
  %1558 = icmp eq i32 %1557, 335544366
  br i1 %1558, label %1581, label %1559

1559:                                             ; preds = %1554
  %1560 = load i32, ptr %725, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @s2n_print_stacktrace(ptr noundef %1561) #12
  %1563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1564 = trunc nuw i8 %1563 to i1
  br i1 %1564, label %1565, label %1569

1565:                                             ; preds = %1559
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @fileno(ptr noundef %1566) #12
  %1568 = call i32 @isatty(i32 noundef %1567) #12
  %.not208 = icmp eq i32 %1568, 0
  br i1 %.not208, label %1569, label %1570

1569:                                             ; preds = %1565, %1559
  br label %1570

1570:                                             ; preds = %1565, %1569
  %.str.5.sink794 = phi ptr [ @.str.5, %1569 ], [ @.str.2, %1565 ]
  store i32 %1560, ptr %725, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = load i32, ptr %671, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef nonnull @.str.4) #12
  %1575 = load i32, ptr %671, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef nonnull @.str.4) #12
  %1577 = load i32, ptr %725, align 4, !tbaa !5
  %1578 = call ptr @strerror(i32 noundef %1577) #12
  %1579 = load i32, ptr %725, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1571, ptr noundef nonnull %.str.5.sink794, i32 noundef %1572, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1574, ptr noundef %1576, ptr noundef %1578, i32 noundef %1579) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1581:                                             ; preds = %1554
  %1582 = add nsw i32 %1555, 2
  store i32 %1582, ptr @test_count, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #12
  %1584 = icmp eq ptr %1583, null
  br i1 %1584, label %1585, label %1607

1585:                                             ; preds = %1581
  %1586 = load i32, ptr %725, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @s2n_print_stacktrace(ptr noundef %1587) #12
  %1589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1590 = trunc nuw i8 %1589 to i1
  br i1 %1590, label %1591, label %1595

1591:                                             ; preds = %1585
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @fileno(ptr noundef %1592) #12
  %1594 = call i32 @isatty(i32 noundef %1593) #12
  %.not222 = icmp eq i32 %1594, 0
  br i1 %.not222, label %1595, label %1596

1595:                                             ; preds = %1591, %1585
  br label %1596

1596:                                             ; preds = %1591, %1595
  %.str.5.sink803 = phi ptr [ @.str.5, %1595 ], [ @.str.2, %1591 ]
  store i32 %1586, ptr %725, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = load i32, ptr %671, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror(i32 noundef %1599, ptr noundef nonnull @.str.4) #12
  %1601 = load i32, ptr %671, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror_debug(i32 noundef %1601, ptr noundef nonnull @.str.4) #12
  %1603 = load i32, ptr %725, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #12
  %1605 = load i32, ptr %725, align 4, !tbaa !5
  %1606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef nonnull %.str.5.sink803, i32 noundef %1598, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1600, ptr noundef %1602, ptr noundef %1604, i32 noundef %1605) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1607:                                             ; preds = %1581
  store i32 0, ptr %671, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %725, align 4, !tbaa !5
  call void @X509_free_pointer(ptr noundef nonnull %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @BIO_free_pointer(ptr noundef nonnull %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #12
  %1608 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  %1609 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %1610 = call ptr @s2n_config_new() #12
  store ptr %1610, ptr %16, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = add nsw i32 %1611, 1
  store i32 %1612, ptr @test_count, align 4, !tbaa !5
  %1613 = icmp eq ptr %1610, null
  br i1 %1613, label %1614, label %1636

1614:                                             ; preds = %1607
  %1615 = load i32, ptr %725, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @s2n_print_stacktrace(ptr noundef %1616) #12
  %1618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1619 = trunc nuw i8 %1618 to i1
  br i1 %1619, label %1620, label %1624

1620:                                             ; preds = %1614
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @fileno(ptr noundef %1621) #12
  %1623 = call i32 @isatty(i32 noundef %1622) #12
  %.not221 = icmp eq i32 %1623, 0
  br i1 %.not221, label %1624, label %1625

1624:                                             ; preds = %1620, %1614
  br label %1625

1625:                                             ; preds = %1620, %1624
  %.str.5.sink812 = phi ptr [ @.str.5, %1624 ], [ @.str.2, %1620 ]
  store i32 %1615, ptr %725, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = load i32, ptr %671, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef nonnull @.str.4) #12
  %1630 = load i32, ptr %671, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef nonnull @.str.4) #12
  %1632 = load i32, ptr %725, align 4, !tbaa !5
  %1633 = call ptr @strerror(i32 noundef %1632) #12
  %1634 = load i32, ptr %725, align 4, !tbaa !5
  %1635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1626, ptr noundef nonnull %.str.5.sink812, i32 noundef %1627, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1629, ptr noundef %1631, ptr noundef %1633, i32 noundef %1634) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1636:                                             ; preds = %1607
  %1637 = getelementptr inbounds i8, ptr %1610, i64 96
  store ptr %6, ptr %1637, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %1638 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1638, ptr %17, align 8, !tbaa !9
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr @test_count, align 4, !tbaa !5
  %1641 = icmp eq ptr %1638, null
  br i1 %1641, label %1642, label %1664

1642:                                             ; preds = %1636
  %1643 = load i32, ptr %725, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = call i32 @s2n_print_stacktrace(ptr noundef %1644) #12
  %1646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1647 = trunc nuw i8 %1646 to i1
  br i1 %1647, label %1648, label %1652

1648:                                             ; preds = %1642
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @fileno(ptr noundef %1649) #12
  %1651 = call i32 @isatty(i32 noundef %1650) #12
  %.not220 = icmp eq i32 %1651, 0
  br i1 %.not220, label %1652, label %1653

1652:                                             ; preds = %1648, %1642
  br label %1653

1653:                                             ; preds = %1648, %1652
  %.str.5.sink821 = phi ptr [ @.str.5, %1652 ], [ @.str.2, %1648 ]
  store i32 %1643, ptr %725, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = load i32, ptr %671, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror(i32 noundef %1656, ptr noundef nonnull @.str.4) #12
  %1658 = load i32, ptr %671, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror_debug(i32 noundef %1658, ptr noundef nonnull @.str.4) #12
  %1660 = load i32, ptr %725, align 4, !tbaa !5
  %1661 = call ptr @strerror(i32 noundef %1660) #12
  %1662 = load i32, ptr %725, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1654, ptr noundef nonnull %.str.5.sink821, i32 noundef %1655, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1657, ptr noundef %1659, ptr noundef %1661, i32 noundef %1662) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1664:                                             ; preds = %1636
  %1665 = getelementptr inbounds i8, ptr %1638, i64 220
  store i8 33, ptr %1665, align 4, !tbaa !28
  %1666 = add nsw i32 %1639, 2
  store i32 %1666, ptr @test_count, align 4, !tbaa !5
  %1667 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1638, ptr noundef nonnull %1610) #12
  %1668 = icmp eq i32 %1667, -1
  br i1 %1668, label %1669, label %1691

1669:                                             ; preds = %1664
  %1670 = load i32, ptr %725, align 4, !tbaa !5
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = call i32 @s2n_print_stacktrace(ptr noundef %1671) #12
  %1673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1674 = trunc nuw i8 %1673 to i1
  br i1 %1674, label %1675, label %1679

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

1679:                                             ; preds = %1675, %1669
  br label %1680

1680:                                             ; preds = %1675, %1679
  %.str.5.sink830 = phi ptr [ @.str.5, %1679 ], [ @.str.2, %1675 ]
  store i32 %1670, ptr %725, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = load i32, ptr @test_count, align 4, !tbaa !5
  %1683 = load i32, ptr %671, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror(i32 noundef %1683, ptr noundef nonnull @.str.4) #12
  %1685 = load i32, ptr %671, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror_debug(i32 noundef %1685, ptr noundef nonnull @.str.4) #12
  %1687 = load i32, ptr %725, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #12
  %1689 = load i32, ptr %725, align 4, !tbaa !5
  %1690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1681, ptr noundef nonnull %.str.5.sink830, i32 noundef %1682, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1684, ptr noundef %1686, ptr noundef %1688, i32 noundef %1689) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1691:                                             ; preds = %1664
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #12
  store i32 0, ptr %18, align 4, !tbaa !5
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = add nsw i32 %1692, 1
  store i32 %1693, ptr @test_count, align 4, !tbaa !5
  %1694 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.12, ptr noundef nonnull %3, ptr noundef nonnull %18, i64 noundef 12000) #12
  %1695 = icmp eq i32 %1694, -1
  br i1 %1695, label %1696, label %1718

1696:                                             ; preds = %1691
  %1697 = load i32, ptr %725, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = call i32 @s2n_print_stacktrace(ptr noundef %1698) #12
  %1700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1701 = trunc nuw i8 %1700 to i1
  br i1 %1701, label %1702, label %1706

1702:                                             ; preds = %1696
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = call i32 @fileno(ptr noundef %1703) #12
  %1705 = call i32 @isatty(i32 noundef %1704) #12
  %.not218 = icmp eq i32 %1705, 0
  br i1 %.not218, label %1706, label %1707

1706:                                             ; preds = %1702, %1696
  br label %1707

1707:                                             ; preds = %1702, %1706
  %.str.5.sink839 = phi ptr [ @.str.5, %1706 ], [ @.str.2, %1702 ]
  store i32 %1697, ptr %725, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = load i32, ptr %671, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef nonnull @.str.4) #12
  %1712 = load i32, ptr %671, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef nonnull @.str.4) #12
  %1714 = load i32, ptr %725, align 4, !tbaa !5
  %1715 = call ptr @strerror(i32 noundef %1714) #12
  %1716 = load i32, ptr %725, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1708, ptr noundef nonnull %.str.5.sink839, i32 noundef %1709, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1711, ptr noundef %1713, ptr noundef %1715, i32 noundef %1716) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1718:                                             ; preds = %1691
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %1719 = call ptr @BIO_s_mem() #12
  %1720 = call ptr @BIO_new(ptr noundef %1719) #12
  store ptr %1720, ptr %19, align 8, !tbaa !9
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = add nsw i32 %1721, 1
  store i32 %1722, ptr @test_count, align 4, !tbaa !5
  %1723 = icmp eq ptr %1720, null
  br i1 %1723, label %1724, label %1746

1724:                                             ; preds = %1718
  %1725 = load i32, ptr %725, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = call i32 @s2n_print_stacktrace(ptr noundef %1726) #12
  %1728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1729 = trunc nuw i8 %1728 to i1
  br i1 %1729, label %1730, label %1734

1730:                                             ; preds = %1724
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @fileno(ptr noundef %1731) #12
  %1733 = call i32 @isatty(i32 noundef %1732) #12
  %.not217 = icmp eq i32 %1733, 0
  br i1 %.not217, label %1734, label %1735

1734:                                             ; preds = %1730, %1724
  br label %1735

1735:                                             ; preds = %1730, %1734
  %.str.5.sink848 = phi ptr [ @.str.5, %1734 ], [ @.str.2, %1730 ]
  store i32 %1725, ptr %725, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = load i32, ptr %671, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror(i32 noundef %1738, ptr noundef nonnull @.str.4) #12
  %1740 = load i32, ptr %671, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef nonnull @.str.4) #12
  %1742 = load i32, ptr %725, align 4, !tbaa !5
  %1743 = call ptr @strerror(i32 noundef %1742) #12
  %1744 = load i32, ptr %725, align 4, !tbaa !5
  %1745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef nonnull %.str.5.sink848, i32 noundef %1737, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1739, ptr noundef %1741, ptr noundef %1743, i32 noundef %1744) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1746:                                             ; preds = %1718
  %1747 = add nsw i32 %1721, 2
  store i32 %1747, ptr @test_count, align 4, !tbaa !5
  %1748 = load i32, ptr %18, align 4, !tbaa !5
  %1749 = call i32 @BIO_write(ptr noundef nonnull %1720, ptr noundef nonnull %3, i32 noundef %1748) #12
  %1750 = icmp sgt i32 %1749, 0
  br i1 %1750, label %1773, label %1751

1751:                                             ; preds = %1746
  %1752 = load i32, ptr %725, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @s2n_print_stacktrace(ptr noundef %1753) #12
  %1755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc nuw i8 %1755 to i1
  br i1 %1756, label %1757, label %1761

1757:                                             ; preds = %1751
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @fileno(ptr noundef %1758) #12
  %1760 = call i32 @isatty(i32 noundef %1759) #12
  %.not209 = icmp eq i32 %1760, 0
  br i1 %.not209, label %1761, label %1762

1761:                                             ; preds = %1757, %1751
  br label %1762

1762:                                             ; preds = %1757, %1761
  %.str.5.sink857 = phi ptr [ @.str.5, %1761 ], [ @.str.2, %1757 ]
  store i32 %1752, ptr %725, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = load i32, ptr %671, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror(i32 noundef %1765, ptr noundef nonnull @.str.4) #12
  %1767 = load i32, ptr %671, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef nonnull @.str.4) #12
  %1769 = load i32, ptr %725, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #12
  %1771 = load i32, ptr %725, align 4, !tbaa !5
  %1772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef nonnull %.str.5.sink857, i32 noundef %1764, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1766, ptr noundef %1768, ptr noundef %1770, i32 noundef %1771) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1773:                                             ; preds = %1746
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %1774 = call ptr @PEM_read_bio_X509(ptr noundef nonnull %1720, ptr noundef null, ptr noundef null, ptr noundef null) #12
  store ptr %1774, ptr %20, align 8, !tbaa !9
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = add nsw i32 %1775, 1
  store i32 %1776, ptr @test_count, align 4, !tbaa !5
  %1777 = icmp eq ptr %1774, null
  br i1 %1777, label %1778, label %1800

1778:                                             ; preds = %1773
  %1779 = load i32, ptr %725, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #12
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1778
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #12
  %1787 = call i32 @isatty(i32 noundef %1786) #12
  %.not216 = icmp eq i32 %1787, 0
  br i1 %.not216, label %1788, label %1789

1788:                                             ; preds = %1784, %1778
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.5.sink866 = phi ptr [ @.str.5, %1788 ], [ @.str.2, %1784 ]
  store i32 %1779, ptr %725, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = load i32, ptr %671, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef nonnull @.str.4) #12
  %1794 = load i32, ptr %671, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror_debug(i32 noundef %1794, ptr noundef nonnull @.str.4) #12
  %1796 = load i32, ptr %725, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #12
  %1798 = load i32, ptr %725, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.5.sink866, i32 noundef %1791, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1793, ptr noundef %1795, ptr noundef %1797, i32 noundef %1798) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1800:                                             ; preds = %1773
  %1801 = add nsw i32 %1775, 2
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = call i32 @s2n_x509_validator_check_cert_preferences(ptr noundef nonnull %1638, ptr noundef nonnull %1774) #12
  %1803 = call zeroext i1 @s2n_result_is_ok(i32 %1802)
  br i1 %1803, label %1826, label %1804

1804:                                             ; preds = %1800
  %1805 = load i32, ptr %725, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806) #12
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc nuw i8 %1808 to i1
  br i1 %1809, label %1810, label %1814

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

1814:                                             ; preds = %1810, %1804
  br label %1815

1815:                                             ; preds = %1810, %1814
  %.str.5.sink875 = phi ptr [ @.str.5, %1814 ], [ @.str.2, %1810 ]
  store i32 %1805, ptr %725, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = load i32, ptr %671, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef nonnull @.str.4) #12
  %1820 = load i32, ptr %671, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef nonnull @.str.4) #12
  %1822 = load i32, ptr %725, align 4, !tbaa !5
  %1823 = call ptr @strerror(i32 noundef %1822) #12
  %1824 = load i32, ptr %725, align 4, !tbaa !5
  %1825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1816, ptr noundef nonnull %.str.5.sink875, i32 noundef %1817, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1819, ptr noundef %1821, ptr noundef %1823, i32 noundef %1824) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1826:                                             ; preds = %1800
  call void @X509_free_pointer(ptr noundef nonnull %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  call void @BIO_free_pointer(ptr noundef nonnull %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #12
  %1827 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %1828 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  %1829 = call i32 @s2n_cleanup() #12
  %1830 = icmp eq i32 %1829, -1
  br i1 %1830, label %1831, label %1853

1831:                                             ; preds = %1826
  %1832 = load i32, ptr %725, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = call i32 @s2n_print_stacktrace(ptr noundef %1833) #12
  %1835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1836 = trunc nuw i8 %1835 to i1
  br i1 %1836, label %1837, label %1841

1837:                                             ; preds = %1831
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #12
  %1840 = call i32 @isatty(i32 noundef %1839) #12
  %.not215 = icmp eq i32 %1840, 0
  br i1 %.not215, label %1841, label %1842

1841:                                             ; preds = %1837, %1831
  br label %1842

1842:                                             ; preds = %1837, %1841
  %.str.5.sink884 = phi ptr [ @.str.5, %1841 ], [ @.str.2, %1837 ]
  store i32 %1832, ptr %725, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = load i32, ptr %671, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.4) #12
  %1847 = load i32, ptr %671, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.4) #12
  %1849 = load i32, ptr %725, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #12
  %1851 = load i32, ptr %725, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef nonnull %.str.5.sink884, i32 noundef %1844, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1853:                                             ; preds = %1826
  %1854 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1855 = icmp eq i32 %1854, -1
  br i1 %1855, label %1856, label %1878

1856:                                             ; preds = %1853
  %1857 = load i32, ptr %725, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = call i32 @s2n_print_stacktrace(ptr noundef %1858) #12
  %1860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1861 = trunc nuw i8 %1860 to i1
  br i1 %1861, label %1862, label %1866

1862:                                             ; preds = %1856
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @fileno(ptr noundef %1863) #12
  %1865 = call i32 @isatty(i32 noundef %1864) #12
  %.not214 = icmp eq i32 %1865, 0
  br i1 %.not214, label %1866, label %1867

1866:                                             ; preds = %1862, %1856
  br label %1867

1867:                                             ; preds = %1862, %1866
  %.str.5.sink893 = phi ptr [ @.str.5, %1866 ], [ @.str.2, %1862 ]
  store i32 %1857, ptr %725, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = load i32, ptr %671, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror(i32 noundef %1870, ptr noundef nonnull @.str.4) #12
  %1872 = load i32, ptr %671, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror_debug(i32 noundef %1872, ptr noundef nonnull @.str.4) #12
  %1874 = load i32, ptr %725, align 4, !tbaa !5
  %1875 = call ptr @strerror(i32 noundef %1874) #12
  %1876 = load i32, ptr %725, align 4, !tbaa !5
  %1877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1868, ptr noundef nonnull %.str.5.sink893, i32 noundef %1869, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1871, ptr noundef %1873, ptr noundef %1875, i32 noundef %1876) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1878:                                             ; preds = %1853
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1892

1881:                                             ; preds = %1878
  %1882 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #12
  %1884 = call i32 @isatty(i32 noundef %1883) #12
  %.not211 = icmp eq i32 %1884, 0
  br i1 %.not211, label %1892, label %1885

1885:                                             ; preds = %1881
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not213 = icmp eq i32 %1886, 0
  %1887 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not213, label %1890, label %1888

1888:                                             ; preds = %1885
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull @.str.44, i32 noundef %1886) #12
  br label %1899

1890:                                             ; preds = %1885
  %1891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull @.str.45) #12
  br label %1899

1892:                                             ; preds = %1881, %1878
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not212 = icmp eq i32 %1893, 0
  %1894 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not212, label %1897, label %1895

1895:                                             ; preds = %1892
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef nonnull @.str.46, i32 noundef %1893) #12
  br label %1899

1897:                                             ; preds = %1892
  %1898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef nonnull @.str.47) #12
  br label %1899

1899:                                             ; preds = %1895, %1897, %1888, %1890
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %3) #12
  ret i32 0
}

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #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 #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare ptr @s2n_config_new() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #10

declare ptr @BIO_new(ptr noundef) local_unnamed_addr #2

declare ptr @BIO_s_mem() local_unnamed_addr #2

declare i32 @BIO_write(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @PEM_read_bio_X509(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_x509_validator_check_cert_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @BIO_free(ptr noundef) local_unnamed_addr #2

declare void @X509_free(ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @X509_free_pointer(ptr noundef) local_unnamed_addr #11

declare i32 @s2n_openssl_x509_parse(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @BIO_free_pointer(ptr noundef) local_unnamed_addr #11

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 0}
!16 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!17 = !{!16, !10, i64 8}
!18 = !{!19, !7, i64 0}
!19 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!20 = !{!19, !10, i64 32}
!21 = !{!22, !10, i64 96}
!22 = !{!"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, !23, i64 24, !24, 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, !25, i64 144, !10, i64 152, !25, i64 160, !25, 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, !26, i64 304, !27, 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, !24, i64 448}
!23 = !{!"certs_by_type", !7, i64 0}
!24 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!25 = !{!"long", !7, i64 0}
!26 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!27 = !{!"short", !7, i64 0}
!28 = !{!29, !7, i64 220}
!29 = !{!"s2n_connection", !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, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !30, i64 160, !25, i64 168, !25, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !31, i64 240, !10, i64 632, !10, i64 640, !32, i64 648, !37, i64 1144, !40, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !42, i64 1776, !42, i64 1816, !42, i64 1856, !42, i64 1896, !6, i64 1936, !25, i64 1944, !7, i64 1952, !42, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !43, i64 2004, !43, i64 2008, !44, i64 2016, !27, i64 2208, !6, i64 2212, !27, i64 2216, !25, i64 2224, !7, i64 2232, !25, i64 2240, !25, i64 2248, !25, i64 2256, !43, i64 2264, !43, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !24, i64 2792, !6, i64 2816, !24, i64 2824, !24, i64 2848, !24, i64 2872, !46, i64 2896, !48, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !24, i64 3784, !6, i64 3808, !50, i64 3816, !7, i64 3848, !42, i64 3992, !24, i64 4032, !24, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !27, i64 4084, !27, i64 4086, !6, i64 4088, !6, i64 4092, !24, i64 4096, !6, i64 4120, !51, i64 4128, !43, i64 4176, !7, i64 4180, !7, i64 4181}
!30 = !{!"s2n_timer", !25, i64 0}
!31 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!32 = !{!"s2n_kex_parameters", !33, i64 0, !34, i64 8, !7, i64 24, !34, i64 56, !35, i64 72, !35, i64 184, !7, i64 296, !36, i64 360, !24, i64 448, !24, i64 472}
!33 = !{!"s2n_dh_params", !10, i64 0}
!34 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!35 = !{!"s2n_kem_group_params", !10, i64 0, !36, i64 8, !34, i64 96}
!36 = !{!"s2n_kem_params", !10, i64 0, !24, i64 8, !24, i64 32, !24, i64 56, !12, i64 80}
!37 = !{!"s2n_handshake_parameters", !38, i64 0, !38, i64 48, !24, i64 96, !6, i64 120, !39, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!38 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!39 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!40 = !{!"s2n_psk_parameters", !6, i64 0, !41, i64 8, !27, i64 40, !27, i64 42, !10, i64 48, !6, i64 56}
!41 = !{!"s2n_array", !24, i64 0, !6, i64 24, !6, i64 28}
!42 = !{!"s2n_stuffer", !24, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!43 = !{!"", !6, i64 0}
!44 = !{!"s2n_handshake", !42, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !45, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!45 = !{!"s2n_offered_early_data", !10, i64 0}
!46 = !{!"s2n_client_hello", !24, i64 0, !47, i64 24, !24, i64 728, !24, i64 752, !24, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!47 = !{!"", !7, i64 0, !24, i64 672, !27, i64 696}
!48 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !27, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !49, i64 48, !12, i64 52}
!49 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!50 = !{!"s2n_ticket_fields", !24, i64 0, !6, i64 24}
!51 = !{!"s2n_post_handshake", !42, i64 0, !7, i64 40}
!52 = !{!53, !10, i64 0}
!53 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !24, i64 16, !24, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!54 = !{!55, !10, i64 8}
!55 = !{!"s2n_cert_chain", !6, i64 0, !10, i64 8}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass